Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / core__native.sep.1.c
1 #include "core__native.sep.0.h"
2 /* method native$UInt32$code_point for (self: UInt32): Char */
3 uint32_t core__native___UInt32___code_point(uint32_t self) {
4 uint32_t var /* : Char */;
5 uint32_t var1 /* : Char */;
6 var1 = core__native___UInt32_code_point___impl(self);
7 var = var1;
8 goto RET_LABEL;
9 RET_LABEL:;
10 return var;
11 }
12 /* method native$CString$new for (self: CString, Int): CString */
13 char* core___core__CString___new(char* self, long p0) {
14 char* var /* : CString */;
15 char* var1 /* : CString */;
16 var1 = (char*)nit_alloc(p0);
17 var = var1;
18 goto RET_LABEL;
19 RET_LABEL:;
20 return var;
21 }
22 /* method native$CString$[] for (self: CString, Int): Byte */
23 unsigned char core___core__CString____91d_93d(char* self, long p0) {
24 unsigned char var /* : Byte */;
25 unsigned char var1 /* : Byte */;
26 var1 = (unsigned char)((int)self[p0]);
27 var = var1;
28 goto RET_LABEL;
29 RET_LABEL:;
30 return var;
31 }
32 /* method native$CString$[]= for (self: CString, Int, Byte) */
33 void core___core__CString____91d_93d_61d(char* self, long p0, unsigned char p1) {
34 self[p0]=(unsigned char)p1;
35 RET_LABEL:;
36 }
37 /* method native$CString$copy_to for (self: CString, CString, Int, Int, Int) */
38 void core___core__CString___copy_to(char* self, char* p0, long p1, long p2, long p3) {
39 memmove(p0+p3,self+p2,p1);
40 RET_LABEL:;
41 }
42 /* method native$CString$== for (self: CString, nullable Object): Bool */
43 short int core___core__CString___core__kernel__Object___61d_61d(char* self, val* p0) {
44 short int var /* : Bool */;
45 short int var1 /* : Bool */;
46 char* var2 /* : CString */;
47 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__CString)) {
48 var2 = ((struct instance_core__CString*)p0)->value; /* autounbox from nullable Object to CString */;
49 var1 = var2 == self;
50 } else var1 = 0;
51 var = var1;
52 goto RET_LABEL;
53 RET_LABEL:;
54 return var;
55 }
56 /* method native$CString$== for (self: Object, nullable Object): Bool */
57 short int VIRTUAL_core___core__CString___core__kernel__Object___61d_61d(val* self, val* p0) {
58 short int var /* : Bool */;
59 short int var1 /* : Bool */;
60 short int var3 /* : Bool */;
61 { /* Inline native$CString$== (self,p0) on <self:Object(CString)> */
62 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)p0)->value);
63 var1 = var3;
64 goto RET_LABEL2;
65 RET_LABEL2:(void)0;
66 }
67 var = var1;
68 RET_LABEL:;
69 return var;
70 }
71 /* method native$CString$!= for (self: CString, nullable Object): Bool */
72 short int core___core__CString___core__kernel__Object___33d_61d(char* self, val* p0) {
73 short int var /* : Bool */;
74 short int var1 /* : Bool */;
75 char* var2 /* : CString */;
76 short int var3 /* : Bool */;
77 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__CString)) {
78 var2 = ((struct instance_core__CString*)p0)->value; /* autounbox from nullable Object to CString */;
79 var1 = var2 == self;
80 } else var1 = 0;
81 var3 = !var1;
82 var = var3;
83 goto RET_LABEL;
84 RET_LABEL:;
85 return var;
86 }
87 /* method native$CString$!= for (self: Object, nullable Object): Bool */
88 short int VIRTUAL_core___core__CString___core__kernel__Object___33d_61d(val* self, val* p0) {
89 short int var /* : Bool */;
90 short int var1 /* : Bool */;
91 short int var3 /* : Bool */;
92 short int var4 /* : Bool */;
93 { /* Inline native$CString$!= (self,p0) on <self:Object(CString)> */
94 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)p0)->value);
95 var4 = !var3;
96 var1 = var4;
97 goto RET_LABEL2;
98 RET_LABEL2:(void)0;
99 }
100 var = var1;
101 RET_LABEL:;
102 return var;
103 }
104 /* method native$CString$cstring_length for (self: CString): Int */
105 long core___core__CString___cstring_length(char* self) {
106 long var /* : Int */;
107 long var_l /* var l: Int */;
108 unsigned char var1 /* : Byte */;
109 unsigned char var3 /* : Byte */;
110 short int var4 /* : Bool */;
111 short int var6 /* : Bool */;
112 short int var7 /* : Bool */;
113 long var8 /* : Int */;
114 short int var10 /* : Bool */;
115 int cltype;
116 int idtype;
117 const char* var_class_name;
118 long var11 /* : Int */;
119 var_l = 0l;
120 for(;;) {
121 {
122 { /* Inline native$CString$[] (self,var_l) on <self:CString> */
123 var3 = (unsigned char)((int)self[var_l]);
124 var1 = var3;
125 goto RET_LABEL2;
126 RET_LABEL2:(void)0;
127 }
128 }
129 {
130 { /* Inline kernel$Byte$!= (var1,((unsigned char)0x00)) on <var1:Byte> */
131 var6 = var1 == ((unsigned char)0x00);
132 var7 = !var6;
133 var4 = var7;
134 goto RET_LABEL5;
135 RET_LABEL5:(void)0;
136 }
137 }
138 if (var4){
139 {
140 { /* Inline kernel$Int$+ (var_l,1l) on <var_l:Int> */
141 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
142 /* <1l:Int> isa OTHER */
143 var10 = 1; /* easy <1l:Int> isa OTHER*/
144 if (unlikely(!var10)) {
145 var_class_name = type_core__Int.name;
146 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
147 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
148 fatal_exit(1);
149 }
150 var11 = var_l + 1l;
151 var8 = var11;
152 goto RET_LABEL9;
153 RET_LABEL9:(void)0;
154 }
155 }
156 var_l = var8;
157 } else {
158 goto BREAK_label;
159 }
160 }
161 BREAK_label: (void)0;
162 var = var_l;
163 goto RET_LABEL;
164 RET_LABEL:;
165 return var;
166 }
167 /* method native$CString$atof for (self: CString): Float */
168 double core___core__CString___atof(char* self) {
169 double var /* : Float */;
170 double var1 /* : Float */;
171 var1 = core__native___CString_atof___impl(self);
172 var = var1;
173 goto RET_LABEL;
174 RET_LABEL:;
175 return var;
176 }
177 /* method native$CString$char_at for (self: CString, Int): Char */
178 uint32_t core___core__CString___char_at(char* self, long p0) {
179 uint32_t var /* : Char */;
180 long var_pos /* var pos: Int */;
181 unsigned char var1 /* : Byte */;
182 unsigned char var3 /* : Byte */;
183 unsigned char var_c /* var c: Byte */;
184 unsigned char var4 /* : Byte */;
185 unsigned char var6 /* : Byte */;
186 short int var7 /* : Bool */;
187 short int var9 /* : Bool */;
188 uint32_t var10 /* : Char */;
189 uint32_t var12 /* : Char */;
190 uint32_t var13 /* : UInt32 */;
191 uint32_t var15 /* : UInt32 */;
192 uint32_t var_b /* var b: UInt32 */;
193 uint32_t var_ret /* var ret: UInt32 */;
194 uint32_t var16 /* : UInt32 */;
195 uint32_t var18 /* : UInt32 */;
196 short int var19 /* : Bool */;
197 short int var21 /* : Bool */;
198 short int var22 /* : Bool */;
199 uint32_t var23 /* : Char */;
200 uint32_t var25 /* : Char */;
201 uint32_t var26 /* : UInt32 */;
202 uint32_t var28 /* : UInt32 */;
203 short int var29 /* : Bool */;
204 short int var31 /* : Bool */;
205 uint32_t var32 /* : UInt32 */;
206 uint32_t var34 /* : UInt32 */;
207 uint32_t var35 /* : UInt32 */;
208 uint32_t var37 /* : UInt32 */;
209 uint32_t var38 /* : UInt32 */;
210 uint32_t var40 /* : UInt32 */;
211 uint32_t var41 /* : UInt32 */;
212 uint32_t var43 /* : UInt32 */;
213 uint32_t var44 /* : UInt32 */;
214 uint32_t var46 /* : UInt32 */;
215 uint32_t var47 /* : UInt32 */;
216 uint32_t var49 /* : UInt32 */;
217 uint32_t var50 /* : Char */;
218 uint32_t var52 /* : Char */;
219 uint32_t var53 /* : UInt32 */;
220 uint32_t var55 /* : UInt32 */;
221 short int var56 /* : Bool */;
222 short int var58 /* : Bool */;
223 short int var59 /* : Bool */;
224 uint32_t var60 /* : Char */;
225 uint32_t var62 /* : Char */;
226 uint32_t var63 /* : UInt32 */;
227 uint32_t var65 /* : UInt32 */;
228 short int var66 /* : Bool */;
229 short int var68 /* : Bool */;
230 uint32_t var69 /* : UInt32 */;
231 uint32_t var71 /* : UInt32 */;
232 uint32_t var72 /* : UInt32 */;
233 uint32_t var74 /* : UInt32 */;
234 uint32_t var75 /* : UInt32 */;
235 uint32_t var77 /* : UInt32 */;
236 uint32_t var78 /* : UInt32 */;
237 uint32_t var80 /* : UInt32 */;
238 uint32_t var81 /* : UInt32 */;
239 uint32_t var83 /* : UInt32 */;
240 uint32_t var84 /* : UInt32 */;
241 uint32_t var86 /* : UInt32 */;
242 uint32_t var87 /* : UInt32 */;
243 uint32_t var89 /* : UInt32 */;
244 uint32_t var90 /* : UInt32 */;
245 uint32_t var92 /* : UInt32 */;
246 uint32_t var93 /* : UInt32 */;
247 uint32_t var95 /* : UInt32 */;
248 uint32_t var96 /* : Char */;
249 uint32_t var98 /* : Char */;
250 uint32_t var99 /* : UInt32 */;
251 uint32_t var101 /* : UInt32 */;
252 short int var102 /* : Bool */;
253 short int var104 /* : Bool */;
254 short int var105 /* : Bool */;
255 uint32_t var106 /* : Char */;
256 uint32_t var108 /* : Char */;
257 uint32_t var109 /* : UInt32 */;
258 uint32_t var111 /* : UInt32 */;
259 short int var112 /* : Bool */;
260 short int var114 /* : Bool */;
261 uint32_t var115 /* : UInt32 */;
262 uint32_t var117 /* : UInt32 */;
263 uint32_t var118 /* : UInt32 */;
264 uint32_t var120 /* : UInt32 */;
265 uint32_t var121 /* : UInt32 */;
266 uint32_t var123 /* : UInt32 */;
267 uint32_t var124 /* : UInt32 */;
268 uint32_t var126 /* : UInt32 */;
269 uint32_t var127 /* : UInt32 */;
270 uint32_t var129 /* : UInt32 */;
271 uint32_t var130 /* : UInt32 */;
272 uint32_t var132 /* : UInt32 */;
273 uint32_t var133 /* : UInt32 */;
274 uint32_t var135 /* : UInt32 */;
275 uint32_t var136 /* : UInt32 */;
276 uint32_t var138 /* : UInt32 */;
277 uint32_t var139 /* : UInt32 */;
278 uint32_t var141 /* : UInt32 */;
279 uint32_t var142 /* : UInt32 */;
280 uint32_t var144 /* : UInt32 */;
281 uint32_t var145 /* : UInt32 */;
282 uint32_t var147 /* : UInt32 */;
283 uint32_t var148 /* : Char */;
284 uint32_t var150 /* : Char */;
285 uint32_t var151 /* : Char */;
286 uint32_t var153 /* : Char */;
287 var_pos = p0;
288 {
289 { /* Inline native$CString$[] (self,var_pos) on <self:CString> */
290 var3 = (unsigned char)((int)self[var_pos]);
291 var1 = var3;
292 goto RET_LABEL2;
293 RET_LABEL2:(void)0;
294 }
295 }
296 var_c = var1;
297 {
298 { /* Inline math$Byte$& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
299 var6 = var_c & ((unsigned char)0x80);
300 var4 = var6;
301 goto RET_LABEL5;
302 RET_LABEL5:(void)0;
303 }
304 }
305 {
306 { /* Inline kernel$Byte$== (var4,((unsigned char)0x00)) on <var4:Byte> */
307 var9 = var4 == ((unsigned char)0x00);
308 var7 = var9;
309 goto RET_LABEL8;
310 RET_LABEL8:(void)0;
311 }
312 }
313 if (var7){
314 {
315 { /* Inline kernel$Byte$ascii (var_c) on <var_c:Byte> */
316 var12 = (uint32_t)var_c;
317 var10 = var12;
318 goto RET_LABEL11;
319 RET_LABEL11:(void)0;
320 }
321 }
322 var = var10;
323 goto RET_LABEL;
324 } else {
325 }
326 {
327 { /* Inline native$CString$fetch_4_hchars (self,var_pos) on <self:CString> */
328 var15 = (uint32_t)be32toh(*((uint32_t*)(self + var_pos)));
329 var13 = var15;
330 goto RET_LABEL14;
331 RET_LABEL14:(void)0;
332 }
333 }
334 var_b = var13;
335 var_ret = UINT32_C(0);
336 {
337 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(12582912)) on <var_b:UInt32> */
338 var18 = var_b & UINT32_C(12582912);
339 var16 = var18;
340 goto RET_LABEL17;
341 RET_LABEL17:(void)0;
342 }
343 }
344 {
345 { /* Inline fixed_ints$UInt32$!= (var16,UINT32_C(8388608)) on <var16:UInt32> */
346 var21 = var16 == UINT32_C(8388608);
347 var22 = !var21;
348 var19 = var22;
349 goto RET_LABEL20;
350 RET_LABEL20:(void)0;
351 }
352 }
353 if (var19){
354 {
355 { /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
356 var25 = (uint32_t)65533l;
357 var23 = var25;
358 goto RET_LABEL24;
359 RET_LABEL24:(void)0;
360 }
361 }
362 var = var23;
363 goto RET_LABEL;
364 } else {
365 }
366 {
367 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(3758096384)) on <var_b:UInt32> */
368 var28 = var_b & UINT32_C(3758096384);
369 var26 = var28;
370 goto RET_LABEL27;
371 RET_LABEL27:(void)0;
372 }
373 }
374 {
375 { /* Inline fixed_ints$UInt32$== (var26,UINT32_C(3221225472)) on <var26:UInt32> */
376 var31 = var26 == UINT32_C(3221225472);
377 var29 = var31;
378 goto RET_LABEL30;
379 RET_LABEL30:(void)0;
380 }
381 }
382 if (var29){
383 {
384 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(520093696)) on <var_b:UInt32> */
385 var34 = var_b & UINT32_C(520093696);
386 var32 = var34;
387 goto RET_LABEL33;
388 RET_LABEL33:(void)0;
389 }
390 }
391 {
392 { /* Inline fixed_ints$UInt32$>> (var32,18l) on <var32:UInt32> */
393 var37 = var32 >> 18l;
394 var35 = var37;
395 goto RET_LABEL36;
396 RET_LABEL36:(void)0;
397 }
398 }
399 {
400 { /* Inline fixed_ints$UInt32$| (var_ret,var35) on <var_ret:UInt32> */
401 var40 = var_ret | var35;
402 var38 = var40;
403 goto RET_LABEL39;
404 RET_LABEL39:(void)0;
405 }
406 }
407 var_ret = var38;
408 {
409 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4128768)) on <var_b:UInt32> */
410 var43 = var_b & UINT32_C(4128768);
411 var41 = var43;
412 goto RET_LABEL42;
413 RET_LABEL42:(void)0;
414 }
415 }
416 {
417 { /* Inline fixed_ints$UInt32$>> (var41,16l) on <var41:UInt32> */
418 var46 = var41 >> 16l;
419 var44 = var46;
420 goto RET_LABEL45;
421 RET_LABEL45:(void)0;
422 }
423 }
424 {
425 { /* Inline fixed_ints$UInt32$| (var_ret,var44) on <var_ret:UInt32> */
426 var49 = var_ret | var44;
427 var47 = var49;
428 goto RET_LABEL48;
429 RET_LABEL48:(void)0;
430 }
431 }
432 var_ret = var47;
433 {
434 { /* Inline native$UInt32$code_point (var_ret) on <var_ret:UInt32> */
435 var52 = core__native___UInt32_code_point___impl(var_ret);
436 var50 = var52;
437 goto RET_LABEL51;
438 RET_LABEL51:(void)0;
439 }
440 }
441 var = var50;
442 goto RET_LABEL;
443 } else {
444 }
445 {
446 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(49152)) on <var_b:UInt32> */
447 var55 = var_b & UINT32_C(49152);
448 var53 = var55;
449 goto RET_LABEL54;
450 RET_LABEL54:(void)0;
451 }
452 }
453 {
454 { /* Inline fixed_ints$UInt32$== (var53,UINT32_C(32768)) on <var53:UInt32> */
455 var58 = var53 == UINT32_C(32768);
456 var56 = var58;
457 goto RET_LABEL57;
458 RET_LABEL57:(void)0;
459 }
460 }
461 var59 = !var56;
462 if (var59){
463 {
464 { /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
465 var62 = (uint32_t)65533l;
466 var60 = var62;
467 goto RET_LABEL61;
468 RET_LABEL61:(void)0;
469 }
470 }
471 var = var60;
472 goto RET_LABEL;
473 } else {
474 }
475 {
476 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4026531840)) on <var_b:UInt32> */
477 var65 = var_b & UINT32_C(4026531840);
478 var63 = var65;
479 goto RET_LABEL64;
480 RET_LABEL64:(void)0;
481 }
482 }
483 {
484 { /* Inline fixed_ints$UInt32$== (var63,UINT32_C(3758096384)) on <var63:UInt32> */
485 var68 = var63 == UINT32_C(3758096384);
486 var66 = var68;
487 goto RET_LABEL67;
488 RET_LABEL67:(void)0;
489 }
490 }
491 if (var66){
492 {
493 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(251658240)) on <var_b:UInt32> */
494 var71 = var_b & UINT32_C(251658240);
495 var69 = var71;
496 goto RET_LABEL70;
497 RET_LABEL70:(void)0;
498 }
499 }
500 {
501 { /* Inline fixed_ints$UInt32$>> (var69,12l) on <var69:UInt32> */
502 var74 = var69 >> 12l;
503 var72 = var74;
504 goto RET_LABEL73;
505 RET_LABEL73:(void)0;
506 }
507 }
508 {
509 { /* Inline fixed_ints$UInt32$| (var_ret,var72) on <var_ret:UInt32> */
510 var77 = var_ret | var72;
511 var75 = var77;
512 goto RET_LABEL76;
513 RET_LABEL76:(void)0;
514 }
515 }
516 var_ret = var75;
517 {
518 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4128768)) on <var_b:UInt32> */
519 var80 = var_b & UINT32_C(4128768);
520 var78 = var80;
521 goto RET_LABEL79;
522 RET_LABEL79:(void)0;
523 }
524 }
525 {
526 { /* Inline fixed_ints$UInt32$>> (var78,10l) on <var78:UInt32> */
527 var83 = var78 >> 10l;
528 var81 = var83;
529 goto RET_LABEL82;
530 RET_LABEL82:(void)0;
531 }
532 }
533 {
534 { /* Inline fixed_ints$UInt32$| (var_ret,var81) on <var_ret:UInt32> */
535 var86 = var_ret | var81;
536 var84 = var86;
537 goto RET_LABEL85;
538 RET_LABEL85:(void)0;
539 }
540 }
541 var_ret = var84;
542 {
543 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(16128)) on <var_b:UInt32> */
544 var89 = var_b & UINT32_C(16128);
545 var87 = var89;
546 goto RET_LABEL88;
547 RET_LABEL88:(void)0;
548 }
549 }
550 {
551 { /* Inline fixed_ints$UInt32$>> (var87,8l) on <var87:UInt32> */
552 var92 = var87 >> 8l;
553 var90 = var92;
554 goto RET_LABEL91;
555 RET_LABEL91:(void)0;
556 }
557 }
558 {
559 { /* Inline fixed_ints$UInt32$| (var_ret,var90) on <var_ret:UInt32> */
560 var95 = var_ret | var90;
561 var93 = var95;
562 goto RET_LABEL94;
563 RET_LABEL94:(void)0;
564 }
565 }
566 var_ret = var93;
567 {
568 { /* Inline native$UInt32$code_point (var_ret) on <var_ret:UInt32> */
569 var98 = core__native___UInt32_code_point___impl(var_ret);
570 var96 = var98;
571 goto RET_LABEL97;
572 RET_LABEL97:(void)0;
573 }
574 }
575 var = var96;
576 goto RET_LABEL;
577 } else {
578 }
579 {
580 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(192)) on <var_b:UInt32> */
581 var101 = var_b & UINT32_C(192);
582 var99 = var101;
583 goto RET_LABEL100;
584 RET_LABEL100:(void)0;
585 }
586 }
587 {
588 { /* Inline fixed_ints$UInt32$== (var99,UINT32_C(128)) on <var99:UInt32> */
589 var104 = var99 == UINT32_C(128);
590 var102 = var104;
591 goto RET_LABEL103;
592 RET_LABEL103:(void)0;
593 }
594 }
595 var105 = !var102;
596 if (var105){
597 {
598 { /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
599 var108 = (uint32_t)65533l;
600 var106 = var108;
601 goto RET_LABEL107;
602 RET_LABEL107:(void)0;
603 }
604 }
605 var = var106;
606 goto RET_LABEL;
607 } else {
608 }
609 {
610 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4160749568)) on <var_b:UInt32> */
611 var111 = var_b & UINT32_C(4160749568);
612 var109 = var111;
613 goto RET_LABEL110;
614 RET_LABEL110:(void)0;
615 }
616 }
617 {
618 { /* Inline fixed_ints$UInt32$== (var109,UINT32_C(4026531840)) on <var109:UInt32> */
619 var114 = var109 == UINT32_C(4026531840);
620 var112 = var114;
621 goto RET_LABEL113;
622 RET_LABEL113:(void)0;
623 }
624 }
625 if (var112){
626 {
627 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(117440512)) on <var_b:UInt32> */
628 var117 = var_b & UINT32_C(117440512);
629 var115 = var117;
630 goto RET_LABEL116;
631 RET_LABEL116:(void)0;
632 }
633 }
634 {
635 { /* Inline fixed_ints$UInt32$>> (var115,6l) on <var115:UInt32> */
636 var120 = var115 >> 6l;
637 var118 = var120;
638 goto RET_LABEL119;
639 RET_LABEL119:(void)0;
640 }
641 }
642 {
643 { /* Inline fixed_ints$UInt32$| (var_ret,var118) on <var_ret:UInt32> */
644 var123 = var_ret | var118;
645 var121 = var123;
646 goto RET_LABEL122;
647 RET_LABEL122:(void)0;
648 }
649 }
650 var_ret = var121;
651 {
652 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4128768)) on <var_b:UInt32> */
653 var126 = var_b & UINT32_C(4128768);
654 var124 = var126;
655 goto RET_LABEL125;
656 RET_LABEL125:(void)0;
657 }
658 }
659 {
660 { /* Inline fixed_ints$UInt32$>> (var124,4l) on <var124:UInt32> */
661 var129 = var124 >> 4l;
662 var127 = var129;
663 goto RET_LABEL128;
664 RET_LABEL128:(void)0;
665 }
666 }
667 {
668 { /* Inline fixed_ints$UInt32$| (var_ret,var127) on <var_ret:UInt32> */
669 var132 = var_ret | var127;
670 var130 = var132;
671 goto RET_LABEL131;
672 RET_LABEL131:(void)0;
673 }
674 }
675 var_ret = var130;
676 {
677 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(16128)) on <var_b:UInt32> */
678 var135 = var_b & UINT32_C(16128);
679 var133 = var135;
680 goto RET_LABEL134;
681 RET_LABEL134:(void)0;
682 }
683 }
684 {
685 { /* Inline fixed_ints$UInt32$>> (var133,2l) on <var133:UInt32> */
686 var138 = var133 >> 2l;
687 var136 = var138;
688 goto RET_LABEL137;
689 RET_LABEL137:(void)0;
690 }
691 }
692 {
693 { /* Inline fixed_ints$UInt32$| (var_ret,var136) on <var_ret:UInt32> */
694 var141 = var_ret | var136;
695 var139 = var141;
696 goto RET_LABEL140;
697 RET_LABEL140:(void)0;
698 }
699 }
700 var_ret = var139;
701 {
702 { /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(63)) on <var_b:UInt32> */
703 var144 = var_b & UINT32_C(63);
704 var142 = var144;
705 goto RET_LABEL143;
706 RET_LABEL143:(void)0;
707 }
708 }
709 {
710 { /* Inline fixed_ints$UInt32$| (var_ret,var142) on <var_ret:UInt32> */
711 var147 = var_ret | var142;
712 var145 = var147;
713 goto RET_LABEL146;
714 RET_LABEL146:(void)0;
715 }
716 }
717 var_ret = var145;
718 {
719 { /* Inline native$UInt32$code_point (var_ret) on <var_ret:UInt32> */
720 var150 = core__native___UInt32_code_point___impl(var_ret);
721 var148 = var150;
722 goto RET_LABEL149;
723 RET_LABEL149:(void)0;
724 }
725 }
726 var = var148;
727 goto RET_LABEL;
728 } else {
729 }
730 {
731 { /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
732 var153 = (uint32_t)65533l;
733 var151 = var153;
734 goto RET_LABEL152;
735 RET_LABEL152:(void)0;
736 }
737 }
738 var = var151;
739 goto RET_LABEL;
740 RET_LABEL:;
741 return var;
742 }
743 /* method native$CString$char_to_byte_index for (self: CString, Int): Int */
744 long core___core__CString___char_to_byte_index(char* self, long p0) {
745 long var /* : Int */;
746 long var_n /* var n: Int */;
747 long var1 /* : Int */;
748 var_n = p0;
749 {
750 var1 = core___core__CString___char_to_byte_index_cached(self, var_n, 0l, 0l);
751 }
752 var = var1;
753 goto RET_LABEL;
754 RET_LABEL:;
755 return var;
756 }
757 /* method native$CString$length_of_char_at for (self: CString, Int): Int */
758 long core___core__CString___length_of_char_at(char* self, long p0) {
759 long var /* : Int */;
760 long var_pos /* var pos: Int */;
761 unsigned char var1 /* : Byte */;
762 unsigned char var3 /* : Byte */;
763 unsigned char var_c /* var c: Byte */;
764 unsigned char var4 /* : Byte */;
765 unsigned char var6 /* : Byte */;
766 short int var7 /* : Bool */;
767 short int var9 /* : Bool */;
768 short int var10 /* : Bool */;
769 unsigned char var11 /* : Byte */;
770 unsigned char var13 /* : Byte */;
771 short int var14 /* : Bool */;
772 short int var16 /* : Bool */;
773 short int var_ /* var : Bool */;
774 long var17 /* : Int */;
775 short int var19 /* : Bool */;
776 int cltype;
777 int idtype;
778 const char* var_class_name;
779 long var20 /* : Int */;
780 unsigned char var21 /* : Byte */;
781 unsigned char var23 /* : Byte */;
782 unsigned char var24 /* : Byte */;
783 unsigned char var26 /* : Byte */;
784 short int var27 /* : Bool */;
785 short int var29 /* : Bool */;
786 short int var30 /* : Bool */;
787 short int var31 /* : Bool */;
788 unsigned char var32 /* : Byte */;
789 unsigned char var34 /* : Byte */;
790 short int var35 /* : Bool */;
791 short int var37 /* : Bool */;
792 short int var_38 /* var : Bool */;
793 long var39 /* : Int */;
794 short int var41 /* : Bool */;
795 int cltype42;
796 int idtype43;
797 const char* var_class_name44;
798 long var45 /* : Int */;
799 unsigned char var46 /* : Byte */;
800 unsigned char var48 /* : Byte */;
801 unsigned char var49 /* : Byte */;
802 unsigned char var51 /* : Byte */;
803 short int var52 /* : Bool */;
804 short int var54 /* : Bool */;
805 short int var_55 /* var : Bool */;
806 long var56 /* : Int */;
807 short int var58 /* : Bool */;
808 int cltype59;
809 int idtype60;
810 const char* var_class_name61;
811 long var62 /* : Int */;
812 unsigned char var63 /* : Byte */;
813 unsigned char var65 /* : Byte */;
814 unsigned char var66 /* : Byte */;
815 unsigned char var68 /* : Byte */;
816 short int var69 /* : Bool */;
817 short int var71 /* : Bool */;
818 short int var72 /* : Bool */;
819 short int var73 /* : Bool */;
820 short int var74 /* : Bool */;
821 unsigned char var75 /* : Byte */;
822 unsigned char var77 /* : Byte */;
823 short int var78 /* : Bool */;
824 short int var80 /* : Bool */;
825 short int var_81 /* var : Bool */;
826 long var82 /* : Int */;
827 short int var84 /* : Bool */;
828 int cltype85;
829 int idtype86;
830 const char* var_class_name87;
831 long var88 /* : Int */;
832 unsigned char var89 /* : Byte */;
833 unsigned char var91 /* : Byte */;
834 unsigned char var92 /* : Byte */;
835 unsigned char var94 /* : Byte */;
836 short int var95 /* : Bool */;
837 short int var97 /* : Bool */;
838 short int var_98 /* var : Bool */;
839 long var99 /* : Int */;
840 short int var101 /* : Bool */;
841 int cltype102;
842 int idtype103;
843 const char* var_class_name104;
844 long var105 /* : Int */;
845 unsigned char var106 /* : Byte */;
846 unsigned char var108 /* : Byte */;
847 unsigned char var109 /* : Byte */;
848 unsigned char var111 /* : Byte */;
849 short int var112 /* : Bool */;
850 short int var114 /* : Bool */;
851 short int var_115 /* var : Bool */;
852 long var116 /* : Int */;
853 short int var118 /* : Bool */;
854 int cltype119;
855 int idtype120;
856 const char* var_class_name121;
857 long var122 /* : Int */;
858 unsigned char var123 /* : Byte */;
859 unsigned char var125 /* : Byte */;
860 unsigned char var126 /* : Byte */;
861 unsigned char var128 /* : Byte */;
862 short int var129 /* : Bool */;
863 short int var131 /* : Bool */;
864 var_pos = p0;
865 {
866 { /* Inline native$CString$[] (self,var_pos) on <self:CString> */
867 var3 = (unsigned char)((int)self[var_pos]);
868 var1 = var3;
869 goto RET_LABEL2;
870 RET_LABEL2:(void)0;
871 }
872 }
873 var_c = var1;
874 {
875 { /* Inline math$Byte$& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
876 var6 = var_c & ((unsigned char)0x80);
877 var4 = var6;
878 goto RET_LABEL5;
879 RET_LABEL5:(void)0;
880 }
881 }
882 {
883 { /* Inline kernel$Byte$== (var4,((unsigned char)0x00)) on <var4:Byte> */
884 var9 = var4 == ((unsigned char)0x00);
885 var7 = var9;
886 goto RET_LABEL8;
887 RET_LABEL8:(void)0;
888 }
889 }
890 if (var7){
891 var = 1l;
892 goto RET_LABEL;
893 } else {
894 {
895 { /* Inline math$Byte$& (var_c,((unsigned char)0xe0)) on <var_c:Byte> */
896 var13 = var_c & ((unsigned char)0xe0);
897 var11 = var13;
898 goto RET_LABEL12;
899 RET_LABEL12:(void)0;
900 }
901 }
902 {
903 { /* Inline kernel$Byte$== (var11,((unsigned char)0xc0)) on <var11:Byte> */
904 var16 = var11 == ((unsigned char)0xc0);
905 var14 = var16;
906 goto RET_LABEL15;
907 RET_LABEL15:(void)0;
908 }
909 }
910 var_ = var14;
911 if (var14){
912 {
913 { /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
914 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
915 /* <1l:Int> isa OTHER */
916 var19 = 1; /* easy <1l:Int> isa OTHER*/
917 if (unlikely(!var19)) {
918 var_class_name = type_core__Int.name;
919 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
920 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
921 fatal_exit(1);
922 }
923 var20 = var_pos + 1l;
924 var17 = var20;
925 goto RET_LABEL18;
926 RET_LABEL18:(void)0;
927 }
928 }
929 {
930 { /* Inline native$CString$[] (self,var17) on <self:CString> */
931 var23 = (unsigned char)((int)self[var17]);
932 var21 = var23;
933 goto RET_LABEL22;
934 RET_LABEL22:(void)0;
935 }
936 }
937 {
938 { /* Inline math$Byte$& (var21,((unsigned char)0xc0)) on <var21:Byte> */
939 var26 = var21 & ((unsigned char)0xc0);
940 var24 = var26;
941 goto RET_LABEL25;
942 RET_LABEL25:(void)0;
943 }
944 }
945 {
946 { /* Inline kernel$Byte$== (var24,((unsigned char)0x80)) on <var24:Byte> */
947 var29 = var24 == ((unsigned char)0x80);
948 var27 = var29;
949 goto RET_LABEL28;
950 RET_LABEL28:(void)0;
951 }
952 }
953 var10 = var27;
954 } else {
955 var10 = var_;
956 }
957 if (var10){
958 var = 2l;
959 goto RET_LABEL;
960 } else {
961 {
962 { /* Inline math$Byte$& (var_c,((unsigned char)0xf0)) on <var_c:Byte> */
963 var34 = var_c & ((unsigned char)0xf0);
964 var32 = var34;
965 goto RET_LABEL33;
966 RET_LABEL33:(void)0;
967 }
968 }
969 {
970 { /* Inline kernel$Byte$== (var32,((unsigned char)0xe0)) on <var32:Byte> */
971 var37 = var32 == ((unsigned char)0xe0);
972 var35 = var37;
973 goto RET_LABEL36;
974 RET_LABEL36:(void)0;
975 }
976 }
977 var_38 = var35;
978 if (var35){
979 {
980 { /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
981 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
982 /* <1l:Int> isa OTHER */
983 var41 = 1; /* easy <1l:Int> isa OTHER*/
984 if (unlikely(!var41)) {
985 var_class_name44 = type_core__Int.name;
986 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
987 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
988 fatal_exit(1);
989 }
990 var45 = var_pos + 1l;
991 var39 = var45;
992 goto RET_LABEL40;
993 RET_LABEL40:(void)0;
994 }
995 }
996 {
997 { /* Inline native$CString$[] (self,var39) on <self:CString> */
998 var48 = (unsigned char)((int)self[var39]);
999 var46 = var48;
1000 goto RET_LABEL47;
1001 RET_LABEL47:(void)0;
1002 }
1003 }
1004 {
1005 { /* Inline math$Byte$& (var46,((unsigned char)0xc0)) on <var46:Byte> */
1006 var51 = var46 & ((unsigned char)0xc0);
1007 var49 = var51;
1008 goto RET_LABEL50;
1009 RET_LABEL50:(void)0;
1010 }
1011 }
1012 {
1013 { /* Inline kernel$Byte$== (var49,((unsigned char)0x80)) on <var49:Byte> */
1014 var54 = var49 == ((unsigned char)0x80);
1015 var52 = var54;
1016 goto RET_LABEL53;
1017 RET_LABEL53:(void)0;
1018 }
1019 }
1020 var31 = var52;
1021 } else {
1022 var31 = var_38;
1023 }
1024 var_55 = var31;
1025 if (var31){
1026 {
1027 { /* Inline kernel$Int$+ (var_pos,2l) on <var_pos:Int> */
1028 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1029 /* <2l:Int> isa OTHER */
1030 var58 = 1; /* easy <2l:Int> isa OTHER*/
1031 if (unlikely(!var58)) {
1032 var_class_name61 = type_core__Int.name;
1033 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
1034 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1035 fatal_exit(1);
1036 }
1037 var62 = var_pos + 2l;
1038 var56 = var62;
1039 goto RET_LABEL57;
1040 RET_LABEL57:(void)0;
1041 }
1042 }
1043 {
1044 { /* Inline native$CString$[] (self,var56) on <self:CString> */
1045 var65 = (unsigned char)((int)self[var56]);
1046 var63 = var65;
1047 goto RET_LABEL64;
1048 RET_LABEL64:(void)0;
1049 }
1050 }
1051 {
1052 { /* Inline math$Byte$& (var63,((unsigned char)0xc0)) on <var63:Byte> */
1053 var68 = var63 & ((unsigned char)0xc0);
1054 var66 = var68;
1055 goto RET_LABEL67;
1056 RET_LABEL67:(void)0;
1057 }
1058 }
1059 {
1060 { /* Inline kernel$Byte$== (var66,((unsigned char)0x80)) on <var66:Byte> */
1061 var71 = var66 == ((unsigned char)0x80);
1062 var69 = var71;
1063 goto RET_LABEL70;
1064 RET_LABEL70:(void)0;
1065 }
1066 }
1067 var30 = var69;
1068 } else {
1069 var30 = var_55;
1070 }
1071 if (var30){
1072 var = 3l;
1073 goto RET_LABEL;
1074 } else {
1075 {
1076 { /* Inline math$Byte$& (var_c,((unsigned char)0xf8)) on <var_c:Byte> */
1077 var77 = var_c & ((unsigned char)0xf8);
1078 var75 = var77;
1079 goto RET_LABEL76;
1080 RET_LABEL76:(void)0;
1081 }
1082 }
1083 {
1084 { /* Inline kernel$Byte$== (var75,((unsigned char)0xf0)) on <var75:Byte> */
1085 var80 = var75 == ((unsigned char)0xf0);
1086 var78 = var80;
1087 goto RET_LABEL79;
1088 RET_LABEL79:(void)0;
1089 }
1090 }
1091 var_81 = var78;
1092 if (var78){
1093 {
1094 { /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
1095 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1096 /* <1l:Int> isa OTHER */
1097 var84 = 1; /* easy <1l:Int> isa OTHER*/
1098 if (unlikely(!var84)) {
1099 var_class_name87 = type_core__Int.name;
1100 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name87);
1101 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1102 fatal_exit(1);
1103 }
1104 var88 = var_pos + 1l;
1105 var82 = var88;
1106 goto RET_LABEL83;
1107 RET_LABEL83:(void)0;
1108 }
1109 }
1110 {
1111 { /* Inline native$CString$[] (self,var82) on <self:CString> */
1112 var91 = (unsigned char)((int)self[var82]);
1113 var89 = var91;
1114 goto RET_LABEL90;
1115 RET_LABEL90:(void)0;
1116 }
1117 }
1118 {
1119 { /* Inline math$Byte$& (var89,((unsigned char)0xc0)) on <var89:Byte> */
1120 var94 = var89 & ((unsigned char)0xc0);
1121 var92 = var94;
1122 goto RET_LABEL93;
1123 RET_LABEL93:(void)0;
1124 }
1125 }
1126 {
1127 { /* Inline kernel$Byte$== (var92,((unsigned char)0x80)) on <var92:Byte> */
1128 var97 = var92 == ((unsigned char)0x80);
1129 var95 = var97;
1130 goto RET_LABEL96;
1131 RET_LABEL96:(void)0;
1132 }
1133 }
1134 var74 = var95;
1135 } else {
1136 var74 = var_81;
1137 }
1138 var_98 = var74;
1139 if (var74){
1140 {
1141 { /* Inline kernel$Int$+ (var_pos,2l) on <var_pos:Int> */
1142 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1143 /* <2l:Int> isa OTHER */
1144 var101 = 1; /* easy <2l:Int> isa OTHER*/
1145 if (unlikely(!var101)) {
1146 var_class_name104 = type_core__Int.name;
1147 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name104);
1148 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1149 fatal_exit(1);
1150 }
1151 var105 = var_pos + 2l;
1152 var99 = var105;
1153 goto RET_LABEL100;
1154 RET_LABEL100:(void)0;
1155 }
1156 }
1157 {
1158 { /* Inline native$CString$[] (self,var99) on <self:CString> */
1159 var108 = (unsigned char)((int)self[var99]);
1160 var106 = var108;
1161 goto RET_LABEL107;
1162 RET_LABEL107:(void)0;
1163 }
1164 }
1165 {
1166 { /* Inline math$Byte$& (var106,((unsigned char)0xc0)) on <var106:Byte> */
1167 var111 = var106 & ((unsigned char)0xc0);
1168 var109 = var111;
1169 goto RET_LABEL110;
1170 RET_LABEL110:(void)0;
1171 }
1172 }
1173 {
1174 { /* Inline kernel$Byte$== (var109,((unsigned char)0x80)) on <var109:Byte> */
1175 var114 = var109 == ((unsigned char)0x80);
1176 var112 = var114;
1177 goto RET_LABEL113;
1178 RET_LABEL113:(void)0;
1179 }
1180 }
1181 var73 = var112;
1182 } else {
1183 var73 = var_98;
1184 }
1185 var_115 = var73;
1186 if (var73){
1187 {
1188 { /* Inline kernel$Int$+ (var_pos,3l) on <var_pos:Int> */
1189 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
1190 /* <3l:Int> isa OTHER */
1191 var118 = 1; /* easy <3l:Int> isa OTHER*/
1192 if (unlikely(!var118)) {
1193 var_class_name121 = type_core__Int.name;
1194 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name121);
1195 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1196 fatal_exit(1);
1197 }
1198 var122 = var_pos + 3l;
1199 var116 = var122;
1200 goto RET_LABEL117;
1201 RET_LABEL117:(void)0;
1202 }
1203 }
1204 {
1205 { /* Inline native$CString$[] (self,var116) on <self:CString> */
1206 var125 = (unsigned char)((int)self[var116]);
1207 var123 = var125;
1208 goto RET_LABEL124;
1209 RET_LABEL124:(void)0;
1210 }
1211 }
1212 {
1213 { /* Inline math$Byte$& (var123,((unsigned char)0xc0)) on <var123:Byte> */
1214 var128 = var123 & ((unsigned char)0xc0);
1215 var126 = var128;
1216 goto RET_LABEL127;
1217 RET_LABEL127:(void)0;
1218 }
1219 }
1220 {
1221 { /* Inline kernel$Byte$== (var126,((unsigned char)0x80)) on <var126:Byte> */
1222 var131 = var126 == ((unsigned char)0x80);
1223 var129 = var131;
1224 goto RET_LABEL130;
1225 RET_LABEL130:(void)0;
1226 }
1227 }
1228 var72 = var129;
1229 } else {
1230 var72 = var_115;
1231 }
1232 if (var72){
1233 var = 4l;
1234 goto RET_LABEL;
1235 } else {
1236 var = 1l;
1237 goto RET_LABEL;
1238 }
1239 }
1240 }
1241 }
1242 RET_LABEL:;
1243 return var;
1244 }
1245 /* method native$CString$char_to_byte_index_cached for (self: CString, Int, Int, Int): Int */
1246 long core___core__CString___char_to_byte_index_cached(char* self, long p0, long p1, long p2) {
1247 long var /* : Int */;
1248 long var_n /* var n: Int */;
1249 long var_char_from /* var char_from: Int */;
1250 long var_byte_from /* var byte_from: Int */;
1251 long var_ns_i /* var ns_i: Int */;
1252 long var_my_i /* var my_i: Int */;
1253 long var1 /* : Int */;
1254 short int var3 /* : Bool */;
1255 int cltype;
1256 int idtype;
1257 const char* var_class_name;
1258 long var4 /* : Int */;
1259 long var_dist /* var dist: Int */;
1260 short int var5 /* : Bool */;
1261 short int var7 /* : Bool */;
1262 int cltype8;
1263 int idtype9;
1264 const char* var_class_name10;
1265 short int var11 /* : Bool */;
1266 short int var12 /* : Bool */;
1267 short int var14 /* : Bool */;
1268 int cltype15;
1269 int idtype16;
1270 const char* var_class_name17;
1271 short int var18 /* : Bool */;
1272 uint32_t var19 /* : UInt32 */;
1273 uint32_t var21 /* : UInt32 */;
1274 uint32_t var_i /* var i: UInt32 */;
1275 uint32_t var22 /* : UInt32 */;
1276 uint32_t var24 /* : UInt32 */;
1277 short int var25 /* : Bool */;
1278 short int var27 /* : Bool */;
1279 short int var28 /* : Bool */;
1280 long var29 /* : Int */;
1281 short int var31 /* : Bool */;
1282 int cltype32;
1283 int idtype33;
1284 const char* var_class_name34;
1285 long var35 /* : Int */;
1286 long var36 /* : Int */;
1287 short int var38 /* : Bool */;
1288 int cltype39;
1289 int idtype40;
1290 const char* var_class_name41;
1291 long var42 /* : Int */;
1292 long var43 /* : Int */;
1293 short int var45 /* : Bool */;
1294 int cltype46;
1295 int idtype47;
1296 const char* var_class_name48;
1297 long var49 /* : Int */;
1298 short int var50 /* : Bool */;
1299 short int var52 /* : Bool */;
1300 long var54 /* : Int */;
1301 long var55 /* : Int */;
1302 short int var57 /* : Bool */;
1303 int cltype58;
1304 int idtype59;
1305 const char* var_class_name60;
1306 long var61 /* : Int */;
1307 long var62 /* : Int */;
1308 short int var64 /* : Bool */;
1309 int cltype65;
1310 int idtype66;
1311 const char* var_class_name67;
1312 long var68 /* : Int */;
1313 long var69 /* : Int */;
1314 short int var71 /* : Bool */;
1315 int cltype72;
1316 int idtype73;
1317 const char* var_class_name74;
1318 long var75 /* : Int */;
1319 short int var76 /* : Bool */;
1320 short int var78 /* : Bool */;
1321 int cltype79;
1322 int idtype80;
1323 const char* var_class_name81;
1324 short int var82 /* : Bool */;
1325 long var83 /* : Int */;
1326 long var85 /* : Int */;
1327 short int var86 /* : Bool */;
1328 short int var88 /* : Bool */;
1329 int cltype89;
1330 int idtype90;
1331 const char* var_class_name91;
1332 short int var92 /* : Bool */;
1333 long var93 /* : Int */;
1334 short int var95 /* : Bool */;
1335 int cltype96;
1336 int idtype97;
1337 const char* var_class_name98;
1338 long var99 /* : Int */;
1339 uint32_t var100 /* : UInt32 */;
1340 uint32_t var102 /* : UInt32 */;
1341 uint32_t var_i103 /* var i: UInt32 */;
1342 uint32_t var104 /* : UInt32 */;
1343 uint32_t var106 /* : UInt32 */;
1344 short int var107 /* : Bool */;
1345 short int var109 /* : Bool */;
1346 short int var110 /* : Bool */;
1347 long var112 /* : Int */;
1348 short int var114 /* : Bool */;
1349 int cltype115;
1350 int idtype116;
1351 const char* var_class_name117;
1352 long var118 /* : Int */;
1353 long var119 /* : Int */;
1354 short int var121 /* : Bool */;
1355 int cltype122;
1356 int idtype123;
1357 const char* var_class_name124;
1358 long var125 /* : Int */;
1359 long var126 /* : Int */;
1360 short int var128 /* : Bool */;
1361 int cltype129;
1362 int idtype130;
1363 const char* var_class_name131;
1364 long var132 /* : Int */;
1365 short int var133 /* : Bool */;
1366 short int var135 /* : Bool */;
1367 long var137 /* : Int */;
1368 short int var139 /* : Bool */;
1369 int cltype140;
1370 int idtype141;
1371 const char* var_class_name142;
1372 long var143 /* : Int */;
1373 long var144 /* : Int */;
1374 long var145 /* : Int */;
1375 short int var147 /* : Bool */;
1376 int cltype148;
1377 int idtype149;
1378 const char* var_class_name150;
1379 long var151 /* : Int */;
1380 long var152 /* : Int */;
1381 short int var154 /* : Bool */;
1382 int cltype155;
1383 int idtype156;
1384 const char* var_class_name157;
1385 long var158 /* : Int */;
1386 var_n = p0;
1387 var_char_from = p1;
1388 var_byte_from = p2;
1389 var_ns_i = var_byte_from;
1390 var_my_i = var_char_from;
1391 {
1392 { /* Inline kernel$Int$- (var_n,var_my_i) on <var_n:Int> */
1393 /* Covariant cast for argument 0 (i) <var_my_i:Int> isa OTHER */
1394 /* <var_my_i:Int> isa OTHER */
1395 var3 = 1; /* easy <var_my_i:Int> isa OTHER*/
1396 if (unlikely(!var3)) {
1397 var_class_name = type_core__Int.name;
1398 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1399 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1400 fatal_exit(1);
1401 }
1402 var4 = var_n - var_my_i;
1403 var1 = var4;
1404 goto RET_LABEL2;
1405 RET_LABEL2:(void)0;
1406 }
1407 }
1408 var_dist = var1;
1409 for(;;) {
1410 {
1411 { /* Inline kernel$Int$> (var_dist,0l) on <var_dist:Int> */
1412 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1413 /* <0l:Int> isa OTHER */
1414 var7 = 1; /* easy <0l:Int> isa OTHER*/
1415 if (unlikely(!var7)) {
1416 var_class_name10 = type_core__Int.name;
1417 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
1418 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1419 fatal_exit(1);
1420 }
1421 var11 = var_dist > 0l;
1422 var5 = var11;
1423 goto RET_LABEL6;
1424 RET_LABEL6:(void)0;
1425 }
1426 }
1427 if (var5){
1428 for(;;) {
1429 {
1430 { /* Inline kernel$Int$>= (var_dist,4l) on <var_dist:Int> */
1431 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1432 /* <4l:Int> isa OTHER */
1433 var14 = 1; /* easy <4l:Int> isa OTHER*/
1434 if (unlikely(!var14)) {
1435 var_class_name17 = type_core__Int.name;
1436 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1437 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
1438 fatal_exit(1);
1439 }
1440 var18 = var_dist >= 4l;
1441 var12 = var18;
1442 goto RET_LABEL13;
1443 RET_LABEL13:(void)0;
1444 }
1445 }
1446 if (var12){
1447 {
1448 { /* Inline native$CString$fetch_4_chars (self,var_ns_i) on <self:CString> */
1449 var21 = *((uint32_t*)(self + var_ns_i));
1450 var19 = var21;
1451 goto RET_LABEL20;
1452 RET_LABEL20:(void)0;
1453 }
1454 }
1455 var_i = var19;
1456 {
1457 { /* Inline fixed_ints$UInt32$& (var_i,UINT32_C(2155905152)) on <var_i:UInt32> */
1458 var24 = var_i & UINT32_C(2155905152);
1459 var22 = var24;
1460 goto RET_LABEL23;
1461 RET_LABEL23:(void)0;
1462 }
1463 }
1464 {
1465 { /* Inline fixed_ints$UInt32$!= (var22,UINT32_C(0)) on <var22:UInt32> */
1466 var27 = var22 == UINT32_C(0);
1467 var28 = !var27;
1468 var25 = var28;
1469 goto RET_LABEL26;
1470 RET_LABEL26:(void)0;
1471 }
1472 }
1473 if (var25){
1474 goto BREAK_label;
1475 } else {
1476 }
1477 {
1478 { /* Inline kernel$Int$+ (var_ns_i,4l) on <var_ns_i:Int> */
1479 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1480 /* <4l:Int> isa OTHER */
1481 var31 = 1; /* easy <4l:Int> isa OTHER*/
1482 if (unlikely(!var31)) {
1483 var_class_name34 = type_core__Int.name;
1484 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
1485 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1486 fatal_exit(1);
1487 }
1488 var35 = var_ns_i + 4l;
1489 var29 = var35;
1490 goto RET_LABEL30;
1491 RET_LABEL30:(void)0;
1492 }
1493 }
1494 var_ns_i = var29;
1495 {
1496 { /* Inline kernel$Int$+ (var_my_i,4l) on <var_my_i:Int> */
1497 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1498 /* <4l:Int> isa OTHER */
1499 var38 = 1; /* easy <4l:Int> isa OTHER*/
1500 if (unlikely(!var38)) {
1501 var_class_name41 = type_core__Int.name;
1502 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
1503 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1504 fatal_exit(1);
1505 }
1506 var42 = var_my_i + 4l;
1507 var36 = var42;
1508 goto RET_LABEL37;
1509 RET_LABEL37:(void)0;
1510 }
1511 }
1512 var_my_i = var36;
1513 {
1514 { /* Inline kernel$Int$- (var_dist,4l) on <var_dist:Int> */
1515 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1516 /* <4l:Int> isa OTHER */
1517 var45 = 1; /* easy <4l:Int> isa OTHER*/
1518 if (unlikely(!var45)) {
1519 var_class_name48 = type_core__Int.name;
1520 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
1521 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1522 fatal_exit(1);
1523 }
1524 var49 = var_dist - 4l;
1525 var43 = var49;
1526 goto RET_LABEL44;
1527 RET_LABEL44:(void)0;
1528 }
1529 }
1530 var_dist = var43;
1531 } else {
1532 goto BREAK_label;
1533 }
1534 }
1535 BREAK_label: (void)0;
1536 {
1537 { /* Inline kernel$Int$== (var_dist,0l) on <var_dist:Int> */
1538 var52 = var_dist == 0l;
1539 var50 = var52;
1540 goto RET_LABEL51;
1541 RET_LABEL51:(void)0;
1542 }
1543 }
1544 if (var50){
1545 goto BREAK_label53;
1546 } else {
1547 }
1548 {
1549 var54 = core___core__CString___length_of_char_at(self, var_ns_i);
1550 }
1551 {
1552 { /* Inline kernel$Int$+ (var_ns_i,var54) on <var_ns_i:Int> */
1553 /* Covariant cast for argument 0 (i) <var54:Int> isa OTHER */
1554 /* <var54:Int> isa OTHER */
1555 var57 = 1; /* easy <var54:Int> isa OTHER*/
1556 if (unlikely(!var57)) {
1557 var_class_name60 = type_core__Int.name;
1558 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
1559 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1560 fatal_exit(1);
1561 }
1562 var61 = var_ns_i + var54;
1563 var55 = var61;
1564 goto RET_LABEL56;
1565 RET_LABEL56:(void)0;
1566 }
1567 }
1568 var_ns_i = var55;
1569 {
1570 { /* Inline kernel$Int$+ (var_my_i,1l) on <var_my_i:Int> */
1571 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1572 /* <1l:Int> isa OTHER */
1573 var64 = 1; /* easy <1l:Int> isa OTHER*/
1574 if (unlikely(!var64)) {
1575 var_class_name67 = type_core__Int.name;
1576 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
1577 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1578 fatal_exit(1);
1579 }
1580 var68 = var_my_i + 1l;
1581 var62 = var68;
1582 goto RET_LABEL63;
1583 RET_LABEL63:(void)0;
1584 }
1585 }
1586 var_my_i = var62;
1587 {
1588 { /* Inline kernel$Int$- (var_dist,1l) on <var_dist:Int> */
1589 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1590 /* <1l:Int> isa OTHER */
1591 var71 = 1; /* easy <1l:Int> isa OTHER*/
1592 if (unlikely(!var71)) {
1593 var_class_name74 = type_core__Int.name;
1594 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74);
1595 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1596 fatal_exit(1);
1597 }
1598 var75 = var_dist - 1l;
1599 var69 = var75;
1600 goto RET_LABEL70;
1601 RET_LABEL70:(void)0;
1602 }
1603 }
1604 var_dist = var69;
1605 } else {
1606 goto BREAK_label53;
1607 }
1608 }
1609 BREAK_label53: (void)0;
1610 for(;;) {
1611 {
1612 { /* Inline kernel$Int$< (var_dist,0l) on <var_dist:Int> */
1613 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1614 /* <0l:Int> isa OTHER */
1615 var78 = 1; /* easy <0l:Int> isa OTHER*/
1616 if (unlikely(!var78)) {
1617 var_class_name81 = type_core__Int.name;
1618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81);
1619 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1620 fatal_exit(1);
1621 }
1622 var82 = var_dist < 0l;
1623 var76 = var82;
1624 goto RET_LABEL77;
1625 RET_LABEL77:(void)0;
1626 }
1627 }
1628 if (var76){
1629 for(;;) {
1630 {
1631 { /* Inline kernel$Int$unary - (4l) on <4l:Int> */
1632 var85 = -4l;
1633 var83 = var85;
1634 goto RET_LABEL84;
1635 RET_LABEL84:(void)0;
1636 }
1637 }
1638 {
1639 { /* Inline kernel$Int$<= (var_dist,var83) on <var_dist:Int> */
1640 /* Covariant cast for argument 0 (i) <var83:Int> isa OTHER */
1641 /* <var83:Int> isa OTHER */
1642 var88 = 1; /* easy <var83:Int> isa OTHER*/
1643 if (unlikely(!var88)) {
1644 var_class_name91 = type_core__Int.name;
1645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
1646 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
1647 fatal_exit(1);
1648 }
1649 var92 = var_dist <= var83;
1650 var86 = var92;
1651 goto RET_LABEL87;
1652 RET_LABEL87:(void)0;
1653 }
1654 }
1655 if (var86){
1656 {
1657 { /* Inline kernel$Int$- (var_ns_i,4l) on <var_ns_i:Int> */
1658 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1659 /* <4l:Int> isa OTHER */
1660 var95 = 1; /* easy <4l:Int> isa OTHER*/
1661 if (unlikely(!var95)) {
1662 var_class_name98 = type_core__Int.name;
1663 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name98);
1664 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1665 fatal_exit(1);
1666 }
1667 var99 = var_ns_i - 4l;
1668 var93 = var99;
1669 goto RET_LABEL94;
1670 RET_LABEL94:(void)0;
1671 }
1672 }
1673 {
1674 { /* Inline native$CString$fetch_4_chars (self,var93) on <self:CString> */
1675 var102 = *((uint32_t*)(self + var93));
1676 var100 = var102;
1677 goto RET_LABEL101;
1678 RET_LABEL101:(void)0;
1679 }
1680 }
1681 var_i103 = var100;
1682 {
1683 { /* Inline fixed_ints$UInt32$& (var_i103,UINT32_C(2155905152)) on <var_i103:UInt32> */
1684 var106 = var_i103 & UINT32_C(2155905152);
1685 var104 = var106;
1686 goto RET_LABEL105;
1687 RET_LABEL105:(void)0;
1688 }
1689 }
1690 {
1691 { /* Inline fixed_ints$UInt32$!= (var104,UINT32_C(0)) on <var104:UInt32> */
1692 var109 = var104 == UINT32_C(0);
1693 var110 = !var109;
1694 var107 = var110;
1695 goto RET_LABEL108;
1696 RET_LABEL108:(void)0;
1697 }
1698 }
1699 if (var107){
1700 goto BREAK_label111;
1701 } else {
1702 }
1703 {
1704 { /* Inline kernel$Int$- (var_ns_i,4l) on <var_ns_i:Int> */
1705 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1706 /* <4l:Int> isa OTHER */
1707 var114 = 1; /* easy <4l:Int> isa OTHER*/
1708 if (unlikely(!var114)) {
1709 var_class_name117 = type_core__Int.name;
1710 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name117);
1711 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1712 fatal_exit(1);
1713 }
1714 var118 = var_ns_i - 4l;
1715 var112 = var118;
1716 goto RET_LABEL113;
1717 RET_LABEL113:(void)0;
1718 }
1719 }
1720 var_ns_i = var112;
1721 {
1722 { /* Inline kernel$Int$- (var_my_i,4l) on <var_my_i:Int> */
1723 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1724 /* <4l:Int> isa OTHER */
1725 var121 = 1; /* easy <4l:Int> isa OTHER*/
1726 if (unlikely(!var121)) {
1727 var_class_name124 = type_core__Int.name;
1728 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name124);
1729 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1730 fatal_exit(1);
1731 }
1732 var125 = var_my_i - 4l;
1733 var119 = var125;
1734 goto RET_LABEL120;
1735 RET_LABEL120:(void)0;
1736 }
1737 }
1738 var_my_i = var119;
1739 {
1740 { /* Inline kernel$Int$+ (var_dist,4l) on <var_dist:Int> */
1741 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1742 /* <4l:Int> isa OTHER */
1743 var128 = 1; /* easy <4l:Int> isa OTHER*/
1744 if (unlikely(!var128)) {
1745 var_class_name131 = type_core__Int.name;
1746 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name131);
1747 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1748 fatal_exit(1);
1749 }
1750 var132 = var_dist + 4l;
1751 var126 = var132;
1752 goto RET_LABEL127;
1753 RET_LABEL127:(void)0;
1754 }
1755 }
1756 var_dist = var126;
1757 } else {
1758 goto BREAK_label111;
1759 }
1760 }
1761 BREAK_label111: (void)0;
1762 {
1763 { /* Inline kernel$Int$== (var_dist,0l) on <var_dist:Int> */
1764 var135 = var_dist == 0l;
1765 var133 = var135;
1766 goto RET_LABEL134;
1767 RET_LABEL134:(void)0;
1768 }
1769 }
1770 if (var133){
1771 goto BREAK_label136;
1772 } else {
1773 }
1774 {
1775 { /* Inline kernel$Int$- (var_ns_i,1l) on <var_ns_i:Int> */
1776 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1777 /* <1l:Int> isa OTHER */
1778 var139 = 1; /* easy <1l:Int> isa OTHER*/
1779 if (unlikely(!var139)) {
1780 var_class_name142 = type_core__Int.name;
1781 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name142);
1782 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1783 fatal_exit(1);
1784 }
1785 var143 = var_ns_i - 1l;
1786 var137 = var143;
1787 goto RET_LABEL138;
1788 RET_LABEL138:(void)0;
1789 }
1790 }
1791 {
1792 var144 = core___core__CString___find_beginning_of_char_at(self, var137);
1793 }
1794 var_ns_i = var144;
1795 {
1796 { /* Inline kernel$Int$- (var_my_i,1l) on <var_my_i:Int> */
1797 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1798 /* <1l:Int> isa OTHER */
1799 var147 = 1; /* easy <1l:Int> isa OTHER*/
1800 if (unlikely(!var147)) {
1801 var_class_name150 = type_core__Int.name;
1802 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name150);
1803 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1804 fatal_exit(1);
1805 }
1806 var151 = var_my_i - 1l;
1807 var145 = var151;
1808 goto RET_LABEL146;
1809 RET_LABEL146:(void)0;
1810 }
1811 }
1812 var_my_i = var145;
1813 {
1814 { /* Inline kernel$Int$+ (var_dist,1l) on <var_dist:Int> */
1815 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1816 /* <1l:Int> isa OTHER */
1817 var154 = 1; /* easy <1l:Int> isa OTHER*/
1818 if (unlikely(!var154)) {
1819 var_class_name157 = type_core__Int.name;
1820 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name157);
1821 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1822 fatal_exit(1);
1823 }
1824 var158 = var_dist + 1l;
1825 var152 = var158;
1826 goto RET_LABEL153;
1827 RET_LABEL153:(void)0;
1828 }
1829 }
1830 var_dist = var152;
1831 } else {
1832 goto BREAK_label136;
1833 }
1834 }
1835 BREAK_label136: (void)0;
1836 var = var_ns_i;
1837 goto RET_LABEL;
1838 RET_LABEL:;
1839 return var;
1840 }
1841 /* method native$CString$find_beginning_of_char_at for (self: CString, Int): Int */
1842 long core___core__CString___find_beginning_of_char_at(char* self, long p0) {
1843 long var /* : Int */;
1844 long var_pos /* var pos: Int */;
1845 long var_endpos /* var endpos: Int */;
1846 unsigned char var1 /* : Byte */;
1847 unsigned char var3 /* : Byte */;
1848 unsigned char var_c /* var c: Byte */;
1849 unsigned char var4 /* : Byte */;
1850 unsigned char var6 /* : Byte */;
1851 short int var7 /* : Bool */;
1852 short int var9 /* : Bool */;
1853 unsigned char var10 /* : Byte */;
1854 unsigned char var12 /* : Byte */;
1855 short int var13 /* : Bool */;
1856 short int var15 /* : Bool */;
1857 long var16 /* : Int */;
1858 short int var18 /* : Bool */;
1859 int cltype;
1860 int idtype;
1861 const char* var_class_name;
1862 long var19 /* : Int */;
1863 unsigned char var20 /* : Byte */;
1864 unsigned char var22 /* : Byte */;
1865 long var_stpos /* var stpos: Int */;
1866 long var23 /* : Int */;
1867 long var24 /* : Int */;
1868 short int var26 /* : Bool */;
1869 int cltype27;
1870 int idtype28;
1871 const char* var_class_name29;
1872 long var30 /* : Int */;
1873 long var31 /* : Int */;
1874 short int var33 /* : Bool */;
1875 int cltype34;
1876 int idtype35;
1877 const char* var_class_name36;
1878 long var37 /* : Int */;
1879 short int var38 /* : Bool */;
1880 short int var40 /* : Bool */;
1881 int cltype41;
1882 int idtype42;
1883 const char* var_class_name43;
1884 short int var44 /* : Bool */;
1885 var_pos = p0;
1886 var_endpos = var_pos;
1887 {
1888 { /* Inline native$CString$[] (self,var_pos) on <self:CString> */
1889 var3 = (unsigned char)((int)self[var_pos]);
1890 var1 = var3;
1891 goto RET_LABEL2;
1892 RET_LABEL2:(void)0;
1893 }
1894 }
1895 var_c = var1;
1896 {
1897 { /* Inline math$Byte$& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
1898 var6 = var_c & ((unsigned char)0x80);
1899 var4 = var6;
1900 goto RET_LABEL5;
1901 RET_LABEL5:(void)0;
1902 }
1903 }
1904 {
1905 { /* Inline kernel$Byte$== (var4,((unsigned char)0x00)) on <var4:Byte> */
1906 var9 = var4 == ((unsigned char)0x00);
1907 var7 = var9;
1908 goto RET_LABEL8;
1909 RET_LABEL8:(void)0;
1910 }
1911 }
1912 if (var7){
1913 var = var_pos;
1914 goto RET_LABEL;
1915 } else {
1916 }
1917 for(;;) {
1918 {
1919 { /* Inline math$Byte$& (var_c,((unsigned char)0xc0)) on <var_c:Byte> */
1920 var12 = var_c & ((unsigned char)0xc0);
1921 var10 = var12;
1922 goto RET_LABEL11;
1923 RET_LABEL11:(void)0;
1924 }
1925 }
1926 {
1927 { /* Inline kernel$Byte$== (var10,((unsigned char)0x80)) on <var10:Byte> */
1928 var15 = var10 == ((unsigned char)0x80);
1929 var13 = var15;
1930 goto RET_LABEL14;
1931 RET_LABEL14:(void)0;
1932 }
1933 }
1934 if (var13){
1935 {
1936 { /* Inline kernel$Int$- (var_pos,1l) on <var_pos:Int> */
1937 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1938 /* <1l:Int> isa OTHER */
1939 var18 = 1; /* easy <1l:Int> isa OTHER*/
1940 if (unlikely(!var18)) {
1941 var_class_name = type_core__Int.name;
1942 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1943 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1944 fatal_exit(1);
1945 }
1946 var19 = var_pos - 1l;
1947 var16 = var19;
1948 goto RET_LABEL17;
1949 RET_LABEL17:(void)0;
1950 }
1951 }
1952 var_pos = var16;
1953 {
1954 { /* Inline native$CString$[] (self,var_pos) on <self:CString> */
1955 var22 = (unsigned char)((int)self[var_pos]);
1956 var20 = var22;
1957 goto RET_LABEL21;
1958 RET_LABEL21:(void)0;
1959 }
1960 }
1961 var_c = var20;
1962 } else {
1963 goto BREAK_label;
1964 }
1965 }
1966 BREAK_label: (void)0;
1967 var_stpos = var_pos;
1968 {
1969 var23 = core___core__CString___length_of_char_at(self, var_stpos);
1970 }
1971 {
1972 { /* Inline kernel$Int$- (var_endpos,var_stpos) on <var_endpos:Int> */
1973 /* Covariant cast for argument 0 (i) <var_stpos:Int> isa OTHER */
1974 /* <var_stpos:Int> isa OTHER */
1975 var26 = 1; /* easy <var_stpos:Int> isa OTHER*/
1976 if (unlikely(!var26)) {
1977 var_class_name29 = type_core__Int.name;
1978 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
1979 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1980 fatal_exit(1);
1981 }
1982 var30 = var_endpos - var_stpos;
1983 var24 = var30;
1984 goto RET_LABEL25;
1985 RET_LABEL25:(void)0;
1986 }
1987 }
1988 {
1989 { /* Inline kernel$Int$+ (var24,1l) on <var24:Int> */
1990 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1991 /* <1l:Int> isa OTHER */
1992 var33 = 1; /* easy <1l:Int> isa OTHER*/
1993 if (unlikely(!var33)) {
1994 var_class_name36 = type_core__Int.name;
1995 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
1996 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1997 fatal_exit(1);
1998 }
1999 var37 = var24 + 1l;
2000 var31 = var37;
2001 goto RET_LABEL32;
2002 RET_LABEL32:(void)0;
2003 }
2004 }
2005 {
2006 { /* Inline kernel$Int$>= (var23,var31) on <var23:Int> */
2007 /* Covariant cast for argument 0 (i) <var31:Int> isa OTHER */
2008 /* <var31:Int> isa OTHER */
2009 var40 = 1; /* easy <var31:Int> isa OTHER*/
2010 if (unlikely(!var40)) {
2011 var_class_name43 = type_core__Int.name;
2012 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
2013 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
2014 fatal_exit(1);
2015 }
2016 var44 = var23 >= var31;
2017 var38 = var44;
2018 goto RET_LABEL39;
2019 RET_LABEL39:(void)0;
2020 }
2021 }
2022 if (var38){
2023 var = var_pos;
2024 goto RET_LABEL;
2025 } else {
2026 }
2027 var = var_endpos;
2028 goto RET_LABEL;
2029 RET_LABEL:;
2030 return var;
2031 }
2032 /* method native$CString$utf8_length for (self: CString, Int, Int): Int */
2033 long core___core__CString___utf8_length(char* self, long p0, long p1) {
2034 long var /* : Int */;
2035 long var_from /* var from: Int */;
2036 long var_byte_length /* var byte_length: Int */;
2037 long var_st /* var st: Int */;
2038 long var_ln /* var ln: Int */;
2039 short int var1 /* : Bool */;
2040 short int var3 /* : Bool */;
2041 int cltype;
2042 int idtype;
2043 const char* var_class_name;
2044 short int var4 /* : Bool */;
2045 short int var5 /* : Bool */;
2046 short int var7 /* : Bool */;
2047 int cltype8;
2048 int idtype9;
2049 const char* var_class_name10;
2050 short int var11 /* : Bool */;
2051 uint32_t var12 /* : UInt32 */;
2052 uint32_t var14 /* : UInt32 */;
2053 uint32_t var_i /* var i: UInt32 */;
2054 uint32_t var15 /* : UInt32 */;
2055 uint32_t var17 /* : UInt32 */;
2056 short int var18 /* : Bool */;
2057 short int var20 /* : Bool */;
2058 short int var21 /* : Bool */;
2059 long var22 /* : Int */;
2060 short int var24 /* : Bool */;
2061 int cltype25;
2062 int idtype26;
2063 const char* var_class_name27;
2064 long var28 /* : Int */;
2065 long var29 /* : Int */;
2066 short int var31 /* : Bool */;
2067 int cltype32;
2068 int idtype33;
2069 const char* var_class_name34;
2070 long var35 /* : Int */;
2071 long var36 /* : Int */;
2072 short int var38 /* : Bool */;
2073 int cltype39;
2074 int idtype40;
2075 const char* var_class_name41;
2076 long var42 /* : Int */;
2077 short int var43 /* : Bool */;
2078 short int var45 /* : Bool */;
2079 long var47 /* : Int */;
2080 long var_cln /* var cln: Int */;
2081 long var48 /* : Int */;
2082 short int var50 /* : Bool */;
2083 int cltype51;
2084 int idtype52;
2085 const char* var_class_name53;
2086 long var54 /* : Int */;
2087 long var55 /* : Int */;
2088 short int var57 /* : Bool */;
2089 int cltype58;
2090 int idtype59;
2091 const char* var_class_name60;
2092 long var61 /* : Int */;
2093 long var62 /* : Int */;
2094 short int var64 /* : Bool */;
2095 int cltype65;
2096 int idtype66;
2097 const char* var_class_name67;
2098 long var68 /* : Int */;
2099 var_from = p0;
2100 var_byte_length = p1;
2101 var_st = var_from;
2102 var_ln = 0l;
2103 for(;;) {
2104 {
2105 { /* Inline kernel$Int$> (var_byte_length,0l) on <var_byte_length:Int> */
2106 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2107 /* <0l:Int> isa OTHER */
2108 var3 = 1; /* easy <0l:Int> isa OTHER*/
2109 if (unlikely(!var3)) {
2110 var_class_name = type_core__Int.name;
2111 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2112 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2113 fatal_exit(1);
2114 }
2115 var4 = var_byte_length > 0l;
2116 var1 = var4;
2117 goto RET_LABEL2;
2118 RET_LABEL2:(void)0;
2119 }
2120 }
2121 if (var1){
2122 for(;;) {
2123 {
2124 { /* Inline kernel$Int$>= (var_byte_length,4l) on <var_byte_length:Int> */
2125 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
2126 /* <4l:Int> isa OTHER */
2127 var7 = 1; /* easy <4l:Int> isa OTHER*/
2128 if (unlikely(!var7)) {
2129 var_class_name10 = type_core__Int.name;
2130 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
2131 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
2132 fatal_exit(1);
2133 }
2134 var11 = var_byte_length >= 4l;
2135 var5 = var11;
2136 goto RET_LABEL6;
2137 RET_LABEL6:(void)0;
2138 }
2139 }
2140 if (var5){
2141 {
2142 { /* Inline native$CString$fetch_4_chars (self,var_st) on <self:CString> */
2143 var14 = *((uint32_t*)(self + var_st));
2144 var12 = var14;
2145 goto RET_LABEL13;
2146 RET_LABEL13:(void)0;
2147 }
2148 }
2149 var_i = var12;
2150 {
2151 { /* Inline fixed_ints$UInt32$& (var_i,UINT32_C(2155905152)) on <var_i:UInt32> */
2152 var17 = var_i & UINT32_C(2155905152);
2153 var15 = var17;
2154 goto RET_LABEL16;
2155 RET_LABEL16:(void)0;
2156 }
2157 }
2158 {
2159 { /* Inline fixed_ints$UInt32$!= (var15,UINT32_C(0)) on <var15:UInt32> */
2160 var20 = var15 == UINT32_C(0);
2161 var21 = !var20;
2162 var18 = var21;
2163 goto RET_LABEL19;
2164 RET_LABEL19:(void)0;
2165 }
2166 }
2167 if (var18){
2168 goto BREAK_label;
2169 } else {
2170 }
2171 {
2172 { /* Inline kernel$Int$- (var_byte_length,4l) on <var_byte_length:Int> */
2173 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
2174 /* <4l:Int> isa OTHER */
2175 var24 = 1; /* easy <4l:Int> isa OTHER*/
2176 if (unlikely(!var24)) {
2177 var_class_name27 = type_core__Int.name;
2178 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
2179 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2180 fatal_exit(1);
2181 }
2182 var28 = var_byte_length - 4l;
2183 var22 = var28;
2184 goto RET_LABEL23;
2185 RET_LABEL23:(void)0;
2186 }
2187 }
2188 var_byte_length = var22;
2189 {
2190 { /* Inline kernel$Int$+ (var_st,4l) on <var_st:Int> */
2191 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
2192 /* <4l:Int> isa OTHER */
2193 var31 = 1; /* easy <4l:Int> isa OTHER*/
2194 if (unlikely(!var31)) {
2195 var_class_name34 = type_core__Int.name;
2196 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
2197 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2198 fatal_exit(1);
2199 }
2200 var35 = var_st + 4l;
2201 var29 = var35;
2202 goto RET_LABEL30;
2203 RET_LABEL30:(void)0;
2204 }
2205 }
2206 var_st = var29;
2207 {
2208 { /* Inline kernel$Int$+ (var_ln,4l) on <var_ln:Int> */
2209 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
2210 /* <4l:Int> isa OTHER */
2211 var38 = 1; /* easy <4l:Int> isa OTHER*/
2212 if (unlikely(!var38)) {
2213 var_class_name41 = type_core__Int.name;
2214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
2215 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2216 fatal_exit(1);
2217 }
2218 var42 = var_ln + 4l;
2219 var36 = var42;
2220 goto RET_LABEL37;
2221 RET_LABEL37:(void)0;
2222 }
2223 }
2224 var_ln = var36;
2225 } else {
2226 goto BREAK_label;
2227 }
2228 }
2229 BREAK_label: (void)0;
2230 {
2231 { /* Inline kernel$Int$== (var_byte_length,0l) on <var_byte_length:Int> */
2232 var45 = var_byte_length == 0l;
2233 var43 = var45;
2234 goto RET_LABEL44;
2235 RET_LABEL44:(void)0;
2236 }
2237 }
2238 if (var43){
2239 goto BREAK_label46;
2240 } else {
2241 }
2242 {
2243 var47 = core___core__CString___length_of_char_at(self, var_st);
2244 }
2245 var_cln = var47;
2246 {
2247 { /* Inline kernel$Int$+ (var_st,var_cln) on <var_st:Int> */
2248 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
2249 /* <var_cln:Int> isa OTHER */
2250 var50 = 1; /* easy <var_cln:Int> isa OTHER*/
2251 if (unlikely(!var50)) {
2252 var_class_name53 = type_core__Int.name;
2253 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
2254 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2255 fatal_exit(1);
2256 }
2257 var54 = var_st + var_cln;
2258 var48 = var54;
2259 goto RET_LABEL49;
2260 RET_LABEL49:(void)0;
2261 }
2262 }
2263 var_st = var48;
2264 {
2265 { /* Inline kernel$Int$+ (var_ln,1l) on <var_ln:Int> */
2266 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2267 /* <1l:Int> isa OTHER */
2268 var57 = 1; /* easy <1l:Int> isa OTHER*/
2269 if (unlikely(!var57)) {
2270 var_class_name60 = type_core__Int.name;
2271 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
2272 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2273 fatal_exit(1);
2274 }
2275 var61 = var_ln + 1l;
2276 var55 = var61;
2277 goto RET_LABEL56;
2278 RET_LABEL56:(void)0;
2279 }
2280 }
2281 var_ln = var55;
2282 {
2283 { /* Inline kernel$Int$- (var_byte_length,var_cln) on <var_byte_length:Int> */
2284 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
2285 /* <var_cln:Int> isa OTHER */
2286 var64 = 1; /* easy <var_cln:Int> isa OTHER*/
2287 if (unlikely(!var64)) {
2288 var_class_name67 = type_core__Int.name;
2289 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
2290 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2291 fatal_exit(1);
2292 }
2293 var68 = var_byte_length - var_cln;
2294 var62 = var68;
2295 goto RET_LABEL63;
2296 RET_LABEL63:(void)0;
2297 }
2298 }
2299 var_byte_length = var62;
2300 } else {
2301 goto BREAK_label46;
2302 }
2303 }
2304 BREAK_label46: (void)0;
2305 var = var_ln;
2306 goto RET_LABEL;
2307 RET_LABEL:;
2308 return var;
2309 }
2310 /* method native$CString$fetch_4_chars for (self: CString, Int): UInt32 */
2311 uint32_t core___core__CString___fetch_95d4_chars(char* self, long p0) {
2312 uint32_t var /* : UInt32 */;
2313 uint32_t var1 /* : UInt32 */;
2314 var1 = *((uint32_t*)(self + p0));
2315 var = var1;
2316 goto RET_LABEL;
2317 RET_LABEL:;
2318 return var;
2319 }
2320 /* method native$CString$fetch_4_hchars for (self: CString, Int): UInt32 */
2321 uint32_t core___core__CString___fetch_95d4_hchars(char* self, long p0) {
2322 uint32_t var /* : UInt32 */;
2323 uint32_t var1 /* : UInt32 */;
2324 var1 = (uint32_t)be32toh(*((uint32_t*)(self + p0)));
2325 var = var1;
2326 goto RET_LABEL;
2327 RET_LABEL:;
2328 return var;
2329 }