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