README: Update libgc's URL
[nit.git] / c_src / core__abstract_text.sep.1.c
1 #include "core__abstract_text.sep.0.h"
2 /* method abstract_text#Text#bytes for (self: Text): SequenceRead[Byte] */
3 val* core___core__Text___bytes(val* self) {
4 val* var /* : SequenceRead[Byte] */;
5 const char* var_class_name;
6 var_class_name = self == NULL ? "null" : self->type->name;
7 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "bytes", var_class_name);
8 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 39);
9 fatal_exit(1);
10 RET_LABEL:;
11 return var;
12 }
13 /* method abstract_text#Text#length for (self: Text): Int */
14 long core___core__Text___length(val* self) {
15 long var /* : Int */;
16 const char* var_class_name;
17 var_class_name = self == NULL ? "null" : self->type->name;
18 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "length", var_class_name);
19 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 44);
20 fatal_exit(1);
21 RET_LABEL:;
22 return var;
23 }
24 /* method abstract_text#Text#bytelen for (self: Text): Int */
25 long core___core__Text___bytelen(val* self) {
26 long var /* : Int */;
27 const char* var_class_name;
28 var_class_name = self == NULL ? "null" : self->type->name;
29 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "bytelen", var_class_name);
30 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 51);
31 fatal_exit(1);
32 RET_LABEL:;
33 return var;
34 }
35 /* method abstract_text#Text#substring for (self: Text, Int, Int): Text */
36 val* core___core__Text___substring(val* self, long p0, long p1) {
37 val* var /* : Text */;
38 const char* var_class_name;
39 var_class_name = self == NULL ? "null" : self->type->name;
40 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "substring", var_class_name);
41 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 57);
42 fatal_exit(1);
43 RET_LABEL:;
44 return var;
45 }
46 /* method abstract_text#Text#substrings for (self: Text): Iterator[FlatText] */
47 val* core___core__Text___substrings(val* self) {
48 val* var /* : Iterator[FlatText] */;
49 const char* var_class_name;
50 var_class_name = self == NULL ? "null" : self->type->name;
51 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "substrings", var_class_name);
52 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 70);
53 fatal_exit(1);
54 RET_LABEL:;
55 return var;
56 }
57 /* method abstract_text#Text#is_empty for (self: Text): Bool */
58 short int core___core__Text___is_empty(val* self) {
59 short int var /* : Bool */;
60 long var1 /* : Int */;
61 short int var2 /* : Bool */;
62 short int var4 /* : Bool */;
63 {
64 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
65 }
66 {
67 { /* Inline kernel#Int#== (var1,0l) on <var1:Int> */
68 var4 = var1 == 0l;
69 var2 = var4;
70 goto RET_LABEL3;
71 RET_LABEL3:(void)0;
72 }
73 }
74 var = var2;
75 goto RET_LABEL;
76 RET_LABEL:;
77 return var;
78 }
79 /* method abstract_text#Text#empty for (self: Text): Text */
80 val* core___core__Text___empty(val* self) {
81 val* var /* : Text */;
82 const char* var_class_name;
83 var_class_name = self == NULL ? "null" : self->type->name;
84 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "empty", var_class_name);
85 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 79);
86 fatal_exit(1);
87 RET_LABEL:;
88 return var;
89 }
90 /* method abstract_text#Text#[] for (self: Text, Int): Char */
91 uint32_t core___core__Text____91d_93d(val* self, long p0) {
92 uint32_t var /* : Char */;
93 long var_index /* var index: Int */;
94 val* var1 /* : SequenceRead[Char] */;
95 val* var2 /* : nullable Object */;
96 uint32_t var3 /* : Char */;
97 var_index = p0;
98 {
99 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
100 }
101 {
102 var2 = ((val*(*)(val* self, long p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var1, var_index); /* [] on <var1:SequenceRead[Char]>*/
103 }
104 var3 = (uint32_t)((long)(var2)>>2);
105 var = var3;
106 goto RET_LABEL;
107 RET_LABEL:;
108 return var;
109 }
110 /* method abstract_text#Text#last for (self: Text): Char */
111 uint32_t core___core__Text___last(val* self) {
112 uint32_t var /* : Char */;
113 val* var1 /* : SequenceRead[Char] */;
114 long var2 /* : Int */;
115 long var3 /* : Int */;
116 short int var5 /* : Bool */;
117 int cltype;
118 int idtype;
119 const char* var_class_name;
120 long var6 /* : Int */;
121 val* var7 /* : nullable Object */;
122 uint32_t var8 /* : Char */;
123 {
124 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
125 }
126 {
127 var2 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
128 }
129 {
130 { /* Inline kernel#Int#- (var2,1l) on <var2:Int> */
131 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
132 /* <1l:Int> isa OTHER */
133 var5 = 1; /* easy <1l:Int> isa OTHER*/
134 if (unlikely(!var5)) {
135 var_class_name = type_core__Int.name;
136 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
137 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
138 fatal_exit(1);
139 }
140 var6 = var2 - 1l;
141 var3 = var6;
142 goto RET_LABEL4;
143 RET_LABEL4:(void)0;
144 }
145 }
146 {
147 var7 = ((val*(*)(val* self, long p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var1, var3); /* [] on <var1:SequenceRead[Char]>*/
148 }
149 var8 = (uint32_t)((long)(var7)>>2);
150 var = var8;
151 goto RET_LABEL;
152 RET_LABEL:;
153 return var;
154 }
155 /* method abstract_text#Text#to_cstring for (self: Text): NativeString */
156 char* core___core__Text___to_cstring(val* self) {
157 char* var /* : NativeString */;
158 const char* var_class_name;
159 var_class_name = self == NULL ? "null" : self->type->name;
160 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "to_cstring", var_class_name);
161 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 137);
162 fatal_exit(1);
163 RET_LABEL:;
164 return var;
165 }
166 /* method abstract_text#Text#substring_from for (self: Text, Int): Text */
167 val* core___core__Text___substring_from(val* self, long p0) {
168 val* var /* : Text */;
169 long var_from /* var from: Int */;
170 long var1 /* : Int */;
171 short int var2 /* : Bool */;
172 short int var4 /* : Bool */;
173 int cltype;
174 int idtype;
175 const char* var_class_name;
176 short int var5 /* : Bool */;
177 val* var6 /* : Text */;
178 short int var7 /* : Bool */;
179 short int var9 /* : Bool */;
180 int cltype10;
181 int idtype11;
182 const char* var_class_name12;
183 short int var13 /* : Bool */;
184 long var14 /* : Int */;
185 long var15 /* : Int */;
186 short int var17 /* : Bool */;
187 int cltype18;
188 int idtype19;
189 const char* var_class_name20;
190 long var21 /* : Int */;
191 val* var22 /* : Text */;
192 var_from = p0;
193 {
194 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
195 }
196 {
197 { /* Inline kernel#Int#>= (var_from,var1) on <var_from:Int> */
198 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
199 /* <var1:Int> isa OTHER */
200 var4 = 1; /* easy <var1:Int> isa OTHER*/
201 if (unlikely(!var4)) {
202 var_class_name = type_core__Int.name;
203 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
204 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
205 fatal_exit(1);
206 }
207 var5 = var_from >= var1;
208 var2 = var5;
209 goto RET_LABEL3;
210 RET_LABEL3:(void)0;
211 }
212 }
213 if (var2){
214 {
215 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__empty]))(self); /* empty on <self:Text>*/
216 }
217 var = var6;
218 goto RET_LABEL;
219 } else {
220 }
221 {
222 { /* Inline kernel#Int#< (var_from,0l) on <var_from:Int> */
223 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
224 /* <0l:Int> isa OTHER */
225 var9 = 1; /* easy <0l:Int> isa OTHER*/
226 if (unlikely(!var9)) {
227 var_class_name12 = type_core__Int.name;
228 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
229 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
230 fatal_exit(1);
231 }
232 var13 = var_from < 0l;
233 var7 = var13;
234 goto RET_LABEL8;
235 RET_LABEL8:(void)0;
236 }
237 }
238 if (var7){
239 var_from = 0l;
240 } else {
241 }
242 {
243 var14 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
244 }
245 {
246 { /* Inline kernel#Int#- (var14,var_from) on <var14:Int> */
247 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
248 /* <var_from:Int> isa OTHER */
249 var17 = 1; /* easy <var_from:Int> isa OTHER*/
250 if (unlikely(!var17)) {
251 var_class_name20 = type_core__Int.name;
252 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
253 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
254 fatal_exit(1);
255 }
256 var21 = var14 - var_from;
257 var15 = var21;
258 goto RET_LABEL16;
259 RET_LABEL16:(void)0;
260 }
261 }
262 {
263 var22 = ((val*(*)(val* self, long p0, long p1))(self->class->vft[COLOR_core__abstract_text__Text__substring]))(self, var_from, var15); /* substring on <self:Text>*/
264 }
265 var = var22;
266 goto RET_LABEL;
267 RET_LABEL:;
268 return var;
269 }
270 /* method abstract_text#Text#has_substring for (self: Text, String, Int): Bool */
271 short int core___core__Text___has_substring(val* self, val* p0, long p1) {
272 short int var /* : Bool */;
273 val* var_str /* var str: String */;
274 long var_pos /* var pos: Int */;
275 short int var1 /* : Bool */;
276 short int var2 /* : Bool */;
277 short int var3 /* : Bool */;
278 short int var5 /* : Bool */;
279 int cltype;
280 int idtype;
281 const char* var_class_name;
282 short int var6 /* : Bool */;
283 short int var_ /* var : Bool */;
284 long var7 /* : Int */;
285 long var8 /* : Int */;
286 short int var10 /* : Bool */;
287 int cltype11;
288 int idtype12;
289 const char* var_class_name13;
290 long var14 /* : Int */;
291 long var15 /* : Int */;
292 short int var16 /* : Bool */;
293 short int var18 /* : Bool */;
294 int cltype19;
295 int idtype20;
296 const char* var_class_name21;
297 short int var22 /* : Bool */;
298 val* var23 /* : SequenceRead[Char] */;
299 val* var24 /* : IndexedIterator[nullable Object] */;
300 val* var_myiter /* var myiter: IndexedIterator[Char] */;
301 val* var25 /* : SequenceRead[Char] */;
302 val* var26 /* : Iterator[nullable Object] */;
303 val* var_itsiter /* var itsiter: IndexedIterator[Char] */;
304 short int var27 /* : Bool */;
305 short int var28 /* : Bool */;
306 short int var_29 /* var : Bool */;
307 short int var30 /* : Bool */;
308 val* var31 /* : nullable Object */;
309 val* var32 /* : nullable Object */;
310 short int var33 /* : Bool */;
311 short int var35 /* : Bool */;
312 short int var36 /* : Bool */;
313 short int var37 /* : Bool */;
314 var_str = p0;
315 var_pos = p1;
316 {
317 var1 = ((short int(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__is_empty]))(var_str); /* is_empty on <var_str:String>*/
318 }
319 if (var1){
320 var = 1;
321 goto RET_LABEL;
322 } else {
323 }
324 {
325 { /* Inline kernel#Int#< (var_pos,0l) on <var_pos:Int> */
326 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
327 /* <0l:Int> isa OTHER */
328 var5 = 1; /* easy <0l:Int> isa OTHER*/
329 if (unlikely(!var5)) {
330 var_class_name = type_core__Int.name;
331 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
332 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
333 fatal_exit(1);
334 }
335 var6 = var_pos < 0l;
336 var3 = var6;
337 goto RET_LABEL4;
338 RET_LABEL4:(void)0;
339 }
340 }
341 var_ = var3;
342 if (var3){
343 var2 = var_;
344 } else {
345 {
346 var7 = ((long(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__length]))(var_str); /* length on <var_str:String>*/
347 }
348 {
349 { /* Inline kernel#Int#+ (var_pos,var7) on <var_pos:Int> */
350 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
351 /* <var7:Int> isa OTHER */
352 var10 = 1; /* easy <var7:Int> isa OTHER*/
353 if (unlikely(!var10)) {
354 var_class_name13 = type_core__Int.name;
355 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
356 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
357 fatal_exit(1);
358 }
359 var14 = var_pos + var7;
360 var8 = var14;
361 goto RET_LABEL9;
362 RET_LABEL9:(void)0;
363 }
364 }
365 {
366 var15 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
367 }
368 {
369 { /* Inline kernel#Int#> (var8,var15) on <var8:Int> */
370 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
371 /* <var15:Int> isa OTHER */
372 var18 = 1; /* easy <var15:Int> isa OTHER*/
373 if (unlikely(!var18)) {
374 var_class_name21 = type_core__Int.name;
375 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
376 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
377 fatal_exit(1);
378 }
379 var22 = var8 > var15;
380 var16 = var22;
381 goto RET_LABEL17;
382 RET_LABEL17:(void)0;
383 }
384 }
385 var2 = var16;
386 }
387 if (var2){
388 var = 0;
389 goto RET_LABEL;
390 } else {
391 }
392 {
393 var23 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
394 }
395 {
396 var24 = ((val*(*)(val* self, long p0))((((long)var23&3)?class_info[((long)var23&3)]:var23->class)->vft[COLOR_core__abstract_collection__SequenceRead__iterator_from]))(var23, var_pos); /* iterator_from on <var23:SequenceRead[Char]>*/
397 }
398 var_myiter = var24;
399 {
400 var25 = ((val*(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__chars]))(var_str); /* chars on <var_str:String>*/
401 }
402 {
403 var26 = ((val*(*)(val* self))((((long)var25&3)?class_info[((long)var25&3)]:var25->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var25); /* iterator on <var25:SequenceRead[Char]>*/
404 }
405 var_itsiter = var26;
406 for(;;) {
407 {
408 var28 = ((short int(*)(val* self))((((long)var_myiter&3)?class_info[((long)var_myiter&3)]:var_myiter->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_myiter); /* is_ok on <var_myiter:IndexedIterator[Char]>*/
409 }
410 var_29 = var28;
411 if (var28){
412 {
413 var30 = ((short int(*)(val* self))((((long)var_itsiter&3)?class_info[((long)var_itsiter&3)]:var_itsiter->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_itsiter); /* is_ok on <var_itsiter:IndexedIterator[Char]>*/
414 }
415 var27 = var30;
416 } else {
417 var27 = var_29;
418 }
419 if (var27){
420 {
421 var31 = ((val*(*)(val* self))((((long)var_myiter&3)?class_info[((long)var_myiter&3)]:var_myiter->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_myiter); /* item on <var_myiter:IndexedIterator[Char]>*/
422 }
423 {
424 var32 = ((val*(*)(val* self))((((long)var_itsiter&3)?class_info[((long)var_itsiter&3)]:var_itsiter->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_itsiter); /* item on <var_itsiter:IndexedIterator[Char]>*/
425 }
426 {
427 { /* Inline kernel#Char#!= (var31,var32) on <var31:nullable Object(Char)> */
428 var35 = var31 == var32;
429 var36 = !var35;
430 var33 = var36;
431 goto RET_LABEL34;
432 RET_LABEL34:(void)0;
433 }
434 }
435 if (var33){
436 var = 0;
437 goto RET_LABEL;
438 } else {
439 }
440 {
441 ((void(*)(val* self))((((long)var_myiter&3)?class_info[((long)var_myiter&3)]:var_myiter->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_myiter); /* next on <var_myiter:IndexedIterator[Char]>*/
442 }
443 {
444 ((void(*)(val* self))((((long)var_itsiter&3)?class_info[((long)var_itsiter&3)]:var_itsiter->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_itsiter); /* next on <var_itsiter:IndexedIterator[Char]>*/
445 }
446 } else {
447 goto BREAK_label;
448 }
449 }
450 BREAK_label: (void)0;
451 {
452 var37 = ((short int(*)(val* self))((((long)var_itsiter&3)?class_info[((long)var_itsiter&3)]:var_itsiter->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_itsiter); /* is_ok on <var_itsiter:IndexedIterator[Char]>*/
453 }
454 if (var37){
455 var = 0;
456 goto RET_LABEL;
457 } else {
458 }
459 var = 1;
460 goto RET_LABEL;
461 RET_LABEL:;
462 return var;
463 }
464 /* method abstract_text#Text#has_prefix for (self: Text, String): Bool */
465 short int core___core__Text___has_prefix(val* self, val* p0) {
466 short int var /* : Bool */;
467 val* var_prefix /* var prefix: String */;
468 short int var1 /* : Bool */;
469 var_prefix = p0;
470 {
471 var1 = core___core__Text___has_substring(self, var_prefix, 0l);
472 }
473 var = var1;
474 goto RET_LABEL;
475 RET_LABEL:;
476 return var;
477 }
478 /* method abstract_text#Text#has_suffix for (self: Text, String): Bool */
479 short int core___core__Text___has_suffix(val* self, val* p0) {
480 short int var /* : Bool */;
481 val* var_suffix /* var suffix: String */;
482 long var1 /* : Int */;
483 long var2 /* : Int */;
484 long var3 /* : Int */;
485 short int var5 /* : Bool */;
486 int cltype;
487 int idtype;
488 const char* var_class_name;
489 long var6 /* : Int */;
490 short int var7 /* : Bool */;
491 var_suffix = p0;
492 {
493 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
494 }
495 {
496 var2 = ((long(*)(val* self))(var_suffix->class->vft[COLOR_core__abstract_text__Text__length]))(var_suffix); /* length on <var_suffix:String>*/
497 }
498 {
499 { /* Inline kernel#Int#- (var1,var2) on <var1:Int> */
500 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
501 /* <var2:Int> isa OTHER */
502 var5 = 1; /* easy <var2:Int> isa OTHER*/
503 if (unlikely(!var5)) {
504 var_class_name = type_core__Int.name;
505 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
506 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
507 fatal_exit(1);
508 }
509 var6 = var1 - var2;
510 var3 = var6;
511 goto RET_LABEL4;
512 RET_LABEL4:(void)0;
513 }
514 }
515 {
516 var7 = core___core__Text___has_substring(self, var_suffix, var3);
517 }
518 var = var7;
519 goto RET_LABEL;
520 RET_LABEL:;
521 return var;
522 }
523 /* method abstract_text#Text#to_f for (self: Text): Float */
524 double core___core__Text___to_f(val* self) {
525 double var /* : Float */;
526 val* var1 /* : String */;
527 char* var2 /* : NativeString */;
528 double var3 /* : Float */;
529 double var5 /* : Float */;
530 {
531 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on <self:Text>*/
532 }
533 {
534 var2 = ((char*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__to_cstring]))(var1); /* to_cstring on <var1:String>*/
535 }
536 {
537 { /* Inline native#NativeString#atof (var2) on <var2:NativeString> */
538 var5 = native___NativeString_atof___impl(var2);
539 var3 = var5;
540 goto RET_LABEL4;
541 RET_LABEL4:(void)0;
542 }
543 }
544 var = var3;
545 goto RET_LABEL;
546 RET_LABEL:;
547 return var;
548 }
549 /* method abstract_text#Text#to_hex for (self: Text, nullable Int, nullable Int): Int */
550 long core___core__Text___to_hex(val* self, val* p0, val* p1) {
551 long var /* : Int */;
552 val* var_pos /* var pos: nullable Int */;
553 val* var_ln /* var ln: nullable Int */;
554 long var_res /* var res: Int */;
555 short int var1 /* : Bool */;
556 short int var2 /* : Bool */;
557 short int var4 /* : Bool */;
558 val* var5 /* : nullable Int */;
559 short int var6 /* : Bool */;
560 short int var7 /* : Bool */;
561 short int var9 /* : Bool */;
562 long var10 /* : Int */;
563 long var11 /* : Int */;
564 short int var13 /* : Bool */;
565 int cltype;
566 int idtype;
567 const char* var_class_name;
568 long var14 /* : Int */;
569 long var15 /* : Int */;
570 val* var16 /* : nullable Int */;
571 long var17 /* : Int */;
572 short int var19 /* : Bool */;
573 int cltype20;
574 int idtype21;
575 const char* var_class_name22;
576 long var23 /* : Int */;
577 long var24 /* : Int */;
578 long var25 /* : Int */;
579 long var_max /* var max: Int */;
580 long var26 /* : Int */;
581 long var_i /* var i: Int */;
582 long var_ /* var : Int */;
583 short int var27 /* : Bool */;
584 short int var29 /* : Bool */;
585 int cltype30;
586 int idtype31;
587 const char* var_class_name32;
588 short int var33 /* : Bool */;
589 long var34 /* : Int */;
590 long var36 /* : Int */;
591 uint32_t var37 /* : Char */;
592 long var38 /* : Int */;
593 long var39 /* : Int */;
594 short int var41 /* : Bool */;
595 int cltype42;
596 int idtype43;
597 const char* var_class_name44;
598 long var45 /* : Int */;
599 long var46 /* : Int */;
600 var_pos = p0;
601 var_ln = p1;
602 var_res = 0l;
603 if (var_pos == NULL) {
604 var1 = 1; /* is null */
605 } else {
606 var1 = 0; /* arg is null but recv is not */
607 }
608 if (0) {
609 { /* Inline kernel#Int#== (var_pos,((val*)NULL)) on <var_pos:nullable Int> */
610 var4 = 0; /* incompatible types Int vs. null; cannot be NULL */
611 var2 = var4;
612 goto RET_LABEL3;
613 RET_LABEL3:(void)0;
614 }
615 var1 = var2;
616 }
617 if (var1){
618 var5 = (val*)(0l<<2|1);
619 var_pos = var5;
620 } else {
621 }
622 if (var_ln == NULL) {
623 var6 = 1; /* is null */
624 } else {
625 var6 = 0; /* arg is null but recv is not */
626 }
627 if (0) {
628 { /* Inline kernel#Int#== (var_ln,((val*)NULL)) on <var_ln:nullable Int> */
629 var9 = 0; /* incompatible types Int vs. null; cannot be NULL */
630 var7 = var9;
631 goto RET_LABEL8;
632 RET_LABEL8:(void)0;
633 }
634 var6 = var7;
635 }
636 if (var6){
637 {
638 var10 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
639 }
640 {
641 { /* Inline kernel#Int#- (var10,var_pos) on <var10:Int> */
642 /* Covariant cast for argument 0 (i) <var_pos:nullable Int(Int)> isa OTHER */
643 /* <var_pos:nullable Int(Int)> isa OTHER */
644 var13 = 1; /* easy <var_pos:nullable Int(Int)> isa OTHER*/
645 if (unlikely(!var13)) {
646 var_class_name = var_pos == NULL ? "null" : (((long)var_pos&3)?type_info[((long)var_pos&3)]:var_pos->type)->name;
647 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
648 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
649 fatal_exit(1);
650 }
651 var14 = (long)(var_pos)>>2;
652 var15 = var10 - var14;
653 var11 = var15;
654 goto RET_LABEL12;
655 RET_LABEL12:(void)0;
656 }
657 }
658 var16 = (val*)(var11<<2|1);
659 var_ln = var16;
660 } else {
661 }
662 {
663 { /* Inline kernel#Int#+ (var_pos,var_ln) on <var_pos:nullable Int(Int)> */
664 /* Covariant cast for argument 0 (i) <var_ln:nullable Int(Int)> isa OTHER */
665 /* <var_ln:nullable Int(Int)> isa OTHER */
666 var19 = 1; /* easy <var_ln:nullable Int(Int)> isa OTHER*/
667 if (unlikely(!var19)) {
668 var_class_name22 = var_ln == NULL ? "null" : (((long)var_ln&3)?type_info[((long)var_ln&3)]:var_ln->type)->name;
669 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
670 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
671 fatal_exit(1);
672 }
673 var23 = (long)(var_pos)>>2;
674 var24 = (long)(var_ln)>>2;
675 var25 = var23 + var24;
676 var17 = var25;
677 goto RET_LABEL18;
678 RET_LABEL18:(void)0;
679 }
680 }
681 var_max = var17;
682 var26 = (long)(var_pos)>>2;
683 var_i = var26;
684 var_ = var_max;
685 for(;;) {
686 {
687 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
688 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
689 /* <var_:Int> isa OTHER */
690 var29 = 1; /* easy <var_:Int> isa OTHER*/
691 if (unlikely(!var29)) {
692 var_class_name32 = type_core__Int.name;
693 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
694 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
695 fatal_exit(1);
696 }
697 var33 = var_i < var_;
698 var27 = var33;
699 goto RET_LABEL28;
700 RET_LABEL28:(void)0;
701 }
702 }
703 if (var27){
704 } else {
705 goto BREAK_label;
706 }
707 {
708 { /* Inline kernel#Int#<< (var_res,4l) on <var_res:Int> */
709 var36 = var_res << 4l;
710 var34 = var36;
711 goto RET_LABEL35;
712 RET_LABEL35:(void)0;
713 }
714 }
715 var_res = var34;
716 {
717 var37 = ((uint32_t(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(self, var_i); /* [] on <self:Text>*/
718 }
719 {
720 var38 = core__abstract_text___Char___from_hex(var37);
721 }
722 {
723 { /* Inline kernel#Int#+ (var_res,var38) on <var_res:Int> */
724 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
725 /* <var38:Int> isa OTHER */
726 var41 = 1; /* easy <var38:Int> isa OTHER*/
727 if (unlikely(!var41)) {
728 var_class_name44 = type_core__Int.name;
729 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
730 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
731 fatal_exit(1);
732 }
733 var45 = var_res + var38;
734 var39 = var45;
735 goto RET_LABEL40;
736 RET_LABEL40:(void)0;
737 }
738 }
739 var_res = var39;
740 {
741 var46 = core___core__Int___Discrete__successor(var_i, 1l);
742 }
743 var_i = var46;
744 }
745 BREAK_label: (void)0;
746 var = var_res;
747 goto RET_LABEL;
748 RET_LABEL:;
749 return var;
750 }
751 /* method abstract_text#Text#to_oct for (self: Text): Int */
752 long core___core__Text___to_oct(val* self) {
753 long var /* : Int */;
754 long var1 /* : Int */;
755 {
756 var1 = core___core__Text___a_to(self, 8l);
757 }
758 var = var1;
759 goto RET_LABEL;
760 RET_LABEL:;
761 return var;
762 }
763 /* method abstract_text#Text#to_bin for (self: Text): Int */
764 long core___core__Text___to_bin(val* self) {
765 long var /* : Int */;
766 long var1 /* : Int */;
767 {
768 var1 = core___core__Text___a_to(self, 2l);
769 }
770 var = var1;
771 goto RET_LABEL;
772 RET_LABEL:;
773 return var;
774 }
775 /* method abstract_text#Text#to_dec for (self: Text): Int */
776 long core___core__Text___to_dec(val* self) {
777 long var /* : Int */;
778 long var1 /* : Int */;
779 {
780 var1 = core___core__Text___a_to(self, 10l);
781 }
782 var = var1;
783 goto RET_LABEL;
784 RET_LABEL:;
785 return var;
786 }
787 /* method abstract_text#Text#a_to for (self: Text, Int): Int */
788 long core___core__Text___a_to(val* self, long p0) {
789 long var /* : Int */;
790 long var_base /* var base: Int */;
791 long var_i /* var i: Int */;
792 short int var_neg /* var neg: Bool */;
793 long var_j /* var j: Int */;
794 long var1 /* : Int */;
795 long var_ /* var : Int */;
796 short int var2 /* : Bool */;
797 short int var4 /* : Bool */;
798 int cltype;
799 int idtype;
800 const char* var_class_name;
801 short int var5 /* : Bool */;
802 val* var6 /* : SequenceRead[Char] */;
803 val* var7 /* : nullable Object */;
804 uint32_t var8 /* : Char */;
805 uint32_t var_c /* var c: Char */;
806 long var9 /* : Int */;
807 long var_v /* var v: Int */;
808 short int var10 /* : Bool */;
809 short int var12 /* : Bool */;
810 int cltype13;
811 int idtype14;
812 const char* var_class_name15;
813 short int var16 /* : Bool */;
814 long var17 /* : Int */;
815 long var19 /* : Int */;
816 short int var20 /* : Bool */;
817 short int var22 /* : Bool */;
818 int cltype23;
819 int idtype24;
820 const char* var_class_name25;
821 short int var26 /* : Bool */;
822 long var27 /* : Int */;
823 short int var29 /* : Bool */;
824 int cltype30;
825 int idtype31;
826 const char* var_class_name32;
827 long var33 /* : Int */;
828 long var34 /* : Int */;
829 short int var36 /* : Bool */;
830 int cltype37;
831 int idtype38;
832 const char* var_class_name39;
833 long var40 /* : Int */;
834 long var41 /* : Int */;
835 long var42 /* : Int */;
836 long var44 /* : Int */;
837 var_base = p0;
838 var_i = 0l;
839 var_neg = 0;
840 var_j = 0l;
841 {
842 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
843 }
844 var_ = var1;
845 for(;;) {
846 {
847 { /* Inline kernel#Int#< (var_j,var_) on <var_j:Int> */
848 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
849 /* <var_:Int> isa OTHER */
850 var4 = 1; /* easy <var_:Int> isa OTHER*/
851 if (unlikely(!var4)) {
852 var_class_name = type_core__Int.name;
853 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
854 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
855 fatal_exit(1);
856 }
857 var5 = var_j < var_;
858 var2 = var5;
859 goto RET_LABEL3;
860 RET_LABEL3:(void)0;
861 }
862 }
863 if (var2){
864 } else {
865 goto BREAK_label;
866 }
867 {
868 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
869 }
870 {
871 var7 = ((val*(*)(val* self, long p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var6, var_j); /* [] on <var6:SequenceRead[Char]>*/
872 }
873 var8 = (uint32_t)((long)(var7)>>2);
874 var_c = var8;
875 {
876 var9 = core___core__Char___to_i(var_c);
877 }
878 var_v = var9;
879 {
880 { /* Inline kernel#Int#> (var_v,var_base) on <var_v:Int> */
881 /* Covariant cast for argument 0 (i) <var_base:Int> isa OTHER */
882 /* <var_base:Int> isa OTHER */
883 var12 = 1; /* easy <var_base:Int> isa OTHER*/
884 if (unlikely(!var12)) {
885 var_class_name15 = type_core__Int.name;
886 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
887 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
888 fatal_exit(1);
889 }
890 var16 = var_v > var_base;
891 var10 = var16;
892 goto RET_LABEL11;
893 RET_LABEL11:(void)0;
894 }
895 }
896 if (var10){
897 if (var_neg){
898 {
899 { /* Inline kernel#Int#unary - (var_i) on <var_i:Int> */
900 var19 = -var_i;
901 var17 = var19;
902 goto RET_LABEL18;
903 RET_LABEL18:(void)0;
904 }
905 }
906 var = var17;
907 goto RET_LABEL;
908 } else {
909 var = var_i;
910 goto RET_LABEL;
911 }
912 } else {
913 {
914 { /* Inline kernel#Int#< (var_v,0l) on <var_v:Int> */
915 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
916 /* <0l:Int> isa OTHER */
917 var22 = 1; /* easy <0l:Int> isa OTHER*/
918 if (unlikely(!var22)) {
919 var_class_name25 = type_core__Int.name;
920 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
921 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
922 fatal_exit(1);
923 }
924 var26 = var_v < 0l;
925 var20 = var26;
926 goto RET_LABEL21;
927 RET_LABEL21:(void)0;
928 }
929 }
930 if (var20){
931 var_neg = 1;
932 } else {
933 {
934 { /* Inline kernel#Int#* (var_i,var_base) on <var_i:Int> */
935 /* Covariant cast for argument 0 (i) <var_base:Int> isa OTHER */
936 /* <var_base:Int> isa OTHER */
937 var29 = 1; /* easy <var_base:Int> isa OTHER*/
938 if (unlikely(!var29)) {
939 var_class_name32 = type_core__Int.name;
940 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
941 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
942 fatal_exit(1);
943 }
944 var33 = var_i * var_base;
945 var27 = var33;
946 goto RET_LABEL28;
947 RET_LABEL28:(void)0;
948 }
949 }
950 {
951 { /* Inline kernel#Int#+ (var27,var_v) on <var27:Int> */
952 /* Covariant cast for argument 0 (i) <var_v:Int> isa OTHER */
953 /* <var_v:Int> isa OTHER */
954 var36 = 1; /* easy <var_v:Int> isa OTHER*/
955 if (unlikely(!var36)) {
956 var_class_name39 = type_core__Int.name;
957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
958 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
959 fatal_exit(1);
960 }
961 var40 = var27 + var_v;
962 var34 = var40;
963 goto RET_LABEL35;
964 RET_LABEL35:(void)0;
965 }
966 }
967 var_i = var34;
968 }
969 }
970 {
971 var41 = core___core__Int___Discrete__successor(var_j, 1l);
972 }
973 var_j = var41;
974 }
975 BREAK_label: (void)0;
976 if (var_neg){
977 {
978 { /* Inline kernel#Int#unary - (var_i) on <var_i:Int> */
979 var44 = -var_i;
980 var42 = var44;
981 goto RET_LABEL43;
982 RET_LABEL43:(void)0;
983 }
984 }
985 var = var42;
986 goto RET_LABEL;
987 } else {
988 var = var_i;
989 goto RET_LABEL;
990 }
991 RET_LABEL:;
992 return var;
993 }
994 /* method abstract_text#Text#is_numeric for (self: Text): Bool */
995 short int core___core__Text___is_numeric(val* self) {
996 short int var /* : Bool */;
997 short int var_has_point /* var has_point: Bool */;
998 long var1 /* : Int */;
999 long var3 /* : Int */;
1000 long var_e_index /* var e_index: Int */;
1001 long var_i /* var i: Int */;
1002 long var4 /* : Int */;
1003 long var_ /* var : Int */;
1004 short int var5 /* : Bool */;
1005 short int var7 /* : Bool */;
1006 int cltype;
1007 int idtype;
1008 const char* var_class_name;
1009 short int var8 /* : Bool */;
1010 val* var9 /* : SequenceRead[Char] */;
1011 val* var10 /* : nullable Object */;
1012 uint32_t var11 /* : Char */;
1013 uint32_t var_c /* var c: Char */;
1014 short int var12 /* : Bool */;
1015 short int var13 /* : Bool */;
1016 short int var14 /* : Bool */;
1017 short int var15 /* : Bool */;
1018 short int var17 /* : Bool */;
1019 short int var_18 /* var : Bool */;
1020 short int var19 /* : Bool */;
1021 short int var20 /* : Bool */;
1022 short int var21 /* : Bool */;
1023 short int var22 /* : Bool */;
1024 short int var23 /* : Bool */;
1025 short int var24 /* : Bool */;
1026 short int var26 /* : Bool */;
1027 short int var_27 /* var : Bool */;
1028 long var28 /* : Int */;
1029 long var30 /* : Int */;
1030 short int var31 /* : Bool */;
1031 short int var33 /* : Bool */;
1032 short int var_34 /* var : Bool */;
1033 short int var35 /* : Bool */;
1034 short int var37 /* : Bool */;
1035 int cltype38;
1036 int idtype39;
1037 const char* var_class_name40;
1038 short int var41 /* : Bool */;
1039 short int var_42 /* var : Bool */;
1040 long var43 /* : Int */;
1041 long var44 /* : Int */;
1042 short int var46 /* : Bool */;
1043 int cltype47;
1044 int idtype48;
1045 const char* var_class_name49;
1046 long var50 /* : Int */;
1047 short int var51 /* : Bool */;
1048 short int var53 /* : Bool */;
1049 int cltype54;
1050 int idtype55;
1051 const char* var_class_name56;
1052 short int var57 /* : Bool */;
1053 short int var_58 /* var : Bool */;
1054 val* var59 /* : SequenceRead[Char] */;
1055 long var60 /* : Int */;
1056 short int var62 /* : Bool */;
1057 int cltype63;
1058 int idtype64;
1059 const char* var_class_name65;
1060 long var66 /* : Int */;
1061 val* var67 /* : nullable Object */;
1062 short int var68 /* : Bool */;
1063 short int var70 /* : Bool */;
1064 uint32_t var71 /* : Char */;
1065 short int var72 /* : Bool */;
1066 short int var73 /* : Bool */;
1067 short int var74 /* : Bool */;
1068 short int var75 /* : Bool */;
1069 short int var77 /* : Bool */;
1070 short int var_78 /* var : Bool */;
1071 long var79 /* : Int */;
1072 short int var81 /* : Bool */;
1073 int cltype82;
1074 int idtype83;
1075 const char* var_class_name84;
1076 long var85 /* : Int */;
1077 short int var86 /* : Bool */;
1078 short int var88 /* : Bool */;
1079 short int var_89 /* var : Bool */;
1080 long var90 /* : Int */;
1081 long var91 /* : Int */;
1082 short int var93 /* : Bool */;
1083 int cltype94;
1084 int idtype95;
1085 const char* var_class_name96;
1086 long var97 /* : Int */;
1087 short int var98 /* : Bool */;
1088 short int var100 /* : Bool */;
1089 int cltype101;
1090 int idtype102;
1091 const char* var_class_name103;
1092 short int var104 /* : Bool */;
1093 long var105 /* : Int */;
1094 short int var106 /* : Bool */;
1095 short int var107 /* : Bool */;
1096 var_has_point = 0;
1097 {
1098 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
1099 var3 = -1l;
1100 var1 = var3;
1101 goto RET_LABEL2;
1102 RET_LABEL2:(void)0;
1103 }
1104 }
1105 var_e_index = var1;
1106 var_i = 0l;
1107 {
1108 var4 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
1109 }
1110 var_ = var4;
1111 for(;;) {
1112 {
1113 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
1114 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
1115 /* <var_:Int> isa OTHER */
1116 var7 = 1; /* easy <var_:Int> isa OTHER*/
1117 if (unlikely(!var7)) {
1118 var_class_name = type_core__Int.name;
1119 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1120 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1121 fatal_exit(1);
1122 }
1123 var8 = var_i < var_;
1124 var5 = var8;
1125 goto RET_LABEL6;
1126 RET_LABEL6:(void)0;
1127 }
1128 }
1129 if (var5){
1130 } else {
1131 goto BREAK_label;
1132 }
1133 {
1134 var9 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
1135 }
1136 {
1137 var10 = ((val*(*)(val* self, long p0))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var9, var_i); /* [] on <var9:SequenceRead[Char]>*/
1138 }
1139 var11 = (uint32_t)((long)(var10)>>2);
1140 var_c = var11;
1141 {
1142 var12 = core__abstract_text___Char___is_numeric(var_c);
1143 }
1144 var13 = !var12;
1145 if (var13){
1146 {
1147 { /* Inline kernel#Char#== (var_c,'.') on <var_c:Char> */
1148 var17 = var_c == '.';
1149 var15 = var17;
1150 goto RET_LABEL16;
1151 RET_LABEL16:(void)0;
1152 }
1153 }
1154 var_18 = var15;
1155 if (var15){
1156 var19 = !var_has_point;
1157 var14 = var19;
1158 } else {
1159 var14 = var_18;
1160 }
1161 if (var14){
1162 var_has_point = 1;
1163 } else {
1164 {
1165 { /* Inline kernel#Char#== (var_c,'e') on <var_c:Char> */
1166 var26 = var_c == 'e';
1167 var24 = var26;
1168 goto RET_LABEL25;
1169 RET_LABEL25:(void)0;
1170 }
1171 }
1172 var_27 = var24;
1173 if (var24){
1174 {
1175 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
1176 var30 = -1l;
1177 var28 = var30;
1178 goto RET_LABEL29;
1179 RET_LABEL29:(void)0;
1180 }
1181 }
1182 {
1183 { /* Inline kernel#Int#== (var_e_index,var28) on <var_e_index:Int> */
1184 var33 = var_e_index == var28;
1185 var31 = var33;
1186 goto RET_LABEL32;
1187 RET_LABEL32:(void)0;
1188 }
1189 }
1190 var23 = var31;
1191 } else {
1192 var23 = var_27;
1193 }
1194 var_34 = var23;
1195 if (var23){
1196 {
1197 { /* Inline kernel#Int#> (var_i,0l) on <var_i:Int> */
1198 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1199 /* <0l:Int> isa OTHER */
1200 var37 = 1; /* easy <0l:Int> isa OTHER*/
1201 if (unlikely(!var37)) {
1202 var_class_name40 = type_core__Int.name;
1203 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
1204 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
1205 fatal_exit(1);
1206 }
1207 var41 = var_i > 0l;
1208 var35 = var41;
1209 goto RET_LABEL36;
1210 RET_LABEL36:(void)0;
1211 }
1212 }
1213 var22 = var35;
1214 } else {
1215 var22 = var_34;
1216 }
1217 var_42 = var22;
1218 if (var22){
1219 {
1220 var43 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
1221 }
1222 {
1223 { /* Inline kernel#Int#- (var43,1l) on <var43:Int> */
1224 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1225 /* <1l:Int> isa OTHER */
1226 var46 = 1; /* easy <1l:Int> isa OTHER*/
1227 if (unlikely(!var46)) {
1228 var_class_name49 = type_core__Int.name;
1229 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
1230 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1231 fatal_exit(1);
1232 }
1233 var50 = var43 - 1l;
1234 var44 = var50;
1235 goto RET_LABEL45;
1236 RET_LABEL45:(void)0;
1237 }
1238 }
1239 {
1240 { /* Inline kernel#Int#< (var_i,var44) on <var_i:Int> */
1241 /* Covariant cast for argument 0 (i) <var44:Int> isa OTHER */
1242 /* <var44:Int> isa OTHER */
1243 var53 = 1; /* easy <var44:Int> isa OTHER*/
1244 if (unlikely(!var53)) {
1245 var_class_name56 = type_core__Int.name;
1246 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
1247 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1248 fatal_exit(1);
1249 }
1250 var57 = var_i < var44;
1251 var51 = var57;
1252 goto RET_LABEL52;
1253 RET_LABEL52:(void)0;
1254 }
1255 }
1256 var21 = var51;
1257 } else {
1258 var21 = var_42;
1259 }
1260 var_58 = var21;
1261 if (var21){
1262 {
1263 var59 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
1264 }
1265 {
1266 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
1267 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1268 /* <1l:Int> isa OTHER */
1269 var62 = 1; /* easy <1l:Int> isa OTHER*/
1270 if (unlikely(!var62)) {
1271 var_class_name65 = type_core__Int.name;
1272 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
1273 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1274 fatal_exit(1);
1275 }
1276 var66 = var_i - 1l;
1277 var60 = var66;
1278 goto RET_LABEL61;
1279 RET_LABEL61:(void)0;
1280 }
1281 }
1282 {
1283 var67 = ((val*(*)(val* self, long p0))((((long)var59&3)?class_info[((long)var59&3)]:var59->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var59, var60); /* [] on <var59:SequenceRead[Char]>*/
1284 }
1285 {
1286 { /* Inline kernel#Char#!= (var67,'-') on <var67:nullable Object(Char)> */
1287 var71 = (uint32_t)((long)(var67)>>2);
1288 var70 = var71 == '-';
1289 var72 = !var70;
1290 var68 = var72;
1291 goto RET_LABEL69;
1292 RET_LABEL69:(void)0;
1293 }
1294 }
1295 var20 = var68;
1296 } else {
1297 var20 = var_58;
1298 }
1299 if (var20){
1300 var_e_index = var_i;
1301 } else {
1302 {
1303 { /* Inline kernel#Char#== (var_c,'-') on <var_c:Char> */
1304 var77 = var_c == '-';
1305 var75 = var77;
1306 goto RET_LABEL76;
1307 RET_LABEL76:(void)0;
1308 }
1309 }
1310 var_78 = var75;
1311 if (var75){
1312 {
1313 { /* Inline kernel#Int#+ (var_e_index,1l) on <var_e_index:Int> */
1314 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1315 /* <1l:Int> isa OTHER */
1316 var81 = 1; /* easy <1l:Int> isa OTHER*/
1317 if (unlikely(!var81)) {
1318 var_class_name84 = type_core__Int.name;
1319 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84);
1320 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1321 fatal_exit(1);
1322 }
1323 var85 = var_e_index + 1l;
1324 var79 = var85;
1325 goto RET_LABEL80;
1326 RET_LABEL80:(void)0;
1327 }
1328 }
1329 {
1330 { /* Inline kernel#Int#== (var_i,var79) on <var_i:Int> */
1331 var88 = var_i == var79;
1332 var86 = var88;
1333 goto RET_LABEL87;
1334 RET_LABEL87:(void)0;
1335 }
1336 }
1337 var74 = var86;
1338 } else {
1339 var74 = var_78;
1340 }
1341 var_89 = var74;
1342 if (var74){
1343 {
1344 var90 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
1345 }
1346 {
1347 { /* Inline kernel#Int#- (var90,1l) on <var90:Int> */
1348 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1349 /* <1l:Int> isa OTHER */
1350 var93 = 1; /* easy <1l:Int> isa OTHER*/
1351 if (unlikely(!var93)) {
1352 var_class_name96 = type_core__Int.name;
1353 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96);
1354 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
1355 fatal_exit(1);
1356 }
1357 var97 = var90 - 1l;
1358 var91 = var97;
1359 goto RET_LABEL92;
1360 RET_LABEL92:(void)0;
1361 }
1362 }
1363 {
1364 { /* Inline kernel#Int#< (var_i,var91) on <var_i:Int> */
1365 /* Covariant cast for argument 0 (i) <var91:Int> isa OTHER */
1366 /* <var91:Int> isa OTHER */
1367 var100 = 1; /* easy <var91:Int> isa OTHER*/
1368 if (unlikely(!var100)) {
1369 var_class_name103 = type_core__Int.name;
1370 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name103);
1371 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1372 fatal_exit(1);
1373 }
1374 var104 = var_i < var91;
1375 var98 = var104;
1376 goto RET_LABEL99;
1377 RET_LABEL99:(void)0;
1378 }
1379 }
1380 var73 = var98;
1381 } else {
1382 var73 = var_89;
1383 }
1384 if (var73){
1385 } else {
1386 var = 0;
1387 goto RET_LABEL;
1388 }
1389 }
1390 }
1391 } else {
1392 }
1393 {
1394 var105 = core___core__Int___Discrete__successor(var_i, 1l);
1395 }
1396 var_i = var105;
1397 }
1398 BREAK_label: (void)0;
1399 {
1400 var106 = ((short int(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__is_empty]))(self); /* is_empty on <self:Text>*/
1401 }
1402 var107 = !var106;
1403 var = var107;
1404 goto RET_LABEL;
1405 RET_LABEL:;
1406 return var;
1407 }
1408 /* method abstract_text#Text#is_hex for (self: Text): Bool */
1409 short int core___core__Text___is_hex(val* self) {
1410 short int var /* : Bool */;
1411 long var_i /* var i: Int */;
1412 long var1 /* : Int */;
1413 long var_ /* var : Int */;
1414 short int var2 /* : Bool */;
1415 short int var4 /* : Bool */;
1416 int cltype;
1417 int idtype;
1418 const char* var_class_name;
1419 short int var5 /* : Bool */;
1420 val* var6 /* : SequenceRead[Char] */;
1421 val* var7 /* : nullable Object */;
1422 uint32_t var8 /* : Char */;
1423 uint32_t var_c /* var c: Char */;
1424 short int var9 /* : Bool */;
1425 short int var10 /* : Bool */;
1426 short int var11 /* : Bool */;
1427 short int var12 /* : Bool */;
1428 short int var14 /* : Bool */;
1429 int cltype15;
1430 int idtype16;
1431 const char* var_class_name17;
1432 short int var18 /* : Bool */;
1433 short int var_19 /* var : Bool */;
1434 short int var20 /* : Bool */;
1435 short int var22 /* : Bool */;
1436 int cltype23;
1437 int idtype24;
1438 const char* var_class_name25;
1439 short int var26 /* : Bool */;
1440 short int var27 /* : Bool */;
1441 short int var_28 /* var : Bool */;
1442 short int var29 /* : Bool */;
1443 short int var30 /* : Bool */;
1444 short int var32 /* : Bool */;
1445 int cltype33;
1446 int idtype34;
1447 const char* var_class_name35;
1448 short int var36 /* : Bool */;
1449 short int var_37 /* var : Bool */;
1450 short int var38 /* : Bool */;
1451 short int var40 /* : Bool */;
1452 int cltype41;
1453 int idtype42;
1454 const char* var_class_name43;
1455 short int var44 /* : Bool */;
1456 short int var45 /* : Bool */;
1457 short int var_46 /* var : Bool */;
1458 short int var47 /* : Bool */;
1459 short int var48 /* : Bool */;
1460 short int var50 /* : Bool */;
1461 int cltype51;
1462 int idtype52;
1463 const char* var_class_name53;
1464 short int var54 /* : Bool */;
1465 short int var_55 /* var : Bool */;
1466 short int var56 /* : Bool */;
1467 short int var58 /* : Bool */;
1468 int cltype59;
1469 int idtype60;
1470 const char* var_class_name61;
1471 short int var62 /* : Bool */;
1472 short int var63 /* : Bool */;
1473 long var64 /* : Int */;
1474 var_i = 0l;
1475 {
1476 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
1477 }
1478 var_ = var1;
1479 for(;;) {
1480 {
1481 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
1482 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
1483 /* <var_:Int> isa OTHER */
1484 var4 = 1; /* easy <var_:Int> isa OTHER*/
1485 if (unlikely(!var4)) {
1486 var_class_name = type_core__Int.name;
1487 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1488 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1489 fatal_exit(1);
1490 }
1491 var5 = var_i < var_;
1492 var2 = var5;
1493 goto RET_LABEL3;
1494 RET_LABEL3:(void)0;
1495 }
1496 }
1497 if (var2){
1498 } else {
1499 goto BREAK_label;
1500 }
1501 {
1502 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
1503 }
1504 {
1505 var7 = ((val*(*)(val* self, long p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var6, var_i); /* [] on <var6:SequenceRead[Char]>*/
1506 }
1507 var8 = (uint32_t)((long)(var7)>>2);
1508 var_c = var8;
1509 {
1510 { /* Inline kernel#Char#>= (var_c,'a') on <var_c:Char> */
1511 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
1512 /* <'a':Char> isa OTHER */
1513 var14 = 1; /* easy <'a':Char> isa OTHER*/
1514 if (unlikely(!var14)) {
1515 var_class_name17 = type_core__Char.name;
1516 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1517 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
1518 fatal_exit(1);
1519 }
1520 var18 = var_c >= 'a';
1521 var12 = var18;
1522 goto RET_LABEL13;
1523 RET_LABEL13:(void)0;
1524 }
1525 }
1526 var_19 = var12;
1527 if (var12){
1528 {
1529 { /* Inline kernel#Char#<= (var_c,'f') on <var_c:Char> */
1530 /* Covariant cast for argument 0 (i) <'f':Char> isa OTHER */
1531 /* <'f':Char> isa OTHER */
1532 var22 = 1; /* easy <'f':Char> isa OTHER*/
1533 if (unlikely(!var22)) {
1534 var_class_name25 = type_core__Char.name;
1535 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
1536 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
1537 fatal_exit(1);
1538 }
1539 var26 = var_c <= 'f';
1540 var20 = var26;
1541 goto RET_LABEL21;
1542 RET_LABEL21:(void)0;
1543 }
1544 }
1545 var11 = var20;
1546 } else {
1547 var11 = var_19;
1548 }
1549 var27 = !var11;
1550 var_28 = var27;
1551 if (var27){
1552 {
1553 { /* Inline kernel#Char#>= (var_c,'A') on <var_c:Char> */
1554 /* Covariant cast for argument 0 (i) <'A':Char> isa OTHER */
1555 /* <'A':Char> isa OTHER */
1556 var32 = 1; /* easy <'A':Char> isa OTHER*/
1557 if (unlikely(!var32)) {
1558 var_class_name35 = type_core__Char.name;
1559 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
1560 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
1561 fatal_exit(1);
1562 }
1563 var36 = var_c >= 'A';
1564 var30 = var36;
1565 goto RET_LABEL31;
1566 RET_LABEL31:(void)0;
1567 }
1568 }
1569 var_37 = var30;
1570 if (var30){
1571 {
1572 { /* Inline kernel#Char#<= (var_c,'F') on <var_c:Char> */
1573 /* Covariant cast for argument 0 (i) <'F':Char> isa OTHER */
1574 /* <'F':Char> isa OTHER */
1575 var40 = 1; /* easy <'F':Char> isa OTHER*/
1576 if (unlikely(!var40)) {
1577 var_class_name43 = type_core__Char.name;
1578 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
1579 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
1580 fatal_exit(1);
1581 }
1582 var44 = var_c <= 'F';
1583 var38 = var44;
1584 goto RET_LABEL39;
1585 RET_LABEL39:(void)0;
1586 }
1587 }
1588 var29 = var38;
1589 } else {
1590 var29 = var_37;
1591 }
1592 var45 = !var29;
1593 var10 = var45;
1594 } else {
1595 var10 = var_28;
1596 }
1597 var_46 = var10;
1598 if (var10){
1599 {
1600 { /* Inline kernel#Char#>= (var_c,'0') on <var_c:Char> */
1601 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
1602 /* <'0':Char> isa OTHER */
1603 var50 = 1; /* easy <'0':Char> isa OTHER*/
1604 if (unlikely(!var50)) {
1605 var_class_name53 = type_core__Char.name;
1606 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
1607 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
1608 fatal_exit(1);
1609 }
1610 var54 = var_c >= '0';
1611 var48 = var54;
1612 goto RET_LABEL49;
1613 RET_LABEL49:(void)0;
1614 }
1615 }
1616 var_55 = var48;
1617 if (var48){
1618 {
1619 { /* Inline kernel#Char#<= (var_c,'9') on <var_c:Char> */
1620 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
1621 /* <'9':Char> isa OTHER */
1622 var58 = 1; /* easy <'9':Char> isa OTHER*/
1623 if (unlikely(!var58)) {
1624 var_class_name61 = type_core__Char.name;
1625 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
1626 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
1627 fatal_exit(1);
1628 }
1629 var62 = var_c <= '9';
1630 var56 = var62;
1631 goto RET_LABEL57;
1632 RET_LABEL57:(void)0;
1633 }
1634 }
1635 var47 = var56;
1636 } else {
1637 var47 = var_55;
1638 }
1639 var63 = !var47;
1640 var9 = var63;
1641 } else {
1642 var9 = var_46;
1643 }
1644 if (var9){
1645 var = 0;
1646 goto RET_LABEL;
1647 } else {
1648 }
1649 {
1650 var64 = core___core__Int___Discrete__successor(var_i, 1l);
1651 }
1652 var_i = var64;
1653 }
1654 BREAK_label: (void)0;
1655 var = 1;
1656 goto RET_LABEL;
1657 RET_LABEL:;
1658 return var;
1659 }
1660 /* method abstract_text#Text#is_bin for (self: Text): Bool */
1661 short int core___core__Text___is_bin(val* self) {
1662 short int var /* : Bool */;
1663 val* var1 /* : SequenceRead[Char] */;
1664 val* var_ /* var : SequenceRead[Char] */;
1665 val* var2 /* : Iterator[nullable Object] */;
1666 val* var_3 /* var : IndexedIterator[Char] */;
1667 short int var4 /* : Bool */;
1668 val* var5 /* : nullable Object */;
1669 uint32_t var6 /* : Char */;
1670 uint32_t var_i /* var i: Char */;
1671 short int var7 /* : Bool */;
1672 short int var8 /* : Bool */;
1673 short int var10 /* : Bool */;
1674 short int var11 /* : Bool */;
1675 short int var_12 /* var : Bool */;
1676 short int var13 /* : Bool */;
1677 short int var15 /* : Bool */;
1678 short int var16 /* : Bool */;
1679 {
1680 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
1681 }
1682 var_ = var1;
1683 {
1684 var2 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[Char]>*/
1685 }
1686 var_3 = var2;
1687 for(;;) {
1688 {
1689 var4 = ((short int(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_3); /* is_ok on <var_3:IndexedIterator[Char]>*/
1690 }
1691 if (var4){
1692 } else {
1693 goto BREAK_label;
1694 }
1695 {
1696 var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_3); /* item on <var_3:IndexedIterator[Char]>*/
1697 }
1698 var6 = (uint32_t)((long)(var5)>>2);
1699 var_i = var6;
1700 {
1701 { /* Inline kernel#Char#!= (var_i,'0') on <var_i:Char> */
1702 var10 = var_i == '0';
1703 var11 = !var10;
1704 var8 = var11;
1705 goto RET_LABEL9;
1706 RET_LABEL9:(void)0;
1707 }
1708 }
1709 var_12 = var8;
1710 if (var8){
1711 {
1712 { /* Inline kernel#Char#!= (var_i,'1') on <var_i:Char> */
1713 var15 = var_i == '1';
1714 var16 = !var15;
1715 var13 = var16;
1716 goto RET_LABEL14;
1717 RET_LABEL14:(void)0;
1718 }
1719 }
1720 var7 = var13;
1721 } else {
1722 var7 = var_12;
1723 }
1724 if (var7){
1725 var = 0;
1726 goto RET_LABEL;
1727 } else {
1728 }
1729 {
1730 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_3); /* next on <var_3:IndexedIterator[Char]>*/
1731 }
1732 }
1733 BREAK_label: (void)0;
1734 {
1735 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_3); /* finish on <var_3:IndexedIterator[Char]>*/
1736 }
1737 var = 1;
1738 goto RET_LABEL;
1739 RET_LABEL:;
1740 return var;
1741 }
1742 /* method abstract_text#Text#is_oct for (self: Text): Bool */
1743 short int core___core__Text___is_oct(val* self) {
1744 short int var /* : Bool */;
1745 val* var1 /* : SequenceRead[Char] */;
1746 val* var_ /* var : SequenceRead[Char] */;
1747 val* var2 /* : Iterator[nullable Object] */;
1748 val* var_3 /* var : IndexedIterator[Char] */;
1749 short int var4 /* : Bool */;
1750 val* var5 /* : nullable Object */;
1751 uint32_t var6 /* : Char */;
1752 uint32_t var_i /* var i: Char */;
1753 short int var7 /* : Bool */;
1754 short int var8 /* : Bool */;
1755 short int var10 /* : Bool */;
1756 int cltype;
1757 int idtype;
1758 const char* var_class_name;
1759 short int var11 /* : Bool */;
1760 short int var_12 /* var : Bool */;
1761 short int var13 /* : Bool */;
1762 short int var15 /* : Bool */;
1763 int cltype16;
1764 int idtype17;
1765 const char* var_class_name18;
1766 short int var19 /* : Bool */;
1767 {
1768 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
1769 }
1770 var_ = var1;
1771 {
1772 var2 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[Char]>*/
1773 }
1774 var_3 = var2;
1775 for(;;) {
1776 {
1777 var4 = ((short int(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_3); /* is_ok on <var_3:IndexedIterator[Char]>*/
1778 }
1779 if (var4){
1780 } else {
1781 goto BREAK_label;
1782 }
1783 {
1784 var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_3); /* item on <var_3:IndexedIterator[Char]>*/
1785 }
1786 var6 = (uint32_t)((long)(var5)>>2);
1787 var_i = var6;
1788 {
1789 { /* Inline kernel#Char#< (var_i,'0') on <var_i:Char> */
1790 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
1791 /* <'0':Char> isa OTHER */
1792 var10 = 1; /* easy <'0':Char> isa OTHER*/
1793 if (unlikely(!var10)) {
1794 var_class_name = type_core__Char.name;
1795 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1796 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 923);
1797 fatal_exit(1);
1798 }
1799 var11 = var_i < '0';
1800 var8 = var11;
1801 goto RET_LABEL9;
1802 RET_LABEL9:(void)0;
1803 }
1804 }
1805 var_12 = var8;
1806 if (var8){
1807 var7 = var_12;
1808 } else {
1809 {
1810 { /* Inline kernel#Char#> (var_i,'7') on <var_i:Char> */
1811 /* Covariant cast for argument 0 (i) <'7':Char> isa OTHER */
1812 /* <'7':Char> isa OTHER */
1813 var15 = 1; /* easy <'7':Char> isa OTHER*/
1814 if (unlikely(!var15)) {
1815 var_class_name18 = type_core__Char.name;
1816 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1817 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 925);
1818 fatal_exit(1);
1819 }
1820 var19 = var_i > '7';
1821 var13 = var19;
1822 goto RET_LABEL14;
1823 RET_LABEL14:(void)0;
1824 }
1825 }
1826 var7 = var13;
1827 }
1828 if (var7){
1829 var = 0;
1830 goto RET_LABEL;
1831 } else {
1832 }
1833 {
1834 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_3); /* next on <var_3:IndexedIterator[Char]>*/
1835 }
1836 }
1837 BREAK_label: (void)0;
1838 {
1839 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_3); /* finish on <var_3:IndexedIterator[Char]>*/
1840 }
1841 var = 1;
1842 goto RET_LABEL;
1843 RET_LABEL:;
1844 return var;
1845 }
1846 /* method abstract_text#Text#is_dec for (self: Text): Bool */
1847 short int core___core__Text___is_dec(val* self) {
1848 short int var /* : Bool */;
1849 val* var1 /* : SequenceRead[Char] */;
1850 val* var_ /* var : SequenceRead[Char] */;
1851 val* var2 /* : Iterator[nullable Object] */;
1852 val* var_3 /* var : IndexedIterator[Char] */;
1853 short int var4 /* : Bool */;
1854 val* var5 /* : nullable Object */;
1855 uint32_t var6 /* : Char */;
1856 uint32_t var_i /* var i: Char */;
1857 short int var7 /* : Bool */;
1858 short int var8 /* : Bool */;
1859 short int var10 /* : Bool */;
1860 int cltype;
1861 int idtype;
1862 const char* var_class_name;
1863 short int var11 /* : Bool */;
1864 short int var_12 /* var : Bool */;
1865 short int var13 /* : Bool */;
1866 short int var15 /* : Bool */;
1867 int cltype16;
1868 int idtype17;
1869 const char* var_class_name18;
1870 short int var19 /* : Bool */;
1871 {
1872 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
1873 }
1874 var_ = var1;
1875 {
1876 var2 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[Char]>*/
1877 }
1878 var_3 = var2;
1879 for(;;) {
1880 {
1881 var4 = ((short int(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_3); /* is_ok on <var_3:IndexedIterator[Char]>*/
1882 }
1883 if (var4){
1884 } else {
1885 goto BREAK_label;
1886 }
1887 {
1888 var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_3); /* item on <var_3:IndexedIterator[Char]>*/
1889 }
1890 var6 = (uint32_t)((long)(var5)>>2);
1891 var_i = var6;
1892 {
1893 { /* Inline kernel#Char#< (var_i,'0') on <var_i:Char> */
1894 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
1895 /* <'0':Char> isa OTHER */
1896 var10 = 1; /* easy <'0':Char> isa OTHER*/
1897 if (unlikely(!var10)) {
1898 var_class_name = type_core__Char.name;
1899 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1900 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 923);
1901 fatal_exit(1);
1902 }
1903 var11 = var_i < '0';
1904 var8 = var11;
1905 goto RET_LABEL9;
1906 RET_LABEL9:(void)0;
1907 }
1908 }
1909 var_12 = var8;
1910 if (var8){
1911 var7 = var_12;
1912 } else {
1913 {
1914 { /* Inline kernel#Char#> (var_i,'9') on <var_i:Char> */
1915 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
1916 /* <'9':Char> isa OTHER */
1917 var15 = 1; /* easy <'9':Char> isa OTHER*/
1918 if (unlikely(!var15)) {
1919 var_class_name18 = type_core__Char.name;
1920 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1921 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 925);
1922 fatal_exit(1);
1923 }
1924 var19 = var_i > '9';
1925 var13 = var19;
1926 goto RET_LABEL14;
1927 RET_LABEL14:(void)0;
1928 }
1929 }
1930 var7 = var13;
1931 }
1932 if (var7){
1933 var = 0;
1934 goto RET_LABEL;
1935 } else {
1936 }
1937 {
1938 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_3); /* next on <var_3:IndexedIterator[Char]>*/
1939 }
1940 }
1941 BREAK_label: (void)0;
1942 {
1943 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_3); /* finish on <var_3:IndexedIterator[Char]>*/
1944 }
1945 var = 1;
1946 goto RET_LABEL;
1947 RET_LABEL:;
1948 return var;
1949 }
1950 /* method abstract_text#Text#is_lower for (self: Text): Bool */
1951 short int core___core__Text___is_lower(val* self) {
1952 short int var /* : Bool */;
1953 long var_i /* var i: Int */;
1954 long var1 /* : Int */;
1955 long var_ /* var : Int */;
1956 short int var2 /* : Bool */;
1957 short int var4 /* : Bool */;
1958 int cltype;
1959 int idtype;
1960 const char* var_class_name;
1961 short int var5 /* : Bool */;
1962 val* var6 /* : SequenceRead[Char] */;
1963 val* var7 /* : nullable Object */;
1964 uint32_t var8 /* : Char */;
1965 uint32_t var_char /* var char: Char */;
1966 short int var9 /* : Bool */;
1967 long var10 /* : Int */;
1968 var_i = 0l;
1969 {
1970 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
1971 }
1972 var_ = var1;
1973 for(;;) {
1974 {
1975 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
1976 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
1977 /* <var_:Int> isa OTHER */
1978 var4 = 1; /* easy <var_:Int> isa OTHER*/
1979 if (unlikely(!var4)) {
1980 var_class_name = type_core__Int.name;
1981 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1982 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1983 fatal_exit(1);
1984 }
1985 var5 = var_i < var_;
1986 var2 = var5;
1987 goto RET_LABEL3;
1988 RET_LABEL3:(void)0;
1989 }
1990 }
1991 if (var2){
1992 } else {
1993 goto BREAK_label;
1994 }
1995 {
1996 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
1997 }
1998 {
1999 var7 = ((val*(*)(val* self, long p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var6, var_i); /* [] on <var6:SequenceRead[Char]>*/
2000 }
2001 var8 = (uint32_t)((long)(var7)>>2);
2002 var_char = var8;
2003 {
2004 var9 = core___core__Char___is_upper(var_char);
2005 }
2006 if (var9){
2007 var = 0;
2008 goto RET_LABEL;
2009 } else {
2010 }
2011 {
2012 var10 = core___core__Int___Discrete__successor(var_i, 1l);
2013 }
2014 var_i = var10;
2015 }
2016 BREAK_label: (void)0;
2017 var = 1;
2018 goto RET_LABEL;
2019 RET_LABEL:;
2020 return var;
2021 }
2022 /* method abstract_text#Text#l_trim for (self: Text): Text */
2023 val* core___core__Text___l_trim(val* self) {
2024 val* var /* : Text */;
2025 val* var1 /* : SequenceRead[Char] */;
2026 val* var2 /* : Iterator[nullable Object] */;
2027 val* var_iter /* var iter: IndexedIterator[Char] */;
2028 short int var3 /* : Bool */;
2029 val* var4 /* : nullable Object */;
2030 short int var5 /* : Bool */;
2031 uint32_t var6 /* : Char */;
2032 short int var7 /* : Bool */;
2033 long var8 /* : Int */;
2034 long var9 /* : Int */;
2035 short int var10 /* : Bool */;
2036 short int var12 /* : Bool */;
2037 val* var13 /* : Text */;
2038 long var14 /* : Int */;
2039 val* var15 /* : Text */;
2040 {
2041 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
2042 }
2043 {
2044 var2 = ((val*(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var1); /* iterator on <var1:SequenceRead[Char]>*/
2045 }
2046 var_iter = var2;
2047 for(;;) {
2048 {
2049 var3 = ((short int(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_iter); /* is_ok on <var_iter:IndexedIterator[Char]>*/
2050 }
2051 if (var3){
2052 {
2053 var4 = ((val*(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_iter); /* item on <var_iter:IndexedIterator[Char]>*/
2054 }
2055 {
2056 var6 = (uint32_t)((long)(var4)>>2);
2057 var5 = core___core__Char___is_whitespace(var6);
2058 }
2059 var7 = !var5;
2060 if (var7){
2061 goto BREAK_label;
2062 } else {
2063 }
2064 {
2065 ((void(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_iter); /* next on <var_iter:IndexedIterator[Char]>*/
2066 }
2067 } else {
2068 goto BREAK_label;
2069 }
2070 }
2071 BREAK_label: (void)0;
2072 {
2073 var8 = ((long(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var_iter); /* index on <var_iter:IndexedIterator[Char]>*/
2074 }
2075 {
2076 var9 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
2077 }
2078 {
2079 { /* Inline kernel#Int#== (var8,var9) on <var8:Int> */
2080 var12 = var8 == var9;
2081 var10 = var12;
2082 goto RET_LABEL11;
2083 RET_LABEL11:(void)0;
2084 }
2085 }
2086 if (var10){
2087 {
2088 var13 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__empty]))(self); /* empty on <self:Text>*/
2089 }
2090 var = var13;
2091 goto RET_LABEL;
2092 } else {
2093 }
2094 {
2095 var14 = ((long(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var_iter); /* index on <var_iter:IndexedIterator[Char]>*/
2096 }
2097 {
2098 var15 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_text__Text__substring_from]))(self, var14); /* substring_from on <self:Text>*/
2099 }
2100 var = var15;
2101 goto RET_LABEL;
2102 RET_LABEL:;
2103 return var;
2104 }
2105 /* method abstract_text#Text#r_trim for (self: Text): Text */
2106 val* core___core__Text___r_trim(val* self) {
2107 val* var /* : Text */;
2108 val* var1 /* : SequenceRead[Char] */;
2109 val* var2 /* : IndexedIterator[nullable Object] */;
2110 val* var_iter /* var iter: IndexedIterator[Char] */;
2111 short int var3 /* : Bool */;
2112 val* var4 /* : nullable Object */;
2113 short int var5 /* : Bool */;
2114 uint32_t var6 /* : Char */;
2115 short int var7 /* : Bool */;
2116 long var8 /* : Int */;
2117 short int var9 /* : Bool */;
2118 short int var11 /* : Bool */;
2119 int cltype;
2120 int idtype;
2121 const char* var_class_name;
2122 short int var12 /* : Bool */;
2123 val* var13 /* : Text */;
2124 long var14 /* : Int */;
2125 long var15 /* : Int */;
2126 short int var17 /* : Bool */;
2127 int cltype18;
2128 int idtype19;
2129 const char* var_class_name20;
2130 long var21 /* : Int */;
2131 val* var22 /* : Text */;
2132 {
2133 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
2134 }
2135 {
2136 var2 = ((val*(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__abstract_collection__SequenceRead__reverse_iterator]))(var1); /* reverse_iterator on <var1:SequenceRead[Char]>*/
2137 }
2138 var_iter = var2;
2139 for(;;) {
2140 {
2141 var3 = ((short int(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_iter); /* is_ok on <var_iter:IndexedIterator[Char]>*/
2142 }
2143 if (var3){
2144 {
2145 var4 = ((val*(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_iter); /* item on <var_iter:IndexedIterator[Char]>*/
2146 }
2147 {
2148 var6 = (uint32_t)((long)(var4)>>2);
2149 var5 = core___core__Char___is_whitespace(var6);
2150 }
2151 var7 = !var5;
2152 if (var7){
2153 goto BREAK_label;
2154 } else {
2155 }
2156 {
2157 ((void(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_iter); /* next on <var_iter:IndexedIterator[Char]>*/
2158 }
2159 } else {
2160 goto BREAK_label;
2161 }
2162 }
2163 BREAK_label: (void)0;
2164 {
2165 var8 = ((long(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var_iter); /* index on <var_iter:IndexedIterator[Char]>*/
2166 }
2167 {
2168 { /* Inline kernel#Int#< (var8,0l) on <var8:Int> */
2169 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2170 /* <0l:Int> isa OTHER */
2171 var11 = 1; /* easy <0l:Int> isa OTHER*/
2172 if (unlikely(!var11)) {
2173 var_class_name = type_core__Int.name;
2174 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2175 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2176 fatal_exit(1);
2177 }
2178 var12 = var8 < 0l;
2179 var9 = var12;
2180 goto RET_LABEL10;
2181 RET_LABEL10:(void)0;
2182 }
2183 }
2184 if (var9){
2185 {
2186 var13 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__empty]))(self); /* empty on <self:Text>*/
2187 }
2188 var = var13;
2189 goto RET_LABEL;
2190 } else {
2191 }
2192 {
2193 var14 = ((long(*)(val* self))((((long)var_iter&3)?class_info[((long)var_iter&3)]:var_iter->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var_iter); /* index on <var_iter:IndexedIterator[Char]>*/
2194 }
2195 {
2196 { /* Inline kernel#Int#+ (var14,1l) on <var14:Int> */
2197 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2198 /* <1l:Int> isa OTHER */
2199 var17 = 1; /* easy <1l:Int> isa OTHER*/
2200 if (unlikely(!var17)) {
2201 var_class_name20 = type_core__Int.name;
2202 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
2203 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2204 fatal_exit(1);
2205 }
2206 var21 = var14 + 1l;
2207 var15 = var21;
2208 goto RET_LABEL16;
2209 RET_LABEL16:(void)0;
2210 }
2211 }
2212 {
2213 var22 = ((val*(*)(val* self, long p0, long p1))(self->class->vft[COLOR_core__abstract_text__Text__substring]))(self, 0l, var15); /* substring on <self:Text>*/
2214 }
2215 var = var22;
2216 goto RET_LABEL;
2217 RET_LABEL:;
2218 return var;
2219 }
2220 /* method abstract_text#Text#trim for (self: Text): Text */
2221 val* core___core__Text___trim(val* self) {
2222 val* var /* : Text */;
2223 val* var1 /* : Text */;
2224 val* var2 /* : Text */;
2225 short int var3 /* : Bool */;
2226 int cltype;
2227 int idtype;
2228 const struct type* type_struct;
2229 const char* var_class_name;
2230 {
2231 var1 = core___core__Text___l_trim(self);
2232 }
2233 {
2234 var2 = core___core__Text___r_trim(var1);
2235 }
2236 /* <var2:Text> isa SELFTYPE */
2237 type_struct = self->type->resolution_table->types[COLOR_core__abstract_text__Text__SELFTYPE];
2238 cltype = type_struct->color;
2239 idtype = type_struct->id;
2240 if(cltype >= var2->type->table_size) {
2241 var3 = 0;
2242 } else {
2243 var3 = var2->type->type_table[cltype] == idtype;
2244 }
2245 if (unlikely(!var3)) {
2246 var_class_name = var2 == NULL ? "null" : var2->type->name;
2247 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
2248 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 446);
2249 fatal_exit(1);
2250 }
2251 var = var2;
2252 goto RET_LABEL;
2253 RET_LABEL:;
2254 return var;
2255 }
2256 /* method abstract_text#Text#chomp for (self: Text): Text */
2257 val* core___core__Text___chomp(val* self) {
2258 val* var /* : Text */;
2259 long var1 /* : Int */;
2260 long var_len /* var len: Int */;
2261 short int var2 /* : Bool */;
2262 short int var4 /* : Bool */;
2263 short int var5 /* : Bool */;
2264 int cltype;
2265 int idtype;
2266 const struct type* type_struct;
2267 const char* var_class_name;
2268 val* var6 /* : SequenceRead[Char] */;
2269 val* var7 /* : nullable Object */;
2270 uint32_t var8 /* : Char */;
2271 uint32_t var_l /* var l: Char */;
2272 short int var9 /* : Bool */;
2273 short int var11 /* : Bool */;
2274 long var12 /* : Int */;
2275 short int var14 /* : Bool */;
2276 int cltype15;
2277 int idtype16;
2278 const char* var_class_name17;
2279 long var18 /* : Int */;
2280 val* var19 /* : Text */;
2281 short int var20 /* : Bool */;
2282 short int var22 /* : Bool */;
2283 short int var23 /* : Bool */;
2284 short int var24 /* : Bool */;
2285 int cltype25;
2286 int idtype26;
2287 const struct type* type_struct27;
2288 const char* var_class_name28;
2289 short int var29 /* : Bool */;
2290 short int var30 /* : Bool */;
2291 short int var32 /* : Bool */;
2292 int cltype33;
2293 int idtype34;
2294 const char* var_class_name35;
2295 short int var36 /* : Bool */;
2296 short int var_ /* var : Bool */;
2297 val* var37 /* : SequenceRead[Char] */;
2298 long var38 /* : Int */;
2299 short int var40 /* : Bool */;
2300 int cltype41;
2301 int idtype42;
2302 const char* var_class_name43;
2303 long var44 /* : Int */;
2304 val* var45 /* : nullable Object */;
2305 short int var46 /* : Bool */;
2306 short int var48 /* : Bool */;
2307 uint32_t var49 /* : Char */;
2308 long var50 /* : Int */;
2309 short int var52 /* : Bool */;
2310 int cltype53;
2311 int idtype54;
2312 const char* var_class_name55;
2313 long var56 /* : Int */;
2314 val* var57 /* : Text */;
2315 long var58 /* : Int */;
2316 short int var60 /* : Bool */;
2317 int cltype61;
2318 int idtype62;
2319 const char* var_class_name63;
2320 long var64 /* : Int */;
2321 val* var65 /* : Text */;
2322 {
2323 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
2324 }
2325 var_len = var1;
2326 {
2327 { /* Inline kernel#Int#== (var_len,0l) on <var_len:Int> */
2328 var4 = var_len == 0l;
2329 var2 = var4;
2330 goto RET_LABEL3;
2331 RET_LABEL3:(void)0;
2332 }
2333 }
2334 if (var2){
2335 /* <self:Text> isa SELFTYPE */
2336 type_struct = self->type->resolution_table->types[COLOR_core__abstract_text__Text__SELFTYPE];
2337 cltype = type_struct->color;
2338 idtype = type_struct->id;
2339 if(cltype >= self->type->table_size) {
2340 var5 = 0;
2341 } else {
2342 var5 = self->type->type_table[cltype] == idtype;
2343 }
2344 if (unlikely(!var5)) {
2345 var_class_name = self == NULL ? "null" : self->type->name;
2346 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
2347 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 485);
2348 fatal_exit(1);
2349 }
2350 var = self;
2351 goto RET_LABEL;
2352 } else {
2353 }
2354 {
2355 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
2356 }
2357 {
2358 var7 = ((val*(*)(val* self))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__abstract_collection__SequenceRead__last]))(var6); /* last on <var6:SequenceRead[Char]>*/
2359 }
2360 var8 = (uint32_t)((long)(var7)>>2);
2361 var_l = var8;
2362 {
2363 { /* Inline kernel#Char#== (var_l,'\015') on <var_l:Char> */
2364 var11 = var_l == '\015';
2365 var9 = var11;
2366 goto RET_LABEL10;
2367 RET_LABEL10:(void)0;
2368 }
2369 }
2370 if (var9){
2371 {
2372 { /* Inline kernel#Int#- (var_len,1l) on <var_len:Int> */
2373 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2374 /* <1l:Int> isa OTHER */
2375 var14 = 1; /* easy <1l:Int> isa OTHER*/
2376 if (unlikely(!var14)) {
2377 var_class_name17 = type_core__Int.name;
2378 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2379 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2380 fatal_exit(1);
2381 }
2382 var18 = var_len - 1l;
2383 var12 = var18;
2384 goto RET_LABEL13;
2385 RET_LABEL13:(void)0;
2386 }
2387 }
2388 {
2389 var19 = ((val*(*)(val* self, long p0, long p1))(self->class->vft[COLOR_core__abstract_text__Text__substring]))(self, 0l, var12); /* substring on <self:Text>*/
2390 }
2391 var = var19;
2392 goto RET_LABEL;
2393 } else {
2394 {
2395 { /* Inline kernel#Char#!= (var_l,'\n') on <var_l:Char> */
2396 var22 = var_l == '\n';
2397 var23 = !var22;
2398 var20 = var23;
2399 goto RET_LABEL21;
2400 RET_LABEL21:(void)0;
2401 }
2402 }
2403 if (var20){
2404 /* <self:Text> isa SELFTYPE */
2405 type_struct27 = self->type->resolution_table->types[COLOR_core__abstract_text__Text__SELFTYPE];
2406 cltype25 = type_struct27->color;
2407 idtype26 = type_struct27->id;
2408 if(cltype25 >= self->type->table_size) {
2409 var24 = 0;
2410 } else {
2411 var24 = self->type->type_table[cltype25] == idtype26;
2412 }
2413 if (unlikely(!var24)) {
2414 var_class_name28 = self == NULL ? "null" : self->type->name;
2415 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name28);
2416 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 490);
2417 fatal_exit(1);
2418 }
2419 var = self;
2420 goto RET_LABEL;
2421 } else {
2422 {
2423 { /* Inline kernel#Int#> (var_len,1l) on <var_len:Int> */
2424 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2425 /* <1l:Int> isa OTHER */
2426 var32 = 1; /* easy <1l:Int> isa OTHER*/
2427 if (unlikely(!var32)) {
2428 var_class_name35 = type_core__Int.name;
2429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
2430 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
2431 fatal_exit(1);
2432 }
2433 var36 = var_len > 1l;
2434 var30 = var36;
2435 goto RET_LABEL31;
2436 RET_LABEL31:(void)0;
2437 }
2438 }
2439 var_ = var30;
2440 if (var30){
2441 {
2442 var37 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
2443 }
2444 {
2445 { /* Inline kernel#Int#- (var_len,2l) on <var_len:Int> */
2446 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
2447 /* <2l:Int> isa OTHER */
2448 var40 = 1; /* easy <2l:Int> isa OTHER*/
2449 if (unlikely(!var40)) {
2450 var_class_name43 = type_core__Int.name;
2451 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
2452 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2453 fatal_exit(1);
2454 }
2455 var44 = var_len - 2l;
2456 var38 = var44;
2457 goto RET_LABEL39;
2458 RET_LABEL39:(void)0;
2459 }
2460 }
2461 {
2462 var45 = ((val*(*)(val* self, long p0))((((long)var37&3)?class_info[((long)var37&3)]:var37->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var37, var38); /* [] on <var37:SequenceRead[Char]>*/
2463 }
2464 {
2465 { /* Inline kernel#Char#== (var45,'\015') on <var45:nullable Object(Char)> */
2466 var49 = (uint32_t)((long)(var45)>>2);
2467 var48 = var49 == '\015';
2468 var46 = var48;
2469 goto RET_LABEL47;
2470 RET_LABEL47:(void)0;
2471 }
2472 }
2473 var29 = var46;
2474 } else {
2475 var29 = var_;
2476 }
2477 if (var29){
2478 {
2479 { /* Inline kernel#Int#- (var_len,2l) on <var_len:Int> */
2480 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
2481 /* <2l:Int> isa OTHER */
2482 var52 = 1; /* easy <2l:Int> isa OTHER*/
2483 if (unlikely(!var52)) {
2484 var_class_name55 = type_core__Int.name;
2485 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
2486 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2487 fatal_exit(1);
2488 }
2489 var56 = var_len - 2l;
2490 var50 = var56;
2491 goto RET_LABEL51;
2492 RET_LABEL51:(void)0;
2493 }
2494 }
2495 {
2496 var57 = ((val*(*)(val* self, long p0, long p1))(self->class->vft[COLOR_core__abstract_text__Text__substring]))(self, 0l, var50); /* substring on <self:Text>*/
2497 }
2498 var = var57;
2499 goto RET_LABEL;
2500 } else {
2501 {
2502 { /* Inline kernel#Int#- (var_len,1l) on <var_len:Int> */
2503 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2504 /* <1l:Int> isa OTHER */
2505 var60 = 1; /* easy <1l:Int> isa OTHER*/
2506 if (unlikely(!var60)) {
2507 var_class_name63 = type_core__Int.name;
2508 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63);
2509 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2510 fatal_exit(1);
2511 }
2512 var64 = var_len - 1l;
2513 var58 = var64;
2514 goto RET_LABEL59;
2515 RET_LABEL59:(void)0;
2516 }
2517 }
2518 {
2519 var65 = ((val*(*)(val* self, long p0, long p1))(self->class->vft[COLOR_core__abstract_text__Text__substring]))(self, 0l, var58); /* substring on <self:Text>*/
2520 }
2521 var = var65;
2522 goto RET_LABEL;
2523 }
2524 }
2525 }
2526 RET_LABEL:;
2527 return var;
2528 }
2529 /* method abstract_text#Text#to_cmangle for (self: Text): String */
2530 val* core___core__Text___to_cmangle(val* self) {
2531 val* var /* : String */;
2532 short int var1 /* : Bool */;
2533 static val* varonce;
2534 val* var2 /* : String */;
2535 char* var3 /* : NativeString */;
2536 val* var4 /* : String */;
2537 val* var5 /* : Buffer */;
2538 val* var6 /* : Buffer */;
2539 val* var_res /* var res: Buffer */;
2540 short int var_underscore /* var underscore: Bool */;
2541 long var_start /* var start: Int */;
2542 val* var7 /* : SequenceRead[Char] */;
2543 val* var8 /* : nullable Object */;
2544 uint32_t var9 /* : Char */;
2545 uint32_t var_c /* var c: Char */;
2546 short int var10 /* : Bool */;
2547 short int var11 /* : Bool */;
2548 short int var13 /* : Bool */;
2549 int cltype;
2550 int idtype;
2551 const char* var_class_name;
2552 short int var14 /* : Bool */;
2553 short int var_ /* var : Bool */;
2554 short int var15 /* : Bool */;
2555 short int var17 /* : Bool */;
2556 int cltype18;
2557 int idtype19;
2558 const char* var_class_name20;
2559 short int var21 /* : Bool */;
2560 long var22 /* : Int */;
2561 long var24 /* : Int */;
2562 val* var25 /* : String */;
2563 long var_i /* var i: Int */;
2564 long var26 /* : Int */;
2565 long var_27 /* var : Int */;
2566 short int var28 /* : Bool */;
2567 short int var30 /* : Bool */;
2568 int cltype31;
2569 int idtype32;
2570 const char* var_class_name33;
2571 short int var34 /* : Bool */;
2572 val* var35 /* : SequenceRead[Char] */;
2573 val* var36 /* : nullable Object */;
2574 uint32_t var37 /* : Char */;
2575 short int var38 /* : Bool */;
2576 short int var39 /* : Bool */;
2577 short int var40 /* : Bool */;
2578 short int var42 /* : Bool */;
2579 int cltype43;
2580 int idtype44;
2581 const char* var_class_name45;
2582 short int var46 /* : Bool */;
2583 short int var_47 /* var : Bool */;
2584 short int var48 /* : Bool */;
2585 short int var50 /* : Bool */;
2586 int cltype51;
2587 int idtype52;
2588 const char* var_class_name53;
2589 short int var54 /* : Bool */;
2590 short int var_55 /* var : Bool */;
2591 short int var56 /* : Bool */;
2592 short int var57 /* : Bool */;
2593 short int var59 /* : Bool */;
2594 int cltype60;
2595 int idtype61;
2596 const char* var_class_name62;
2597 short int var63 /* : Bool */;
2598 short int var_64 /* var : Bool */;
2599 short int var65 /* : Bool */;
2600 short int var67 /* : Bool */;
2601 int cltype68;
2602 int idtype69;
2603 const char* var_class_name70;
2604 short int var71 /* : Bool */;
2605 long var73 /* : Int */;
2606 long var75 /* : Int */;
2607 val* var76 /* : String */;
2608 short int var77 /* : Bool */;
2609 short int var78 /* : Bool */;
2610 short int var80 /* : Bool */;
2611 int cltype81;
2612 int idtype82;
2613 const char* var_class_name83;
2614 short int var84 /* : Bool */;
2615 short int var_85 /* var : Bool */;
2616 short int var86 /* : Bool */;
2617 short int var88 /* : Bool */;
2618 int cltype89;
2619 int idtype90;
2620 const char* var_class_name91;
2621 short int var92 /* : Bool */;
2622 short int var93 /* : Bool */;
2623 short int var95 /* : Bool */;
2624 long var96 /* : Int */;
2625 long var98 /* : Int */;
2626 val* var99 /* : String */;
2627 long var100 /* : Int */;
2628 long var101 /* : Int */;
2629 long var103 /* : Int */;
2630 val* var104 /* : String */;
2631 val* var105 /* : String */;
2632 {
2633 var1 = ((short int(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__is_empty]))(self); /* is_empty on <self:Text>*/
2634 }
2635 if (var1){
2636 if (likely(varonce!=NULL)) {
2637 var2 = varonce;
2638 } else {
2639 var3 = "";
2640 var4 = core__flat___NativeString___to_s_full(var3, 0l, 0l);
2641 var2 = var4;
2642 varonce = var2;
2643 }
2644 var = var2;
2645 goto RET_LABEL;
2646 } else {
2647 }
2648 var5 = NEW_core__Buffer(&type_core__Buffer);
2649 {
2650 var6 = core__flat___Buffer___new(var5);
2651 }
2652 var_res = var6;
2653 var_underscore = 0;
2654 var_start = 0l;
2655 {
2656 var7 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
2657 }
2658 {
2659 var8 = ((val*(*)(val* self, long p0))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var7, 0l); /* [] on <var7:SequenceRead[Char]>*/
2660 }
2661 var9 = (uint32_t)((long)(var8)>>2);
2662 var_c = var9;
2663 {
2664 { /* Inline kernel#Char#>= (var_c,'0') on <var_c:Char> */
2665 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
2666 /* <'0':Char> isa OTHER */
2667 var13 = 1; /* easy <'0':Char> isa OTHER*/
2668 if (unlikely(!var13)) {
2669 var_class_name = type_core__Char.name;
2670 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2671 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
2672 fatal_exit(1);
2673 }
2674 var14 = var_c >= '0';
2675 var11 = var14;
2676 goto RET_LABEL12;
2677 RET_LABEL12:(void)0;
2678 }
2679 }
2680 var_ = var11;
2681 if (var11){
2682 {
2683 { /* Inline kernel#Char#<= (var_c,'9') on <var_c:Char> */
2684 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
2685 /* <'9':Char> isa OTHER */
2686 var17 = 1; /* easy <'9':Char> isa OTHER*/
2687 if (unlikely(!var17)) {
2688 var_class_name20 = type_core__Char.name;
2689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
2690 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
2691 fatal_exit(1);
2692 }
2693 var21 = var_c <= '9';
2694 var15 = var21;
2695 goto RET_LABEL16;
2696 RET_LABEL16:(void)0;
2697 }
2698 }
2699 var10 = var15;
2700 } else {
2701 var10 = var_;
2702 }
2703 if (var10){
2704 {
2705 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, '_'); /* add on <var_res:Buffer>*/
2706 }
2707 {
2708 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
2709 var24 = (long)var_c;
2710 var22 = var24;
2711 goto RET_LABEL23;
2712 RET_LABEL23:(void)0;
2713 }
2714 }
2715 {
2716 var25 = core__flat___Int___core__abstract_text__Object__to_s(var22);
2717 }
2718 {
2719 ((void(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_res, var25); /* append on <var_res:Buffer>*/
2720 }
2721 {
2722 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, 'd'); /* add on <var_res:Buffer>*/
2723 }
2724 var_start = 1l;
2725 } else {
2726 }
2727 var_i = var_start;
2728 {
2729 var26 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
2730 }
2731 var_27 = var26;
2732 for(;;) {
2733 {
2734 { /* Inline kernel#Int#< (var_i,var_27) on <var_i:Int> */
2735 /* Covariant cast for argument 0 (i) <var_27:Int> isa OTHER */
2736 /* <var_27:Int> isa OTHER */
2737 var30 = 1; /* easy <var_27:Int> isa OTHER*/
2738 if (unlikely(!var30)) {
2739 var_class_name33 = type_core__Int.name;
2740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
2741 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2742 fatal_exit(1);
2743 }
2744 var34 = var_i < var_27;
2745 var28 = var34;
2746 goto RET_LABEL29;
2747 RET_LABEL29:(void)0;
2748 }
2749 }
2750 if (var28){
2751 } else {
2752 goto BREAK_label;
2753 }
2754 {
2755 var35 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
2756 }
2757 {
2758 var36 = ((val*(*)(val* self, long p0))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var35, var_i); /* [] on <var35:SequenceRead[Char]>*/
2759 }
2760 var37 = (uint32_t)((long)(var36)>>2);
2761 var_c = var37;
2762 {
2763 { /* Inline kernel#Char#>= (var_c,'a') on <var_c:Char> */
2764 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
2765 /* <'a':Char> isa OTHER */
2766 var42 = 1; /* easy <'a':Char> isa OTHER*/
2767 if (unlikely(!var42)) {
2768 var_class_name45 = type_core__Char.name;
2769 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
2770 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
2771 fatal_exit(1);
2772 }
2773 var46 = var_c >= 'a';
2774 var40 = var46;
2775 goto RET_LABEL41;
2776 RET_LABEL41:(void)0;
2777 }
2778 }
2779 var_47 = var40;
2780 if (var40){
2781 {
2782 { /* Inline kernel#Char#<= (var_c,'z') on <var_c:Char> */
2783 /* Covariant cast for argument 0 (i) <'z':Char> isa OTHER */
2784 /* <'z':Char> isa OTHER */
2785 var50 = 1; /* easy <'z':Char> isa OTHER*/
2786 if (unlikely(!var50)) {
2787 var_class_name53 = type_core__Char.name;
2788 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
2789 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
2790 fatal_exit(1);
2791 }
2792 var54 = var_c <= 'z';
2793 var48 = var54;
2794 goto RET_LABEL49;
2795 RET_LABEL49:(void)0;
2796 }
2797 }
2798 var39 = var48;
2799 } else {
2800 var39 = var_47;
2801 }
2802 var_55 = var39;
2803 if (var39){
2804 var38 = var_55;
2805 } else {
2806 {
2807 { /* Inline kernel#Char#>= (var_c,'A') on <var_c:Char> */
2808 /* Covariant cast for argument 0 (i) <'A':Char> isa OTHER */
2809 /* <'A':Char> isa OTHER */
2810 var59 = 1; /* easy <'A':Char> isa OTHER*/
2811 if (unlikely(!var59)) {
2812 var_class_name62 = type_core__Char.name;
2813 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
2814 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
2815 fatal_exit(1);
2816 }
2817 var63 = var_c >= 'A';
2818 var57 = var63;
2819 goto RET_LABEL58;
2820 RET_LABEL58:(void)0;
2821 }
2822 }
2823 var_64 = var57;
2824 if (var57){
2825 {
2826 { /* Inline kernel#Char#<= (var_c,'Z') on <var_c:Char> */
2827 /* Covariant cast for argument 0 (i) <'Z':Char> isa OTHER */
2828 /* <'Z':Char> isa OTHER */
2829 var67 = 1; /* easy <'Z':Char> isa OTHER*/
2830 if (unlikely(!var67)) {
2831 var_class_name70 = type_core__Char.name;
2832 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
2833 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
2834 fatal_exit(1);
2835 }
2836 var71 = var_c <= 'Z';
2837 var65 = var71;
2838 goto RET_LABEL66;
2839 RET_LABEL66:(void)0;
2840 }
2841 }
2842 var56 = var65;
2843 } else {
2844 var56 = var_64;
2845 }
2846 var38 = var56;
2847 }
2848 if (var38){
2849 {
2850 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, var_c); /* add on <var_res:Buffer>*/
2851 }
2852 var_underscore = 0;
2853 goto BREAK_label72;
2854 } else {
2855 }
2856 if (var_underscore){
2857 {
2858 { /* Inline kernel#Char#code_point ('_') on <'_':Char> */
2859 var75 = (long)'_';
2860 var73 = var75;
2861 goto RET_LABEL74;
2862 RET_LABEL74:(void)0;
2863 }
2864 }
2865 {
2866 var76 = core__flat___Int___core__abstract_text__Object__to_s(var73);
2867 }
2868 {
2869 ((void(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_res, var76); /* append on <var_res:Buffer>*/
2870 }
2871 {
2872 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, 'd'); /* add on <var_res:Buffer>*/
2873 }
2874 } else {
2875 }
2876 {
2877 { /* Inline kernel#Char#>= (var_c,'0') on <var_c:Char> */
2878 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
2879 /* <'0':Char> isa OTHER */
2880 var80 = 1; /* easy <'0':Char> isa OTHER*/
2881 if (unlikely(!var80)) {
2882 var_class_name83 = type_core__Char.name;
2883 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83);
2884 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
2885 fatal_exit(1);
2886 }
2887 var84 = var_c >= '0';
2888 var78 = var84;
2889 goto RET_LABEL79;
2890 RET_LABEL79:(void)0;
2891 }
2892 }
2893 var_85 = var78;
2894 if (var78){
2895 {
2896 { /* Inline kernel#Char#<= (var_c,'9') on <var_c:Char> */
2897 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
2898 /* <'9':Char> isa OTHER */
2899 var88 = 1; /* easy <'9':Char> isa OTHER*/
2900 if (unlikely(!var88)) {
2901 var_class_name91 = type_core__Char.name;
2902 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
2903 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
2904 fatal_exit(1);
2905 }
2906 var92 = var_c <= '9';
2907 var86 = var92;
2908 goto RET_LABEL87;
2909 RET_LABEL87:(void)0;
2910 }
2911 }
2912 var77 = var86;
2913 } else {
2914 var77 = var_85;
2915 }
2916 if (var77){
2917 {
2918 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, var_c); /* add on <var_res:Buffer>*/
2919 }
2920 var_underscore = 0;
2921 } else {
2922 {
2923 { /* Inline kernel#Char#== (var_c,'_') on <var_c:Char> */
2924 var95 = var_c == '_';
2925 var93 = var95;
2926 goto RET_LABEL94;
2927 RET_LABEL94:(void)0;
2928 }
2929 }
2930 if (var93){
2931 {
2932 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, var_c); /* add on <var_res:Buffer>*/
2933 }
2934 var_underscore = 1;
2935 } else {
2936 {
2937 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, '_'); /* add on <var_res:Buffer>*/
2938 }
2939 {
2940 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
2941 var98 = (long)var_c;
2942 var96 = var98;
2943 goto RET_LABEL97;
2944 RET_LABEL97:(void)0;
2945 }
2946 }
2947 {
2948 var99 = core__flat___Int___core__abstract_text__Object__to_s(var96);
2949 }
2950 {
2951 ((void(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_res, var99); /* append on <var_res:Buffer>*/
2952 }
2953 {
2954 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, 'd'); /* add on <var_res:Buffer>*/
2955 }
2956 var_underscore = 0;
2957 }
2958 }
2959 BREAK_label72: (void)0;
2960 {
2961 var100 = core___core__Int___Discrete__successor(var_i, 1l);
2962 }
2963 var_i = var100;
2964 }
2965 BREAK_label: (void)0;
2966 if (var_underscore){
2967 {
2968 { /* Inline kernel#Char#code_point ('_') on <'_':Char> */
2969 var103 = (long)'_';
2970 var101 = var103;
2971 goto RET_LABEL102;
2972 RET_LABEL102:(void)0;
2973 }
2974 }
2975 {
2976 var104 = core__flat___Int___core__abstract_text__Object__to_s(var101);
2977 }
2978 {
2979 ((void(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_res, var104); /* append on <var_res:Buffer>*/
2980 }
2981 {
2982 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, 'd'); /* add on <var_res:Buffer>*/
2983 }
2984 } else {
2985 }
2986 {
2987 var105 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:Buffer>*/
2988 }
2989 var = var105;
2990 goto RET_LABEL;
2991 RET_LABEL:;
2992 return var;
2993 }
2994 /* method abstract_text#Text#escape_to_c for (self: Text): String */
2995 val* core___core__Text___escape_to_c(val* self) {
2996 val* var /* : String */;
2997 val* var1 /* : Buffer */;
2998 val* var2 /* : Buffer */;
2999 val* var_b /* var b: Buffer */;
3000 long var_i /* var i: Int */;
3001 long var3 /* : Int */;
3002 long var_ /* var : Int */;
3003 short int var4 /* : Bool */;
3004 short int var6 /* : Bool */;
3005 int cltype;
3006 int idtype;
3007 const char* var_class_name;
3008 short int var7 /* : Bool */;
3009 val* var8 /* : SequenceRead[Char] */;
3010 val* var9 /* : nullable Object */;
3011 uint32_t var10 /* : Char */;
3012 uint32_t var_c /* var c: Char */;
3013 short int var11 /* : Bool */;
3014 short int var13 /* : Bool */;
3015 static val* varonce;
3016 val* var14 /* : String */;
3017 char* var15 /* : NativeString */;
3018 val* var16 /* : String */;
3019 short int var17 /* : Bool */;
3020 short int var19 /* : Bool */;
3021 static val* varonce20;
3022 val* var21 /* : String */;
3023 char* var22 /* : NativeString */;
3024 val* var23 /* : String */;
3025 short int var24 /* : Bool */;
3026 short int var26 /* : Bool */;
3027 static val* varonce27;
3028 val* var28 /* : String */;
3029 char* var29 /* : NativeString */;
3030 val* var30 /* : String */;
3031 short int var31 /* : Bool */;
3032 short int var33 /* : Bool */;
3033 static val* varonce34;
3034 val* var35 /* : String */;
3035 char* var36 /* : NativeString */;
3036 val* var37 /* : String */;
3037 short int var38 /* : Bool */;
3038 short int var40 /* : Bool */;
3039 static val* varonce41;
3040 val* var42 /* : String */;
3041 char* var43 /* : NativeString */;
3042 val* var44 /* : String */;
3043 long var45 /* : Int */;
3044 long var47 /* : Int */;
3045 short int var48 /* : Bool */;
3046 short int var50 /* : Bool */;
3047 int cltype51;
3048 int idtype52;
3049 const char* var_class_name53;
3050 short int var54 /* : Bool */;
3051 long var55 /* : Int */;
3052 long var57 /* : Int */;
3053 val* var58 /* : String */;
3054 val* var_oct /* var oct: String */;
3055 long var59 /* : Int */;
3056 short int var60 /* : Bool */;
3057 short int var62 /* : Bool */;
3058 long var63 /* : Int */;
3059 short int var64 /* : Bool */;
3060 short int var66 /* : Bool */;
3061 long var67 /* : Int */;
3062 val* var68 /* : String */;
3063 var1 = NEW_core__Buffer(&type_core__Buffer);
3064 {
3065 var2 = core__flat___Buffer___new(var1);
3066 }
3067 var_b = var2;
3068 var_i = 0l;
3069 {
3070 var3 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
3071 }
3072 var_ = var3;
3073 for(;;) {
3074 {
3075 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3076 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3077 /* <var_:Int> isa OTHER */
3078 var6 = 1; /* easy <var_:Int> isa OTHER*/
3079 if (unlikely(!var6)) {
3080 var_class_name = type_core__Int.name;
3081 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3082 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3083 fatal_exit(1);
3084 }
3085 var7 = var_i < var_;
3086 var4 = var7;
3087 goto RET_LABEL5;
3088 RET_LABEL5:(void)0;
3089 }
3090 }
3091 if (var4){
3092 } else {
3093 goto BREAK_label;
3094 }
3095 {
3096 var8 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
3097 }
3098 {
3099 var9 = ((val*(*)(val* self, long p0))((((long)var8&3)?class_info[((long)var8&3)]:var8->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var8, var_i); /* [] on <var8:SequenceRead[Char]>*/
3100 }
3101 var10 = (uint32_t)((long)(var9)>>2);
3102 var_c = var10;
3103 {
3104 { /* Inline kernel#Char#== (var_c,'\n') on <var_c:Char> */
3105 var13 = var_c == '\n';
3106 var11 = var13;
3107 goto RET_LABEL12;
3108 RET_LABEL12:(void)0;
3109 }
3110 }
3111 if (var11){
3112 if (likely(varonce!=NULL)) {
3113 var14 = varonce;
3114 } else {
3115 var15 = "\\n";
3116 var16 = core__flat___NativeString___to_s_full(var15, 2l, 2l);
3117 var14 = var16;
3118 varonce = var14;
3119 }
3120 {
3121 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var14); /* append on <var_b:Buffer>*/
3122 }
3123 } else {
3124 {
3125 { /* Inline kernel#Char#== (var_c,'\t') on <var_c:Char> */
3126 var19 = var_c == '\t';
3127 var17 = var19;
3128 goto RET_LABEL18;
3129 RET_LABEL18:(void)0;
3130 }
3131 }
3132 if (var17){
3133 if (likely(varonce20!=NULL)) {
3134 var21 = varonce20;
3135 } else {
3136 var22 = "\\t";
3137 var23 = core__flat___NativeString___to_s_full(var22, 2l, 2l);
3138 var21 = var23;
3139 varonce20 = var21;
3140 }
3141 {
3142 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var21); /* append on <var_b:Buffer>*/
3143 }
3144 } else {
3145 {
3146 { /* Inline kernel#Char#== (var_c,'\"') on <var_c:Char> */
3147 var26 = var_c == '\"';
3148 var24 = var26;
3149 goto RET_LABEL25;
3150 RET_LABEL25:(void)0;
3151 }
3152 }
3153 if (var24){
3154 if (likely(varonce27!=NULL)) {
3155 var28 = varonce27;
3156 } else {
3157 var29 = "\\\"";
3158 var30 = core__flat___NativeString___to_s_full(var29, 2l, 2l);
3159 var28 = var30;
3160 varonce27 = var28;
3161 }
3162 {
3163 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var28); /* append on <var_b:Buffer>*/
3164 }
3165 } else {
3166 {
3167 { /* Inline kernel#Char#== (var_c,'\'') on <var_c:Char> */
3168 var33 = var_c == '\'';
3169 var31 = var33;
3170 goto RET_LABEL32;
3171 RET_LABEL32:(void)0;
3172 }
3173 }
3174 if (var31){
3175 if (likely(varonce34!=NULL)) {
3176 var35 = varonce34;
3177 } else {
3178 var36 = "\\\'";
3179 var37 = core__flat___NativeString___to_s_full(var36, 2l, 2l);
3180 var35 = var37;
3181 varonce34 = var35;
3182 }
3183 {
3184 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var35); /* append on <var_b:Buffer>*/
3185 }
3186 } else {
3187 {
3188 { /* Inline kernel#Char#== (var_c,'\\') on <var_c:Char> */
3189 var40 = var_c == '\\';
3190 var38 = var40;
3191 goto RET_LABEL39;
3192 RET_LABEL39:(void)0;
3193 }
3194 }
3195 if (var38){
3196 if (likely(varonce41!=NULL)) {
3197 var42 = varonce41;
3198 } else {
3199 var43 = "\\\\";
3200 var44 = core__flat___NativeString___to_s_full(var43, 2l, 2l);
3201 var42 = var44;
3202 varonce41 = var42;
3203 }
3204 {
3205 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var42); /* append on <var_b:Buffer>*/
3206 }
3207 } else {
3208 {
3209 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
3210 var47 = (long)var_c;
3211 var45 = var47;
3212 goto RET_LABEL46;
3213 RET_LABEL46:(void)0;
3214 }
3215 }
3216 {
3217 { /* Inline kernel#Int#< (var45,32l) on <var45:Int> */
3218 /* Covariant cast for argument 0 (i) <32l:Int> isa OTHER */
3219 /* <32l:Int> isa OTHER */
3220 var50 = 1; /* easy <32l:Int> isa OTHER*/
3221 if (unlikely(!var50)) {
3222 var_class_name53 = type_core__Int.name;
3223 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
3224 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3225 fatal_exit(1);
3226 }
3227 var54 = var45 < 32l;
3228 var48 = var54;
3229 goto RET_LABEL49;
3230 RET_LABEL49:(void)0;
3231 }
3232 }
3233 if (var48){
3234 {
3235 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, '\\'); /* add on <var_b:Buffer>*/
3236 }
3237 {
3238 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
3239 var57 = (long)var_c;
3240 var55 = var57;
3241 goto RET_LABEL56;
3242 RET_LABEL56:(void)0;
3243 }
3244 }
3245 {
3246 var58 = core__flat___Int___to_base(var55, 8l, 0);
3247 }
3248 var_oct = var58;
3249 {
3250 var59 = ((long(*)(val* self))(var_oct->class->vft[COLOR_core__abstract_text__Text__length]))(var_oct); /* length on <var_oct:String>*/
3251 }
3252 {
3253 { /* Inline kernel#Int#== (var59,1l) on <var59:Int> */
3254 var62 = var59 == 1l;
3255 var60 = var62;
3256 goto RET_LABEL61;
3257 RET_LABEL61:(void)0;
3258 }
3259 }
3260 if (var60){
3261 {
3262 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, '0'); /* add on <var_b:Buffer>*/
3263 }
3264 {
3265 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, '0'); /* add on <var_b:Buffer>*/
3266 }
3267 } else {
3268 {
3269 var63 = ((long(*)(val* self))(var_oct->class->vft[COLOR_core__abstract_text__Text__length]))(var_oct); /* length on <var_oct:String>*/
3270 }
3271 {
3272 { /* Inline kernel#Int#== (var63,2l) on <var63:Int> */
3273 var66 = var63 == 2l;
3274 var64 = var66;
3275 goto RET_LABEL65;
3276 RET_LABEL65:(void)0;
3277 }
3278 }
3279 if (var64){
3280 {
3281 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, '0'); /* add on <var_b:Buffer>*/
3282 }
3283 } else {
3284 }
3285 }
3286 {
3287 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var_oct); /* append on <var_b:Buffer>*/
3288 }
3289 } else {
3290 {
3291 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, var_c); /* add on <var_b:Buffer>*/
3292 }
3293 }
3294 }
3295 }
3296 }
3297 }
3298 }
3299 {
3300 var67 = core___core__Int___Discrete__successor(var_i, 1l);
3301 }
3302 var_i = var67;
3303 }
3304 BREAK_label: (void)0;
3305 {
3306 var68 = ((val*(*)(val* self))(var_b->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_b); /* to_s on <var_b:Buffer>*/
3307 }
3308 var = var68;
3309 goto RET_LABEL;
3310 RET_LABEL:;
3311 return var;
3312 }
3313 /* method abstract_text#Text#escape_to_sh for (self: Text): String */
3314 val* core___core__Text___escape_to_sh(val* self) {
3315 val* var /* : String */;
3316 val* var1 /* : Buffer */;
3317 val* var2 /* : Buffer */;
3318 val* var_b /* var b: Buffer */;
3319 val* var3 /* : SequenceRead[Char] */;
3320 val* var4 /* : nullable Object */;
3321 long var_i /* var i: Int */;
3322 long var5 /* : Int */;
3323 long var_ /* var : Int */;
3324 short int var6 /* : Bool */;
3325 short int var8 /* : Bool */;
3326 int cltype;
3327 int idtype;
3328 const char* var_class_name;
3329 short int var9 /* : Bool */;
3330 val* var10 /* : SequenceRead[Char] */;
3331 val* var11 /* : nullable Object */;
3332 uint32_t var12 /* : Char */;
3333 uint32_t var_c /* var c: Char */;
3334 short int var13 /* : Bool */;
3335 short int var15 /* : Bool */;
3336 static val* varonce;
3337 val* var16 /* : String */;
3338 char* var17 /* : NativeString */;
3339 val* var18 /* : String */;
3340 short int var19 /* : Bool */;
3341 short int var21 /* : Bool */;
3342 short int var22 /* : Bool */;
3343 long var23 /* : Int */;
3344 val* var24 /* : SequenceRead[Char] */;
3345 val* var25 /* : nullable Object */;
3346 val* var26 /* : String */;
3347 var1 = NEW_core__Buffer(&type_core__Buffer);
3348 {
3349 var2 = core__flat___Buffer___new(var1);
3350 }
3351 var_b = var2;
3352 {
3353 var3 = ((val*(*)(val* self))(var_b->class->vft[COLOR_core__abstract_text__Text__chars]))(var_b); /* chars on <var_b:Buffer>*/
3354 }
3355 {
3356 var4 = (val*)((long)('\'')<<2|2);
3357 ((void(*)(val* self, val* p0))((((long)var3&3)?class_info[((long)var3&3)]:var3->class)->vft[COLOR_core__abstract_collection__SimpleCollection__add]))(var3, var4); /* add on <var3:SequenceRead[Char](Sequence[Char])>*/
3358 }
3359 var_i = 0l;
3360 {
3361 var5 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
3362 }
3363 var_ = var5;
3364 for(;;) {
3365 {
3366 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3367 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3368 /* <var_:Int> isa OTHER */
3369 var8 = 1; /* easy <var_:Int> isa OTHER*/
3370 if (unlikely(!var8)) {
3371 var_class_name = type_core__Int.name;
3372 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3373 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3374 fatal_exit(1);
3375 }
3376 var9 = var_i < var_;
3377 var6 = var9;
3378 goto RET_LABEL7;
3379 RET_LABEL7:(void)0;
3380 }
3381 }
3382 if (var6){
3383 } else {
3384 goto BREAK_label;
3385 }
3386 {
3387 var10 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
3388 }
3389 {
3390 var11 = ((val*(*)(val* self, long p0))((((long)var10&3)?class_info[((long)var10&3)]:var10->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var10, var_i); /* [] on <var10:SequenceRead[Char]>*/
3391 }
3392 var12 = (uint32_t)((long)(var11)>>2);
3393 var_c = var12;
3394 {
3395 { /* Inline kernel#Char#== (var_c,'\'') on <var_c:Char> */
3396 var15 = var_c == '\'';
3397 var13 = var15;
3398 goto RET_LABEL14;
3399 RET_LABEL14:(void)0;
3400 }
3401 }
3402 if (var13){
3403 if (likely(varonce!=NULL)) {
3404 var16 = varonce;
3405 } else {
3406 var17 = "\'\\\'\'";
3407 var18 = core__flat___NativeString___to_s_full(var17, 4l, 4l);
3408 var16 = var18;
3409 varonce = var16;
3410 }
3411 {
3412 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var16); /* append on <var_b:Buffer>*/
3413 }
3414 } else {
3415 {
3416 { /* Inline kernel#Char#!= (var_c,'\000') on <var_c:Char> */
3417 var21 = var_c == '\000';
3418 var22 = !var21;
3419 var19 = var22;
3420 goto RET_LABEL20;
3421 RET_LABEL20:(void)0;
3422 }
3423 }
3424 if (unlikely(!var19)) {
3425 PRINT_ERROR("Runtime error: %s", "Assert \'without_null_byte\' failed");
3426 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 669);
3427 fatal_exit(1);
3428 }
3429 {
3430 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, var_c); /* add on <var_b:Buffer>*/
3431 }
3432 }
3433 {
3434 var23 = core___core__Int___Discrete__successor(var_i, 1l);
3435 }
3436 var_i = var23;
3437 }
3438 BREAK_label: (void)0;
3439 {
3440 var24 = ((val*(*)(val* self))(var_b->class->vft[COLOR_core__abstract_text__Text__chars]))(var_b); /* chars on <var_b:Buffer>*/
3441 }
3442 {
3443 var25 = (val*)((long)('\'')<<2|2);
3444 ((void(*)(val* self, val* p0))((((long)var24&3)?class_info[((long)var24&3)]:var24->class)->vft[COLOR_core__abstract_collection__SimpleCollection__add]))(var24, var25); /* add on <var24:SequenceRead[Char](Sequence[Char])>*/
3445 }
3446 {
3447 var26 = ((val*(*)(val* self))(var_b->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_b); /* to_s on <var_b:Buffer>*/
3448 }
3449 var = var26;
3450 goto RET_LABEL;
3451 RET_LABEL:;
3452 return var;
3453 }
3454 /* method abstract_text#Text#escape_to_mk for (self: Text): String */
3455 val* core___core__Text___escape_to_mk(val* self) {
3456 val* var /* : String */;
3457 val* var1 /* : Buffer */;
3458 val* var2 /* : Buffer */;
3459 val* var_b /* var b: Buffer */;
3460 long var_i /* var i: Int */;
3461 long var3 /* : Int */;
3462 long var_ /* var : Int */;
3463 short int var4 /* : Bool */;
3464 short int var6 /* : Bool */;
3465 int cltype;
3466 int idtype;
3467 const char* var_class_name;
3468 short int var7 /* : Bool */;
3469 val* var8 /* : SequenceRead[Char] */;
3470 val* var9 /* : nullable Object */;
3471 uint32_t var10 /* : Char */;
3472 uint32_t var_c /* var c: Char */;
3473 short int var11 /* : Bool */;
3474 short int var13 /* : Bool */;
3475 static val* varonce;
3476 val* var14 /* : String */;
3477 char* var15 /* : NativeString */;
3478 val* var16 /* : String */;
3479 short int var17 /* : Bool */;
3480 short int var18 /* : Bool */;
3481 short int var19 /* : Bool */;
3482 short int var21 /* : Bool */;
3483 short int var_22 /* var : Bool */;
3484 short int var23 /* : Bool */;
3485 short int var25 /* : Bool */;
3486 short int var_26 /* var : Bool */;
3487 short int var27 /* : Bool */;
3488 short int var29 /* : Bool */;
3489 short int var30 /* : Bool */;
3490 short int var31 /* : Bool */;
3491 short int var32 /* : Bool */;
3492 short int var33 /* : Bool */;
3493 long var34 /* : Int */;
3494 long var36 /* : Int */;
3495 short int var37 /* : Bool */;
3496 short int var39 /* : Bool */;
3497 int cltype40;
3498 int idtype41;
3499 const char* var_class_name42;
3500 short int var43 /* : Bool */;
3501 short int var_44 /* var : Bool */;
3502 short int var45 /* : Bool */;
3503 short int var47 /* : Bool */;
3504 short int var_48 /* var : Bool */;
3505 short int var49 /* : Bool */;
3506 short int var51 /* : Bool */;
3507 short int var_52 /* var : Bool */;
3508 short int var53 /* : Bool */;
3509 short int var55 /* : Bool */;
3510 short int var_56 /* var : Bool */;
3511 short int var57 /* : Bool */;
3512 short int var59 /* : Bool */;
3513 val* var61 /* : NativeArray[String] */;
3514 static val* varonce60;
3515 static val* varonce62;
3516 val* var63 /* : String */;
3517 char* var64 /* : NativeString */;
3518 val* var65 /* : String */;
3519 long var66 /* : Int */;
3520 long var68 /* : Int */;
3521 val* var69 /* : String */;
3522 val* var70 /* : String */;
3523 long var71 /* : Int */;
3524 val* var72 /* : String */;
3525 var1 = NEW_core__Buffer(&type_core__Buffer);
3526 {
3527 var2 = core__flat___Buffer___new(var1);
3528 }
3529 var_b = var2;
3530 var_i = 0l;
3531 {
3532 var3 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
3533 }
3534 var_ = var3;
3535 for(;;) {
3536 {
3537 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3538 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3539 /* <var_:Int> isa OTHER */
3540 var6 = 1; /* easy <var_:Int> isa OTHER*/
3541 if (unlikely(!var6)) {
3542 var_class_name = type_core__Int.name;
3543 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3544 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3545 fatal_exit(1);
3546 }
3547 var7 = var_i < var_;
3548 var4 = var7;
3549 goto RET_LABEL5;
3550 RET_LABEL5:(void)0;
3551 }
3552 }
3553 if (var4){
3554 } else {
3555 goto BREAK_label;
3556 }
3557 {
3558 var8 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
3559 }
3560 {
3561 var9 = ((val*(*)(val* self, long p0))((((long)var8&3)?class_info[((long)var8&3)]:var8->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var8, var_i); /* [] on <var8:SequenceRead[Char]>*/
3562 }
3563 var10 = (uint32_t)((long)(var9)>>2);
3564 var_c = var10;
3565 {
3566 { /* Inline kernel#Char#== (var_c,'$') on <var_c:Char> */
3567 var13 = var_c == '$';
3568 var11 = var13;
3569 goto RET_LABEL12;
3570 RET_LABEL12:(void)0;
3571 }
3572 }
3573 if (var11){
3574 if (likely(varonce!=NULL)) {
3575 var14 = varonce;
3576 } else {
3577 var15 = "$$";
3578 var16 = core__flat___NativeString___to_s_full(var15, 2l, 2l);
3579 var14 = var16;
3580 varonce = var14;
3581 }
3582 {
3583 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var14); /* append on <var_b:Buffer>*/
3584 }
3585 } else {
3586 {
3587 { /* Inline kernel#Char#== (var_c,':') on <var_c:Char> */
3588 var21 = var_c == ':';
3589 var19 = var21;
3590 goto RET_LABEL20;
3591 RET_LABEL20:(void)0;
3592 }
3593 }
3594 var_22 = var19;
3595 if (var19){
3596 var18 = var_22;
3597 } else {
3598 {
3599 { /* Inline kernel#Char#== (var_c,' ') on <var_c:Char> */
3600 var25 = var_c == ' ';
3601 var23 = var25;
3602 goto RET_LABEL24;
3603 RET_LABEL24:(void)0;
3604 }
3605 }
3606 var18 = var23;
3607 }
3608 var_26 = var18;
3609 if (var18){
3610 var17 = var_26;
3611 } else {
3612 {
3613 { /* Inline kernel#Char#== (var_c,'#') on <var_c:Char> */
3614 var29 = var_c == '#';
3615 var27 = var29;
3616 goto RET_LABEL28;
3617 RET_LABEL28:(void)0;
3618 }
3619 }
3620 var17 = var27;
3621 }
3622 if (var17){
3623 {
3624 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, '\\'); /* add on <var_b:Buffer>*/
3625 }
3626 {
3627 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, var_c); /* add on <var_b:Buffer>*/
3628 }
3629 } else {
3630 {
3631 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
3632 var36 = (long)var_c;
3633 var34 = var36;
3634 goto RET_LABEL35;
3635 RET_LABEL35:(void)0;
3636 }
3637 }
3638 {
3639 { /* Inline kernel#Int#< (var34,32l) on <var34:Int> */
3640 /* Covariant cast for argument 0 (i) <32l:Int> isa OTHER */
3641 /* <32l:Int> isa OTHER */
3642 var39 = 1; /* easy <32l:Int> isa OTHER*/
3643 if (unlikely(!var39)) {
3644 var_class_name42 = type_core__Int.name;
3645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
3646 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3647 fatal_exit(1);
3648 }
3649 var43 = var34 < 32l;
3650 var37 = var43;
3651 goto RET_LABEL38;
3652 RET_LABEL38:(void)0;
3653 }
3654 }
3655 var_44 = var37;
3656 if (var37){
3657 var33 = var_44;
3658 } else {
3659 {
3660 { /* Inline kernel#Char#== (var_c,';') on <var_c:Char> */
3661 var47 = var_c == ';';
3662 var45 = var47;
3663 goto RET_LABEL46;
3664 RET_LABEL46:(void)0;
3665 }
3666 }
3667 var33 = var45;
3668 }
3669 var_48 = var33;
3670 if (var33){
3671 var32 = var_48;
3672 } else {
3673 {
3674 { /* Inline kernel#Char#== (var_c,'|') on <var_c:Char> */
3675 var51 = var_c == '|';
3676 var49 = var51;
3677 goto RET_LABEL50;
3678 RET_LABEL50:(void)0;
3679 }
3680 }
3681 var32 = var49;
3682 }
3683 var_52 = var32;
3684 if (var32){
3685 var31 = var_52;
3686 } else {
3687 {
3688 { /* Inline kernel#Char#== (var_c,'\\') on <var_c:Char> */
3689 var55 = var_c == '\\';
3690 var53 = var55;
3691 goto RET_LABEL54;
3692 RET_LABEL54:(void)0;
3693 }
3694 }
3695 var31 = var53;
3696 }
3697 var_56 = var31;
3698 if (var31){
3699 var30 = var_56;
3700 } else {
3701 {
3702 { /* Inline kernel#Char#== (var_c,'=') on <var_c:Char> */
3703 var59 = var_c == '=';
3704 var57 = var59;
3705 goto RET_LABEL58;
3706 RET_LABEL58:(void)0;
3707 }
3708 }
3709 var30 = var57;
3710 }
3711 if (var30){
3712 if (unlikely(varonce60==NULL)) {
3713 var61 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
3714 if (likely(varonce62!=NULL)) {
3715 var63 = varonce62;
3716 } else {
3717 var64 = "?";
3718 var65 = core__flat___NativeString___to_s_full(var64, 1l, 1l);
3719 var63 = var65;
3720 varonce62 = var63;
3721 }
3722 ((struct instance_core__NativeArray*)var61)->values[0]=var63;
3723 } else {
3724 var61 = varonce60;
3725 varonce60 = NULL;
3726 }
3727 {
3728 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
3729 var68 = (long)var_c;
3730 var66 = var68;
3731 goto RET_LABEL67;
3732 RET_LABEL67:(void)0;
3733 }
3734 }
3735 {
3736 var69 = core__flat___Int___to_base(var66, 16l, 0);
3737 }
3738 ((struct instance_core__NativeArray*)var61)->values[1]=var69;
3739 {
3740 var70 = ((val*(*)(val* self))(var61->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var61); /* native_to_s on <var61:NativeArray[String]>*/
3741 }
3742 varonce60 = var61;
3743 {
3744 ((void(*)(val* self, val* p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_b, var70); /* append on <var_b:Buffer>*/
3745 }
3746 } else {
3747 {
3748 ((void(*)(val* self, uint32_t p0))(var_b->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_b, var_c); /* add on <var_b:Buffer>*/
3749 }
3750 }
3751 }
3752 }
3753 {
3754 var71 = core___core__Int___Discrete__successor(var_i, 1l);
3755 }
3756 var_i = var71;
3757 }
3758 BREAK_label: (void)0;
3759 {
3760 var72 = ((val*(*)(val* self))(var_b->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_b); /* to_s on <var_b:Buffer>*/
3761 }
3762 var = var72;
3763 goto RET_LABEL;
3764 RET_LABEL:;
3765 return var;
3766 }
3767 /* method abstract_text#Text#unescape_nit for (self: Text): String */
3768 val* core___core__Text___unescape_nit(val* self) {
3769 val* var /* : String */;
3770 val* var1 /* : Buffer */;
3771 long var2 /* : Int */;
3772 val* var3 /* : Buffer */;
3773 val* var_res /* var res: Buffer */;
3774 short int var_was_slash /* var was_slash: Bool */;
3775 long var_i /* var i: Int */;
3776 long var4 /* : Int */;
3777 long var_ /* var : Int */;
3778 short int var5 /* : Bool */;
3779 short int var7 /* : Bool */;
3780 int cltype;
3781 int idtype;
3782 const char* var_class_name;
3783 short int var8 /* : Bool */;
3784 val* var9 /* : SequenceRead[Char] */;
3785 val* var10 /* : nullable Object */;
3786 uint32_t var11 /* : Char */;
3787 uint32_t var_c /* var c: Char */;
3788 short int var12 /* : Bool */;
3789 short int var13 /* : Bool */;
3790 short int var15 /* : Bool */;
3791 short int var17 /* : Bool */;
3792 short int var19 /* : Bool */;
3793 short int var20 /* : Bool */;
3794 short int var22 /* : Bool */;
3795 short int var23 /* : Bool */;
3796 short int var25 /* : Bool */;
3797 short int var26 /* : Bool */;
3798 short int var28 /* : Bool */;
3799 long var29 /* : Int */;
3800 val* var30 /* : String */;
3801 var1 = NEW_core__Buffer(&type_core__Buffer);
3802 {
3803 var2 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
3804 }
3805 {
3806 var3 = core__flat___Buffer___with_cap(var1, var2);
3807 }
3808 var_res = var3;
3809 var_was_slash = 0;
3810 var_i = 0l;
3811 {
3812 var4 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
3813 }
3814 var_ = var4;
3815 for(;;) {
3816 {
3817 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3818 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3819 /* <var_:Int> isa OTHER */
3820 var7 = 1; /* easy <var_:Int> isa OTHER*/
3821 if (unlikely(!var7)) {
3822 var_class_name = type_core__Int.name;
3823 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3824 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3825 fatal_exit(1);
3826 }
3827 var8 = var_i < var_;
3828 var5 = var8;
3829 goto RET_LABEL6;
3830 RET_LABEL6:(void)0;
3831 }
3832 }
3833 if (var5){
3834 } else {
3835 goto BREAK_label;
3836 }
3837 {
3838 var9 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
3839 }
3840 {
3841 var10 = ((val*(*)(val* self, long p0))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var9, var_i); /* [] on <var9:SequenceRead[Char]>*/
3842 }
3843 var11 = (uint32_t)((long)(var10)>>2);
3844 var_c = var11;
3845 var12 = !var_was_slash;
3846 if (var12){
3847 {
3848 { /* Inline kernel#Char#== (var_c,'\\') on <var_c:Char> */
3849 var15 = var_c == '\\';
3850 var13 = var15;
3851 goto RET_LABEL14;
3852 RET_LABEL14:(void)0;
3853 }
3854 }
3855 if (var13){
3856 var_was_slash = 1;
3857 } else {
3858 {
3859 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, var_c); /* add on <var_res:Buffer>*/
3860 }
3861 }
3862 goto BREAK_label16;
3863 } else {
3864 }
3865 var_was_slash = 0;
3866 {
3867 { /* Inline kernel#Char#== (var_c,'n') on <var_c:Char> */
3868 var19 = var_c == 'n';
3869 var17 = var19;
3870 goto RET_LABEL18;
3871 RET_LABEL18:(void)0;
3872 }
3873 }
3874 if (var17){
3875 {
3876 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, '\n'); /* add on <var_res:Buffer>*/
3877 }
3878 } else {
3879 {
3880 { /* Inline kernel#Char#== (var_c,'r') on <var_c:Char> */
3881 var22 = var_c == 'r';
3882 var20 = var22;
3883 goto RET_LABEL21;
3884 RET_LABEL21:(void)0;
3885 }
3886 }
3887 if (var20){
3888 {
3889 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, '\015'); /* add on <var_res:Buffer>*/
3890 }
3891 } else {
3892 {
3893 { /* Inline kernel#Char#== (var_c,'t') on <var_c:Char> */
3894 var25 = var_c == 't';
3895 var23 = var25;
3896 goto RET_LABEL24;
3897 RET_LABEL24:(void)0;
3898 }
3899 }
3900 if (var23){
3901 {
3902 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, '\t'); /* add on <var_res:Buffer>*/
3903 }
3904 } else {
3905 {
3906 { /* Inline kernel#Char#== (var_c,'0') on <var_c:Char> */
3907 var28 = var_c == '0';
3908 var26 = var28;
3909 goto RET_LABEL27;
3910 RET_LABEL27:(void)0;
3911 }
3912 }
3913 if (var26){
3914 {
3915 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, '\000'); /* add on <var_res:Buffer>*/
3916 }
3917 } else {
3918 {
3919 ((void(*)(val* self, uint32_t p0))(var_res->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_res, var_c); /* add on <var_res:Buffer>*/
3920 }
3921 }
3922 }
3923 }
3924 }
3925 BREAK_label16: (void)0;
3926 {
3927 var29 = core___core__Int___Discrete__successor(var_i, 1l);
3928 }
3929 var_i = var29;
3930 }
3931 BREAK_label: (void)0;
3932 {
3933 var30 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:Buffer>*/
3934 }
3935 var = var30;
3936 goto RET_LABEL;
3937 RET_LABEL:;
3938 return var;
3939 }
3940 /* method abstract_text#Text#== for (self: Text, nullable Object): Bool */
3941 short int core___core__Text___core__kernel__Object___61d_61d(val* self, val* p0) {
3942 short int var /* : Bool */;
3943 val* var_o /* var o: nullable Object */;
3944 short int var1 /* : Bool */;
3945 short int var2 /* : Bool */;
3946 short int var3 /* : Bool */;
3947 int cltype;
3948 int idtype;
3949 short int var4 /* : Bool */;
3950 short int var5 /* : Bool */;
3951 short int var7 /* : Bool */;
3952 long var8 /* : Int */;
3953 long var9 /* : Int */;
3954 short int var10 /* : Bool */;
3955 short int var12 /* : Bool */;
3956 short int var13 /* : Bool */;
3957 val* var14 /* : SequenceRead[Char] */;
3958 val* var15 /* : SequenceRead[Char] */;
3959 short int var16 /* : Bool */;
3960 var_o = p0;
3961 if (var_o == NULL) {
3962 var1 = 1; /* is null */
3963 } else {
3964 var1 = 0; /* arg is null but recv is not */
3965 }
3966 if (0) {
3967 var2 = ((short int(*)(val* self, val* p0))((((long)var_o&3)?class_info[((long)var_o&3)]:var_o->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var_o, ((val*)NULL)); /* == on <var_o:nullable Object>*/
3968 var1 = var2;
3969 }
3970 if (var1){
3971 var = 0;
3972 goto RET_LABEL;
3973 } else {
3974 }
3975 /* <var_o:nullable Object(Object)> isa Text */
3976 cltype = type_core__Text.color;
3977 idtype = type_core__Text.id;
3978 if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) {
3979 var3 = 0;
3980 } else {
3981 var3 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype;
3982 }
3983 var4 = !var3;
3984 if (var4){
3985 var = 0;
3986 goto RET_LABEL;
3987 } else {
3988 }
3989 {
3990 { /* Inline kernel#Object#is_same_instance (self,var_o) on <self:Text> */
3991 var7 = self == var_o;
3992 var5 = var7;
3993 goto RET_LABEL6;
3994 RET_LABEL6:(void)0;
3995 }
3996 }
3997 if (var5){
3998 var = 1;
3999 goto RET_LABEL;
4000 } else {
4001 }
4002 {
4003 var8 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
4004 }
4005 {
4006 var9 = ((long(*)(val* self))(var_o->class->vft[COLOR_core__abstract_text__Text__length]))(var_o); /* length on <var_o:nullable Object(Text)>*/
4007 }
4008 {
4009 { /* Inline kernel#Int#!= (var8,var9) on <var8:Int> */
4010 var12 = var8 == var9;
4011 var13 = !var12;
4012 var10 = var13;
4013 goto RET_LABEL11;
4014 RET_LABEL11:(void)0;
4015 }
4016 }
4017 if (var10){
4018 var = 0;
4019 goto RET_LABEL;
4020 } else {
4021 }
4022 {
4023 var14 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
4024 }
4025 {
4026 var15 = ((val*(*)(val* self))(var_o->class->vft[COLOR_core__abstract_text__Text__chars]))(var_o); /* chars on <var_o:nullable Object(Text)>*/
4027 }
4028 {
4029 var16 = ((short int(*)(val* self, val* p0))((((long)var14&3)?class_info[((long)var14&3)]:var14->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var14, var15); /* == on <var14:SequenceRead[Char]>*/
4030 }
4031 var = var16;
4032 goto RET_LABEL;
4033 RET_LABEL:;
4034 return var;
4035 }
4036 /* method abstract_text#Text#< for (self: Text, Text): Bool */
4037 short int core___core__Text___core__kernel__Comparable___60d(val* self, val* p0) {
4038 short int var /* : Bool */;
4039 short int var1 /* : Bool */;
4040 int cltype;
4041 int idtype;
4042 const struct type* type_struct;
4043 const char* var_class_name;
4044 val* var_other /* var other: Text */;
4045 val* var2 /* : SequenceRead[Char] */;
4046 val* var3 /* : Iterator[nullable Object] */;
4047 val* var_self_chars /* var self_chars: IndexedIterator[Char] */;
4048 val* var4 /* : SequenceRead[Char] */;
4049 val* var5 /* : Iterator[nullable Object] */;
4050 val* var_other_chars /* var other_chars: IndexedIterator[Char] */;
4051 short int var6 /* : Bool */;
4052 short int var7 /* : Bool */;
4053 short int var_ /* var : Bool */;
4054 short int var8 /* : Bool */;
4055 val* var9 /* : nullable Object */;
4056 val* var10 /* : nullable Object */;
4057 short int var11 /* : Bool */;
4058 short int var13 /* : Bool */;
4059 int cltype14;
4060 int idtype15;
4061 const char* var_class_name16;
4062 uint32_t var17 /* : Char */;
4063 uint32_t var18 /* : Char */;
4064 short int var19 /* : Bool */;
4065 val* var20 /* : nullable Object */;
4066 val* var21 /* : nullable Object */;
4067 short int var22 /* : Bool */;
4068 short int var24 /* : Bool */;
4069 int cltype25;
4070 int idtype26;
4071 const char* var_class_name27;
4072 uint32_t var28 /* : Char */;
4073 uint32_t var29 /* : Char */;
4074 short int var30 /* : Bool */;
4075 short int var31 /* : Bool */;
4076 /* Covariant cast for argument 0 (other) <p0:Text> isa OTHER */
4077 /* <p0:Text> isa OTHER */
4078 type_struct = self->type->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4079 cltype = type_struct->color;
4080 idtype = type_struct->id;
4081 if(cltype >= p0->type->table_size) {
4082 var1 = 0;
4083 } else {
4084 var1 = p0->type->type_table[cltype] == idtype;
4085 }
4086 if (unlikely(!var1)) {
4087 var_class_name = p0 == NULL ? "null" : p0->type->name;
4088 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4089 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 918);
4090 fatal_exit(1);
4091 }
4092 var_other = p0;
4093 {
4094 var2 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
4095 }
4096 {
4097 var3 = ((val*(*)(val* self))((((long)var2&3)?class_info[((long)var2&3)]:var2->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var2); /* iterator on <var2:SequenceRead[Char]>*/
4098 }
4099 var_self_chars = var3;
4100 {
4101 var4 = ((val*(*)(val* self))(var_other->class->vft[COLOR_core__abstract_text__Text__chars]))(var_other); /* chars on <var_other:Text>*/
4102 }
4103 {
4104 var5 = ((val*(*)(val* self))((((long)var4&3)?class_info[((long)var4&3)]:var4->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var4); /* iterator on <var4:SequenceRead[Char]>*/
4105 }
4106 var_other_chars = var5;
4107 for(;;) {
4108 {
4109 var7 = ((short int(*)(val* self))((((long)var_self_chars&3)?class_info[((long)var_self_chars&3)]:var_self_chars->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_self_chars); /* is_ok on <var_self_chars:IndexedIterator[Char]>*/
4110 }
4111 var_ = var7;
4112 if (var7){
4113 {
4114 var8 = ((short int(*)(val* self))((((long)var_other_chars&3)?class_info[((long)var_other_chars&3)]:var_other_chars->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_other_chars); /* is_ok on <var_other_chars:IndexedIterator[Char]>*/
4115 }
4116 var6 = var8;
4117 } else {
4118 var6 = var_;
4119 }
4120 if (var6){
4121 {
4122 var9 = ((val*(*)(val* self))((((long)var_self_chars&3)?class_info[((long)var_self_chars&3)]:var_self_chars->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_self_chars); /* item on <var_self_chars:IndexedIterator[Char]>*/
4123 }
4124 {
4125 var10 = ((val*(*)(val* self))((((long)var_other_chars&3)?class_info[((long)var_other_chars&3)]:var_other_chars->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_other_chars); /* item on <var_other_chars:IndexedIterator[Char]>*/
4126 }
4127 {
4128 { /* Inline kernel#Char#< (var9,var10) on <var9:nullable Object(Char)> */
4129 /* Covariant cast for argument 0 (i) <var10:nullable Object(Char)> isa OTHER */
4130 /* <var10:nullable Object(Char)> isa OTHER */
4131 var13 = 1; /* easy <var10:nullable Object(Char)> isa OTHER*/
4132 if (unlikely(!var13)) {
4133 var_class_name16 = var10 == NULL ? "null" : (((long)var10&3)?type_info[((long)var10&3)]:var10->type)->name;
4134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
4135 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 923);
4136 fatal_exit(1);
4137 }
4138 var17 = (uint32_t)((long)(var9)>>2);
4139 var18 = (uint32_t)((long)(var10)>>2);
4140 var19 = var17 < var18;
4141 var11 = var19;
4142 goto RET_LABEL12;
4143 RET_LABEL12:(void)0;
4144 }
4145 }
4146 if (var11){
4147 var = 1;
4148 goto RET_LABEL;
4149 } else {
4150 }
4151 {
4152 var20 = ((val*(*)(val* self))((((long)var_self_chars&3)?class_info[((long)var_self_chars&3)]:var_self_chars->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_self_chars); /* item on <var_self_chars:IndexedIterator[Char]>*/
4153 }
4154 {
4155 var21 = ((val*(*)(val* self))((((long)var_other_chars&3)?class_info[((long)var_other_chars&3)]:var_other_chars->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_other_chars); /* item on <var_other_chars:IndexedIterator[Char]>*/
4156 }
4157 {
4158 { /* Inline kernel#Char#> (var20,var21) on <var20:nullable Object(Char)> */
4159 /* Covariant cast for argument 0 (i) <var21:nullable Object(Char)> isa OTHER */
4160 /* <var21:nullable Object(Char)> isa OTHER */
4161 var24 = 1; /* easy <var21:nullable Object(Char)> isa OTHER*/
4162 if (unlikely(!var24)) {
4163 var_class_name27 = var21 == NULL ? "null" : (((long)var21&3)?type_info[((long)var21&3)]:var21->type)->name;
4164 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
4165 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 925);
4166 fatal_exit(1);
4167 }
4168 var28 = (uint32_t)((long)(var20)>>2);
4169 var29 = (uint32_t)((long)(var21)>>2);
4170 var30 = var28 > var29;
4171 var22 = var30;
4172 goto RET_LABEL23;
4173 RET_LABEL23:(void)0;
4174 }
4175 }
4176 if (var22){
4177 var = 0;
4178 goto RET_LABEL;
4179 } else {
4180 }
4181 {
4182 ((void(*)(val* self))((((long)var_self_chars&3)?class_info[((long)var_self_chars&3)]:var_self_chars->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_self_chars); /* next on <var_self_chars:IndexedIterator[Char]>*/
4183 }
4184 {
4185 ((void(*)(val* self))((((long)var_other_chars&3)?class_info[((long)var_other_chars&3)]:var_other_chars->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_other_chars); /* next on <var_other_chars:IndexedIterator[Char]>*/
4186 }
4187 } else {
4188 goto BREAK_label;
4189 }
4190 }
4191 BREAK_label: (void)0;
4192 {
4193 var31 = ((short int(*)(val* self))((((long)var_self_chars&3)?class_info[((long)var_self_chars&3)]:var_self_chars->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_self_chars); /* is_ok on <var_self_chars:IndexedIterator[Char]>*/
4194 }
4195 if (var31){
4196 var = 0;
4197 goto RET_LABEL;
4198 } else {
4199 var = 1;
4200 goto RET_LABEL;
4201 }
4202 RET_LABEL:;
4203 return var;
4204 }
4205 /* method abstract_text#Text#hash_cache for (self: Text): nullable Int */
4206 val* core___core__Text___hash_cache(val* self) {
4207 val* var /* : nullable Int */;
4208 val* var1 /* : nullable Int */;
4209 var1 = self->attrs[COLOR_core__abstract_text__Text___hash_cache].val; /* _hash_cache on <self:Text> */
4210 var = var1;
4211 RET_LABEL:;
4212 return var;
4213 }
4214 /* method abstract_text#Text#hash_cache= for (self: Text, nullable Int) */
4215 void core___core__Text___hash_cache_61d(val* self, val* p0) {
4216 self->attrs[COLOR_core__abstract_text__Text___hash_cache].val = p0; /* _hash_cache on <self:Text> */
4217 RET_LABEL:;
4218 }
4219 /* method abstract_text#Text#hash for (self: Text): Int */
4220 long core___core__Text___core__kernel__Object__hash(val* self) {
4221 long var /* : Int */;
4222 val* var1 /* : nullable Int */;
4223 val* var3 /* : nullable Int */;
4224 short int var4 /* : Bool */;
4225 short int var5 /* : Bool */;
4226 short int var7 /* : Bool */;
4227 long var_h /* var h: Int */;
4228 long var_i /* var i: Int */;
4229 long var8 /* : Int */;
4230 long var_ /* var : Int */;
4231 short int var9 /* : Bool */;
4232 short int var11 /* : Bool */;
4233 int cltype;
4234 int idtype;
4235 const char* var_class_name;
4236 short int var12 /* : Bool */;
4237 val* var13 /* : SequenceRead[Char] */;
4238 val* var14 /* : nullable Object */;
4239 uint32_t var15 /* : Char */;
4240 uint32_t var_char /* var char: Char */;
4241 long var16 /* : Int */;
4242 long var18 /* : Int */;
4243 long var19 /* : Int */;
4244 short int var21 /* : Bool */;
4245 int cltype22;
4246 int idtype23;
4247 const char* var_class_name24;
4248 long var25 /* : Int */;
4249 long var26 /* : Int */;
4250 long var28 /* : Int */;
4251 long var29 /* : Int */;
4252 short int var31 /* : Bool */;
4253 int cltype32;
4254 int idtype33;
4255 const char* var_class_name34;
4256 long var35 /* : Int */;
4257 long var36 /* : Int */;
4258 val* var38 /* : nullable Int */;
4259 val* var39 /* : nullable Int */;
4260 val* var41 /* : nullable Int */;
4261 long var42 /* : Int */;
4262 {
4263 { /* Inline abstract_text#Text#hash_cache (self) on <self:Text> */
4264 var3 = self->attrs[COLOR_core__abstract_text__Text___hash_cache].val; /* _hash_cache on <self:Text> */
4265 var1 = var3;
4266 RET_LABEL2:(void)0;
4267 }
4268 }
4269 if (var1 == NULL) {
4270 var4 = 1; /* is null */
4271 } else {
4272 var4 = 0; /* arg is null but recv is not */
4273 }
4274 if (0) {
4275 { /* Inline kernel#Int#== (var1,((val*)NULL)) on <var1:nullable Int> */
4276 var7 = 0; /* incompatible types Int vs. null; cannot be NULL */
4277 var5 = var7;
4278 goto RET_LABEL6;
4279 RET_LABEL6:(void)0;
4280 }
4281 var4 = var5;
4282 }
4283 if (var4){
4284 var_h = 5381l;
4285 var_i = 0l;
4286 {
4287 var8 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
4288 }
4289 var_ = var8;
4290 for(;;) {
4291 {
4292 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
4293 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
4294 /* <var_:Int> isa OTHER */
4295 var11 = 1; /* easy <var_:Int> isa OTHER*/
4296 if (unlikely(!var11)) {
4297 var_class_name = type_core__Int.name;
4298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4299 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4300 fatal_exit(1);
4301 }
4302 var12 = var_i < var_;
4303 var9 = var12;
4304 goto RET_LABEL10;
4305 RET_LABEL10:(void)0;
4306 }
4307 }
4308 if (var9){
4309 } else {
4310 goto BREAK_label;
4311 }
4312 {
4313 var13 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:Text>*/
4314 }
4315 {
4316 var14 = ((val*(*)(val* self, long p0))((((long)var13&3)?class_info[((long)var13&3)]:var13->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var13, var_i); /* [] on <var13:SequenceRead[Char]>*/
4317 }
4318 var15 = (uint32_t)((long)(var14)>>2);
4319 var_char = var15;
4320 {
4321 { /* Inline kernel#Int#<< (var_h,5l) on <var_h:Int> */
4322 var18 = var_h << 5l;
4323 var16 = var18;
4324 goto RET_LABEL17;
4325 RET_LABEL17:(void)0;
4326 }
4327 }
4328 {
4329 { /* Inline kernel#Int#+ (var16,var_h) on <var16:Int> */
4330 /* Covariant cast for argument 0 (i) <var_h:Int> isa OTHER */
4331 /* <var_h:Int> isa OTHER */
4332 var21 = 1; /* easy <var_h:Int> isa OTHER*/
4333 if (unlikely(!var21)) {
4334 var_class_name24 = type_core__Int.name;
4335 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
4336 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4337 fatal_exit(1);
4338 }
4339 var25 = var16 + var_h;
4340 var19 = var25;
4341 goto RET_LABEL20;
4342 RET_LABEL20:(void)0;
4343 }
4344 }
4345 {
4346 { /* Inline kernel#Char#code_point (var_char) on <var_char:Char> */
4347 var28 = (long)var_char;
4348 var26 = var28;
4349 goto RET_LABEL27;
4350 RET_LABEL27:(void)0;
4351 }
4352 }
4353 {
4354 { /* Inline kernel#Int#+ (var19,var26) on <var19:Int> */
4355 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
4356 /* <var26:Int> isa OTHER */
4357 var31 = 1; /* easy <var26:Int> isa OTHER*/
4358 if (unlikely(!var31)) {
4359 var_class_name34 = type_core__Int.name;
4360 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
4361 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4362 fatal_exit(1);
4363 }
4364 var35 = var19 + var26;
4365 var29 = var35;
4366 goto RET_LABEL30;
4367 RET_LABEL30:(void)0;
4368 }
4369 }
4370 var_h = var29;
4371 {
4372 var36 = core___core__Int___Discrete__successor(var_i, 1l);
4373 }
4374 var_i = var36;
4375 }
4376 BREAK_label: (void)0;
4377 {
4378 { /* Inline abstract_text#Text#hash_cache= (self,var_h) on <self:Text> */
4379 var38 = (val*)(var_h<<2|1);
4380 self->attrs[COLOR_core__abstract_text__Text___hash_cache].val = var38; /* _hash_cache on <self:Text> */
4381 RET_LABEL37:(void)0;
4382 }
4383 }
4384 } else {
4385 }
4386 {
4387 { /* Inline abstract_text#Text#hash_cache (self) on <self:Text> */
4388 var41 = self->attrs[COLOR_core__abstract_text__Text___hash_cache].val; /* _hash_cache on <self:Text> */
4389 var39 = var41;
4390 RET_LABEL40:(void)0;
4391 }
4392 }
4393 if (unlikely(var39 == NULL)) {
4394 PRINT_ERROR("Runtime error: %s", "Cast failed");
4395 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 964);
4396 fatal_exit(1);
4397 }
4398 var42 = (long)(var39)>>2;
4399 var = var42;
4400 goto RET_LABEL;
4401 RET_LABEL:;
4402 return var;
4403 }
4404 /* method abstract_text#FlatText#items for (self: FlatText): NativeString */
4405 char* core___core__FlatText___items(val* self) {
4406 char* var /* : NativeString */;
4407 char* var1 /* : NativeString */;
4408 var1 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
4409 var = var1;
4410 RET_LABEL:;
4411 return var;
4412 }
4413 /* method abstract_text#FlatText#length for (self: FlatText): Int */
4414 long core___core__FlatText___Text__length(val* self) {
4415 long var /* : Int */;
4416 long var1 /* : Int */;
4417 var1 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatText> */
4418 var = var1;
4419 RET_LABEL:;
4420 return var;
4421 }
4422 /* method abstract_text#FlatText#bytelen for (self: FlatText): Int */
4423 long core___core__FlatText___Text__bytelen(val* self) {
4424 long var /* : Int */;
4425 long var1 /* : Int */;
4426 var1 = self->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <self:FlatText> */
4427 var = var1;
4428 RET_LABEL:;
4429 return var;
4430 }
4431 /* method abstract_text#StringCharView#target for (self: StringCharView): Text */
4432 val* core__abstract_text___core__abstract_text__StringCharView___target(val* self) {
4433 val* var /* : Text */;
4434 val* var1 /* : Text */;
4435 var1 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:StringCharView> */
4436 if (unlikely(var1 == NULL)) {
4437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4438 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
4439 fatal_exit(1);
4440 }
4441 var = var1;
4442 RET_LABEL:;
4443 return var;
4444 }
4445 /* method abstract_text#StringCharView#target= for (self: StringCharView, Text) */
4446 void core__abstract_text___core__abstract_text__StringCharView___target_61d(val* self, val* p0) {
4447 short int var /* : Bool */;
4448 int cltype;
4449 int idtype;
4450 const struct type* type_struct;
4451 const char* var_class_name;
4452 /* Covariant cast for argument 0 (target) <p0:Text> isa SELFTYPE */
4453 /* <p0:Text> isa SELFTYPE */
4454 type_struct = self->type->resolution_table->types[COLOR_core__abstract_text__StringCharView__SELFTYPE];
4455 cltype = type_struct->color;
4456 idtype = type_struct->id;
4457 if(cltype >= p0->type->table_size) {
4458 var = 0;
4459 } else {
4460 var = p0->type->type_table[cltype] == idtype;
4461 }
4462 if (unlikely(!var)) {
4463 var_class_name = p0 == NULL ? "null" : p0->type->name;
4464 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
4465 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
4466 fatal_exit(1);
4467 }
4468 self->attrs[COLOR_core__abstract_text__StringCharView___target].val = p0; /* _target on <self:StringCharView> */
4469 RET_LABEL:;
4470 }
4471 /* method abstract_text#StringCharView#is_empty for (self: StringCharView): Bool */
4472 short int core__abstract_text___core__abstract_text__StringCharView___core__abstract_collection__Collection__is_empty(val* self) {
4473 short int var /* : Bool */;
4474 val* var1 /* : Text */;
4475 val* var3 /* : Text */;
4476 short int var4 /* : Bool */;
4477 {
4478 { /* Inline abstract_text#StringCharView#target (self) on <self:StringCharView> */
4479 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:StringCharView> */
4480 if (unlikely(var3 == NULL)) {
4481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4482 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
4483 fatal_exit(1);
4484 }
4485 var1 = var3;
4486 RET_LABEL2:(void)0;
4487 }
4488 }
4489 {
4490 var4 = ((short int(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__is_empty]))(var1); /* is_empty on <var1:Text>*/
4491 }
4492 var = var4;
4493 goto RET_LABEL;
4494 RET_LABEL:;
4495 return var;
4496 }
4497 /* method abstract_text#StringCharView#length for (self: StringCharView): Int */
4498 long core__abstract_text___core__abstract_text__StringCharView___core__abstract_collection__Collection__length(val* self) {
4499 long var /* : Int */;
4500 val* var1 /* : Text */;
4501 val* var3 /* : Text */;
4502 long var4 /* : Int */;
4503 {
4504 { /* Inline abstract_text#StringCharView#target (self) on <self:StringCharView> */
4505 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:StringCharView> */
4506 if (unlikely(var3 == NULL)) {
4507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4508 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1138);
4509 fatal_exit(1);
4510 }
4511 var1 = var3;
4512 RET_LABEL2:(void)0;
4513 }
4514 }
4515 {
4516 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__length]))(var1); /* length on <var1:Text>*/
4517 }
4518 var = var4;
4519 goto RET_LABEL;
4520 RET_LABEL:;
4521 return var;
4522 }
4523 /* method abstract_text#StringCharView#iterator for (self: StringCharView): IndexedIterator[Char] */
4524 val* core__abstract_text___core__abstract_text__StringCharView___core__abstract_collection__Collection__iterator(val* self) {
4525 val* var /* : IndexedIterator[Char] */;
4526 val* var1 /* : IndexedIterator[nullable Object] */;
4527 {
4528 var1 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead__iterator_from]))(self, 0l); /* iterator_from on <self:StringCharView>*/
4529 }
4530 var = var1;
4531 goto RET_LABEL;
4532 RET_LABEL:;
4533 return var;
4534 }
4535 /* method abstract_text#StringCharView#reverse_iterator for (self: StringCharView): IndexedIterator[Char] */
4536 val* core__abstract_text___core__abstract_text__StringCharView___core__abstract_collection__SequenceRead__reverse_iterator(val* self) {
4537 val* var /* : IndexedIterator[Char] */;
4538 long var1 /* : Int */;
4539 long var2 /* : Int */;
4540 short int var4 /* : Bool */;
4541 int cltype;
4542 int idtype;
4543 const char* var_class_name;
4544 long var5 /* : Int */;
4545 val* var6 /* : IndexedIterator[nullable Object] */;
4546 {
4547 var1 = core__abstract_text___core__abstract_text__StringCharView___core__abstract_collection__Collection__length(self);
4548 }
4549 {
4550 { /* Inline kernel#Int#- (var1,1l) on <var1:Int> */
4551 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4552 /* <1l:Int> isa OTHER */
4553 var4 = 1; /* easy <1l:Int> isa OTHER*/
4554 if (unlikely(!var4)) {
4555 var_class_name = type_core__Int.name;
4556 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4557 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4558 fatal_exit(1);
4559 }
4560 var5 = var1 - 1l;
4561 var2 = var5;
4562 goto RET_LABEL3;
4563 RET_LABEL3:(void)0;
4564 }
4565 }
4566 {
4567 var6 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead__reverse_iterator_from]))(self, var2); /* reverse_iterator_from on <self:StringCharView>*/
4568 }
4569 var = var6;
4570 goto RET_LABEL;
4571 RET_LABEL:;
4572 return var;
4573 }
4574 /* method abstract_text#StringCharView#init for (self: StringCharView) */
4575 void core__abstract_text___core__abstract_text__StringCharView___core__kernel__Object__init(val* self) {
4576 {
4577 ((void(*)(val* self))(self->class->vft[COLOR_core__abstract_text___core__abstract_text__StringCharView___core__kernel__Object__init]))(self); /* init on <self:StringCharView>*/
4578 }
4579 RET_LABEL:;
4580 }
4581 /* method abstract_text#StringByteView#target for (self: StringByteView): Text */
4582 val* core__abstract_text___core__abstract_text__StringByteView___target(val* self) {
4583 val* var /* : Text */;
4584 val* var1 /* : Text */;
4585 var1 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:StringByteView> */
4586 if (unlikely(var1 == NULL)) {
4587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4588 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
4589 fatal_exit(1);
4590 }
4591 var = var1;
4592 RET_LABEL:;
4593 return var;
4594 }
4595 /* method abstract_text#StringByteView#target= for (self: StringByteView, Text) */
4596 void core__abstract_text___core__abstract_text__StringByteView___target_61d(val* self, val* p0) {
4597 short int var /* : Bool */;
4598 int cltype;
4599 int idtype;
4600 const struct type* type_struct;
4601 const char* var_class_name;
4602 /* Covariant cast for argument 0 (target) <p0:Text> isa SELFTYPE */
4603 /* <p0:Text> isa SELFTYPE */
4604 type_struct = self->type->resolution_table->types[COLOR_core__abstract_text__StringByteView__SELFTYPE];
4605 cltype = type_struct->color;
4606 idtype = type_struct->id;
4607 if(cltype >= p0->type->table_size) {
4608 var = 0;
4609 } else {
4610 var = p0->type->type_table[cltype] == idtype;
4611 }
4612 if (unlikely(!var)) {
4613 var_class_name = p0 == NULL ? "null" : p0->type->name;
4614 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
4615 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
4616 fatal_exit(1);
4617 }
4618 self->attrs[COLOR_core__abstract_text__StringByteView___target].val = p0; /* _target on <self:StringByteView> */
4619 RET_LABEL:;
4620 }
4621 /* method abstract_text#StringByteView#is_empty for (self: StringByteView): Bool */
4622 short int core__abstract_text___core__abstract_text__StringByteView___core__abstract_collection__Collection__is_empty(val* self) {
4623 short int var /* : Bool */;
4624 val* var1 /* : Text */;
4625 val* var3 /* : Text */;
4626 short int var4 /* : Bool */;
4627 {
4628 { /* Inline abstract_text#StringByteView#target (self) on <self:StringByteView> */
4629 var3 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:StringByteView> */
4630 if (unlikely(var3 == NULL)) {
4631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4632 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
4633 fatal_exit(1);
4634 }
4635 var1 = var3;
4636 RET_LABEL2:(void)0;
4637 }
4638 }
4639 {
4640 var4 = ((short int(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__is_empty]))(var1); /* is_empty on <var1:Text>*/
4641 }
4642 var = var4;
4643 goto RET_LABEL;
4644 RET_LABEL:;
4645 return var;
4646 }
4647 /* method abstract_text#StringByteView#length for (self: StringByteView): Int */
4648 long core__abstract_text___core__abstract_text__StringByteView___core__abstract_collection__Collection__length(val* self) {
4649 long var /* : Int */;
4650 val* var1 /* : Text */;
4651 val* var3 /* : Text */;
4652 long var4 /* : Int */;
4653 {
4654 { /* Inline abstract_text#StringByteView#target (self) on <self:StringByteView> */
4655 var3 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:StringByteView> */
4656 if (unlikely(var3 == NULL)) {
4657 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4658 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
4659 fatal_exit(1);
4660 }
4661 var1 = var3;
4662 RET_LABEL2:(void)0;
4663 }
4664 }
4665 {
4666 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var1); /* bytelen on <var1:Text>*/
4667 }
4668 var = var4;
4669 goto RET_LABEL;
4670 RET_LABEL:;
4671 return var;
4672 }
4673 /* method abstract_text#StringByteView#iterator for (self: StringByteView): Iterator[Byte] */
4674 val* core__abstract_text___core__abstract_text__StringByteView___core__abstract_collection__Collection__iterator(val* self) {
4675 val* var /* : Iterator[Byte] */;
4676 val* var1 /* : IndexedIterator[nullable Object] */;
4677 {
4678 var1 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead__iterator_from]))(self, 0l); /* iterator_from on <self:StringByteView>*/
4679 }
4680 var = var1;
4681 goto RET_LABEL;
4682 RET_LABEL:;
4683 return var;
4684 }
4685 /* method abstract_text#StringByteView#reverse_iterator for (self: StringByteView): IndexedIterator[Byte] */
4686 val* core__abstract_text___core__abstract_text__StringByteView___core__abstract_collection__SequenceRead__reverse_iterator(val* self) {
4687 val* var /* : IndexedIterator[Byte] */;
4688 val* var1 /* : Text */;
4689 val* var3 /* : Text */;
4690 long var4 /* : Int */;
4691 long var5 /* : Int */;
4692 short int var7 /* : Bool */;
4693 int cltype;
4694 int idtype;
4695 const char* var_class_name;
4696 long var8 /* : Int */;
4697 val* var9 /* : IndexedIterator[nullable Object] */;
4698 {
4699 { /* Inline abstract_text#StringByteView#target (self) on <self:StringByteView> */
4700 var3 = self->attrs[COLOR_core__abstract_text__StringByteView___target].val; /* _target on <self:StringByteView> */
4701 if (unlikely(var3 == NULL)) {
4702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
4703 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1156);
4704 fatal_exit(1);
4705 }
4706 var1 = var3;
4707 RET_LABEL2:(void)0;
4708 }
4709 }
4710 {
4711 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__Text__bytelen]))(var1); /* bytelen on <var1:Text>*/
4712 }
4713 {
4714 { /* Inline kernel#Int#- (var4,1l) on <var4:Int> */
4715 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4716 /* <1l:Int> isa OTHER */
4717 var7 = 1; /* easy <1l:Int> isa OTHER*/
4718 if (unlikely(!var7)) {
4719 var_class_name = type_core__Int.name;
4720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4721 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4722 fatal_exit(1);
4723 }
4724 var8 = var4 - 1l;
4725 var5 = var8;
4726 goto RET_LABEL6;
4727 RET_LABEL6:(void)0;
4728 }
4729 }
4730 {
4731 var9 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead__reverse_iterator_from]))(self, var5); /* reverse_iterator_from on <self:StringByteView>*/
4732 }
4733 var = var9;
4734 goto RET_LABEL;
4735 RET_LABEL:;
4736 return var;
4737 }
4738 /* method abstract_text#StringByteView#init for (self: StringByteView) */
4739 void core__abstract_text___core__abstract_text__StringByteView___core__kernel__Object__init(val* self) {
4740 {
4741 ((void(*)(val* self))(self->class->vft[COLOR_core__abstract_text___core__abstract_text__StringByteView___core__kernel__Object__init]))(self); /* init on <self:StringByteView>*/
4742 }
4743 RET_LABEL:;
4744 }
4745 /* method abstract_text#String#to_s for (self: String): String */
4746 val* core___core__String___Object__to_s(val* self) {
4747 val* var /* : String */;
4748 var = self;
4749 goto RET_LABEL;
4750 RET_LABEL:;
4751 return var;
4752 }
4753 /* method abstract_text#String#to_snake_case for (self: String): String */
4754 val* core___core__String___to_snake_case(val* self) {
4755 val* var /* : String */;
4756 short int var1 /* : Bool */;
4757 val* var2 /* : Buffer */;
4758 long var3 /* : Int */;
4759 val* var4 /* : Buffer */;
4760 val* var_new_str /* var new_str: Buffer */;
4761 short int var_prev_is_lower /* var prev_is_lower: Bool */;
4762 short int var_prev_is_upper /* var prev_is_upper: Bool */;
4763 long var_i /* var i: Int */;
4764 long var5 /* : Int */;
4765 long var_ /* var : Int */;
4766 short int var6 /* : Bool */;
4767 short int var8 /* : Bool */;
4768 int cltype;
4769 int idtype;
4770 const char* var_class_name;
4771 short int var9 /* : Bool */;
4772 val* var10 /* : SequenceRead[Char] */;
4773 val* var11 /* : nullable Object */;
4774 uint32_t var12 /* : Char */;
4775 uint32_t var_char /* var char: Char */;
4776 short int var13 /* : Bool */;
4777 short int var14 /* : Bool */;
4778 short int var15 /* : Bool */;
4779 short int var16 /* : Bool */;
4780 short int var_17 /* var : Bool */;
4781 long var18 /* : Int */;
4782 short int var20 /* : Bool */;
4783 int cltype21;
4784 int idtype22;
4785 const char* var_class_name23;
4786 long var24 /* : Int */;
4787 long var25 /* : Int */;
4788 short int var26 /* : Bool */;
4789 short int var28 /* : Bool */;
4790 int cltype29;
4791 int idtype30;
4792 const char* var_class_name31;
4793 short int var32 /* : Bool */;
4794 short int var_33 /* var : Bool */;
4795 val* var34 /* : SequenceRead[Char] */;
4796 long var35 /* : Int */;
4797 short int var37 /* : Bool */;
4798 int cltype38;
4799 int idtype39;
4800 const char* var_class_name40;
4801 long var41 /* : Int */;
4802 val* var42 /* : nullable Object */;
4803 short int var43 /* : Bool */;
4804 uint32_t var44 /* : Char */;
4805 uint32_t var45 /* : Char */;
4806 long var46 /* : Int */;
4807 val* var47 /* : String */;
4808 {
4809 var1 = core___core__Text___is_lower(self);
4810 }
4811 if (var1){
4812 var = self;
4813 goto RET_LABEL;
4814 } else {
4815 }
4816 var2 = NEW_core__Buffer(&type_core__Buffer);
4817 {
4818 var3 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:String>*/
4819 }
4820 {
4821 var4 = core__flat___Buffer___with_cap(var2, var3);
4822 }
4823 var_new_str = var4;
4824 var_prev_is_lower = 0;
4825 var_prev_is_upper = 0;
4826 var_i = 0l;
4827 {
4828 var5 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:String>*/
4829 }
4830 var_ = var5;
4831 for(;;) {
4832 {
4833 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
4834 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
4835 /* <var_:Int> isa OTHER */
4836 var8 = 1; /* easy <var_:Int> isa OTHER*/
4837 if (unlikely(!var8)) {
4838 var_class_name = type_core__Int.name;
4839 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4840 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4841 fatal_exit(1);
4842 }
4843 var9 = var_i < var_;
4844 var6 = var9;
4845 goto RET_LABEL7;
4846 RET_LABEL7:(void)0;
4847 }
4848 }
4849 if (var6){
4850 } else {
4851 goto BREAK_label;
4852 }
4853 {
4854 var10 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:String>*/
4855 }
4856 {
4857 var11 = ((val*(*)(val* self, long p0))((((long)var10&3)?class_info[((long)var10&3)]:var10->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var10, var_i); /* [] on <var10:SequenceRead[Char]>*/
4858 }
4859 var12 = (uint32_t)((long)(var11)>>2);
4860 var_char = var12;
4861 {
4862 var13 = core___core__Char___is_lower(var_char);
4863 }
4864 if (var13){
4865 {
4866 ((void(*)(val* self, uint32_t p0))(var_new_str->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_new_str, var_char); /* add on <var_new_str:Buffer>*/
4867 }
4868 var_prev_is_lower = 1;
4869 var_prev_is_upper = 0;
4870 } else {
4871 {
4872 var14 = core___core__Char___is_upper(var_char);
4873 }
4874 if (var14){
4875 if (var_prev_is_lower){
4876 {
4877 ((void(*)(val* self, uint32_t p0))(var_new_str->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_new_str, '_'); /* add on <var_new_str:Buffer>*/
4878 }
4879 } else {
4880 var_17 = var_prev_is_upper;
4881 if (var_prev_is_upper){
4882 {
4883 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
4884 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4885 /* <1l:Int> isa OTHER */
4886 var20 = 1; /* easy <1l:Int> isa OTHER*/
4887 if (unlikely(!var20)) {
4888 var_class_name23 = type_core__Int.name;
4889 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23);
4890 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4891 fatal_exit(1);
4892 }
4893 var24 = var_i + 1l;
4894 var18 = var24;
4895 goto RET_LABEL19;
4896 RET_LABEL19:(void)0;
4897 }
4898 }
4899 {
4900 var25 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:String>*/
4901 }
4902 {
4903 { /* Inline kernel#Int#< (var18,var25) on <var18:Int> */
4904 /* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
4905 /* <var25:Int> isa OTHER */
4906 var28 = 1; /* easy <var25:Int> isa OTHER*/
4907 if (unlikely(!var28)) {
4908 var_class_name31 = type_core__Int.name;
4909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
4910 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4911 fatal_exit(1);
4912 }
4913 var32 = var18 < var25;
4914 var26 = var32;
4915 goto RET_LABEL27;
4916 RET_LABEL27:(void)0;
4917 }
4918 }
4919 var16 = var26;
4920 } else {
4921 var16 = var_17;
4922 }
4923 var_33 = var16;
4924 if (var16){
4925 {
4926 var34 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__chars]))(self); /* chars on <self:String>*/
4927 }
4928 {
4929 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
4930 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4931 /* <1l:Int> isa OTHER */
4932 var37 = 1; /* easy <1l:Int> isa OTHER*/
4933 if (unlikely(!var37)) {
4934 var_class_name40 = type_core__Int.name;
4935 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
4936 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4937 fatal_exit(1);
4938 }
4939 var41 = var_i + 1l;
4940 var35 = var41;
4941 goto RET_LABEL36;
4942 RET_LABEL36:(void)0;
4943 }
4944 }
4945 {
4946 var42 = ((val*(*)(val* self, long p0))((((long)var34&3)?class_info[((long)var34&3)]:var34->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var34, var35); /* [] on <var34:SequenceRead[Char]>*/
4947 }
4948 {
4949 var44 = (uint32_t)((long)(var42)>>2);
4950 var43 = core___core__Char___is_lower(var44);
4951 }
4952 var15 = var43;
4953 } else {
4954 var15 = var_33;
4955 }
4956 if (var15){
4957 {
4958 ((void(*)(val* self, uint32_t p0))(var_new_str->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_new_str, '_'); /* add on <var_new_str:Buffer>*/
4959 }
4960 } else {
4961 }
4962 }
4963 {
4964 var45 = core___core__Char___to_lower(var_char);
4965 }
4966 {
4967 ((void(*)(val* self, uint32_t p0))(var_new_str->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_new_str, var45); /* add on <var_new_str:Buffer>*/
4968 }
4969 var_prev_is_lower = 0;
4970 var_prev_is_upper = 1;
4971 } else {
4972 {
4973 ((void(*)(val* self, uint32_t p0))(var_new_str->class->vft[COLOR_core__abstract_text__Buffer__add]))(var_new_str, var_char); /* add on <var_new_str:Buffer>*/
4974 }
4975 var_prev_is_lower = 0;
4976 var_prev_is_upper = 0;
4977 }
4978 }
4979 {
4980 var46 = core___core__Int___Discrete__successor(var_i, 1l);
4981 }
4982 var_i = var46;
4983 }
4984 BREAK_label: (void)0;
4985 {
4986 var47 = ((val*(*)(val* self))(var_new_str->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_new_str); /* to_s on <var_new_str:Buffer>*/
4987 }
4988 var = var47;
4989 goto RET_LABEL;
4990 RET_LABEL:;
4991 return var;
4992 }
4993 /* method abstract_text#Buffer#is_dirty for (self: Buffer): Bool */
4994 short int core___core__Buffer___is_dirty(val* self) {
4995 short int var /* : Bool */;
4996 short int var1 /* : Bool */;
4997 var1 = self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s; /* _is_dirty on <self:Buffer> */
4998 var = var1;
4999 RET_LABEL:;
5000 return var;
5001 }
5002 /* method abstract_text#Buffer#is_dirty= for (self: Buffer, Bool) */
5003 void core___core__Buffer___is_dirty_61d(val* self, short int p0) {
5004 self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s = p0; /* _is_dirty on <self:Buffer> */
5005 RET_LABEL:;
5006 }
5007 /* method abstract_text#Buffer#written for (self: Buffer): Bool */
5008 short int core___core__Buffer___written(val* self) {
5009 short int var /* : Bool */;
5010 short int var1 /* : Bool */;
5011 var1 = self->attrs[COLOR_core__abstract_text__Buffer___written].s; /* _written on <self:Buffer> */
5012 var = var1;
5013 RET_LABEL:;
5014 return var;
5015 }
5016 /* method abstract_text#Buffer#written= for (self: Buffer, Bool) */
5017 void core___core__Buffer___written_61d(val* self, short int p0) {
5018 self->attrs[COLOR_core__abstract_text__Buffer___written].s = p0; /* _written on <self:Buffer> */
5019 RET_LABEL:;
5020 }
5021 /* method abstract_text#Buffer#[]= for (self: Buffer, Int, Char) */
5022 void core___core__Buffer____91d_93d_61d(val* self, long p0, uint32_t p1) {
5023 const char* var_class_name;
5024 var_class_name = self == NULL ? "null" : self->type->name;
5025 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "[]=", var_class_name);
5026 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1367);
5027 fatal_exit(1);
5028 RET_LABEL:;
5029 }
5030 /* method abstract_text#Buffer#add for (self: Buffer, Char) */
5031 void core___core__Buffer___add(val* self, uint32_t p0) {
5032 const char* var_class_name;
5033 var_class_name = self == NULL ? "null" : self->type->name;
5034 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "add", var_class_name);
5035 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1372);
5036 fatal_exit(1);
5037 RET_LABEL:;
5038 }
5039 /* method abstract_text#Buffer#enlarge for (self: Buffer, Int) */
5040 void core___core__Buffer___enlarge(val* self, long p0) {
5041 const char* var_class_name;
5042 var_class_name = self == NULL ? "null" : self->type->name;
5043 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "enlarge", var_class_name);
5044 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1386);
5045 fatal_exit(1);
5046 RET_LABEL:;
5047 }
5048 /* method abstract_text#Buffer#append for (self: Buffer, Text) */
5049 void core___core__Buffer___append(val* self, val* p0) {
5050 const char* var_class_name;
5051 var_class_name = self == NULL ? "null" : self->type->name;
5052 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "append", var_class_name);
5053 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1389);
5054 fatal_exit(1);
5055 RET_LABEL:;
5056 }
5057 /* method abstract_text#Buffer#hash for (self: Buffer): Int */
5058 long core___core__Buffer___core__kernel__Object__hash(val* self) {
5059 long var /* : Int */;
5060 short int var1 /* : Bool */;
5061 short int var3 /* : Bool */;
5062 long var5 /* : Int */;
5063 {
5064 { /* Inline abstract_text#Buffer#is_dirty (self) on <self:Buffer> */
5065 var3 = self->attrs[COLOR_core__abstract_text__Buffer___is_dirty].s; /* _is_dirty on <self:Buffer> */
5066 var1 = var3;
5067 RET_LABEL2:(void)0;
5068 }
5069 }
5070 if (var1){
5071 {
5072 { /* Inline abstract_text#Text#hash_cache= (self,((val*)NULL)) on <self:Buffer> */
5073 self->attrs[COLOR_core__abstract_text__Text___hash_cache].val = ((val*)NULL); /* _hash_cache on <self:Buffer> */
5074 RET_LABEL4:(void)0;
5075 }
5076 }
5077 } else {
5078 }
5079 {
5080 var5 = ((long(*)(val* self))(self->class->vft[COLOR_core___core__Buffer___core__kernel__Object__hash]))(self); /* hash on <self:Buffer>*/
5081 }
5082 var = var5;
5083 goto RET_LABEL;
5084 RET_LABEL:;
5085 return var;
5086 }
5087 /* method abstract_text#Buffer#chars for (self: Buffer): Sequence[Char] */
5088 val* core___core__Buffer___Text__chars(val* self) {
5089 val* var /* : Sequence[Char] */;
5090 const char* var_class_name;
5091 var_class_name = self == NULL ? "null" : self->type->name;
5092 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "chars", var_class_name);
5093 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1467);
5094 fatal_exit(1);
5095 RET_LABEL:;
5096 return var;
5097 }
5098 /* method abstract_text#Object#to_s for (self: Object): String */
5099 val* core__abstract_text___Object___to_s(val* self) {
5100 val* var /* : String */;
5101 val* var1 /* : String */;
5102 {
5103 var1 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_text__Object__inspect]))(self); /* inspect on <self:Object>*/
5104 }
5105 var = var1;
5106 goto RET_LABEL;
5107 RET_LABEL:;
5108 return var;
5109 }
5110 /* method abstract_text#Object#native_class_name for (self: Object): NativeString */
5111 char* core__abstract_text___Object___native_class_name(val* self) {
5112 char* var /* : NativeString */;
5113 const char* var_class_name;
5114 char* var1 /* : NativeString */;
5115 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
5116 var1 = (char*)var_class_name;
5117 var = var1;
5118 goto RET_LABEL;
5119 RET_LABEL:;
5120 return var;
5121 }
5122 /* method abstract_text#Object#class_name for (self: Object): String */
5123 val* core__abstract_text___Object___class_name(val* self) {
5124 val* var /* : String */;
5125 char* var1 /* : NativeString */;
5126 const char* var_class_name;
5127 char* var3 /* : NativeString */;
5128 val* var4 /* : String */;
5129 {
5130 { /* Inline abstract_text#Object#native_class_name (self) on <self:Object> */
5131 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
5132 var3 = (char*)var_class_name;
5133 var1 = var3;
5134 goto RET_LABEL2;
5135 RET_LABEL2:(void)0;
5136 }
5137 }
5138 {
5139 var4 = core__flat___NativeString___core__abstract_text__Object__to_s(var1);
5140 }
5141 var = var4;
5142 goto RET_LABEL;
5143 RET_LABEL:;
5144 return var;
5145 }
5146 /* method abstract_text#Object#inspect for (self: Object): String */
5147 val* core__abstract_text___Object___inspect(val* self) {
5148 val* var /* : String */;
5149 val* var1 /* : NativeArray[String] */;
5150 static val* varonce;
5151 static val* varonce2;
5152 val* var3 /* : String */;
5153 char* var4 /* : NativeString */;
5154 val* var5 /* : String */;
5155 static val* varonce6;
5156 val* var7 /* : String */;
5157 char* var8 /* : NativeString */;
5158 val* var9 /* : String */;
5159 val* var10 /* : String */;
5160 val* var11 /* : String */;
5161 if (unlikely(varonce==NULL)) {
5162 var1 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5163 if (likely(varonce2!=NULL)) {
5164 var3 = varonce2;
5165 } else {
5166 var4 = "<";
5167 var5 = core__flat___NativeString___to_s_full(var4, 1l, 1l);
5168 var3 = var5;
5169 varonce2 = var3;
5170 }
5171 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
5172 if (likely(varonce6!=NULL)) {
5173 var7 = varonce6;
5174 } else {
5175 var8 = ">";
5176 var9 = core__flat___NativeString___to_s_full(var8, 1l, 1l);
5177 var7 = var9;
5178 varonce6 = var7;
5179 }
5180 ((struct instance_core__NativeArray*)var1)->values[2]=var7;
5181 } else {
5182 var1 = varonce;
5183 varonce = NULL;
5184 }
5185 {
5186 var10 = core__abstract_text___Object___inspect_head(self);
5187 }
5188 ((struct instance_core__NativeArray*)var1)->values[1]=var10;
5189 {
5190 var11 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
5191 }
5192 varonce = var1;
5193 var = var11;
5194 goto RET_LABEL;
5195 RET_LABEL:;
5196 return var;
5197 }
5198 /* method abstract_text#Object#inspect_head for (self: Object): String */
5199 val* core__abstract_text___Object___inspect_head(val* self) {
5200 val* var /* : String */;
5201 val* var1 /* : NativeArray[String] */;
5202 static val* varonce;
5203 static val* varonce2;
5204 val* var3 /* : String */;
5205 char* var4 /* : NativeString */;
5206 val* var5 /* : String */;
5207 val* var6 /* : String */;
5208 long var7 /* : Int */;
5209 val* var8 /* : String */;
5210 val* var9 /* : String */;
5211 if (unlikely(varonce==NULL)) {
5212 var1 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5213 if (likely(varonce2!=NULL)) {
5214 var3 = varonce2;
5215 } else {
5216 var4 = ":#";
5217 var5 = core__flat___NativeString___to_s_full(var4, 2l, 2l);
5218 var3 = var5;
5219 varonce2 = var3;
5220 }
5221 ((struct instance_core__NativeArray*)var1)->values[1]=var3;
5222 } else {
5223 var1 = varonce;
5224 varonce = NULL;
5225 }
5226 {
5227 var6 = core__abstract_text___Object___class_name(self);
5228 }
5229 ((struct instance_core__NativeArray*)var1)->values[0]=var6;
5230 {
5231 var7 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Object__object_id]))(self); /* object_id on <self:Object>*/
5232 }
5233 {
5234 var8 = core__abstract_text___Int___to_hex(var7);
5235 }
5236 ((struct instance_core__NativeArray*)var1)->values[2]=var8;
5237 {
5238 var9 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
5239 }
5240 varonce = var1;
5241 var = var9;
5242 goto RET_LABEL;
5243 RET_LABEL:;
5244 return var;
5245 }
5246 /* method abstract_text#Bool#to_s for (self: Bool): String */
5247 val* core__abstract_text___Bool___Object__to_s(short int self) {
5248 val* var /* : String */;
5249 static val* varonce;
5250 static int varonce_guard;
5251 val* var1 /* : String */;
5252 static val* varonce2;
5253 val* var3 /* : String */;
5254 char* var4 /* : NativeString */;
5255 val* var5 /* : String */;
5256 static val* varonce6;
5257 static int varonce6_guard;
5258 val* var7 /* : String */;
5259 static val* varonce8;
5260 val* var9 /* : String */;
5261 char* var10 /* : NativeString */;
5262 val* var11 /* : String */;
5263 if (self){
5264 if (likely(varonce_guard)) {
5265 var1 = varonce;
5266 } else {
5267 if (likely(varonce2!=NULL)) {
5268 var3 = varonce2;
5269 } else {
5270 var4 = "true";
5271 var5 = core__flat___NativeString___to_s_full(var4, 4l, 4l);
5272 var3 = var5;
5273 varonce2 = var3;
5274 }
5275 var1 = var3;
5276 varonce = var1;
5277 varonce_guard = 1;
5278 }
5279 var = var1;
5280 goto RET_LABEL;
5281 } else {
5282 if (likely(varonce6_guard)) {
5283 var7 = varonce6;
5284 } else {
5285 if (likely(varonce8!=NULL)) {
5286 var9 = varonce8;
5287 } else {
5288 var10 = "false";
5289 var11 = core__flat___NativeString___to_s_full(var10, 5l, 5l);
5290 var9 = var11;
5291 varonce8 = var9;
5292 }
5293 var7 = var9;
5294 varonce6 = var7;
5295 varonce6_guard = 1;
5296 }
5297 var = var7;
5298 goto RET_LABEL;
5299 }
5300 RET_LABEL:;
5301 return var;
5302 }
5303 /* method abstract_text#Bool#to_s for (self: Object): String */
5304 val* VIRTUAL_core__abstract_text___Bool___Object__to_s(val* self) {
5305 val* var /* : String */;
5306 val* var1 /* : String */;
5307 short int var2 /* : Bool */;
5308 var2 = (short int)((long)(self)>>2);
5309 var1 = core__abstract_text___Bool___Object__to_s(var2);
5310 var = var1;
5311 RET_LABEL:;
5312 return var;
5313 }
5314 /* method abstract_text#Byte#byte_to_s_len for (self: Byte): Int */
5315 long core__abstract_text___Byte___byte_to_s_len(unsigned char self) {
5316 long var /* : Int */;
5317 long var1 /* : Int */;
5318 var1 = abstract_text___Byte_byte_to_s_len___impl(self);
5319 var = var1;
5320 goto RET_LABEL;
5321 RET_LABEL:;
5322 return var;
5323 }
5324 /* method abstract_text#Byte#native_byte_to_s for (self: Byte, NativeString, Int) */
5325 void core__abstract_text___Byte___native_byte_to_s(unsigned char self, char* p0, long p1) {
5326 abstract_text___Byte_native_byte_to_s___impl(self, p0, p1);
5327 RET_LABEL:;
5328 }
5329 /* method abstract_text#Byte#to_s for (self: Byte): String */
5330 val* core__abstract_text___Byte___Object__to_s(unsigned char self) {
5331 val* var /* : String */;
5332 long var1 /* : Int */;
5333 long var3 /* : Int */;
5334 long var_nslen /* var nslen: Int */;
5335 char* var4 /* : NativeString */;
5336 long var5 /* : Int */;
5337 short int var7 /* : Bool */;
5338 int cltype;
5339 int idtype;
5340 const char* var_class_name;
5341 long var8 /* : Int */;
5342 char* var9 /* : NativeString */;
5343 char* var11 /* : NativeString */;
5344 char* var_ns /* var ns: NativeString */;
5345 long var13 /* : Int */;
5346 short int var15 /* : Bool */;
5347 int cltype16;
5348 int idtype17;
5349 const char* var_class_name18;
5350 long var19 /* : Int */;
5351 val* var21 /* : String */;
5352 val* var22 /* : nullable Int */;
5353 {
5354 { /* Inline abstract_text#Byte#byte_to_s_len (self) on <self:Byte> */
5355 var3 = abstract_text___Byte_byte_to_s_len___impl(self);
5356 var1 = var3;
5357 goto RET_LABEL2;
5358 RET_LABEL2:(void)0;
5359 }
5360 }
5361 var_nslen = var1;
5362 var4 = NULL/*special!*/;
5363 {
5364 { /* Inline kernel#Int#+ (var_nslen,1l) on <var_nslen:Int> */
5365 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5366 /* <1l:Int> isa OTHER */
5367 var7 = 1; /* easy <1l:Int> isa OTHER*/
5368 if (unlikely(!var7)) {
5369 var_class_name = type_core__Int.name;
5370 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5371 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5372 fatal_exit(1);
5373 }
5374 var8 = var_nslen + 1l;
5375 var5 = var8;
5376 goto RET_LABEL6;
5377 RET_LABEL6:(void)0;
5378 }
5379 }
5380 {
5381 { /* Inline native#NativeString#new (var4,var5) on <var4:NativeString> */
5382 var11 = (char*)nit_alloc(var5);
5383 var9 = var11;
5384 goto RET_LABEL10;
5385 RET_LABEL10:(void)0;
5386 }
5387 }
5388 var_ns = var9;
5389 {
5390 { /* Inline native#NativeString#[]= (var_ns,var_nslen,((unsigned char)0x00)) on <var_ns:NativeString> */
5391 var_ns[var_nslen]=(unsigned char)((unsigned char)0x00);
5392 RET_LABEL12:(void)0;
5393 }
5394 }
5395 {
5396 { /* Inline kernel#Int#+ (var_nslen,1l) on <var_nslen:Int> */
5397 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5398 /* <1l:Int> isa OTHER */
5399 var15 = 1; /* easy <1l:Int> isa OTHER*/
5400 if (unlikely(!var15)) {
5401 var_class_name18 = type_core__Int.name;
5402 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
5403 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5404 fatal_exit(1);
5405 }
5406 var19 = var_nslen + 1l;
5407 var13 = var19;
5408 goto RET_LABEL14;
5409 RET_LABEL14:(void)0;
5410 }
5411 }
5412 {
5413 { /* Inline abstract_text#Byte#native_byte_to_s (self,var_ns,var13) on <self:Byte> */
5414 abstract_text___Byte_native_byte_to_s___impl(self, var_ns, var13);
5415 RET_LABEL20:(void)0;
5416 }
5417 }
5418 {
5419 var22 = (val*)(var_nslen<<2|1);
5420 var21 = core__flat___NativeString___to_s_unsafe(var_ns, var22);
5421 }
5422 var = var21;
5423 goto RET_LABEL;
5424 RET_LABEL:;
5425 return var;
5426 }
5427 /* method abstract_text#Byte#to_s for (self: Object): String */
5428 val* VIRTUAL_core__abstract_text___Byte___Object__to_s(val* self) {
5429 val* var /* : String */;
5430 val* var1 /* : String */;
5431 unsigned char var2 /* : Byte */;
5432 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Object to Byte */;
5433 var1 = core__abstract_text___Byte___Object__to_s(var2);
5434 var = var1;
5435 RET_LABEL:;
5436 return var;
5437 }
5438 /* method abstract_text#Int#strerror_ext for (self: Int): NativeString */
5439 char* core__abstract_text___Int___strerror_ext(long self) {
5440 char* var /* : NativeString */;
5441 char* var1 /* : NativeString */;
5442 var1 = abstract_text___Int_strerror_ext___impl(self);
5443 var = var1;
5444 goto RET_LABEL;
5445 RET_LABEL:;
5446 return var;
5447 }
5448 /* method abstract_text#Int#strerror for (self: Int): String */
5449 val* core__abstract_text___Int___strerror(long self) {
5450 val* var /* : String */;
5451 char* var1 /* : NativeString */;
5452 char* var3 /* : NativeString */;
5453 val* var4 /* : String */;
5454 {
5455 { /* Inline abstract_text#Int#strerror_ext (self) on <self:Int> */
5456 var3 = abstract_text___Int_strerror_ext___impl(self);
5457 var1 = var3;
5458 goto RET_LABEL2;
5459 RET_LABEL2:(void)0;
5460 }
5461 }
5462 {
5463 var4 = core__flat___NativeString___core__abstract_text__Object__to_s(var1);
5464 }
5465 var = var4;
5466 goto RET_LABEL;
5467 RET_LABEL:;
5468 return var;
5469 }
5470 /* method abstract_text#Int#fill_buffer for (self: Int, Buffer, Int, Bool) */
5471 void core__abstract_text___Int___fill_buffer(long self, val* p0, long p1, short int p2) {
5472 val* var_s /* var s: Buffer */;
5473 long var_base /* var base: Int */;
5474 short int var_signed /* var signed: Bool */;
5475 short int var /* : Bool */;
5476 short int var2 /* : Bool */;
5477 int cltype;
5478 int idtype;
5479 const char* var_class_name;
5480 short int var3 /* : Bool */;
5481 long var4 /* : Int */;
5482 long var6 /* : Int */;
5483 long var_n /* var n: Int */;
5484 val* var7 /* : SequenceRead[Char] */;
5485 val* var8 /* : nullable Object */;
5486 short int var9 /* : Bool */;
5487 short int var11 /* : Bool */;
5488 val* var12 /* : SequenceRead[Char] */;
5489 val* var13 /* : nullable Object */;
5490 long var14 /* : Int */;
5491 long var15 /* : Int */;
5492 short int var17 /* : Bool */;
5493 int cltype18;
5494 int idtype19;
5495 const char* var_class_name20;
5496 long var21 /* : Int */;
5497 long var_pos /* var pos: Int */;
5498 short int var22 /* : Bool */;
5499 short int var23 /* : Bool */;
5500 short int var25 /* : Bool */;
5501 int cltype26;
5502 int idtype27;
5503 const char* var_class_name28;
5504 short int var29 /* : Bool */;
5505 short int var_ /* var : Bool */;
5506 short int var30 /* : Bool */;
5507 short int var32 /* : Bool */;
5508 int cltype33;
5509 int idtype34;
5510 const char* var_class_name35;
5511 short int var36 /* : Bool */;
5512 val* var37 /* : SequenceRead[Char] */;
5513 long var38 /* : Int */;
5514 long var40 /* : Int */;
5515 uint32_t var41 /* : Char */;
5516 val* var42 /* : nullable Object */;
5517 long var43 /* : Int */;
5518 short int var45 /* : Bool */;
5519 int cltype46;
5520 int idtype47;
5521 const char* var_class_name48;
5522 long var49 /* : Int */;
5523 long var50 /* : Int */;
5524 short int var52 /* : Bool */;
5525 int cltype53;
5526 int idtype54;
5527 const char* var_class_name55;
5528 long var56 /* : Int */;
5529 var_s = p0;
5530 var_base = p1;
5531 var_signed = p2;
5532 {
5533 { /* Inline kernel#Int#< (self,0l) on <self:Int> */
5534 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5535 /* <0l:Int> isa OTHER */
5536 var2 = 1; /* easy <0l:Int> isa OTHER*/
5537 if (unlikely(!var2)) {
5538 var_class_name = type_core__Int.name;
5539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5540 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5541 fatal_exit(1);
5542 }
5543 var3 = self < 0l;
5544 var = var3;
5545 goto RET_LABEL1;
5546 RET_LABEL1:(void)0;
5547 }
5548 }
5549 if (var){
5550 {
5551 { /* Inline kernel#Int#unary - (self) on <self:Int> */
5552 var6 = -self;
5553 var4 = var6;
5554 goto RET_LABEL5;
5555 RET_LABEL5:(void)0;
5556 }
5557 }
5558 var_n = var4;
5559 {
5560 var7 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__chars]))(var_s); /* chars on <var_s:Buffer>*/
5561 }
5562 {
5563 var8 = (val*)((long)('-')<<2|2);
5564 ((void(*)(val* self, long p0, val* p1))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(var7, 0l, var8); /* []= on <var7:SequenceRead[Char](Sequence[Char])>*/
5565 }
5566 } else {
5567 {
5568 { /* Inline kernel#Int#== (self,0l) on <self:Int> */
5569 var11 = self == 0l;
5570 var9 = var11;
5571 goto RET_LABEL10;
5572 RET_LABEL10:(void)0;
5573 }
5574 }
5575 if (var9){
5576 {
5577 var12 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__chars]))(var_s); /* chars on <var_s:Buffer>*/
5578 }
5579 {
5580 var13 = (val*)((long)('0')<<2|2);
5581 ((void(*)(val* self, long p0, val* p1))((((long)var12&3)?class_info[((long)var12&3)]:var12->class)->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(var12, 0l, var13); /* []= on <var12:SequenceRead[Char](Sequence[Char])>*/
5582 }
5583 goto RET_LABEL;
5584 } else {
5585 var_n = self;
5586 }
5587 }
5588 {
5589 var14 = core___core__Int___digit_count(self, var_base);
5590 }
5591 {
5592 { /* Inline kernel#Int#- (var14,1l) on <var14:Int> */
5593 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5594 /* <1l:Int> isa OTHER */
5595 var17 = 1; /* easy <1l:Int> isa OTHER*/
5596 if (unlikely(!var17)) {
5597 var_class_name20 = type_core__Int.name;
5598 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
5599 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5600 fatal_exit(1);
5601 }
5602 var21 = var14 - 1l;
5603 var15 = var21;
5604 goto RET_LABEL16;
5605 RET_LABEL16:(void)0;
5606 }
5607 }
5608 var_pos = var15;
5609 for(;;) {
5610 {
5611 { /* Inline kernel#Int#>= (var_pos,0l) on <var_pos:Int> */
5612 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5613 /* <0l:Int> isa OTHER */
5614 var25 = 1; /* easy <0l:Int> isa OTHER*/
5615 if (unlikely(!var25)) {
5616 var_class_name28 = type_core__Int.name;
5617 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
5618 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
5619 fatal_exit(1);
5620 }
5621 var29 = var_pos >= 0l;
5622 var23 = var29;
5623 goto RET_LABEL24;
5624 RET_LABEL24:(void)0;
5625 }
5626 }
5627 var_ = var23;
5628 if (var23){
5629 {
5630 { /* Inline kernel#Int#> (var_n,0l) on <var_n:Int> */
5631 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5632 /* <0l:Int> isa OTHER */
5633 var32 = 1; /* easy <0l:Int> isa OTHER*/
5634 if (unlikely(!var32)) {
5635 var_class_name35 = type_core__Int.name;
5636 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
5637 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
5638 fatal_exit(1);
5639 }
5640 var36 = var_n > 0l;
5641 var30 = var36;
5642 goto RET_LABEL31;
5643 RET_LABEL31:(void)0;
5644 }
5645 }
5646 var22 = var30;
5647 } else {
5648 var22 = var_;
5649 }
5650 if (var22){
5651 {
5652 var37 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__chars]))(var_s); /* chars on <var_s:Buffer>*/
5653 }
5654 {
5655 { /* Inline kernel#Int#% (var_n,var_base) on <var_n:Int> */
5656 var40 = var_n % var_base;
5657 var38 = var40;
5658 goto RET_LABEL39;
5659 RET_LABEL39:(void)0;
5660 }
5661 }
5662 {
5663 var41 = core___core__Int___to_c(var38);
5664 }
5665 {
5666 var42 = (val*)((long)(var41)<<2|2);
5667 ((void(*)(val* self, long p0, val* p1))((((long)var37&3)?class_info[((long)var37&3)]:var37->class)->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(var37, var_pos, var42); /* []= on <var37:SequenceRead[Char](Sequence[Char])>*/
5668 }
5669 {
5670 { /* Inline kernel#Int#/ (var_n,var_base) on <var_n:Int> */
5671 /* Covariant cast for argument 0 (i) <var_base:Int> isa OTHER */
5672 /* <var_base:Int> isa OTHER */
5673 var45 = 1; /* easy <var_base:Int> isa OTHER*/
5674 if (unlikely(!var45)) {
5675 var_class_name48 = type_core__Int.name;
5676 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
5677 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
5678 fatal_exit(1);
5679 }
5680 var49 = var_n / var_base;
5681 var43 = var49;
5682 goto RET_LABEL44;
5683 RET_LABEL44:(void)0;
5684 }
5685 }
5686 var_n = var43;
5687 {
5688 { /* Inline kernel#Int#- (var_pos,1l) on <var_pos:Int> */
5689 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5690 /* <1l:Int> isa OTHER */
5691 var52 = 1; /* easy <1l:Int> isa OTHER*/
5692 if (unlikely(!var52)) {
5693 var_class_name55 = type_core__Int.name;
5694 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
5695 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5696 fatal_exit(1);
5697 }
5698 var56 = var_pos - 1l;
5699 var50 = var56;
5700 goto RET_LABEL51;
5701 RET_LABEL51:(void)0;
5702 }
5703 }
5704 var_pos = var50;
5705 } else {
5706 goto BREAK_label;
5707 }
5708 }
5709 BREAK_label: (void)0;
5710 RET_LABEL:;
5711 }
5712 /* method abstract_text#Int#int_to_s_len for (self: Int): Int */
5713 long core__abstract_text___Int___int_to_s_len(long self) {
5714 long var /* : Int */;
5715 long var1 /* : Int */;
5716 var1 = abstract_text___Int_int_to_s_len___impl(self);
5717 var = var1;
5718 goto RET_LABEL;
5719 RET_LABEL:;
5720 return var;
5721 }
5722 /* method abstract_text#Int#native_int_to_s for (self: Int, NativeString, Int) */
5723 void core__abstract_text___Int___native_int_to_s(long self, char* p0, long p1) {
5724 abstract_text___Int_native_int_to_s___impl(self, p0, p1);
5725 RET_LABEL:;
5726 }
5727 /* method abstract_text#Int#to_hex for (self: Int): String */
5728 val* core__abstract_text___Int___to_hex(long self) {
5729 val* var /* : String */;
5730 val* var1 /* : String */;
5731 {
5732 var1 = core__flat___Int___to_base(self, 16l, 0);
5733 }
5734 var = var1;
5735 goto RET_LABEL;
5736 RET_LABEL:;
5737 return var;
5738 }
5739 /* method abstract_text#Float#to_s for (self: Float): String */
5740 val* core__abstract_text___Float___Object__to_s(double self) {
5741 val* var /* : String */;
5742 val* var1 /* : String */;
5743 val* var_str /* var str: String */;
5744 short int var2 /* : Bool */;
5745 long var3 /* : Int */;
5746 short int var4 /* : Bool */;
5747 short int var6 /* : Bool */;
5748 short int var7 /* : Bool */;
5749 short int var_ /* var : Bool */;
5750 short int var8 /* : Bool */;
5751 short int var10 /* : Bool */;
5752 long var11 /* : Int */;
5753 long var_len /* var len: Int */;
5754 long var_i /* var i: Int */;
5755 long var12 /* : Int */;
5756 short int var14 /* : Bool */;
5757 int cltype;
5758 int idtype;
5759 const char* var_class_name;
5760 long var15 /* : Int */;
5761 long var_16 /* var : Int */;
5762 short int var17 /* : Bool */;
5763 short int var19 /* : Bool */;
5764 int cltype20;
5765 int idtype21;
5766 const char* var_class_name22;
5767 short int var23 /* : Bool */;
5768 long var24 /* : Int */;
5769 short int var26 /* : Bool */;
5770 int cltype27;
5771 int idtype28;
5772 const char* var_class_name29;
5773 long var30 /* : Int */;
5774 long var31 /* : Int */;
5775 short int var33 /* : Bool */;
5776 int cltype34;
5777 int idtype35;
5778 const char* var_class_name36;
5779 long var37 /* : Int */;
5780 long var_j /* var j: Int */;
5781 val* var38 /* : SequenceRead[Char] */;
5782 val* var39 /* : nullable Object */;
5783 uint32_t var40 /* : Char */;
5784 uint32_t var_c /* var c: Char */;
5785 short int var41 /* : Bool */;
5786 short int var43 /* : Bool */;
5787 short int var45 /* : Bool */;
5788 short int var47 /* : Bool */;
5789 long var48 /* : Int */;
5790 short int var50 /* : Bool */;
5791 int cltype51;
5792 int idtype52;
5793 const char* var_class_name53;
5794 long var54 /* : Int */;
5795 val* var55 /* : Text */;
5796 long var56 /* : Int */;
5797 short int var58 /* : Bool */;
5798 int cltype59;
5799 int idtype60;
5800 const char* var_class_name61;
5801 long var62 /* : Int */;
5802 val* var63 /* : Text */;
5803 long var64 /* : Int */;
5804 {
5805 var1 = core__abstract_text___Float___to_precision(self, 3l);
5806 }
5807 var_str = var1;
5808 {
5809 var3 = core__math___Float___is_inf(self);
5810 }
5811 {
5812 { /* Inline kernel#Int#!= (var3,0l) on <var3:Int> */
5813 var6 = var3 == 0l;
5814 var7 = !var6;
5815 var4 = var7;
5816 goto RET_LABEL5;
5817 RET_LABEL5:(void)0;
5818 }
5819 }
5820 var_ = var4;
5821 if (var4){
5822 var2 = var_;
5823 } else {
5824 {
5825 { /* Inline math#Float#is_nan (self) on <self:Float> */
5826 var10 = math___Float_is_nan___impl(self);
5827 var8 = var10;
5828 goto RET_LABEL9;
5829 RET_LABEL9:(void)0;
5830 }
5831 }
5832 var2 = var8;
5833 }
5834 if (var2){
5835 var = var_str;
5836 goto RET_LABEL;
5837 } else {
5838 }
5839 {
5840 var11 = ((long(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__length]))(var_str); /* length on <var_str:String>*/
5841 }
5842 var_len = var11;
5843 var_i = 0l;
5844 {
5845 { /* Inline kernel#Int#- (var_len,1l) on <var_len:Int> */
5846 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5847 /* <1l:Int> isa OTHER */
5848 var14 = 1; /* easy <1l:Int> isa OTHER*/
5849 if (unlikely(!var14)) {
5850 var_class_name = type_core__Int.name;
5851 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5852 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5853 fatal_exit(1);
5854 }
5855 var15 = var_len - 1l;
5856 var12 = var15;
5857 goto RET_LABEL13;
5858 RET_LABEL13:(void)0;
5859 }
5860 }
5861 var_16 = var12;
5862 for(;;) {
5863 {
5864 { /* Inline kernel#Int#<= (var_i,var_16) on <var_i:Int> */
5865 /* Covariant cast for argument 0 (i) <var_16:Int> isa OTHER */
5866 /* <var_16:Int> isa OTHER */
5867 var19 = 1; /* easy <var_16:Int> isa OTHER*/
5868 if (unlikely(!var19)) {
5869 var_class_name22 = type_core__Int.name;
5870 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
5871 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
5872 fatal_exit(1);
5873 }
5874 var23 = var_i <= var_16;
5875 var17 = var23;
5876 goto RET_LABEL18;
5877 RET_LABEL18:(void)0;
5878 }
5879 }
5880 if (var17){
5881 } else {
5882 goto BREAK_label;
5883 }
5884 {
5885 { /* Inline kernel#Int#- (var_len,1l) on <var_len:Int> */
5886 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5887 /* <1l:Int> isa OTHER */
5888 var26 = 1; /* easy <1l:Int> isa OTHER*/
5889 if (unlikely(!var26)) {
5890 var_class_name29 = type_core__Int.name;
5891 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
5892 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5893 fatal_exit(1);
5894 }
5895 var30 = var_len - 1l;
5896 var24 = var30;
5897 goto RET_LABEL25;
5898 RET_LABEL25:(void)0;
5899 }
5900 }
5901 {
5902 { /* Inline kernel#Int#- (var24,var_i) on <var24:Int> */
5903 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
5904 /* <var_i:Int> isa OTHER */
5905 var33 = 1; /* easy <var_i:Int> isa OTHER*/
5906 if (unlikely(!var33)) {
5907 var_class_name36 = type_core__Int.name;
5908 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
5909 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
5910 fatal_exit(1);
5911 }
5912 var37 = var24 - var_i;
5913 var31 = var37;
5914 goto RET_LABEL32;
5915 RET_LABEL32:(void)0;
5916 }
5917 }
5918 var_j = var31;
5919 {
5920 var38 = ((val*(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__chars]))(var_str); /* chars on <var_str:String>*/
5921 }
5922 {
5923 var39 = ((val*(*)(val* self, long p0))((((long)var38&3)?class_info[((long)var38&3)]:var38->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var38, var_j); /* [] on <var38:SequenceRead[Char]>*/
5924 }
5925 var40 = (uint32_t)((long)(var39)>>2);
5926 var_c = var40;
5927 {
5928 { /* Inline kernel#Char#== (var_c,'0') on <var_c:Char> */
5929 var43 = var_c == '0';
5930 var41 = var43;
5931 goto RET_LABEL42;
5932 RET_LABEL42:(void)0;
5933 }
5934 }
5935 if (var41){
5936 goto BREAK_label44;
5937 } else {
5938 {
5939 { /* Inline kernel#Char#== (var_c,'.') on <var_c:Char> */
5940 var47 = var_c == '.';
5941 var45 = var47;
5942 goto RET_LABEL46;
5943 RET_LABEL46:(void)0;
5944 }
5945 }
5946 if (var45){
5947 {
5948 { /* Inline kernel#Int#+ (var_j,2l) on <var_j:Int> */
5949 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
5950 /* <2l:Int> isa OTHER */
5951 var50 = 1; /* easy <2l:Int> isa OTHER*/
5952 if (unlikely(!var50)) {
5953 var_class_name53 = type_core__Int.name;
5954 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
5955 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5956 fatal_exit(1);
5957 }
5958 var54 = var_j + 2l;
5959 var48 = var54;
5960 goto RET_LABEL49;
5961 RET_LABEL49:(void)0;
5962 }
5963 }
5964 {
5965 var55 = ((val*(*)(val* self, long p0, long p1))(var_str->class->vft[COLOR_core__abstract_text__Text__substring]))(var_str, 0l, var48); /* substring on <var_str:String>*/
5966 }
5967 var = var55;
5968 goto RET_LABEL;
5969 } else {
5970 {
5971 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
5972 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5973 /* <1l:Int> isa OTHER */
5974 var58 = 1; /* easy <1l:Int> isa OTHER*/
5975 if (unlikely(!var58)) {
5976 var_class_name61 = type_core__Int.name;
5977 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
5978 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5979 fatal_exit(1);
5980 }
5981 var62 = var_j + 1l;
5982 var56 = var62;
5983 goto RET_LABEL57;
5984 RET_LABEL57:(void)0;
5985 }
5986 }
5987 {
5988 var63 = ((val*(*)(val* self, long p0, long p1))(var_str->class->vft[COLOR_core__abstract_text__Text__substring]))(var_str, 0l, var56); /* substring on <var_str:String>*/
5989 }
5990 var = var63;
5991 goto RET_LABEL;
5992 }
5993 }
5994 BREAK_label44: (void)0;
5995 {
5996 var64 = core___core__Int___Discrete__successor(var_i, 1l);
5997 }
5998 var_i = var64;
5999 }
6000 BREAK_label: (void)0;
6001 var = var_str;
6002 goto RET_LABEL;
6003 RET_LABEL:;
6004 return var;
6005 }
6006 /* method abstract_text#Float#to_s for (self: Object): String */
6007 val* VIRTUAL_core__abstract_text___Float___Object__to_s(val* self) {
6008 val* var /* : String */;
6009 val* var1 /* : String */;
6010 double var2 /* : Float */;
6011 var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Object to Float */;
6012 var1 = core__abstract_text___Float___Object__to_s(var2);
6013 var = var1;
6014 RET_LABEL:;
6015 return var;
6016 }
6017 /* method abstract_text#Float#to_precision for (self: Float, Int): String */
6018 val* core__abstract_text___Float___to_precision(double self, long p0) {
6019 val* var /* : String */;
6020 long var_decimals /* var decimals: Int */;
6021 short int var1 /* : Bool */;
6022 short int var3 /* : Bool */;
6023 static val* varonce;
6024 val* var4 /* : String */;
6025 char* var5 /* : NativeString */;
6026 val* var6 /* : String */;
6027 long var7 /* : Int */;
6028 long var_isinf /* var isinf: Int */;
6029 short int var8 /* : Bool */;
6030 short int var10 /* : Bool */;
6031 static val* varonce11;
6032 val* var12 /* : String */;
6033 char* var13 /* : NativeString */;
6034 val* var14 /* : String */;
6035 long var15 /* : Int */;
6036 long var17 /* : Int */;
6037 short int var18 /* : Bool */;
6038 short int var20 /* : Bool */;
6039 static val* varonce21;
6040 val* var22 /* : String */;
6041 char* var23 /* : NativeString */;
6042 val* var24 /* : String */;
6043 short int var25 /* : Bool */;
6044 short int var27 /* : Bool */;
6045 long var28 /* : Int */;
6046 long var30 /* : Int */;
6047 val* var31 /* : String */;
6048 double var_f /* var f: Float */;
6049 long var_i /* var i: Int */;
6050 long var_ /* var : Int */;
6051 short int var32 /* : Bool */;
6052 short int var34 /* : Bool */;
6053 int cltype;
6054 int idtype;
6055 const char* var_class_name;
6056 short int var35 /* : Bool */;
6057 double var36 /* : Float */;
6058 short int var38 /* : Bool */;
6059 int cltype39;
6060 int idtype40;
6061 const char* var_class_name41;
6062 double var42 /* : Float */;
6063 long var43 /* : Int */;
6064 short int var44 /* : Bool */;
6065 short int var46 /* : Bool */;
6066 int cltype47;
6067 int idtype48;
6068 const char* var_class_name49;
6069 short int var50 /* : Bool */;
6070 double var51 /* : Float */;
6071 short int var53 /* : Bool */;
6072 int cltype54;
6073 int idtype55;
6074 const char* var_class_name56;
6075 double var57 /* : Float */;
6076 double var58 /* : Float */;
6077 short int var60 /* : Bool */;
6078 int cltype61;
6079 int idtype62;
6080 const char* var_class_name63;
6081 double var64 /* : Float */;
6082 long var65 /* : Int */;
6083 long var67 /* : Int */;
6084 long var_i68 /* var i: Int */;
6085 short int var69 /* : Bool */;
6086 short int var71 /* : Bool */;
6087 static val* varonce72;
6088 val* var73 /* : String */;
6089 char* var74 /* : NativeString */;
6090 val* var75 /* : String */;
6091 static val* varonce76;
6092 val* var77 /* : String */;
6093 char* var78 /* : NativeString */;
6094 val* var79 /* : String */;
6095 val* var80 /* : String */;
6096 val* var81 /* : String */;
6097 long var82 /* : Int */;
6098 val* var83 /* : String */;
6099 val* var_s /* var s: String */;
6100 long var84 /* : Int */;
6101 long var_sl /* var sl: Int */;
6102 short int var85 /* : Bool */;
6103 short int var87 /* : Bool */;
6104 int cltype88;
6105 int idtype89;
6106 const char* var_class_name90;
6107 short int var91 /* : Bool */;
6108 long var92 /* : Int */;
6109 short int var94 /* : Bool */;
6110 int cltype95;
6111 int idtype96;
6112 const char* var_class_name97;
6113 long var98 /* : Int */;
6114 val* var99 /* : Text */;
6115 val* var_p1 /* var p1: nullable Object */;
6116 long var100 /* : Int */;
6117 short int var102 /* : Bool */;
6118 int cltype103;
6119 int idtype104;
6120 const char* var_class_name105;
6121 long var106 /* : Int */;
6122 val* var107 /* : Text */;
6123 val* var_p2 /* var p2: nullable Object */;
6124 static val* varonce108;
6125 val* var109 /* : String */;
6126 char* var110 /* : NativeString */;
6127 val* var111 /* : String */;
6128 static val* varonce112;
6129 val* var113 /* : String */;
6130 char* var114 /* : NativeString */;
6131 val* var115 /* : String */;
6132 long var116 /* : Int */;
6133 short int var118 /* : Bool */;
6134 int cltype119;
6135 int idtype120;
6136 const char* var_class_name121;
6137 long var122 /* : Int */;
6138 val* var123 /* : String */;
6139 val* var124 /* : String */;
6140 short int var125 /* : Bool */;
6141 short int var127 /* : Bool */;
6142 int cltype128;
6143 int idtype129;
6144 const char* var_class_name130;
6145 short int var131 /* : Bool */;
6146 static val* varonce132;
6147 val* var133 /* : String */;
6148 char* var134 /* : NativeString */;
6149 val* var135 /* : String */;
6150 val* var136 /* : String */;
6151 static val* varonce137;
6152 val* var138 /* : String */;
6153 char* var139 /* : NativeString */;
6154 val* var140 /* : String */;
6155 val* var141 /* : String */;
6156 val* var142 /* : String */;
6157 var_decimals = p0;
6158 {
6159 { /* Inline math#Float#is_nan (self) on <self:Float> */
6160 var3 = math___Float_is_nan___impl(self);
6161 var1 = var3;
6162 goto RET_LABEL2;
6163 RET_LABEL2:(void)0;
6164 }
6165 }
6166 if (var1){
6167 if (likely(varonce!=NULL)) {
6168 var4 = varonce;
6169 } else {
6170 var5 = "nan";
6171 var6 = core__flat___NativeString___to_s_full(var5, 3l, 3l);
6172 var4 = var6;
6173 varonce = var4;
6174 }
6175 var = var4;
6176 goto RET_LABEL;
6177 } else {
6178 }
6179 {
6180 var7 = core__math___Float___is_inf(self);
6181 }
6182 var_isinf = var7;
6183 {
6184 { /* Inline kernel#Int#== (var_isinf,1l) on <var_isinf:Int> */
6185 var10 = var_isinf == 1l;
6186 var8 = var10;
6187 goto RET_LABEL9;
6188 RET_LABEL9:(void)0;
6189 }
6190 }
6191 if (var8){
6192 if (likely(varonce11!=NULL)) {
6193 var12 = varonce11;
6194 } else {
6195 var13 = "inf";
6196 var14 = core__flat___NativeString___to_s_full(var13, 3l, 3l);
6197 var12 = var14;
6198 varonce11 = var12;
6199 }
6200 var = var12;
6201 goto RET_LABEL;
6202 } else {
6203 {
6204 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
6205 var17 = -1l;
6206 var15 = var17;
6207 goto RET_LABEL16;
6208 RET_LABEL16:(void)0;
6209 }
6210 }
6211 {
6212 { /* Inline kernel#Int#== (var_isinf,var15) on <var_isinf:Int> */
6213 var20 = var_isinf == var15;
6214 var18 = var20;
6215 goto RET_LABEL19;
6216 RET_LABEL19:(void)0;
6217 }
6218 }
6219 if (var18){
6220 if (likely(varonce21!=NULL)) {
6221 var22 = varonce21;
6222 } else {
6223 var23 = "-inf";
6224 var24 = core__flat___NativeString___to_s_full(var23, 4l, 4l);
6225 var22 = var24;
6226 varonce21 = var22;
6227 }
6228 var = var22;
6229 goto RET_LABEL;
6230 } else {
6231 }
6232 }
6233 {
6234 { /* Inline kernel#Int#== (var_decimals,0l) on <var_decimals:Int> */
6235 var27 = var_decimals == 0l;
6236 var25 = var27;
6237 goto RET_LABEL26;
6238 RET_LABEL26:(void)0;
6239 }
6240 }
6241 if (var25){
6242 {
6243 { /* Inline kernel#Float#to_i (self) on <self:Float> */
6244 var30 = (long)self;
6245 var28 = var30;
6246 goto RET_LABEL29;
6247 RET_LABEL29:(void)0;
6248 }
6249 }
6250 {
6251 var31 = core__flat___Int___core__abstract_text__Object__to_s(var28);
6252 }
6253 var = var31;
6254 goto RET_LABEL;
6255 } else {
6256 }
6257 var_f = self;
6258 var_i = 0l;
6259 var_ = var_decimals;
6260 for(;;) {
6261 {
6262 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
6263 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
6264 /* <var_:Int> isa OTHER */
6265 var34 = 1; /* easy <var_:Int> isa OTHER*/
6266 if (unlikely(!var34)) {
6267 var_class_name = type_core__Int.name;
6268 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6269 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
6270 fatal_exit(1);
6271 }
6272 var35 = var_i < var_;
6273 var32 = var35;
6274 goto RET_LABEL33;
6275 RET_LABEL33:(void)0;
6276 }
6277 }
6278 if (var32){
6279 } else {
6280 goto BREAK_label;
6281 }
6282 {
6283 { /* Inline kernel#Float#* (var_f,10.0) on <var_f:Float> */
6284 /* Covariant cast for argument 0 (i) <10.0:Float> isa OTHER */
6285 /* <10.0:Float> isa OTHER */
6286 var38 = 1; /* easy <10.0:Float> isa OTHER*/
6287 if (unlikely(!var38)) {
6288 var_class_name41 = type_core__Float.name;
6289 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
6290 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 537);
6291 fatal_exit(1);
6292 }
6293 var42 = var_f * 10.0;
6294 var36 = var42;
6295 goto RET_LABEL37;
6296 RET_LABEL37:(void)0;
6297 }
6298 }
6299 var_f = var36;
6300 {
6301 var43 = core___core__Int___Discrete__successor(var_i, 1l);
6302 }
6303 var_i = var43;
6304 }
6305 BREAK_label: (void)0;
6306 {
6307 { /* Inline kernel#Float#> (self,0.0) on <self:Float> */
6308 /* Covariant cast for argument 0 (i) <0.0:Float> isa OTHER */
6309 /* <0.0:Float> isa OTHER */
6310 var46 = 1; /* easy <0.0:Float> isa OTHER*/
6311 if (unlikely(!var46)) {
6312 var_class_name49 = type_core__Float.name;
6313 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
6314 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 532);
6315 fatal_exit(1);
6316 }
6317 var50 = self > 0.0;
6318 var44 = var50;
6319 goto RET_LABEL45;
6320 RET_LABEL45:(void)0;
6321 }
6322 }
6323 if (var44){
6324 {
6325 { /* Inline kernel#Float#+ (var_f,0.5) on <var_f:Float> */
6326 /* Covariant cast for argument 0 (i) <0.5:Float> isa OTHER */
6327 /* <0.5:Float> isa OTHER */
6328 var53 = 1; /* easy <0.5:Float> isa OTHER*/
6329 if (unlikely(!var53)) {
6330 var_class_name56 = type_core__Float.name;
6331 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
6332 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 534);
6333 fatal_exit(1);
6334 }
6335 var57 = var_f + 0.5;
6336 var51 = var57;
6337 goto RET_LABEL52;
6338 RET_LABEL52:(void)0;
6339 }
6340 }
6341 var_f = var51;
6342 } else {
6343 {
6344 { /* Inline kernel#Float#- (var_f,0.5) on <var_f:Float> */
6345 /* Covariant cast for argument 0 (i) <0.5:Float> isa OTHER */
6346 /* <0.5:Float> isa OTHER */
6347 var60 = 1; /* easy <0.5:Float> isa OTHER*/
6348 if (unlikely(!var60)) {
6349 var_class_name63 = type_core__Float.name;
6350 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63);
6351 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 536);
6352 fatal_exit(1);
6353 }
6354 var64 = var_f - 0.5;
6355 var58 = var64;
6356 goto RET_LABEL59;
6357 RET_LABEL59:(void)0;
6358 }
6359 }
6360 var_f = var58;
6361 }
6362 {
6363 { /* Inline kernel#Float#to_i (var_f) on <var_f:Float> */
6364 var67 = (long)var_f;
6365 var65 = var67;
6366 goto RET_LABEL66;
6367 RET_LABEL66:(void)0;
6368 }
6369 }
6370 var_i68 = var65;
6371 {
6372 { /* Inline kernel#Int#== (var_i68,0l) on <var_i68:Int> */
6373 var71 = var_i68 == 0l;
6374 var69 = var71;
6375 goto RET_LABEL70;
6376 RET_LABEL70:(void)0;
6377 }
6378 }
6379 if (var69){
6380 if (likely(varonce72!=NULL)) {
6381 var73 = varonce72;
6382 } else {
6383 var74 = "0.";
6384 var75 = core__flat___NativeString___to_s_full(var74, 2l, 2l);
6385 var73 = var75;
6386 varonce72 = var73;
6387 }
6388 if (likely(varonce76!=NULL)) {
6389 var77 = varonce76;
6390 } else {
6391 var78 = "0";
6392 var79 = core__flat___NativeString___to_s_full(var78, 1l, 1l);
6393 var77 = var79;
6394 varonce76 = var77;
6395 }
6396 {
6397 var80 = ((val*(*)(val* self, long p0))(var77->class->vft[COLOR_core__abstract_text__String___42d]))(var77, var_decimals); /* * on <var77:String>*/
6398 }
6399 {
6400 var81 = ((val*(*)(val* self, val* p0))(var73->class->vft[COLOR_core__abstract_text__String___43d]))(var73, var80); /* + on <var73:String>*/
6401 }
6402 var = var81;
6403 goto RET_LABEL;
6404 } else {
6405 }
6406 {
6407 var82 = core___core__Int___abs(var_i68);
6408 }
6409 {
6410 var83 = core__flat___Int___core__abstract_text__Object__to_s(var82);
6411 }
6412 var_s = var83;
6413 {
6414 var84 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__length]))(var_s); /* length on <var_s:String>*/
6415 }
6416 var_sl = var84;
6417 {
6418 { /* Inline kernel#Int#> (var_sl,var_decimals) on <var_sl:Int> */
6419 /* Covariant cast for argument 0 (i) <var_decimals:Int> isa OTHER */
6420 /* <var_decimals:Int> isa OTHER */
6421 var87 = 1; /* easy <var_decimals:Int> isa OTHER*/
6422 if (unlikely(!var87)) {
6423 var_class_name90 = type_core__Int.name;
6424 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name90);
6425 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
6426 fatal_exit(1);
6427 }
6428 var91 = var_sl > var_decimals;
6429 var85 = var91;
6430 goto RET_LABEL86;
6431 RET_LABEL86:(void)0;
6432 }
6433 }
6434 if (var85){
6435 {
6436 { /* Inline kernel#Int#- (var_sl,var_decimals) on <var_sl:Int> */
6437 /* Covariant cast for argument 0 (i) <var_decimals:Int> isa OTHER */
6438 /* <var_decimals:Int> isa OTHER */
6439 var94 = 1; /* easy <var_decimals:Int> isa OTHER*/
6440 if (unlikely(!var94)) {
6441 var_class_name97 = type_core__Int.name;
6442 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name97);
6443 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6444 fatal_exit(1);
6445 }
6446 var98 = var_sl - var_decimals;
6447 var92 = var98;
6448 goto RET_LABEL93;
6449 RET_LABEL93:(void)0;
6450 }
6451 }
6452 {
6453 var99 = ((val*(*)(val* self, long p0, long p1))(var_s->class->vft[COLOR_core__abstract_text__Text__substring]))(var_s, 0l, var92); /* substring on <var_s:String>*/
6454 }
6455 var_p1 = var99;
6456 {
6457 { /* Inline kernel#Int#- (var_sl,var_decimals) on <var_sl:Int> */
6458 /* Covariant cast for argument 0 (i) <var_decimals:Int> isa OTHER */
6459 /* <var_decimals:Int> isa OTHER */
6460 var102 = 1; /* easy <var_decimals:Int> isa OTHER*/
6461 if (unlikely(!var102)) {
6462 var_class_name105 = type_core__Int.name;
6463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name105);
6464 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6465 fatal_exit(1);
6466 }
6467 var106 = var_sl - var_decimals;
6468 var100 = var106;
6469 goto RET_LABEL101;
6470 RET_LABEL101:(void)0;
6471 }
6472 }
6473 {
6474 var107 = ((val*(*)(val* self, long p0, long p1))(var_s->class->vft[COLOR_core__abstract_text__Text__substring]))(var_s, var100, var_decimals); /* substring on <var_s:String>*/
6475 }
6476 var_p2 = var107;
6477 } else {
6478 if (likely(varonce108!=NULL)) {
6479 var109 = varonce108;
6480 } else {
6481 var110 = "0";
6482 var111 = core__flat___NativeString___to_s_full(var110, 1l, 1l);
6483 var109 = var111;
6484 varonce108 = var109;
6485 }
6486 var_p1 = var109;
6487 if (likely(varonce112!=NULL)) {
6488 var113 = varonce112;
6489 } else {
6490 var114 = "0";
6491 var115 = core__flat___NativeString___to_s_full(var114, 1l, 1l);
6492 var113 = var115;
6493 varonce112 = var113;
6494 }
6495 {
6496 { /* Inline kernel#Int#- (var_decimals,var_sl) on <var_decimals:Int> */
6497 /* Covariant cast for argument 0 (i) <var_sl:Int> isa OTHER */
6498 /* <var_sl:Int> isa OTHER */
6499 var118 = 1; /* easy <var_sl:Int> isa OTHER*/
6500 if (unlikely(!var118)) {
6501 var_class_name121 = type_core__Int.name;
6502 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name121);
6503 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
6504 fatal_exit(1);
6505 }
6506 var122 = var_decimals - var_sl;
6507 var116 = var122;
6508 goto RET_LABEL117;
6509 RET_LABEL117:(void)0;
6510 }
6511 }
6512 {
6513 var123 = ((val*(*)(val* self, long p0))(var113->class->vft[COLOR_core__abstract_text__String___42d]))(var113, var116); /* * on <var113:String>*/
6514 }
6515 {
6516 var124 = ((val*(*)(val* self, val* p0))(var123->class->vft[COLOR_core__abstract_text__String___43d]))(var123, var_s); /* + on <var123:String>*/
6517 }
6518 var_p2 = var124;
6519 }
6520 {
6521 { /* Inline kernel#Int#< (var_i68,0l) on <var_i68:Int> */
6522 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6523 /* <0l:Int> isa OTHER */
6524 var127 = 1; /* easy <0l:Int> isa OTHER*/
6525 if (unlikely(!var127)) {
6526 var_class_name130 = type_core__Int.name;
6527 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name130);
6528 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
6529 fatal_exit(1);
6530 }
6531 var131 = var_i68 < 0l;
6532 var125 = var131;
6533 goto RET_LABEL126;
6534 RET_LABEL126:(void)0;
6535 }
6536 }
6537 if (var125){
6538 if (likely(varonce132!=NULL)) {
6539 var133 = varonce132;
6540 } else {
6541 var134 = "-";
6542 var135 = core__flat___NativeString___to_s_full(var134, 1l, 1l);
6543 var133 = var135;
6544 varonce132 = var133;
6545 }
6546 {
6547 var136 = ((val*(*)(val* self, val* p0))(var133->class->vft[COLOR_core__abstract_text__String___43d]))(var133, var_p1); /* + on <var133:String>*/
6548 }
6549 var_p1 = var136;
6550 } else {
6551 }
6552 if (likely(varonce137!=NULL)) {
6553 var138 = varonce137;
6554 } else {
6555 var139 = ".";
6556 var140 = core__flat___NativeString___to_s_full(var139, 1l, 1l);
6557 var138 = var140;
6558 varonce137 = var138;
6559 }
6560 {
6561 var141 = ((val*(*)(val* self, val* p0))(var_p1->class->vft[COLOR_core__abstract_text__String___43d]))(var_p1, var138); /* + on <var_p1:nullable Object(String)>*/
6562 }
6563 {
6564 var142 = ((val*(*)(val* self, val* p0))(var141->class->vft[COLOR_core__abstract_text__String___43d]))(var141, var_p2); /* + on <var141:String>*/
6565 }
6566 var = var142;
6567 goto RET_LABEL;
6568 RET_LABEL:;
6569 return var;
6570 }
6571 /* method abstract_text#Char#u8char_len for (self: Char): Int */
6572 long core__abstract_text___Char___u8char_len(uint32_t self) {
6573 long var /* : Int */;
6574 long var1 /* : Int */;
6575 long var3 /* : Int */;
6576 long var_c /* var c: Int */;
6577 short int var4 /* : Bool */;
6578 short int var6 /* : Bool */;
6579 int cltype;
6580 int idtype;
6581 const char* var_class_name;
6582 short int var7 /* : Bool */;
6583 short int var8 /* : Bool */;
6584 short int var10 /* : Bool */;
6585 int cltype11;
6586 int idtype12;
6587 const char* var_class_name13;
6588 short int var14 /* : Bool */;
6589 short int var15 /* : Bool */;
6590 short int var17 /* : Bool */;
6591 int cltype18;
6592 int idtype19;
6593 const char* var_class_name20;
6594 short int var21 /* : Bool */;
6595 short int var22 /* : Bool */;
6596 short int var24 /* : Bool */;
6597 int cltype25;
6598 int idtype26;
6599 const char* var_class_name27;
6600 short int var28 /* : Bool */;
6601 {
6602 { /* Inline kernel#Char#code_point (self) on <self:Char> */
6603 var3 = (long)self;
6604 var1 = var3;
6605 goto RET_LABEL2;
6606 RET_LABEL2:(void)0;
6607 }
6608 }
6609 var_c = var1;
6610 {
6611 { /* Inline kernel#Int#< (var_c,128l) on <var_c:Int> */
6612 /* Covariant cast for argument 0 (i) <128l:Int> isa OTHER */
6613 /* <128l:Int> isa OTHER */
6614 var6 = 1; /* easy <128l:Int> isa OTHER*/
6615 if (unlikely(!var6)) {
6616 var_class_name = type_core__Int.name;
6617 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6618 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
6619 fatal_exit(1);
6620 }
6621 var7 = var_c < 128l;
6622 var4 = var7;
6623 goto RET_LABEL5;
6624 RET_LABEL5:(void)0;
6625 }
6626 }
6627 if (var4){
6628 var = 1l;
6629 goto RET_LABEL;
6630 } else {
6631 }
6632 {
6633 { /* Inline kernel#Int#<= (var_c,2047l) on <var_c:Int> */
6634 /* Covariant cast for argument 0 (i) <2047l:Int> isa OTHER */
6635 /* <2047l:Int> isa OTHER */
6636 var10 = 1; /* easy <2047l:Int> isa OTHER*/
6637 if (unlikely(!var10)) {
6638 var_class_name13 = type_core__Int.name;
6639 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
6640 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6641 fatal_exit(1);
6642 }
6643 var14 = var_c <= 2047l;
6644 var8 = var14;
6645 goto RET_LABEL9;
6646 RET_LABEL9:(void)0;
6647 }
6648 }
6649 if (var8){
6650 var = 2l;
6651 goto RET_LABEL;
6652 } else {
6653 }
6654 {
6655 { /* Inline kernel#Int#<= (var_c,65535l) on <var_c:Int> */
6656 /* Covariant cast for argument 0 (i) <65535l:Int> isa OTHER */
6657 /* <65535l:Int> isa OTHER */
6658 var17 = 1; /* easy <65535l:Int> isa OTHER*/
6659 if (unlikely(!var17)) {
6660 var_class_name20 = type_core__Int.name;
6661 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
6662 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6663 fatal_exit(1);
6664 }
6665 var21 = var_c <= 65535l;
6666 var15 = var21;
6667 goto RET_LABEL16;
6668 RET_LABEL16:(void)0;
6669 }
6670 }
6671 if (var15){
6672 var = 3l;
6673 goto RET_LABEL;
6674 } else {
6675 }
6676 {
6677 { /* Inline kernel#Int#<= (var_c,1114111l) on <var_c:Int> */
6678 /* Covariant cast for argument 0 (i) <1114111l:Int> isa OTHER */
6679 /* <1114111l:Int> isa OTHER */
6680 var24 = 1; /* easy <1114111l:Int> isa OTHER*/
6681 if (unlikely(!var24)) {
6682 var_class_name27 = type_core__Int.name;
6683 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
6684 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6685 fatal_exit(1);
6686 }
6687 var28 = var_c <= 1114111l;
6688 var22 = var28;
6689 goto RET_LABEL23;
6690 RET_LABEL23:(void)0;
6691 }
6692 }
6693 if (var22){
6694 var = 4l;
6695 goto RET_LABEL;
6696 } else {
6697 }
6698 var = 1l;
6699 goto RET_LABEL;
6700 RET_LABEL:;
6701 return var;
6702 }
6703 /* method abstract_text#Char#to_s for (self: Char): String */
6704 val* core__abstract_text___Char___Object__to_s(uint32_t self) {
6705 val* var /* : String */;
6706 long var1 /* : Int */;
6707 long var_ln /* var ln: Int */;
6708 char* var2 /* : NativeString */;
6709 long var3 /* : Int */;
6710 short int var5 /* : Bool */;
6711 int cltype;
6712 int idtype;
6713 const char* var_class_name;
6714 long var6 /* : Int */;
6715 char* var7 /* : NativeString */;
6716 char* var9 /* : NativeString */;
6717 char* var_ns /* var ns: NativeString */;
6718 val* var11 /* : String */;
6719 val* var12 /* : nullable Int */;
6720 {
6721 var1 = core__abstract_text___Char___u8char_len(self);
6722 }
6723 var_ln = var1;
6724 var2 = NULL/*special!*/;
6725 {
6726 { /* Inline kernel#Int#+ (var_ln,1l) on <var_ln:Int> */
6727 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6728 /* <1l:Int> isa OTHER */
6729 var5 = 1; /* easy <1l:Int> isa OTHER*/
6730 if (unlikely(!var5)) {
6731 var_class_name = type_core__Int.name;
6732 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6733 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6734 fatal_exit(1);
6735 }
6736 var6 = var_ln + 1l;
6737 var3 = var6;
6738 goto RET_LABEL4;
6739 RET_LABEL4:(void)0;
6740 }
6741 }
6742 {
6743 { /* Inline native#NativeString#new (var2,var3) on <var2:NativeString> */
6744 var9 = (char*)nit_alloc(var3);
6745 var7 = var9;
6746 goto RET_LABEL8;
6747 RET_LABEL8:(void)0;
6748 }
6749 }
6750 var_ns = var7;
6751 {
6752 { /* Inline abstract_text#Char#u8char_tos (self,var_ns,var_ln) on <self:Char> */
6753 abstract_text___Char_u8char_tos___impl(self, var_ns, var_ln);
6754 RET_LABEL10:(void)0;
6755 }
6756 }
6757 {
6758 var12 = (val*)(var_ln<<2|1);
6759 var11 = core__flat___NativeString___to_s_unsafe(var_ns, var12);
6760 }
6761 var = var11;
6762 goto RET_LABEL;
6763 RET_LABEL:;
6764 return var;
6765 }
6766 /* method abstract_text#Char#to_s for (self: Object): String */
6767 val* VIRTUAL_core__abstract_text___Char___Object__to_s(val* self) {
6768 val* var /* : String */;
6769 val* var1 /* : String */;
6770 uint32_t var2 /* : Char */;
6771 var2 = (uint32_t)((long)(self)>>2);
6772 var1 = core__abstract_text___Char___Object__to_s(var2);
6773 var = var1;
6774 RET_LABEL:;
6775 return var;
6776 }
6777 /* method abstract_text#Char#u8char_tos for (self: Char, NativeString, Int) */
6778 void core__abstract_text___Char___u8char_tos(uint32_t self, char* p0, long p1) {
6779 abstract_text___Char_u8char_tos___impl(self, p0, p1);
6780 RET_LABEL:;
6781 }
6782 /* method abstract_text#Char#is_numeric for (self: Char): Bool */
6783 short int core__abstract_text___Char___is_numeric(uint32_t self) {
6784 short int var /* : Bool */;
6785 short int var1 /* : Bool */;
6786 short int var2 /* : Bool */;
6787 short int var4 /* : Bool */;
6788 int cltype;
6789 int idtype;
6790 const char* var_class_name;
6791 short int var5 /* : Bool */;
6792 short int var_ /* var : Bool */;
6793 short int var6 /* : Bool */;
6794 short int var8 /* : Bool */;
6795 int cltype9;
6796 int idtype10;
6797 const char* var_class_name11;
6798 short int var12 /* : Bool */;
6799 {
6800 { /* Inline kernel#Char#>= (self,'0') on <self:Char> */
6801 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
6802 /* <'0':Char> isa OTHER */
6803 var4 = 1; /* easy <'0':Char> isa OTHER*/
6804 if (unlikely(!var4)) {
6805 var_class_name = type_core__Char.name;
6806 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6807 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
6808 fatal_exit(1);
6809 }
6810 var5 = self >= '0';
6811 var2 = var5;
6812 goto RET_LABEL3;
6813 RET_LABEL3:(void)0;
6814 }
6815 }
6816 var_ = var2;
6817 if (var2){
6818 {
6819 { /* Inline kernel#Char#<= (self,'9') on <self:Char> */
6820 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
6821 /* <'9':Char> isa OTHER */
6822 var8 = 1; /* easy <'9':Char> isa OTHER*/
6823 if (unlikely(!var8)) {
6824 var_class_name11 = type_core__Char.name;
6825 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
6826 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
6827 fatal_exit(1);
6828 }
6829 var12 = self <= '9';
6830 var6 = var12;
6831 goto RET_LABEL7;
6832 RET_LABEL7:(void)0;
6833 }
6834 }
6835 var1 = var6;
6836 } else {
6837 var1 = var_;
6838 }
6839 var = var1;
6840 goto RET_LABEL;
6841 RET_LABEL:;
6842 return var;
6843 }
6844 /* method abstract_text#Char#is_hexdigit for (self: Char): Bool */
6845 short int core__abstract_text___Char___is_hexdigit(uint32_t self) {
6846 short int var /* : Bool */;
6847 short int var1 /* : Bool */;
6848 short int var2 /* : Bool */;
6849 short int var3 /* : Bool */;
6850 short int var4 /* : Bool */;
6851 short int var6 /* : Bool */;
6852 int cltype;
6853 int idtype;
6854 const char* var_class_name;
6855 short int var7 /* : Bool */;
6856 short int var_ /* var : Bool */;
6857 short int var8 /* : Bool */;
6858 short int var10 /* : Bool */;
6859 int cltype11;
6860 int idtype12;
6861 const char* var_class_name13;
6862 short int var14 /* : Bool */;
6863 short int var_15 /* var : Bool */;
6864 short int var16 /* : Bool */;
6865 short int var17 /* : Bool */;
6866 short int var19 /* : Bool */;
6867 int cltype20;
6868 int idtype21;
6869 const char* var_class_name22;
6870 short int var23 /* : Bool */;
6871 short int var_24 /* var : Bool */;
6872 short int var25 /* : Bool */;
6873 short int var27 /* : Bool */;
6874 int cltype28;
6875 int idtype29;
6876 const char* var_class_name30;
6877 short int var31 /* : Bool */;
6878 short int var_32 /* var : Bool */;
6879 short int var33 /* : Bool */;
6880 short int var34 /* : Bool */;
6881 short int var36 /* : Bool */;
6882 int cltype37;
6883 int idtype38;
6884 const char* var_class_name39;
6885 short int var40 /* : Bool */;
6886 short int var_41 /* var : Bool */;
6887 short int var42 /* : Bool */;
6888 short int var44 /* : Bool */;
6889 int cltype45;
6890 int idtype46;
6891 const char* var_class_name47;
6892 short int var48 /* : Bool */;
6893 {
6894 { /* Inline kernel#Char#>= (self,'0') on <self:Char> */
6895 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
6896 /* <'0':Char> isa OTHER */
6897 var6 = 1; /* easy <'0':Char> isa OTHER*/
6898 if (unlikely(!var6)) {
6899 var_class_name = type_core__Char.name;
6900 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6901 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
6902 fatal_exit(1);
6903 }
6904 var7 = self >= '0';
6905 var4 = var7;
6906 goto RET_LABEL5;
6907 RET_LABEL5:(void)0;
6908 }
6909 }
6910 var_ = var4;
6911 if (var4){
6912 {
6913 { /* Inline kernel#Char#<= (self,'9') on <self:Char> */
6914 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
6915 /* <'9':Char> isa OTHER */
6916 var10 = 1; /* easy <'9':Char> isa OTHER*/
6917 if (unlikely(!var10)) {
6918 var_class_name13 = type_core__Char.name;
6919 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
6920 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
6921 fatal_exit(1);
6922 }
6923 var14 = self <= '9';
6924 var8 = var14;
6925 goto RET_LABEL9;
6926 RET_LABEL9:(void)0;
6927 }
6928 }
6929 var3 = var8;
6930 } else {
6931 var3 = var_;
6932 }
6933 var_15 = var3;
6934 if (var3){
6935 var2 = var_15;
6936 } else {
6937 {
6938 { /* Inline kernel#Char#>= (self,'A') on <self:Char> */
6939 /* Covariant cast for argument 0 (i) <'A':Char> isa OTHER */
6940 /* <'A':Char> isa OTHER */
6941 var19 = 1; /* easy <'A':Char> isa OTHER*/
6942 if (unlikely(!var19)) {
6943 var_class_name22 = type_core__Char.name;
6944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
6945 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
6946 fatal_exit(1);
6947 }
6948 var23 = self >= 'A';
6949 var17 = var23;
6950 goto RET_LABEL18;
6951 RET_LABEL18:(void)0;
6952 }
6953 }
6954 var_24 = var17;
6955 if (var17){
6956 {
6957 { /* Inline kernel#Char#<= (self,'F') on <self:Char> */
6958 /* Covariant cast for argument 0 (i) <'F':Char> isa OTHER */
6959 /* <'F':Char> isa OTHER */
6960 var27 = 1; /* easy <'F':Char> isa OTHER*/
6961 if (unlikely(!var27)) {
6962 var_class_name30 = type_core__Char.name;
6963 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
6964 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
6965 fatal_exit(1);
6966 }
6967 var31 = self <= 'F';
6968 var25 = var31;
6969 goto RET_LABEL26;
6970 RET_LABEL26:(void)0;
6971 }
6972 }
6973 var16 = var25;
6974 } else {
6975 var16 = var_24;
6976 }
6977 var2 = var16;
6978 }
6979 var_32 = var2;
6980 if (var2){
6981 var1 = var_32;
6982 } else {
6983 {
6984 { /* Inline kernel#Char#>= (self,'a') on <self:Char> */
6985 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
6986 /* <'a':Char> isa OTHER */
6987 var36 = 1; /* easy <'a':Char> isa OTHER*/
6988 if (unlikely(!var36)) {
6989 var_class_name39 = type_core__Char.name;
6990 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
6991 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
6992 fatal_exit(1);
6993 }
6994 var40 = self >= 'a';
6995 var34 = var40;
6996 goto RET_LABEL35;
6997 RET_LABEL35:(void)0;
6998 }
6999 }
7000 var_41 = var34;
7001 if (var34){
7002 {
7003 { /* Inline kernel#Char#<= (self,'f') on <self:Char> */
7004 /* Covariant cast for argument 0 (i) <'f':Char> isa OTHER */
7005 /* <'f':Char> isa OTHER */
7006 var44 = 1; /* easy <'f':Char> isa OTHER*/
7007 if (unlikely(!var44)) {
7008 var_class_name47 = type_core__Char.name;
7009 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
7010 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
7011 fatal_exit(1);
7012 }
7013 var48 = self <= 'f';
7014 var42 = var48;
7015 goto RET_LABEL43;
7016 RET_LABEL43:(void)0;
7017 }
7018 }
7019 var33 = var42;
7020 } else {
7021 var33 = var_41;
7022 }
7023 var1 = var33;
7024 }
7025 var = var1;
7026 goto RET_LABEL;
7027 RET_LABEL:;
7028 return var;
7029 }
7030 /* method abstract_text#Char#from_hex for (self: Char): Int */
7031 long core__abstract_text___Char___from_hex(uint32_t self) {
7032 long var /* : Int */;
7033 short int var1 /* : Bool */;
7034 short int var2 /* : Bool */;
7035 short int var4 /* : Bool */;
7036 int cltype;
7037 int idtype;
7038 const char* var_class_name;
7039 short int var5 /* : Bool */;
7040 short int var_ /* var : Bool */;
7041 short int var6 /* : Bool */;
7042 short int var8 /* : Bool */;
7043 int cltype9;
7044 int idtype10;
7045 const char* var_class_name11;
7046 short int var12 /* : Bool */;
7047 long var13 /* : Int */;
7048 long var15 /* : Int */;
7049 long var16 /* : Int */;
7050 short int var18 /* : Bool */;
7051 int cltype19;
7052 int idtype20;
7053 const char* var_class_name21;
7054 long var22 /* : Int */;
7055 short int var23 /* : Bool */;
7056 short int var24 /* : Bool */;
7057 short int var26 /* : Bool */;
7058 int cltype27;
7059 int idtype28;
7060 const char* var_class_name29;
7061 short int var30 /* : Bool */;
7062 short int var_31 /* var : Bool */;
7063 short int var32 /* : Bool */;
7064 short int var34 /* : Bool */;
7065 int cltype35;
7066 int idtype36;
7067 const char* var_class_name37;
7068 short int var38 /* : Bool */;
7069 long var39 /* : Int */;
7070 long var41 /* : Int */;
7071 long var42 /* : Int */;
7072 short int var44 /* : Bool */;
7073 int cltype45;
7074 int idtype46;
7075 const char* var_class_name47;
7076 long var48 /* : Int */;
7077 short int var49 /* : Bool */;
7078 short int var50 /* : Bool */;
7079 short int var52 /* : Bool */;
7080 int cltype53;
7081 int idtype54;
7082 const char* var_class_name55;
7083 short int var56 /* : Bool */;
7084 short int var_57 /* var : Bool */;
7085 short int var58 /* : Bool */;
7086 short int var60 /* : Bool */;
7087 int cltype61;
7088 int idtype62;
7089 const char* var_class_name63;
7090 short int var64 /* : Bool */;
7091 long var65 /* : Int */;
7092 long var67 /* : Int */;
7093 long var68 /* : Int */;
7094 short int var70 /* : Bool */;
7095 int cltype71;
7096 int idtype72;
7097 const char* var_class_name73;
7098 long var74 /* : Int */;
7099 short int var75 /* : Bool */;
7100 {
7101 { /* Inline kernel#Char#>= (self,'0') on <self:Char> */
7102 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
7103 /* <'0':Char> isa OTHER */
7104 var4 = 1; /* easy <'0':Char> isa OTHER*/
7105 if (unlikely(!var4)) {
7106 var_class_name = type_core__Char.name;
7107 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7108 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
7109 fatal_exit(1);
7110 }
7111 var5 = self >= '0';
7112 var2 = var5;
7113 goto RET_LABEL3;
7114 RET_LABEL3:(void)0;
7115 }
7116 }
7117 var_ = var2;
7118 if (var2){
7119 {
7120 { /* Inline kernel#Char#<= (self,'9') on <self:Char> */
7121 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
7122 /* <'9':Char> isa OTHER */
7123 var8 = 1; /* easy <'9':Char> isa OTHER*/
7124 if (unlikely(!var8)) {
7125 var_class_name11 = type_core__Char.name;
7126 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
7127 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
7128 fatal_exit(1);
7129 }
7130 var12 = self <= '9';
7131 var6 = var12;
7132 goto RET_LABEL7;
7133 RET_LABEL7:(void)0;
7134 }
7135 }
7136 var1 = var6;
7137 } else {
7138 var1 = var_;
7139 }
7140 if (var1){
7141 {
7142 { /* Inline kernel#Char#code_point (self) on <self:Char> */
7143 var15 = (long)self;
7144 var13 = var15;
7145 goto RET_LABEL14;
7146 RET_LABEL14:(void)0;
7147 }
7148 }
7149 {
7150 { /* Inline kernel#Int#- (var13,48l) on <var13:Int> */
7151 /* Covariant cast for argument 0 (i) <48l:Int> isa OTHER */
7152 /* <48l:Int> isa OTHER */
7153 var18 = 1; /* easy <48l:Int> isa OTHER*/
7154 if (unlikely(!var18)) {
7155 var_class_name21 = type_core__Int.name;
7156 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
7157 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7158 fatal_exit(1);
7159 }
7160 var22 = var13 - 48l;
7161 var16 = var22;
7162 goto RET_LABEL17;
7163 RET_LABEL17:(void)0;
7164 }
7165 }
7166 var = var16;
7167 goto RET_LABEL;
7168 } else {
7169 }
7170 {
7171 { /* Inline kernel#Char#>= (self,'A') on <self:Char> */
7172 /* Covariant cast for argument 0 (i) <'A':Char> isa OTHER */
7173 /* <'A':Char> isa OTHER */
7174 var26 = 1; /* easy <'A':Char> isa OTHER*/
7175 if (unlikely(!var26)) {
7176 var_class_name29 = type_core__Char.name;
7177 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
7178 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
7179 fatal_exit(1);
7180 }
7181 var30 = self >= 'A';
7182 var24 = var30;
7183 goto RET_LABEL25;
7184 RET_LABEL25:(void)0;
7185 }
7186 }
7187 var_31 = var24;
7188 if (var24){
7189 {
7190 { /* Inline kernel#Char#<= (self,'F') on <self:Char> */
7191 /* Covariant cast for argument 0 (i) <'F':Char> isa OTHER */
7192 /* <'F':Char> isa OTHER */
7193 var34 = 1; /* easy <'F':Char> isa OTHER*/
7194 if (unlikely(!var34)) {
7195 var_class_name37 = type_core__Char.name;
7196 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
7197 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
7198 fatal_exit(1);
7199 }
7200 var38 = self <= 'F';
7201 var32 = var38;
7202 goto RET_LABEL33;
7203 RET_LABEL33:(void)0;
7204 }
7205 }
7206 var23 = var32;
7207 } else {
7208 var23 = var_31;
7209 }
7210 if (var23){
7211 {
7212 { /* Inline kernel#Char#code_point (self) on <self:Char> */
7213 var41 = (long)self;
7214 var39 = var41;
7215 goto RET_LABEL40;
7216 RET_LABEL40:(void)0;
7217 }
7218 }
7219 {
7220 { /* Inline kernel#Int#- (var39,55l) on <var39:Int> */
7221 /* Covariant cast for argument 0 (i) <55l:Int> isa OTHER */
7222 /* <55l:Int> isa OTHER */
7223 var44 = 1; /* easy <55l:Int> isa OTHER*/
7224 if (unlikely(!var44)) {
7225 var_class_name47 = type_core__Int.name;
7226 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
7227 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7228 fatal_exit(1);
7229 }
7230 var48 = var39 - 55l;
7231 var42 = var48;
7232 goto RET_LABEL43;
7233 RET_LABEL43:(void)0;
7234 }
7235 }
7236 var = var42;
7237 goto RET_LABEL;
7238 } else {
7239 }
7240 {
7241 { /* Inline kernel#Char#>= (self,'a') on <self:Char> */
7242 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
7243 /* <'a':Char> isa OTHER */
7244 var52 = 1; /* easy <'a':Char> isa OTHER*/
7245 if (unlikely(!var52)) {
7246 var_class_name55 = type_core__Char.name;
7247 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
7248 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
7249 fatal_exit(1);
7250 }
7251 var56 = self >= 'a';
7252 var50 = var56;
7253 goto RET_LABEL51;
7254 RET_LABEL51:(void)0;
7255 }
7256 }
7257 var_57 = var50;
7258 if (var50){
7259 {
7260 { /* Inline kernel#Char#<= (self,'f') on <self:Char> */
7261 /* Covariant cast for argument 0 (i) <'f':Char> isa OTHER */
7262 /* <'f':Char> isa OTHER */
7263 var60 = 1; /* easy <'f':Char> isa OTHER*/
7264 if (unlikely(!var60)) {
7265 var_class_name63 = type_core__Char.name;
7266 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63);
7267 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
7268 fatal_exit(1);
7269 }
7270 var64 = self <= 'f';
7271 var58 = var64;
7272 goto RET_LABEL59;
7273 RET_LABEL59:(void)0;
7274 }
7275 }
7276 var49 = var58;
7277 } else {
7278 var49 = var_57;
7279 }
7280 if (var49){
7281 {
7282 { /* Inline kernel#Char#code_point (self) on <self:Char> */
7283 var67 = (long)self;
7284 var65 = var67;
7285 goto RET_LABEL66;
7286 RET_LABEL66:(void)0;
7287 }
7288 }
7289 {
7290 { /* Inline kernel#Int#- (var65,87l) on <var65:Int> */
7291 /* Covariant cast for argument 0 (i) <87l:Int> isa OTHER */
7292 /* <87l:Int> isa OTHER */
7293 var70 = 1; /* easy <87l:Int> isa OTHER*/
7294 if (unlikely(!var70)) {
7295 var_class_name73 = type_core__Int.name;
7296 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
7297 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7298 fatal_exit(1);
7299 }
7300 var74 = var65 - 87l;
7301 var68 = var74;
7302 goto RET_LABEL69;
7303 RET_LABEL69:(void)0;
7304 }
7305 }
7306 var = var68;
7307 goto RET_LABEL;
7308 } else {
7309 }
7310 {
7311 var75 = core__abstract_text___Char___is_hexdigit(self);
7312 }
7313 if (unlikely(!var75)) {
7314 PRINT_ERROR("Runtime error: %s", "Assert failed");
7315 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1836);
7316 fatal_exit(1);
7317 }
7318 PRINT_ERROR("Runtime error: %s", "Aborted");
7319 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1838);
7320 fatal_exit(1);
7321 RET_LABEL:;
7322 return var;
7323 }
7324 /* method abstract_text#Collection#to_s for (self: Collection[nullable Object]): String */
7325 val* core__abstract_text___Collection___Object__to_s(val* self) {
7326 val* var /* : String */;
7327 static val* varonce;
7328 val* var1 /* : String */;
7329 char* var2 /* : NativeString */;
7330 val* var3 /* : String */;
7331 static val* varonce4;
7332 val* var5 /* : String */;
7333 char* var6 /* : NativeString */;
7334 val* var7 /* : String */;
7335 val* var8 /* : String */;
7336 val* var9 /* : String */;
7337 static val* varonce10;
7338 val* var11 /* : String */;
7339 char* var12 /* : NativeString */;
7340 val* var13 /* : String */;
7341 val* var14 /* : String */;
7342 if (likely(varonce!=NULL)) {
7343 var1 = varonce;
7344 } else {
7345 var2 = "[";
7346 var3 = core__flat___NativeString___to_s_full(var2, 1l, 1l);
7347 var1 = var3;
7348 varonce = var1;
7349 }
7350 if (likely(varonce4!=NULL)) {
7351 var5 = varonce4;
7352 } else {
7353 var6 = ",";
7354 var7 = core__flat___NativeString___to_s_full(var6, 1l, 1l);
7355 var5 = var7;
7356 varonce4 = var5;
7357 }
7358 {
7359 var8 = core__abstract_text___Collection___join(self, var5);
7360 }
7361 {
7362 var9 = ((val*(*)(val* self, val* p0))(var1->class->vft[COLOR_core__abstract_text__String___43d]))(var1, var8); /* + on <var1:String>*/
7363 }
7364 if (likely(varonce10!=NULL)) {
7365 var11 = varonce10;
7366 } else {
7367 var12 = "]";
7368 var13 = core__flat___NativeString___to_s_full(var12, 1l, 1l);
7369 var11 = var13;
7370 varonce10 = var11;
7371 }
7372 {
7373 var14 = ((val*(*)(val* self, val* p0))(var9->class->vft[COLOR_core__abstract_text__String___43d]))(var9, var11); /* + on <var9:String>*/
7374 }
7375 var = var14;
7376 goto RET_LABEL;
7377 RET_LABEL:;
7378 return var;
7379 }
7380 /* method abstract_text#Collection#plain_to_s for (self: Collection[nullable Object]): String */
7381 val* core__abstract_text___Collection___plain_to_s(val* self) {
7382 val* var /* : String */;
7383 val* var1 /* : Buffer */;
7384 val* var2 /* : Buffer */;
7385 val* var_s /* var s: Buffer */;
7386 val* var_ /* var : Collection[nullable Object] */;
7387 val* var3 /* : Iterator[nullable Object] */;
7388 val* var_4 /* var : Iterator[nullable Object] */;
7389 short int var5 /* : Bool */;
7390 val* var6 /* : nullable Object */;
7391 val* var_e /* var e: nullable Object */;
7392 short int var7 /* : Bool */;
7393 short int var8 /* : Bool */;
7394 val* var9 /* : String */;
7395 val* var10 /* : String */;
7396 var1 = NEW_core__Buffer(&type_core__Buffer);
7397 {
7398 var2 = core__flat___Buffer___new(var1);
7399 }
7400 var_s = var2;
7401 var_ = self;
7402 {
7403 var3 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[nullable Object]>*/
7404 }
7405 var_4 = var3;
7406 for(;;) {
7407 {
7408 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[nullable Object]>*/
7409 }
7410 if (var5){
7411 } else {
7412 goto BREAK_label;
7413 }
7414 {
7415 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[nullable Object]>*/
7416 }
7417 var_e = var6;
7418 if (var_e == NULL) {
7419 var7 = 0; /* is null */
7420 } else {
7421 var7 = 1; /* arg is null and recv is not */
7422 }
7423 if (0) {
7424 var8 = ((short int(*)(val* self, val* p0))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_e, ((val*)NULL)); /* != on <var_e:nullable Object>*/
7425 var7 = var8;
7426 }
7427 if (var7){
7428 {
7429 var9 = ((val*(*)(val* self))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_e); /* to_s on <var_e:nullable Object(Object)>*/
7430 }
7431 {
7432 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var9); /* append on <var_s:Buffer>*/
7433 }
7434 } else {
7435 }
7436 {
7437 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[nullable Object]>*/
7438 }
7439 }
7440 BREAK_label: (void)0;
7441 {
7442 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[nullable Object]>*/
7443 }
7444 {
7445 var10 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_s); /* to_s on <var_s:Buffer>*/
7446 }
7447 var = var10;
7448 goto RET_LABEL;
7449 RET_LABEL:;
7450 return var;
7451 }
7452 /* method abstract_text#Collection#join for (self: Collection[nullable Object], nullable Text): String */
7453 val* core__abstract_text___Collection___join(val* self, val* p0) {
7454 val* var /* : String */;
7455 val* var_separator /* var separator: nullable Text */;
7456 short int var1 /* : Bool */;
7457 static val* varonce;
7458 val* var2 /* : String */;
7459 char* var3 /* : NativeString */;
7460 val* var4 /* : String */;
7461 val* var5 /* : Buffer */;
7462 val* var6 /* : Buffer */;
7463 val* var_s /* var s: Buffer */;
7464 val* var7 /* : Iterator[nullable Object] */;
7465 val* var_i /* var i: Iterator[nullable Object] */;
7466 val* var8 /* : nullable Object */;
7467 val* var_e /* var e: nullable Object */;
7468 short int var9 /* : Bool */;
7469 short int var10 /* : Bool */;
7470 val* var11 /* : String */;
7471 short int var12 /* : Bool */;
7472 short int var13 /* : Bool */;
7473 short int var14 /* : Bool */;
7474 val* var_other /* var other: nullable Object */;
7475 short int var16 /* : Bool */;
7476 short int var17 /* : Bool */;
7477 val* var18 /* : nullable Object */;
7478 short int var19 /* : Bool */;
7479 short int var20 /* : Bool */;
7480 val* var21 /* : String */;
7481 val* var22 /* : String */;
7482 var_separator = p0;
7483 {
7484 var1 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:Collection[nullable Object]>*/
7485 }
7486 if (var1){
7487 if (likely(varonce!=NULL)) {
7488 var2 = varonce;
7489 } else {
7490 var3 = "";
7491 var4 = core__flat___NativeString___to_s_full(var3, 0l, 0l);
7492 var2 = var4;
7493 varonce = var2;
7494 }
7495 var = var2;
7496 goto RET_LABEL;
7497 } else {
7498 }
7499 var5 = NEW_core__Buffer(&type_core__Buffer);
7500 {
7501 var6 = core__flat___Buffer___new(var5);
7502 }
7503 var_s = var6;
7504 {
7505 var7 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(self); /* iterator on <self:Collection[nullable Object]>*/
7506 }
7507 var_i = var7;
7508 {
7509 var8 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_i); /* item on <var_i:Iterator[nullable Object]>*/
7510 }
7511 var_e = var8;
7512 if (var_e == NULL) {
7513 var9 = 0; /* is null */
7514 } else {
7515 var9 = 1; /* arg is null and recv is not */
7516 }
7517 if (0) {
7518 var10 = ((short int(*)(val* self, val* p0))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_e, ((val*)NULL)); /* != on <var_e:nullable Object>*/
7519 var9 = var10;
7520 }
7521 if (var9){
7522 {
7523 var11 = ((val*(*)(val* self))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_e); /* to_s on <var_e:nullable Object(Object)>*/
7524 }
7525 {
7526 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var11); /* append on <var_s:Buffer>*/
7527 }
7528 } else {
7529 }
7530 {
7531 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_i); /* next on <var_i:Iterator[nullable Object]>*/
7532 }
7533 for(;;) {
7534 {
7535 var12 = ((short int(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_i); /* is_ok on <var_i:Iterator[nullable Object]>*/
7536 }
7537 if (var12){
7538 if (var_separator == NULL) {
7539 var13 = 0; /* is null */
7540 } else {
7541 var13 = 1; /* arg is null and recv is not */
7542 }
7543 if (0) {
7544 { /* Inline kernel#Object#!= (var_separator,((val*)NULL)) on <var_separator:nullable Text> */
7545 var_other = ((val*)NULL);
7546 {
7547 var16 = ((short int(*)(val* self, val* p0))(var_separator->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_separator, var_other); /* == on <var_separator:nullable Text(Text)>*/
7548 }
7549 var17 = !var16;
7550 var14 = var17;
7551 goto RET_LABEL15;
7552 RET_LABEL15:(void)0;
7553 }
7554 var13 = var14;
7555 }
7556 if (var13){
7557 {
7558 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var_separator); /* append on <var_s:Buffer>*/
7559 }
7560 } else {
7561 }
7562 {
7563 var18 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_i); /* item on <var_i:Iterator[nullable Object]>*/
7564 }
7565 var_e = var18;
7566 if (var_e == NULL) {
7567 var19 = 0; /* is null */
7568 } else {
7569 var19 = 1; /* arg is null and recv is not */
7570 }
7571 if (0) {
7572 var20 = ((short int(*)(val* self, val* p0))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_e, ((val*)NULL)); /* != on <var_e:nullable Object>*/
7573 var19 = var20;
7574 }
7575 if (var19){
7576 {
7577 var21 = ((val*(*)(val* self))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_e); /* to_s on <var_e:nullable Object(Object)>*/
7578 }
7579 {
7580 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var21); /* append on <var_s:Buffer>*/
7581 }
7582 } else {
7583 }
7584 {
7585 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_i); /* next on <var_i:Iterator[nullable Object]>*/
7586 }
7587 } else {
7588 goto BREAK_label;
7589 }
7590 }
7591 BREAK_label: (void)0;
7592 {
7593 var22 = ((val*(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_s); /* to_s on <var_s:Buffer>*/
7594 }
7595 var = var22;
7596 goto RET_LABEL;
7597 RET_LABEL:;
7598 return var;
7599 }
7600 /* method abstract_text#Sys#program_args for (self: Sys): Sequence[String] */
7601 val* core__abstract_text___Sys___program_args(val* self) {
7602 val* var /* : Sequence[String] */;
7603 val* var1 /* : nullable Sequence[String] */;
7604 short int var2 /* : Bool */;
7605 short int var3 /* : Bool */;
7606 val* var4 /* : nullable Sequence[String] */;
7607 var1 = self->attrs[COLOR_core__abstract_text__Sys___args_cache].val; /* _args_cache on <self:Sys> */
7608 if (var1 == NULL) {
7609 var2 = 1; /* is null */
7610 } else {
7611 var2 = 0; /* arg is null but recv is not */
7612 }
7613 if (0) {
7614 var3 = ((short int(*)(val* self, val* p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var1, ((val*)NULL)); /* == on <var1:nullable Sequence[String]>*/
7615 var2 = var3;
7616 }
7617 if (var2){
7618 {
7619 core__abstract_text___Sys___init_args(self); /* Direct call abstract_text#Sys#init_args on <self:Sys>*/
7620 }
7621 } else {
7622 }
7623 var4 = self->attrs[COLOR_core__abstract_text__Sys___args_cache].val; /* _args_cache on <self:Sys> */
7624 if (unlikely(var4 == NULL)) {
7625 PRINT_ERROR("Runtime error: %s", "Cast failed");
7626 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1922);
7627 fatal_exit(1);
7628 }
7629 var = var4;
7630 goto RET_LABEL;
7631 RET_LABEL:;
7632 return var;
7633 }
7634 /* method abstract_text#Sys#program_name for (self: Sys): String */
7635 val* core__abstract_text___Sys___program_name(val* self) {
7636 val* var /* : String */;
7637 char* var1 /* : NativeString */;
7638 char* var3 /* : NativeString */;
7639 val* var4 /* : String */;
7640 {
7641 { /* Inline abstract_text#Sys#native_argv (self,0l) on <self:Sys> */
7642 var3 = glob_argv[0l];
7643 var1 = var3;
7644 goto RET_LABEL2;
7645 RET_LABEL2:(void)0;
7646 }
7647 }
7648 {
7649 var4 = core__flat___NativeString___core__abstract_text__Object__to_s(var1);
7650 }
7651 var = var4;
7652 goto RET_LABEL;
7653 RET_LABEL:;
7654 return var;
7655 }
7656 /* method abstract_text#Sys#init_args for (self: Sys) */
7657 void core__abstract_text___Sys___init_args(val* self) {
7658 long var /* : Int */;
7659 long var2 /* : Int */;
7660 long var_argc /* var argc: Int */;
7661 val* var3 /* : Array[String] */;
7662 val* var_args /* var args: Array[String] */;
7663 long var_i /* var i: Int */;
7664 short int var4 /* : Bool */;
7665 short int var6 /* : Bool */;
7666 int cltype;
7667 int idtype;
7668 const char* var_class_name;
7669 short int var7 /* : Bool */;
7670 long var8 /* : Int */;
7671 short int var10 /* : Bool */;
7672 int cltype11;
7673 int idtype12;
7674 const char* var_class_name13;
7675 long var14 /* : Int */;
7676 char* var15 /* : NativeString */;
7677 char* var17 /* : NativeString */;
7678 val* var18 /* : String */;
7679 long var19 /* : Int */;
7680 short int var21 /* : Bool */;
7681 int cltype22;
7682 int idtype23;
7683 const char* var_class_name24;
7684 long var25 /* : Int */;
7685 {
7686 { /* Inline abstract_text#Sys#native_argc (self) on <self:Sys> */
7687 var2 = glob_argc;
7688 var = var2;
7689 goto RET_LABEL1;
7690 RET_LABEL1:(void)0;
7691 }
7692 }
7693 var_argc = var;
7694 var3 = NEW_core__Array(&type_core__Array__core__String);
7695 {
7696 core___core__Array___with_capacity(var3, 0l); /* Direct call array#Array#with_capacity on <var3:Array[String]>*/
7697 }
7698 var_args = var3;
7699 var_i = 1l;
7700 for(;;) {
7701 {
7702 { /* Inline kernel#Int#< (var_i,var_argc) on <var_i:Int> */
7703 /* Covariant cast for argument 0 (i) <var_argc:Int> isa OTHER */
7704 /* <var_argc:Int> isa OTHER */
7705 var6 = 1; /* easy <var_argc:Int> isa OTHER*/
7706 if (unlikely(!var6)) {
7707 var_class_name = type_core__Int.name;
7708 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7709 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
7710 fatal_exit(1);
7711 }
7712 var7 = var_i < var_argc;
7713 var4 = var7;
7714 goto RET_LABEL5;
7715 RET_LABEL5:(void)0;
7716 }
7717 }
7718 if (var4){
7719 {
7720 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
7721 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7722 /* <1l:Int> isa OTHER */
7723 var10 = 1; /* easy <1l:Int> isa OTHER*/
7724 if (unlikely(!var10)) {
7725 var_class_name13 = type_core__Int.name;
7726 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
7727 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
7728 fatal_exit(1);
7729 }
7730 var14 = var_i - 1l;
7731 var8 = var14;
7732 goto RET_LABEL9;
7733 RET_LABEL9:(void)0;
7734 }
7735 }
7736 {
7737 { /* Inline abstract_text#Sys#native_argv (self,var_i) on <self:Sys> */
7738 var17 = glob_argv[var_i];
7739 var15 = var17;
7740 goto RET_LABEL16;
7741 RET_LABEL16:(void)0;
7742 }
7743 }
7744 {
7745 var18 = core__flat___NativeString___core__abstract_text__Object__to_s(var15);
7746 }
7747 {
7748 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_args, var8, var18); /* Direct call array#Array#[]= on <var_args:Array[String]>*/
7749 }
7750 {
7751 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
7752 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7753 /* <1l:Int> isa OTHER */
7754 var21 = 1; /* easy <1l:Int> isa OTHER*/
7755 if (unlikely(!var21)) {
7756 var_class_name24 = type_core__Int.name;
7757 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
7758 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
7759 fatal_exit(1);
7760 }
7761 var25 = var_i + 1l;
7762 var19 = var25;
7763 goto RET_LABEL20;
7764 RET_LABEL20:(void)0;
7765 }
7766 }
7767 var_i = var19;
7768 } else {
7769 goto BREAK_label;
7770 }
7771 }
7772 BREAK_label: (void)0;
7773 self->attrs[COLOR_core__abstract_text__Sys___args_cache].val = var_args; /* _args_cache on <self:Sys> */
7774 RET_LABEL:;
7775 }
7776 /* method abstract_text#Sys#native_argc for (self: Sys): Int */
7777 long core__abstract_text___Sys___native_argc(val* self) {
7778 long var /* : Int */;
7779 long var1 /* : Int */;
7780 var1 = glob_argc;
7781 var = var1;
7782 goto RET_LABEL;
7783 RET_LABEL:;
7784 return var;
7785 }
7786 /* method abstract_text#Sys#native_argv for (self: Sys, Int): NativeString */
7787 char* core__abstract_text___Sys___native_argv(val* self, long p0) {
7788 char* var /* : NativeString */;
7789 char* var1 /* : NativeString */;
7790 var1 = glob_argv[p0];
7791 var = var1;
7792 goto RET_LABEL;
7793 RET_LABEL:;
7794 return var;
7795 }
7796 /* method abstract_text#Sys#alpha_comparator for (self: Sys): Comparator */
7797 val* core__abstract_text___Sys___alpha_comparator(val* self) {
7798 val* var /* : Comparator */;
7799 static val* varonce;
7800 static int varonce_guard;
7801 val* var1 /* : AlphaComparator */;
7802 val* var2 /* : AlphaComparator */;
7803 if (likely(varonce_guard)) {
7804 var1 = varonce;
7805 } else {
7806 var2 = NEW_core__abstract_text__AlphaComparator(&type_core__abstract_text__AlphaComparator);
7807 {
7808 { /* Inline kernel#Object#init (var2) on <var2:AlphaComparator> */
7809 RET_LABEL3:(void)0;
7810 }
7811 }
7812 var1 = var2;
7813 varonce = var1;
7814 varonce_guard = 1;
7815 }
7816 var = var1;
7817 goto RET_LABEL;
7818 RET_LABEL:;
7819 return var;
7820 }
7821 /* method abstract_text#Sys#args for (self: Sys): Sequence[String] */
7822 val* core__abstract_text___Sys___args(val* self) {
7823 val* var /* : Sequence[String] */;
7824 val* var1 /* : Sys */;
7825 val* var3 /* : Sys */;
7826 val* var4 /* : Sequence[String] */;
7827 {
7828 { /* Inline kernel#Object#sys (self) on <self:Sys> */
7829 var3 = glob_sys;
7830 var1 = var3;
7831 goto RET_LABEL2;
7832 RET_LABEL2:(void)0;
7833 }
7834 }
7835 {
7836 var4 = core__abstract_text___Sys___program_args(var1);
7837 }
7838 var = var4;
7839 goto RET_LABEL;
7840 RET_LABEL:;
7841 return var;
7842 }
7843 /* method abstract_text#CachedAlphaComparator#cache for (self: CachedAlphaComparator): HashMap[Object, String] */
7844 val* core___core__CachedAlphaComparator___cache(val* self) {
7845 val* var /* : HashMap[Object, String] */;
7846 val* var1 /* : HashMap[Object, String] */;
7847 var1 = self->attrs[COLOR_core__abstract_text__CachedAlphaComparator___cache].val; /* _cache on <self:CachedAlphaComparator> */
7848 if (unlikely(var1 == NULL)) {
7849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
7850 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1967);
7851 fatal_exit(1);
7852 }
7853 var = var1;
7854 RET_LABEL:;
7855 return var;
7856 }
7857 /* method abstract_text#CachedAlphaComparator#do_to_s for (self: CachedAlphaComparator, Object): String */
7858 val* core___core__CachedAlphaComparator___do_to_s(val* self, val* p0) {
7859 val* var /* : String */;
7860 val* var_a /* var a: Object */;
7861 val* var1 /* : HashMap[Object, String] */;
7862 val* var3 /* : HashMap[Object, String] */;
7863 short int var4 /* : Bool */;
7864 val* var5 /* : HashMap[Object, String] */;
7865 val* var7 /* : HashMap[Object, String] */;
7866 val* var8 /* : nullable Object */;
7867 val* var9 /* : String */;
7868 val* var_res /* var res: String */;
7869 val* var10 /* : HashMap[Object, String] */;
7870 val* var12 /* : HashMap[Object, String] */;
7871 var_a = p0;
7872 {
7873 { /* Inline abstract_text#CachedAlphaComparator#cache (self) on <self:CachedAlphaComparator> */
7874 var3 = self->attrs[COLOR_core__abstract_text__CachedAlphaComparator___cache].val; /* _cache on <self:CachedAlphaComparator> */
7875 if (unlikely(var3 == NULL)) {
7876 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
7877 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1967);
7878 fatal_exit(1);
7879 }
7880 var1 = var3;
7881 RET_LABEL2:(void)0;
7882 }
7883 }
7884 {
7885 var4 = core___core__HashMap___core__abstract_collection__MapRead__has_key(var1, var_a);
7886 }
7887 if (var4){
7888 {
7889 { /* Inline abstract_text#CachedAlphaComparator#cache (self) on <self:CachedAlphaComparator> */
7890 var7 = self->attrs[COLOR_core__abstract_text__CachedAlphaComparator___cache].val; /* _cache on <self:CachedAlphaComparator> */
7891 if (unlikely(var7 == NULL)) {
7892 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
7893 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1967);
7894 fatal_exit(1);
7895 }
7896 var5 = var7;
7897 RET_LABEL6:(void)0;
7898 }
7899 }
7900 {
7901 var8 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var5, var_a);
7902 }
7903 var = var8;
7904 goto RET_LABEL;
7905 } else {
7906 }
7907 {
7908 var9 = ((val*(*)(val* self))((((long)var_a&3)?class_info[((long)var_a&3)]:var_a->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:Object>*/
7909 }
7910 var_res = var9;
7911 {
7912 { /* Inline abstract_text#CachedAlphaComparator#cache (self) on <self:CachedAlphaComparator> */
7913 var12 = self->attrs[COLOR_core__abstract_text__CachedAlphaComparator___cache].val; /* _cache on <self:CachedAlphaComparator> */
7914 if (unlikely(var12 == NULL)) {
7915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
7916 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1967);
7917 fatal_exit(1);
7918 }
7919 var10 = var12;
7920 RET_LABEL11:(void)0;
7921 }
7922 }
7923 {
7924 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var10, var_a, var_res); /* Direct call hash_collection#HashMap#[]= on <var10:HashMap[Object, String]>*/
7925 }
7926 var = var_res;
7927 goto RET_LABEL;
7928 RET_LABEL:;
7929 return var;
7930 }
7931 /* method abstract_text#CachedAlphaComparator#compare for (self: CachedAlphaComparator, Object, Object): Int */
7932 long core___core__CachedAlphaComparator___core__sorter__Comparator__compare(val* self, val* p0, val* p1) {
7933 long var /* : Int */;
7934 short int var1 /* : Bool */;
7935 int cltype;
7936 int idtype;
7937 const struct type* type_struct;
7938 const char* var_class_name;
7939 short int var2 /* : Bool */;
7940 int cltype3;
7941 int idtype4;
7942 const struct type* type_struct5;
7943 const char* var_class_name6;
7944 val* var_a /* var a: Object */;
7945 val* var_b /* var b: Object */;
7946 val* var7 /* : String */;
7947 val* var8 /* : String */;
7948 long var9 /* : Int */;
7949 /* Covariant cast for argument 0 (a) <p0:Object> isa COMPARED */
7950 /* <p0:Object> isa COMPARED */
7951 type_struct = self->type->resolution_table->types[COLOR_core__sorter__Comparator__COMPARED];
7952 cltype = type_struct->color;
7953 idtype = type_struct->id;
7954 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
7955 var1 = 0;
7956 } else {
7957 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
7958 }
7959 if (unlikely(!var1)) {
7960 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
7961 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name);
7962 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1976);
7963 fatal_exit(1);
7964 }
7965 /* Covariant cast for argument 1 (b) <p1:Object> isa COMPARED */
7966 /* <p1:Object> isa COMPARED */
7967 type_struct5 = self->type->resolution_table->types[COLOR_core__sorter__Comparator__COMPARED];
7968 cltype3 = type_struct5->color;
7969 idtype4 = type_struct5->id;
7970 if(cltype3 >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
7971 var2 = 0;
7972 } else {
7973 var2 = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype3] == idtype4;
7974 }
7975 if (unlikely(!var2)) {
7976 var_class_name6 = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
7977 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name6);
7978 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1976);
7979 fatal_exit(1);
7980 }
7981 var_a = p0;
7982 var_b = p1;
7983 {
7984 var7 = core___core__CachedAlphaComparator___do_to_s(self, var_a);
7985 }
7986 {
7987 var8 = core___core__CachedAlphaComparator___do_to_s(self, var_b);
7988 }
7989 {
7990 var9 = core___core__Comparable____60d_61d_62d(var7, var8);
7991 }
7992 var = var9;
7993 goto RET_LABEL;
7994 RET_LABEL:;
7995 return var;
7996 }
7997 /* method abstract_text#AlphaComparator#compare for (self: AlphaComparator, nullable Object, nullable Object): Int */
7998 long core__abstract_text___core__abstract_text__AlphaComparator___core__sorter__Comparator__compare(val* self, val* p0, val* p1) {
7999 long var /* : Int */;
8000 short int var1 /* : Bool */;
8001 int cltype;
8002 int idtype;
8003 const struct type* type_struct;
8004 short int is_nullable;
8005 const char* var_class_name;
8006 short int var2 /* : Bool */;
8007 int cltype3;
8008 int idtype4;
8009 const struct type* type_struct5;
8010 short int is_nullable6;
8011 const char* var_class_name7;
8012 val* var_a /* var a: nullable Object */;
8013 val* var_b /* var b: nullable Object */;
8014 val* var8 /* : String */;
8015 val* var9 /* : String */;
8016 long var10 /* : Int */;
8017 /* Covariant cast for argument 0 (a) <p0:nullable Object> isa COMPARED */
8018 /* <p0:nullable Object> isa COMPARED */
8019 type_struct = self->type->resolution_table->types[COLOR_core__sorter__Comparator__COMPARED];
8020 cltype = type_struct->color;
8021 idtype = type_struct->id;
8022 is_nullable = type_struct->is_nullable;
8023 if(p0 == NULL) {
8024 var1 = is_nullable;
8025 } else {
8026 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
8027 var1 = 0;
8028 } else {
8029 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
8030 }
8031 }
8032 if (unlikely(!var1)) {
8033 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
8034 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name);
8035 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1984);
8036 fatal_exit(1);
8037 }
8038 /* Covariant cast for argument 1 (b) <p1:nullable Object> isa COMPARED */
8039 /* <p1:nullable Object> isa COMPARED */
8040 type_struct5 = self->type->resolution_table->types[COLOR_core__sorter__Comparator__COMPARED];
8041 cltype3 = type_struct5->color;
8042 idtype4 = type_struct5->id;
8043 is_nullable6 = type_struct5->is_nullable;
8044 if(p1 == NULL) {
8045 var2 = is_nullable6;
8046 } else {
8047 if(cltype3 >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
8048 var2 = 0;
8049 } else {
8050 var2 = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype3] == idtype4;
8051 }
8052 }
8053 if (unlikely(!var2)) {
8054 var_class_name7 = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
8055 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name7);
8056 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1984);
8057 fatal_exit(1);
8058 }
8059 var_a = p0;
8060 var_b = p1;
8061 if (var_a == NULL) {
8062 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8063 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1984);
8064 fatal_exit(1);
8065 } else {
8066 var8 = ((val*(*)(val* self))((((long)var_a&3)?class_info[((long)var_a&3)]:var_a->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:nullable Object>*/
8067 }
8068 if (var_b == NULL) {
8069 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8070 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1984);
8071 fatal_exit(1);
8072 } else {
8073 var9 = ((val*(*)(val* self))((((long)var_b&3)?class_info[((long)var_b&3)]:var_b->class)->vft[COLOR_core__abstract_text__Object__to_s]))(var_b); /* to_s on <var_b:nullable Object>*/
8074 }
8075 {
8076 var10 = core___core__Comparable____60d_61d_62d(var8, var9);
8077 }
8078 var = var10;
8079 goto RET_LABEL;
8080 RET_LABEL:;
8081 return var;
8082 }