Makefile: clean the clean recipes
[nit.git] / c_src / string.sep.1.c
1 #include "string.sep.0.h"
2 /* method string#Text#is_empty for (self: Text): Bool */
3 short int string__Text__is_empty(val* self) {
4 short int var /* : Bool */;
5 long var1 /* : Int */;
6 long var3 /* : Int */;
7 long var4 /* : Int */;
8 short int var5 /* : Bool */;
9 short int var6 /* : Bool */;
10 short int var8 /* : Bool */;
11 {
12 { /* Inline string#FlatText#length (self) on <self:Text> */
13 var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
14 var1 = var3;
15 RET_LABEL2:(void)0;
16 }
17 }
18 var4 = 0;
19 {
20 { /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
21 var8 = var1 == var4;
22 var6 = var8;
23 goto RET_LABEL7;
24 RET_LABEL7:(void)0;
25 }
26 var5 = var6;
27 }
28 var = var5;
29 goto RET_LABEL;
30 RET_LABEL:;
31 return var;
32 }
33 /* method string#Text#is_empty for (self: Object): Bool */
34 short int VIRTUAL_string__Text__is_empty(val* self) {
35 short int var /* : Bool */;
36 short int var1 /* : Bool */;
37 var1 = string__Text__is_empty(self);
38 var = var1;
39 RET_LABEL:;
40 return var;
41 }
42 /* method string#Text#substring_from for (self: Text, Int): Text */
43 val* string__Text__substring_from(val* self, long p0) {
44 val* var /* : Text */;
45 long var_from /* var from: Int */;
46 long var1 /* : Int */;
47 long var3 /* : Int */;
48 short int var4 /* : Bool */;
49 short int var6 /* : Bool */;
50 int cltype;
51 int idtype;
52 const char* var_class_name;
53 short int var7 /* : Bool */;
54 val* var8 /* : Text */;
55 long var9 /* : Int */;
56 short int var10 /* : Bool */;
57 short int var12 /* : Bool */;
58 int cltype13;
59 int idtype14;
60 const char* var_class_name15;
61 short int var16 /* : Bool */;
62 long var17 /* : Int */;
63 long var18 /* : Int */;
64 long var20 /* : Int */;
65 long var21 /* : Int */;
66 short int var23 /* : Bool */;
67 int cltype24;
68 int idtype25;
69 const char* var_class_name26;
70 long var27 /* : Int */;
71 val* var28 /* : Text */;
72 var_from = p0;
73 {
74 { /* Inline string#FlatText#length (self) on <self:Text> */
75 var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
76 var1 = var3;
77 RET_LABEL2:(void)0;
78 }
79 }
80 {
81 { /* Inline kernel#Int#> (var_from,var1) on <var_from:Int> */
82 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
83 /* <var1:Int> isa OTHER */
84 var6 = 1; /* easy <var1:Int> isa OTHER*/
85 if (unlikely(!var6)) {
86 var_class_name = type_kernel__Int.name;
87 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
88 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
89 show_backtrace(1);
90 }
91 var7 = var_from > var1;
92 var4 = var7;
93 goto RET_LABEL5;
94 RET_LABEL5:(void)0;
95 }
96 }
97 if (var4){
98 {
99 var8 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__empty]))(self) /* empty on <self:Text>*/;
100 }
101 var = var8;
102 goto RET_LABEL;
103 } else {
104 }
105 var9 = 0;
106 {
107 { /* Inline kernel#Int#< (var_from,var9) on <var_from:Int> */
108 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
109 /* <var9:Int> isa OTHER */
110 var12 = 1; /* easy <var9:Int> isa OTHER*/
111 if (unlikely(!var12)) {
112 var_class_name15 = type_kernel__Int.name;
113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
114 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
115 show_backtrace(1);
116 }
117 var16 = var_from < var9;
118 var10 = var16;
119 goto RET_LABEL11;
120 RET_LABEL11:(void)0;
121 }
122 }
123 if (var10){
124 var17 = 0;
125 var_from = var17;
126 } else {
127 }
128 {
129 { /* Inline string#FlatText#length (self) on <self:Text> */
130 var20 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
131 var18 = var20;
132 RET_LABEL19:(void)0;
133 }
134 }
135 {
136 { /* Inline kernel#Int#- (var18,var_from) on <var18:Int> */
137 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
138 /* <var_from:Int> isa OTHER */
139 var23 = 1; /* easy <var_from:Int> isa OTHER*/
140 if (unlikely(!var23)) {
141 var_class_name26 = type_kernel__Int.name;
142 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
143 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
144 show_backtrace(1);
145 }
146 var27 = var18 - var_from;
147 var21 = var27;
148 goto RET_LABEL22;
149 RET_LABEL22:(void)0;
150 }
151 }
152 {
153 var28 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__Text__substring]))(self, var_from, var21) /* substring on <self:Text>*/;
154 }
155 var = var28;
156 goto RET_LABEL;
157 RET_LABEL:;
158 return var;
159 }
160 /* method string#Text#substring_from for (self: Object, Int): Text */
161 val* VIRTUAL_string__Text__substring_from(val* self, long p0) {
162 val* var /* : Text */;
163 val* var1 /* : Text */;
164 var1 = string__Text__substring_from(self, p0);
165 var = var1;
166 RET_LABEL:;
167 return var;
168 }
169 /* method string#Text#has_substring for (self: Text, String, Int): Bool */
170 short int string__Text__has_substring(val* self, val* p0, long p1) {
171 short int var /* : Bool */;
172 val* var_str /* var str: String */;
173 long var_pos /* var pos: Int */;
174 val* var1 /* : SequenceRead[Char] */;
175 val* var2 /* : IndexedIterator[nullable Object] */;
176 val* var_myiter /* var myiter: IndexedIterator[Char] */;
177 val* var3 /* : SequenceRead[Char] */;
178 val* var5 /* : SequenceRead[Char] */;
179 val* var6 /* : Iterator[nullable Object] */;
180 val* var_itsiter /* var itsiter: IndexedIterator[Char] */;
181 short int var7 /* : Bool */;
182 short int var8 /* : Bool */;
183 short int var_ /* var : Bool */;
184 short int var9 /* : Bool */;
185 val* var10 /* : nullable Object */;
186 val* var11 /* : nullable Object */;
187 short int var12 /* : Bool */;
188 short int var13 /* : Bool */;
189 short int var15 /* : Bool */;
190 short int var16 /* : Bool */;
191 short int var17 /* : Bool */;
192 short int var18 /* : Bool */;
193 short int var19 /* : Bool */;
194 short int var20 /* : Bool */;
195 var_str = p0;
196 var_pos = p1;
197 {
198 var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
199 }
200 {
201 var2 = ((val* (*)(val*, long))(var1->class->vft[COLOR_abstract_collection__SequenceRead__iterator_from]))(var1, var_pos) /* iterator_from on <var1:SequenceRead[Char]>*/;
202 }
203 var_myiter = var2;
204 {
205 { /* Inline string#FlatString#chars (var_str) on <var_str:String> */
206 var5 = var_str->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_str:String> */
207 if (unlikely(var5 == NULL)) {
208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
209 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
210 show_backtrace(1);
211 }
212 var3 = var5;
213 RET_LABEL4:(void)0;
214 }
215 }
216 {
217 var6 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:SequenceRead[Char]>*/;
218 }
219 var_itsiter = var6;
220 for(;;) {
221 {
222 var8 = ((short int (*)(val*))(var_myiter->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_myiter) /* is_ok on <var_myiter:IndexedIterator[Char]>*/;
223 }
224 var_ = var8;
225 if (var8){
226 {
227 var9 = ((short int (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_itsiter) /* is_ok on <var_itsiter:IndexedIterator[Char]>*/;
228 }
229 var7 = var9;
230 } else {
231 var7 = var_;
232 }
233 if (!var7) break;
234 {
235 var10 = ((val* (*)(val*))(var_myiter->class->vft[COLOR_abstract_collection__Iterator__item]))(var_myiter) /* item on <var_myiter:IndexedIterator[Char]>*/;
236 }
237 {
238 var11 = ((val* (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__item]))(var_itsiter) /* item on <var_itsiter:IndexedIterator[Char]>*/;
239 }
240 {
241 { /* Inline kernel#Char#!= (var10,var11) on <var10:nullable Object(Char)> */
242 var15 = var10 == var11 || (((struct instance_kernel__Char*)var10)->value == ((struct instance_kernel__Char*)var11)->value);
243 var16 = !var15;
244 var13 = var16;
245 goto RET_LABEL14;
246 RET_LABEL14:(void)0;
247 }
248 var12 = var13;
249 }
250 if (var12){
251 var17 = 0;
252 var = var17;
253 goto RET_LABEL;
254 } else {
255 }
256 {
257 ((void (*)(val*))(var_myiter->class->vft[COLOR_abstract_collection__Iterator__next]))(var_myiter) /* next on <var_myiter:IndexedIterator[Char]>*/;
258 }
259 {
260 ((void (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__next]))(var_itsiter) /* next on <var_itsiter:IndexedIterator[Char]>*/;
261 }
262 CONTINUE_label: (void)0;
263 }
264 BREAK_label: (void)0;
265 {
266 var18 = ((short int (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_itsiter) /* is_ok on <var_itsiter:IndexedIterator[Char]>*/;
267 }
268 if (var18){
269 var19 = 0;
270 var = var19;
271 goto RET_LABEL;
272 } else {
273 }
274 var20 = 1;
275 var = var20;
276 goto RET_LABEL;
277 RET_LABEL:;
278 return var;
279 }
280 /* method string#Text#has_substring for (self: Object, String, Int): Bool */
281 short int VIRTUAL_string__Text__has_substring(val* self, val* p0, long p1) {
282 short int var /* : Bool */;
283 short int var1 /* : Bool */;
284 var1 = string__Text__has_substring(self, p0, p1);
285 var = var1;
286 RET_LABEL:;
287 return var;
288 }
289 /* method string#Text#has_prefix for (self: Text, String): Bool */
290 short int string__Text__has_prefix(val* self, val* p0) {
291 short int var /* : Bool */;
292 val* var_prefix /* var prefix: String */;
293 long var1 /* : Int */;
294 short int var2 /* : Bool */;
295 var_prefix = p0;
296 var1 = 0;
297 {
298 var2 = string__Text__has_substring(self, var_prefix, var1);
299 }
300 var = var2;
301 goto RET_LABEL;
302 RET_LABEL:;
303 return var;
304 }
305 /* method string#Text#has_prefix for (self: Object, String): Bool */
306 short int VIRTUAL_string__Text__has_prefix(val* self, val* p0) {
307 short int var /* : Bool */;
308 short int var1 /* : Bool */;
309 var1 = string__Text__has_prefix(self, p0);
310 var = var1;
311 RET_LABEL:;
312 return var;
313 }
314 /* method string#Text#has_suffix for (self: Text, String): Bool */
315 short int string__Text__has_suffix(val* self, val* p0) {
316 short int var /* : Bool */;
317 val* var_suffix /* var suffix: String */;
318 long var1 /* : Int */;
319 long var3 /* : Int */;
320 long var4 /* : Int */;
321 long var6 /* : Int */;
322 long var7 /* : Int */;
323 short int var9 /* : Bool */;
324 int cltype;
325 int idtype;
326 const char* var_class_name;
327 long var10 /* : Int */;
328 short int var11 /* : Bool */;
329 var_suffix = p0;
330 {
331 { /* Inline string#FlatText#length (self) on <self:Text> */
332 var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
333 var1 = var3;
334 RET_LABEL2:(void)0;
335 }
336 }
337 {
338 { /* Inline string#FlatText#length (var_suffix) on <var_suffix:String> */
339 var6 = var_suffix->attrs[COLOR_string__FlatText___length].l; /* _length on <var_suffix:String> */
340 var4 = var6;
341 RET_LABEL5:(void)0;
342 }
343 }
344 {
345 { /* Inline kernel#Int#- (var1,var4) on <var1:Int> */
346 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
347 /* <var4:Int> isa OTHER */
348 var9 = 1; /* easy <var4:Int> isa OTHER*/
349 if (unlikely(!var9)) {
350 var_class_name = type_kernel__Int.name;
351 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
352 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
353 show_backtrace(1);
354 }
355 var10 = var1 - var4;
356 var7 = var10;
357 goto RET_LABEL8;
358 RET_LABEL8:(void)0;
359 }
360 }
361 {
362 var11 = string__Text__has_substring(self, var_suffix, var7);
363 }
364 var = var11;
365 goto RET_LABEL;
366 RET_LABEL:;
367 return var;
368 }
369 /* method string#Text#has_suffix for (self: Object, String): Bool */
370 short int VIRTUAL_string__Text__has_suffix(val* self, val* p0) {
371 short int var /* : Bool */;
372 short int var1 /* : Bool */;
373 var1 = string__Text__has_suffix(self, p0);
374 var = var1;
375 RET_LABEL:;
376 return var;
377 }
378 /* method string#Text#to_i for (self: Text): Int */
379 long string__Text__to_i(val* self) {
380 long var /* : Int */;
381 val* var1 /* : String */;
382 char* var2 /* : NativeString */;
383 long var3 /* : Int */;
384 long var5 /* : Int */;
385 {
386 var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on <self:Text>*/;
387 }
388 {
389 var2 = string__FlatString__to_cstring(var1);
390 }
391 {
392 { /* Inline string#NativeString#atoi (var2) on <var2:NativeString> */
393 var5 = atoi(var2);;
394 var3 = var5;
395 goto RET_LABEL4;
396 RET_LABEL4:(void)0;
397 }
398 }
399 var = var3;
400 goto RET_LABEL;
401 RET_LABEL:;
402 return var;
403 }
404 /* method string#Text#to_i for (self: Object): Int */
405 long VIRTUAL_string__Text__to_i(val* self) {
406 long var /* : Int */;
407 long var1 /* : Int */;
408 var1 = string__Text__to_i(self);
409 var = var1;
410 RET_LABEL:;
411 return var;
412 }
413 /* method string#Text#to_f for (self: Text): Float */
414 double string__Text__to_f(val* self) {
415 double var /* : Float */;
416 val* var1 /* : String */;
417 char* var2 /* : NativeString */;
418 double var3 /* : Float */;
419 double var5 /* : Float */;
420 {
421 var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on <self:Text>*/;
422 }
423 {
424 var2 = string__FlatString__to_cstring(var1);
425 }
426 {
427 { /* Inline string#NativeString#atof (var2) on <var2:NativeString> */
428 var5 = atof(var2);
429 var3 = var5;
430 goto RET_LABEL4;
431 RET_LABEL4:(void)0;
432 }
433 }
434 var = var3;
435 goto RET_LABEL;
436 RET_LABEL:;
437 return var;
438 }
439 /* method string#Text#to_f for (self: Object): Float */
440 double VIRTUAL_string__Text__to_f(val* self) {
441 double var /* : Float */;
442 double var1 /* : Float */;
443 var1 = string__Text__to_f(self);
444 var = var1;
445 RET_LABEL:;
446 return var;
447 }
448 /* method string#Text#to_hex for (self: Text): Int */
449 long string__Text__to_hex(val* self) {
450 long var /* : Int */;
451 long var1 /* : Int */;
452 long var2 /* : Int */;
453 var1 = 16;
454 {
455 var2 = string__Text__a_to(self, var1);
456 }
457 var = var2;
458 goto RET_LABEL;
459 RET_LABEL:;
460 return var;
461 }
462 /* method string#Text#to_hex for (self: Object): Int */
463 long VIRTUAL_string__Text__to_hex(val* self) {
464 long var /* : Int */;
465 long var1 /* : Int */;
466 var1 = string__Text__to_hex(self);
467 var = var1;
468 RET_LABEL:;
469 return var;
470 }
471 /* method string#Text#a_to for (self: Text, Int): Int */
472 long string__Text__a_to(val* self, long p0) {
473 long var /* : Int */;
474 long var_base /* var base: Int */;
475 long var1 /* : Int */;
476 long var_i /* var i: Int */;
477 short int var2 /* : Bool */;
478 short int var_neg /* var neg: Bool */;
479 val* var3 /* : SequenceRead[Char] */;
480 val* var4 /* : Iterator[nullable Object] */;
481 short int var5 /* : Bool */;
482 val* var6 /* : nullable Object */;
483 char var_c /* var c: Char */;
484 char var7 /* : Char */;
485 long var8 /* : Int */;
486 long var_v /* var v: Int */;
487 short int var9 /* : Bool */;
488 short int var11 /* : Bool */;
489 int cltype;
490 int idtype;
491 const char* var_class_name;
492 short int var12 /* : Bool */;
493 long var13 /* : Int */;
494 long var15 /* : Int */;
495 long var16 /* : Int */;
496 short int var17 /* : Bool */;
497 short int var19 /* : Bool */;
498 int cltype20;
499 int idtype21;
500 const char* var_class_name22;
501 short int var23 /* : Bool */;
502 short int var24 /* : Bool */;
503 long var25 /* : Int */;
504 short int var27 /* : Bool */;
505 int cltype28;
506 int idtype29;
507 const char* var_class_name30;
508 long var31 /* : Int */;
509 long var32 /* : Int */;
510 short int var34 /* : Bool */;
511 int cltype35;
512 int idtype36;
513 const char* var_class_name37;
514 long var38 /* : Int */;
515 long var39 /* : Int */;
516 long var41 /* : Int */;
517 var_base = p0;
518 var1 = 0;
519 var_i = var1;
520 var2 = 0;
521 var_neg = var2;
522 {
523 var3 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
524 }
525 {
526 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:SequenceRead[Char]>*/;
527 }
528 for(;;) {
529 {
530 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
531 }
532 if(!var5) break;
533 {
534 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
535 }
536 var7 = ((struct instance_kernel__Char*)var6)->value; /* autounbox from nullable Object to Char */;
537 var_c = var7;
538 {
539 var8 = kernel__Char__to_i(var_c);
540 }
541 var_v = var8;
542 {
543 { /* Inline kernel#Int#> (var_v,var_base) on <var_v:Int> */
544 /* Covariant cast for argument 0 (i) <var_base:Int> isa OTHER */
545 /* <var_base:Int> isa OTHER */
546 var11 = 1; /* easy <var_base:Int> isa OTHER*/
547 if (unlikely(!var11)) {
548 var_class_name = type_kernel__Int.name;
549 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
550 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
551 show_backtrace(1);
552 }
553 var12 = var_v > var_base;
554 var9 = var12;
555 goto RET_LABEL10;
556 RET_LABEL10:(void)0;
557 }
558 }
559 if (var9){
560 if (var_neg){
561 {
562 { /* Inline kernel#Int#unary - (var_i) on <var_i:Int> */
563 var15 = -var_i;
564 var13 = var15;
565 goto RET_LABEL14;
566 RET_LABEL14:(void)0;
567 }
568 }
569 var = var13;
570 goto RET_LABEL;
571 } else {
572 var = var_i;
573 goto RET_LABEL;
574 }
575 } else {
576 var16 = 0;
577 {
578 { /* Inline kernel#Int#< (var_v,var16) on <var_v:Int> */
579 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
580 /* <var16:Int> isa OTHER */
581 var19 = 1; /* easy <var16:Int> isa OTHER*/
582 if (unlikely(!var19)) {
583 var_class_name22 = type_kernel__Int.name;
584 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
585 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
586 show_backtrace(1);
587 }
588 var23 = var_v < var16;
589 var17 = var23;
590 goto RET_LABEL18;
591 RET_LABEL18:(void)0;
592 }
593 }
594 if (var17){
595 var24 = 1;
596 var_neg = var24;
597 } else {
598 {
599 { /* Inline kernel#Int#* (var_i,var_base) on <var_i:Int> */
600 /* Covariant cast for argument 0 (i) <var_base:Int> isa OTHER */
601 /* <var_base:Int> isa OTHER */
602 var27 = 1; /* easy <var_base:Int> isa OTHER*/
603 if (unlikely(!var27)) {
604 var_class_name30 = type_kernel__Int.name;
605 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
606 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 332);
607 show_backtrace(1);
608 }
609 var31 = var_i * var_base;
610 var25 = var31;
611 goto RET_LABEL26;
612 RET_LABEL26:(void)0;
613 }
614 }
615 {
616 { /* Inline kernel#Int#+ (var25,var_v) on <var25:Int> */
617 /* Covariant cast for argument 0 (i) <var_v:Int> isa OTHER */
618 /* <var_v:Int> isa OTHER */
619 var34 = 1; /* easy <var_v:Int> isa OTHER*/
620 if (unlikely(!var34)) {
621 var_class_name37 = type_kernel__Int.name;
622 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
623 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
624 show_backtrace(1);
625 }
626 var38 = var25 + var_v;
627 var32 = var38;
628 goto RET_LABEL33;
629 RET_LABEL33:(void)0;
630 }
631 }
632 var_i = var32;
633 }
634 }
635 CONTINUE_label: (void)0;
636 {
637 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
638 }
639 }
640 BREAK_label: (void)0;
641 if (var_neg){
642 {
643 { /* Inline kernel#Int#unary - (var_i) on <var_i:Int> */
644 var41 = -var_i;
645 var39 = var41;
646 goto RET_LABEL40;
647 RET_LABEL40:(void)0;
648 }
649 }
650 var = var39;
651 goto RET_LABEL;
652 } else {
653 var = var_i;
654 goto RET_LABEL;
655 }
656 RET_LABEL:;
657 return var;
658 }
659 /* method string#Text#a_to for (self: Object, Int): Int */
660 long VIRTUAL_string__Text__a_to(val* self, long p0) {
661 long var /* : Int */;
662 long var1 /* : Int */;
663 var1 = string__Text__a_to(self, p0);
664 var = var1;
665 RET_LABEL:;
666 return var;
667 }
668 /* method string#Text#to_cmangle for (self: Text): String */
669 val* string__Text__to_cmangle(val* self) {
670 val* var /* : String */;
671 val* var1 /* : FlatBuffer */;
672 val* var_res /* var res: FlatBuffer */;
673 short int var2 /* : Bool */;
674 short int var_underscore /* var underscore: Bool */;
675 val* var3 /* : SequenceRead[Char] */;
676 val* var4 /* : Iterator[nullable Object] */;
677 short int var5 /* : Bool */;
678 val* var6 /* : nullable Object */;
679 char var_c /* var c: Char */;
680 char var7 /* : Char */;
681 short int var8 /* : Bool */;
682 short int var9 /* : Bool */;
683 char var10 /* : Char */;
684 short int var11 /* : Bool */;
685 short int var13 /* : Bool */;
686 int cltype;
687 int idtype;
688 const char* var_class_name;
689 short int var14 /* : Bool */;
690 short int var_ /* var : Bool */;
691 char var15 /* : Char */;
692 short int var16 /* : Bool */;
693 short int var18 /* : Bool */;
694 int cltype19;
695 int idtype20;
696 const char* var_class_name21;
697 short int var22 /* : Bool */;
698 short int var_23 /* var : Bool */;
699 short int var24 /* : Bool */;
700 char var25 /* : Char */;
701 short int var26 /* : Bool */;
702 short int var28 /* : Bool */;
703 int cltype29;
704 int idtype30;
705 const char* var_class_name31;
706 short int var32 /* : Bool */;
707 short int var_33 /* var : Bool */;
708 char var34 /* : Char */;
709 short int var35 /* : Bool */;
710 short int var37 /* : Bool */;
711 int cltype38;
712 int idtype39;
713 const char* var_class_name40;
714 short int var41 /* : Bool */;
715 short int var42 /* : Bool */;
716 char var43 /* : Char */;
717 long var44 /* : Int */;
718 long var46 /* : Int */;
719 val* var47 /* : String */;
720 char var48 /* : Char */;
721 short int var49 /* : Bool */;
722 char var50 /* : Char */;
723 short int var51 /* : Bool */;
724 short int var53 /* : Bool */;
725 int cltype54;
726 int idtype55;
727 const char* var_class_name56;
728 short int var57 /* : Bool */;
729 short int var_58 /* var : Bool */;
730 char var59 /* : Char */;
731 short int var60 /* : Bool */;
732 short int var62 /* : Bool */;
733 int cltype63;
734 int idtype64;
735 const char* var_class_name65;
736 short int var66 /* : Bool */;
737 short int var67 /* : Bool */;
738 char var68 /* : Char */;
739 short int var69 /* : Bool */;
740 short int var70 /* : Bool */;
741 short int var72 /* : Bool */;
742 short int var73 /* : Bool */;
743 char var74 /* : Char */;
744 long var75 /* : Int */;
745 long var77 /* : Int */;
746 val* var78 /* : String */;
747 char var79 /* : Char */;
748 short int var80 /* : Bool */;
749 val* var81 /* : String */;
750 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
751 {
752 string__FlatBuffer__init(var1); /* Direct call string#FlatBuffer#init on <var1:FlatBuffer>*/
753 }
754 var_res = var1;
755 var2 = 0;
756 var_underscore = var2;
757 {
758 var3 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
759 }
760 {
761 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:SequenceRead[Char]>*/;
762 }
763 for(;;) {
764 {
765 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
766 }
767 if(!var5) break;
768 {
769 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
770 }
771 var7 = ((struct instance_kernel__Char*)var6)->value; /* autounbox from nullable Object to Char */;
772 var_c = var7;
773 var10 = 'a';
774 {
775 { /* Inline kernel#Char#>= (var_c,var10) on <var_c:Char> */
776 /* Covariant cast for argument 0 (i) <var10:Char> isa OTHER */
777 /* <var10:Char> isa OTHER */
778 var13 = 1; /* easy <var10:Char> isa OTHER*/
779 if (unlikely(!var13)) {
780 var_class_name = type_kernel__Char.name;
781 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
782 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501);
783 show_backtrace(1);
784 }
785 var14 = var_c >= var10;
786 var11 = var14;
787 goto RET_LABEL12;
788 RET_LABEL12:(void)0;
789 }
790 }
791 var_ = var11;
792 if (var11){
793 var15 = 'z';
794 {
795 { /* Inline kernel#Char#<= (var_c,var15) on <var_c:Char> */
796 /* Covariant cast for argument 0 (i) <var15:Char> isa OTHER */
797 /* <var15:Char> isa OTHER */
798 var18 = 1; /* easy <var15:Char> isa OTHER*/
799 if (unlikely(!var18)) {
800 var_class_name21 = type_kernel__Char.name;
801 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
802 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499);
803 show_backtrace(1);
804 }
805 var22 = var_c <= var15;
806 var16 = var22;
807 goto RET_LABEL17;
808 RET_LABEL17:(void)0;
809 }
810 }
811 var9 = var16;
812 } else {
813 var9 = var_;
814 }
815 var_23 = var9;
816 if (var9){
817 var8 = var_23;
818 } else {
819 var25 = 'A';
820 {
821 { /* Inline kernel#Char#>= (var_c,var25) on <var_c:Char> */
822 /* Covariant cast for argument 0 (i) <var25:Char> isa OTHER */
823 /* <var25:Char> isa OTHER */
824 var28 = 1; /* easy <var25:Char> isa OTHER*/
825 if (unlikely(!var28)) {
826 var_class_name31 = type_kernel__Char.name;
827 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
828 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501);
829 show_backtrace(1);
830 }
831 var32 = var_c >= var25;
832 var26 = var32;
833 goto RET_LABEL27;
834 RET_LABEL27:(void)0;
835 }
836 }
837 var_33 = var26;
838 if (var26){
839 var34 = 'Z';
840 {
841 { /* Inline kernel#Char#<= (var_c,var34) on <var_c:Char> */
842 /* Covariant cast for argument 0 (i) <var34:Char> isa OTHER */
843 /* <var34:Char> isa OTHER */
844 var37 = 1; /* easy <var34:Char> isa OTHER*/
845 if (unlikely(!var37)) {
846 var_class_name40 = type_kernel__Char.name;
847 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
848 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499);
849 show_backtrace(1);
850 }
851 var41 = var_c <= var34;
852 var35 = var41;
853 goto RET_LABEL36;
854 RET_LABEL36:(void)0;
855 }
856 }
857 var24 = var35;
858 } else {
859 var24 = var_33;
860 }
861 var8 = var24;
862 }
863 if (var8){
864 {
865 string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
866 }
867 var42 = 0;
868 var_underscore = var42;
869 goto CONTINUE_label;
870 } else {
871 }
872 if (var_underscore){
873 var43 = '_';
874 {
875 { /* Inline kernel#Char#ascii (var43) on <var43:Char> */
876 var46 = (unsigned char)var43;
877 var44 = var46;
878 goto RET_LABEL45;
879 RET_LABEL45:(void)0;
880 }
881 }
882 {
883 var47 = string__Int__to_s(var44);
884 }
885 {
886 string__FlatBuffer__append(var_res, var47); /* Direct call string#FlatBuffer#append on <var_res:FlatBuffer>*/
887 }
888 var48 = 'd';
889 {
890 string__FlatBuffer__add(var_res, var48); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
891 }
892 } else {
893 }
894 var50 = '0';
895 {
896 { /* Inline kernel#Char#>= (var_c,var50) on <var_c:Char> */
897 /* Covariant cast for argument 0 (i) <var50:Char> isa OTHER */
898 /* <var50:Char> isa OTHER */
899 var53 = 1; /* easy <var50:Char> isa OTHER*/
900 if (unlikely(!var53)) {
901 var_class_name56 = type_kernel__Char.name;
902 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
903 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501);
904 show_backtrace(1);
905 }
906 var57 = var_c >= var50;
907 var51 = var57;
908 goto RET_LABEL52;
909 RET_LABEL52:(void)0;
910 }
911 }
912 var_58 = var51;
913 if (var51){
914 var59 = '9';
915 {
916 { /* Inline kernel#Char#<= (var_c,var59) on <var_c:Char> */
917 /* Covariant cast for argument 0 (i) <var59:Char> isa OTHER */
918 /* <var59:Char> isa OTHER */
919 var62 = 1; /* easy <var59:Char> isa OTHER*/
920 if (unlikely(!var62)) {
921 var_class_name65 = type_kernel__Char.name;
922 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
923 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499);
924 show_backtrace(1);
925 }
926 var66 = var_c <= var59;
927 var60 = var66;
928 goto RET_LABEL61;
929 RET_LABEL61:(void)0;
930 }
931 }
932 var49 = var60;
933 } else {
934 var49 = var_58;
935 }
936 if (var49){
937 {
938 string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
939 }
940 var67 = 0;
941 var_underscore = var67;
942 } else {
943 var68 = '_';
944 {
945 { /* Inline kernel#Char#== (var_c,var68) on <var_c:Char> */
946 var72 = var_c == var68;
947 var70 = var72;
948 goto RET_LABEL71;
949 RET_LABEL71:(void)0;
950 }
951 var69 = var70;
952 }
953 if (var69){
954 {
955 string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
956 }
957 var73 = 1;
958 var_underscore = var73;
959 } else {
960 var74 = '_';
961 {
962 string__FlatBuffer__add(var_res, var74); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
963 }
964 {
965 { /* Inline kernel#Char#ascii (var_c) on <var_c:Char> */
966 var77 = (unsigned char)var_c;
967 var75 = var77;
968 goto RET_LABEL76;
969 RET_LABEL76:(void)0;
970 }
971 }
972 {
973 var78 = string__Int__to_s(var75);
974 }
975 {
976 string__FlatBuffer__append(var_res, var78); /* Direct call string#FlatBuffer#append on <var_res:FlatBuffer>*/
977 }
978 var79 = 'd';
979 {
980 string__FlatBuffer__add(var_res, var79); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
981 }
982 var80 = 0;
983 var_underscore = var80;
984 }
985 }
986 CONTINUE_label: (void)0;
987 {
988 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
989 }
990 }
991 BREAK_label: (void)0;
992 {
993 var81 = string__FlatBuffer__to_s(var_res);
994 }
995 var = var81;
996 goto RET_LABEL;
997 RET_LABEL:;
998 return var;
999 }
1000 /* method string#Text#to_cmangle for (self: Object): String */
1001 val* VIRTUAL_string__Text__to_cmangle(val* self) {
1002 val* var /* : String */;
1003 val* var1 /* : String */;
1004 var1 = string__Text__to_cmangle(self);
1005 var = var1;
1006 RET_LABEL:;
1007 return var;
1008 }
1009 /* method string#Text#escape_to_c for (self: Text): String */
1010 val* string__Text__escape_to_c(val* self) {
1011 val* var /* : String */;
1012 val* var1 /* : FlatBuffer */;
1013 val* var_b /* var b: FlatBuffer */;
1014 val* var2 /* : SequenceRead[Char] */;
1015 val* var3 /* : Iterator[nullable Object] */;
1016 short int var4 /* : Bool */;
1017 val* var5 /* : nullable Object */;
1018 char var_c /* var c: Char */;
1019 char var6 /* : Char */;
1020 char var7 /* : Char */;
1021 short int var8 /* : Bool */;
1022 short int var9 /* : Bool */;
1023 short int var11 /* : Bool */;
1024 static val* varonce;
1025 val* var12 /* : String */;
1026 char* var13 /* : NativeString */;
1027 long var14 /* : Int */;
1028 val* var15 /* : FlatString */;
1029 char var16 /* : Char */;
1030 short int var17 /* : Bool */;
1031 short int var18 /* : Bool */;
1032 short int var20 /* : Bool */;
1033 static val* varonce21;
1034 val* var22 /* : String */;
1035 char* var23 /* : NativeString */;
1036 long var24 /* : Int */;
1037 val* var25 /* : FlatString */;
1038 char var26 /* : Char */;
1039 short int var27 /* : Bool */;
1040 short int var28 /* : Bool */;
1041 short int var30 /* : Bool */;
1042 static val* varonce31;
1043 val* var32 /* : String */;
1044 char* var33 /* : NativeString */;
1045 long var34 /* : Int */;
1046 val* var35 /* : FlatString */;
1047 char var36 /* : Char */;
1048 short int var37 /* : Bool */;
1049 short int var38 /* : Bool */;
1050 short int var40 /* : Bool */;
1051 static val* varonce41;
1052 val* var42 /* : String */;
1053 char* var43 /* : NativeString */;
1054 long var44 /* : Int */;
1055 val* var45 /* : FlatString */;
1056 char var46 /* : Char */;
1057 short int var47 /* : Bool */;
1058 short int var48 /* : Bool */;
1059 short int var50 /* : Bool */;
1060 static val* varonce51;
1061 val* var52 /* : String */;
1062 char* var53 /* : NativeString */;
1063 long var54 /* : Int */;
1064 val* var55 /* : FlatString */;
1065 long var56 /* : Int */;
1066 long var58 /* : Int */;
1067 long var59 /* : Int */;
1068 short int var60 /* : Bool */;
1069 short int var62 /* : Bool */;
1070 int cltype;
1071 int idtype;
1072 const char* var_class_name;
1073 short int var63 /* : Bool */;
1074 static val* varonce64;
1075 val* var65 /* : String */;
1076 char* var66 /* : NativeString */;
1077 long var67 /* : Int */;
1078 val* var68 /* : FlatString */;
1079 long var69 /* : Int */;
1080 long var71 /* : Int */;
1081 long var72 /* : Int */;
1082 short int var73 /* : Bool */;
1083 val* var74 /* : String */;
1084 val* var75 /* : Array[Object] */;
1085 long var76 /* : Int */;
1086 val* var77 /* : NativeArray[Object] */;
1087 val* var78 /* : String */;
1088 val* var79 /* : String */;
1089 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
1090 {
1091 string__FlatBuffer__init(var1); /* Direct call string#FlatBuffer#init on <var1:FlatBuffer>*/
1092 }
1093 var_b = var1;
1094 {
1095 var2 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
1096 }
1097 {
1098 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on <var2:SequenceRead[Char]>*/;
1099 }
1100 for(;;) {
1101 {
1102 var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on <var3:Iterator[nullable Object]>*/;
1103 }
1104 if(!var4) break;
1105 {
1106 var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on <var3:Iterator[nullable Object]>*/;
1107 }
1108 var6 = ((struct instance_kernel__Char*)var5)->value; /* autounbox from nullable Object to Char */;
1109 var_c = var6;
1110 var7 = '\n';
1111 {
1112 { /* Inline kernel#Char#== (var_c,var7) on <var_c:Char> */
1113 var11 = var_c == var7;
1114 var9 = var11;
1115 goto RET_LABEL10;
1116 RET_LABEL10:(void)0;
1117 }
1118 var8 = var9;
1119 }
1120 if (var8){
1121 if (varonce) {
1122 var12 = varonce;
1123 } else {
1124 var13 = "\\n";
1125 var14 = 2;
1126 var15 = string__NativeString__to_s_with_length(var13, var14);
1127 var12 = var15;
1128 varonce = var12;
1129 }
1130 {
1131 string__FlatBuffer__append(var_b, var12); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
1132 }
1133 } else {
1134 var16 = '\0';
1135 {
1136 { /* Inline kernel#Char#== (var_c,var16) on <var_c:Char> */
1137 var20 = var_c == var16;
1138 var18 = var20;
1139 goto RET_LABEL19;
1140 RET_LABEL19:(void)0;
1141 }
1142 var17 = var18;
1143 }
1144 if (var17){
1145 if (varonce21) {
1146 var22 = varonce21;
1147 } else {
1148 var23 = "\\0";
1149 var24 = 2;
1150 var25 = string__NativeString__to_s_with_length(var23, var24);
1151 var22 = var25;
1152 varonce21 = var22;
1153 }
1154 {
1155 string__FlatBuffer__append(var_b, var22); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
1156 }
1157 } else {
1158 var26 = '\"';
1159 {
1160 { /* Inline kernel#Char#== (var_c,var26) on <var_c:Char> */
1161 var30 = var_c == var26;
1162 var28 = var30;
1163 goto RET_LABEL29;
1164 RET_LABEL29:(void)0;
1165 }
1166 var27 = var28;
1167 }
1168 if (var27){
1169 if (varonce31) {
1170 var32 = varonce31;
1171 } else {
1172 var33 = "\\\"";
1173 var34 = 2;
1174 var35 = string__NativeString__to_s_with_length(var33, var34);
1175 var32 = var35;
1176 varonce31 = var32;
1177 }
1178 {
1179 string__FlatBuffer__append(var_b, var32); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
1180 }
1181 } else {
1182 var36 = '\'';
1183 {
1184 { /* Inline kernel#Char#== (var_c,var36) on <var_c:Char> */
1185 var40 = var_c == var36;
1186 var38 = var40;
1187 goto RET_LABEL39;
1188 RET_LABEL39:(void)0;
1189 }
1190 var37 = var38;
1191 }
1192 if (var37){
1193 if (varonce41) {
1194 var42 = varonce41;
1195 } else {
1196 var43 = "\\\'";
1197 var44 = 2;
1198 var45 = string__NativeString__to_s_with_length(var43, var44);
1199 var42 = var45;
1200 varonce41 = var42;
1201 }
1202 {
1203 string__FlatBuffer__append(var_b, var42); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
1204 }
1205 } else {
1206 var46 = '\\';
1207 {
1208 { /* Inline kernel#Char#== (var_c,var46) on <var_c:Char> */
1209 var50 = var_c == var46;
1210 var48 = var50;
1211 goto RET_LABEL49;
1212 RET_LABEL49:(void)0;
1213 }
1214 var47 = var48;
1215 }
1216 if (var47){
1217 if (varonce51) {
1218 var52 = varonce51;
1219 } else {
1220 var53 = "\\\\";
1221 var54 = 2;
1222 var55 = string__NativeString__to_s_with_length(var53, var54);
1223 var52 = var55;
1224 varonce51 = var52;
1225 }
1226 {
1227 string__FlatBuffer__append(var_b, var52); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
1228 }
1229 } else {
1230 {
1231 { /* Inline kernel#Char#ascii (var_c) on <var_c:Char> */
1232 var58 = (unsigned char)var_c;
1233 var56 = var58;
1234 goto RET_LABEL57;
1235 RET_LABEL57:(void)0;
1236 }
1237 }
1238 var59 = 32;
1239 {
1240 { /* Inline kernel#Int#< (var56,var59) on <var56:Int> */
1241 /* Covariant cast for argument 0 (i) <var59:Int> isa OTHER */
1242 /* <var59:Int> isa OTHER */
1243 var62 = 1; /* easy <var59:Int> isa OTHER*/
1244 if (unlikely(!var62)) {
1245 var_class_name = type_kernel__Int.name;
1246 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1247 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1248 show_backtrace(1);
1249 }
1250 var63 = var56 < var59;
1251 var60 = var63;
1252 goto RET_LABEL61;
1253 RET_LABEL61:(void)0;
1254 }
1255 }
1256 if (var60){
1257 if (varonce64) {
1258 var65 = varonce64;
1259 } else {
1260 var66 = "\\";
1261 var67 = 1;
1262 var68 = string__NativeString__to_s_with_length(var66, var67);
1263 var65 = var68;
1264 varonce64 = var65;
1265 }
1266 {
1267 { /* Inline kernel#Char#ascii (var_c) on <var_c:Char> */
1268 var71 = (unsigned char)var_c;
1269 var69 = var71;
1270 goto RET_LABEL70;
1271 RET_LABEL70:(void)0;
1272 }
1273 }
1274 var72 = 8;
1275 var73 = 0;
1276 {
1277 var74 = string__Int__to_base(var69, var72, var73);
1278 }
1279 var75 = NEW_array__Array(&type_array__Arraykernel__Object);
1280 { /* var75 = array_instance Array[Object] */
1281 var76 = 2;
1282 var77 = NEW_array__NativeArray(var76, &type_array__NativeArraykernel__Object);
1283 ((struct instance_array__NativeArray*)var77)->values[0] = (val*) var65;
1284 ((struct instance_array__NativeArray*)var77)->values[1] = (val*) var74;
1285 {
1286 ((void (*)(val*, val*, long))(var75->class->vft[COLOR_array__Array__with_native]))(var75, var77, var76) /* with_native on <var75:Array[Object]>*/;
1287 }
1288 }
1289 {
1290 var78 = ((val* (*)(val*))(var75->class->vft[COLOR_string__Object__to_s]))(var75) /* to_s on <var75:Array[Object]>*/;
1291 }
1292 {
1293 string__FlatBuffer__append(var_b, var78); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
1294 }
1295 } else {
1296 {
1297 string__FlatBuffer__add(var_b, var_c); /* Direct call string#FlatBuffer#add on <var_b:FlatBuffer>*/
1298 }
1299 }
1300 }
1301 }
1302 }
1303 }
1304 }
1305 CONTINUE_label: (void)0;
1306 {
1307 ((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on <var3:Iterator[nullable Object]>*/;
1308 }
1309 }
1310 BREAK_label: (void)0;
1311 {
1312 var79 = string__FlatBuffer__to_s(var_b);
1313 }
1314 var = var79;
1315 goto RET_LABEL;
1316 RET_LABEL:;
1317 return var;
1318 }
1319 /* method string#Text#escape_to_c for (self: Object): String */
1320 val* VIRTUAL_string__Text__escape_to_c(val* self) {
1321 val* var /* : String */;
1322 val* var1 /* : String */;
1323 var1 = string__Text__escape_to_c(self);
1324 var = var1;
1325 RET_LABEL:;
1326 return var;
1327 }
1328 /* method string#Text#unescape_nit for (self: Text): String */
1329 val* string__Text__unescape_nit(val* self) {
1330 val* var /* : String */;
1331 val* var1 /* : FlatBuffer */;
1332 long var2 /* : Int */;
1333 long var4 /* : Int */;
1334 val* var_res /* var res: FlatBuffer */;
1335 short int var5 /* : Bool */;
1336 short int var_was_slash /* var was_slash: Bool */;
1337 val* var6 /* : SequenceRead[Char] */;
1338 val* var7 /* : Iterator[nullable Object] */;
1339 short int var8 /* : Bool */;
1340 val* var9 /* : nullable Object */;
1341 char var_c /* var c: Char */;
1342 char var10 /* : Char */;
1343 short int var11 /* : Bool */;
1344 char var12 /* : Char */;
1345 short int var13 /* : Bool */;
1346 short int var14 /* : Bool */;
1347 short int var16 /* : Bool */;
1348 short int var17 /* : Bool */;
1349 short int var18 /* : Bool */;
1350 char var19 /* : Char */;
1351 short int var20 /* : Bool */;
1352 short int var21 /* : Bool */;
1353 short int var23 /* : Bool */;
1354 char var24 /* : Char */;
1355 char var25 /* : Char */;
1356 short int var26 /* : Bool */;
1357 short int var27 /* : Bool */;
1358 short int var29 /* : Bool */;
1359 char var30 /* : Char */;
1360 char var31 /* : Char */;
1361 short int var32 /* : Bool */;
1362 short int var33 /* : Bool */;
1363 short int var35 /* : Bool */;
1364 char var36 /* : Char */;
1365 char var37 /* : Char */;
1366 short int var38 /* : Bool */;
1367 short int var39 /* : Bool */;
1368 short int var41 /* : Bool */;
1369 char var42 /* : Char */;
1370 val* var43 /* : String */;
1371 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
1372 {
1373 { /* Inline string#FlatText#length (self) on <self:Text> */
1374 var4 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
1375 var2 = var4;
1376 RET_LABEL3:(void)0;
1377 }
1378 }
1379 {
1380 string__FlatBuffer__with_capacity(var1, var2); /* Direct call string#FlatBuffer#with_capacity on <var1:FlatBuffer>*/
1381 }
1382 var_res = var1;
1383 var5 = 0;
1384 var_was_slash = var5;
1385 {
1386 var6 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
1387 }
1388 {
1389 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on <var6:SequenceRead[Char]>*/;
1390 }
1391 for(;;) {
1392 {
1393 var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on <var7:Iterator[nullable Object]>*/;
1394 }
1395 if(!var8) break;
1396 {
1397 var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on <var7:Iterator[nullable Object]>*/;
1398 }
1399 var10 = ((struct instance_kernel__Char*)var9)->value; /* autounbox from nullable Object to Char */;
1400 var_c = var10;
1401 var11 = !var_was_slash;
1402 if (var11){
1403 var12 = '\\';
1404 {
1405 { /* Inline kernel#Char#== (var_c,var12) on <var_c:Char> */
1406 var16 = var_c == var12;
1407 var14 = var16;
1408 goto RET_LABEL15;
1409 RET_LABEL15:(void)0;
1410 }
1411 var13 = var14;
1412 }
1413 if (var13){
1414 var17 = 1;
1415 var_was_slash = var17;
1416 } else {
1417 {
1418 string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
1419 }
1420 }
1421 goto CONTINUE_label;
1422 } else {
1423 }
1424 var18 = 0;
1425 var_was_slash = var18;
1426 var19 = 'n';
1427 {
1428 { /* Inline kernel#Char#== (var_c,var19) on <var_c:Char> */
1429 var23 = var_c == var19;
1430 var21 = var23;
1431 goto RET_LABEL22;
1432 RET_LABEL22:(void)0;
1433 }
1434 var20 = var21;
1435 }
1436 if (var20){
1437 var24 = '\n';
1438 {
1439 string__FlatBuffer__add(var_res, var24); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
1440 }
1441 } else {
1442 var25 = 'r';
1443 {
1444 { /* Inline kernel#Char#== (var_c,var25) on <var_c:Char> */
1445 var29 = var_c == var25;
1446 var27 = var29;
1447 goto RET_LABEL28;
1448 RET_LABEL28:(void)0;
1449 }
1450 var26 = var27;
1451 }
1452 if (var26){
1453 var30 = '\15';
1454 {
1455 string__FlatBuffer__add(var_res, var30); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
1456 }
1457 } else {
1458 var31 = 't';
1459 {
1460 { /* Inline kernel#Char#== (var_c,var31) on <var_c:Char> */
1461 var35 = var_c == var31;
1462 var33 = var35;
1463 goto RET_LABEL34;
1464 RET_LABEL34:(void)0;
1465 }
1466 var32 = var33;
1467 }
1468 if (var32){
1469 var36 = '\11';
1470 {
1471 string__FlatBuffer__add(var_res, var36); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
1472 }
1473 } else {
1474 var37 = '0';
1475 {
1476 { /* Inline kernel#Char#== (var_c,var37) on <var_c:Char> */
1477 var41 = var_c == var37;
1478 var39 = var41;
1479 goto RET_LABEL40;
1480 RET_LABEL40:(void)0;
1481 }
1482 var38 = var39;
1483 }
1484 if (var38){
1485 var42 = '\0';
1486 {
1487 string__FlatBuffer__add(var_res, var42); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
1488 }
1489 } else {
1490 {
1491 string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on <var_res:FlatBuffer>*/
1492 }
1493 }
1494 }
1495 }
1496 }
1497 CONTINUE_label: (void)0;
1498 {
1499 ((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on <var7:Iterator[nullable Object]>*/;
1500 }
1501 }
1502 BREAK_label: (void)0;
1503 {
1504 var43 = string__FlatBuffer__to_s(var_res);
1505 }
1506 var = var43;
1507 goto RET_LABEL;
1508 RET_LABEL:;
1509 return var;
1510 }
1511 /* method string#Text#unescape_nit for (self: Object): String */
1512 val* VIRTUAL_string__Text__unescape_nit(val* self) {
1513 val* var /* : String */;
1514 val* var1 /* : String */;
1515 var1 = string__Text__unescape_nit(self);
1516 var = var1;
1517 RET_LABEL:;
1518 return var;
1519 }
1520 /* method string#Text#== for (self: Text, nullable Object): Bool */
1521 short int string__Text___61d_61d(val* self, val* p0) {
1522 short int var /* : Bool */;
1523 val* var_o /* var o: nullable Object */;
1524 val* var1 /* : null */;
1525 short int var2 /* : Bool */;
1526 short int var3 /* : Bool */;
1527 short int var4 /* : Bool */;
1528 short int var5 /* : Bool */;
1529 int cltype;
1530 int idtype;
1531 short int var6 /* : Bool */;
1532 short int var7 /* : Bool */;
1533 short int var8 /* : Bool */;
1534 short int var10 /* : Bool */;
1535 short int var11 /* : Bool */;
1536 long var12 /* : Int */;
1537 long var14 /* : Int */;
1538 long var15 /* : Int */;
1539 long var17 /* : Int */;
1540 short int var18 /* : Bool */;
1541 short int var19 /* : Bool */;
1542 short int var21 /* : Bool */;
1543 short int var22 /* : Bool */;
1544 short int var23 /* : Bool */;
1545 val* var24 /* : SequenceRead[Char] */;
1546 val* var25 /* : SequenceRead[Char] */;
1547 short int var26 /* : Bool */;
1548 short int var27 /* : Bool */;
1549 var_o = p0;
1550 var1 = NULL;
1551 if (var_o == NULL) {
1552 var2 = 1; /* is null */
1553 } else {
1554 var2 = 0; /* arg is null but recv is not */
1555 }
1556 if (0) {
1557 var3 = ((short int (*)(val*, val*))(var_o->class->vft[COLOR_kernel__Object___61d_61d]))(var_o, var1) /* == on <var_o:nullable Object>*/;
1558 var2 = var3;
1559 }
1560 if (var2){
1561 var4 = 0;
1562 var = var4;
1563 goto RET_LABEL;
1564 } else {
1565 }
1566 /* <var_o:nullable Object(Object)> isa Text */
1567 cltype = type_string__Text.color;
1568 idtype = type_string__Text.id;
1569 if(cltype >= var_o->type->table_size) {
1570 var5 = 0;
1571 } else {
1572 var5 = var_o->type->type_table[cltype] == idtype;
1573 }
1574 var6 = !var5;
1575 if (var6){
1576 var7 = 0;
1577 var = var7;
1578 goto RET_LABEL;
1579 } else {
1580 }
1581 {
1582 { /* Inline kernel#Object#is_same_instance (self,var_o) on <self:Text> */
1583 var10 = self == var_o;
1584 var8 = var10;
1585 goto RET_LABEL9;
1586 RET_LABEL9:(void)0;
1587 }
1588 }
1589 if (var8){
1590 var11 = 1;
1591 var = var11;
1592 goto RET_LABEL;
1593 } else {
1594 }
1595 {
1596 { /* Inline string#FlatText#length (self) on <self:Text> */
1597 var14 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Text> */
1598 var12 = var14;
1599 RET_LABEL13:(void)0;
1600 }
1601 }
1602 {
1603 { /* Inline string#FlatText#length (var_o) on <var_o:nullable Object(Text)> */
1604 var17 = var_o->attrs[COLOR_string__FlatText___length].l; /* _length on <var_o:nullable Object(Text)> */
1605 var15 = var17;
1606 RET_LABEL16:(void)0;
1607 }
1608 }
1609 {
1610 { /* Inline kernel#Int#!= (var12,var15) on <var12:Int> */
1611 var21 = var12 == var15;
1612 var22 = !var21;
1613 var19 = var22;
1614 goto RET_LABEL20;
1615 RET_LABEL20:(void)0;
1616 }
1617 var18 = var19;
1618 }
1619 if (var18){
1620 var23 = 0;
1621 var = var23;
1622 goto RET_LABEL;
1623 } else {
1624 }
1625 {
1626 var24 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
1627 }
1628 {
1629 var25 = ((val* (*)(val*))(var_o->class->vft[COLOR_string__Text__chars]))(var_o) /* chars on <var_o:nullable Object(Text)>*/;
1630 }
1631 {
1632 var27 = abstract_collection__SequenceRead___61d_61d(var24, var25);
1633 var26 = var27;
1634 }
1635 var = var26;
1636 goto RET_LABEL;
1637 RET_LABEL:;
1638 return var;
1639 }
1640 /* method string#Text#== for (self: Object, nullable Object): Bool */
1641 short int VIRTUAL_string__Text___61d_61d(val* self, val* p0) {
1642 short int var /* : Bool */;
1643 short int var1 /* : Bool */;
1644 var1 = string__Text___61d_61d(self, p0);
1645 var = var1;
1646 RET_LABEL:;
1647 return var;
1648 }
1649 /* method string#Text#< for (self: Text, Text): Bool */
1650 short int string__Text___60d(val* self, val* p0) {
1651 short int var /* : Bool */;
1652 short int var1 /* : Bool */;
1653 int cltype;
1654 int idtype;
1655 const struct type* type_struct;
1656 const char* var_class_name;
1657 val* var_other /* var other: Text */;
1658 val* var2 /* : SequenceRead[Char] */;
1659 val* var3 /* : Iterator[nullable Object] */;
1660 val* var_self_chars /* var self_chars: IndexedIterator[Char] */;
1661 val* var4 /* : SequenceRead[Char] */;
1662 val* var5 /* : Iterator[nullable Object] */;
1663 val* var_other_chars /* var other_chars: IndexedIterator[Char] */;
1664 short int var6 /* : Bool */;
1665 short int var7 /* : Bool */;
1666 short int var_ /* var : Bool */;
1667 short int var8 /* : Bool */;
1668 val* var9 /* : nullable Object */;
1669 val* var10 /* : nullable Object */;
1670 short int var11 /* : Bool */;
1671 short int var13 /* : Bool */;
1672 int cltype14;
1673 int idtype15;
1674 const char* var_class_name16;
1675 char var17 /* : Char */;
1676 char var18 /* : Char */;
1677 short int var19 /* : Bool */;
1678 short int var20 /* : Bool */;
1679 val* var21 /* : nullable Object */;
1680 val* var22 /* : nullable Object */;
1681 short int var23 /* : Bool */;
1682 short int var25 /* : Bool */;
1683 int cltype26;
1684 int idtype27;
1685 const char* var_class_name28;
1686 char var29 /* : Char */;
1687 char var30 /* : Char */;
1688 short int var31 /* : Bool */;
1689 short int var32 /* : Bool */;
1690 short int var33 /* : Bool */;
1691 short int var34 /* : Bool */;
1692 short int var35 /* : Bool */;
1693 /* Covariant cast for argument 0 (other) <p0:Text> isa OTHER */
1694 /* <p0:Text> isa OTHER */
1695 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1696 cltype = type_struct->color;
1697 idtype = type_struct->id;
1698 if(cltype >= p0->type->table_size) {
1699 var1 = 0;
1700 } else {
1701 var1 = p0->type->type_table[cltype] == idtype;
1702 }
1703 if (unlikely(!var1)) {
1704 var_class_name = p0 == NULL ? "null" : p0->type->name;
1705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1706 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 502);
1707 show_backtrace(1);
1708 }
1709 var_other = p0;
1710 {
1711 var2 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
1712 }
1713 {
1714 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on <var2:SequenceRead[Char]>*/;
1715 }
1716 var_self_chars = var3;
1717 {
1718 var4 = ((val* (*)(val*))(var_other->class->vft[COLOR_string__Text__chars]))(var_other) /* chars on <var_other:Text>*/;
1719 }
1720 {
1721 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:SequenceRead[Char]>*/;
1722 }
1723 var_other_chars = var5;
1724 for(;;) {
1725 {
1726 var7 = ((short int (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_self_chars) /* is_ok on <var_self_chars:IndexedIterator[Char]>*/;
1727 }
1728 var_ = var7;
1729 if (var7){
1730 {
1731 var8 = ((short int (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_other_chars) /* is_ok on <var_other_chars:IndexedIterator[Char]>*/;
1732 }
1733 var6 = var8;
1734 } else {
1735 var6 = var_;
1736 }
1737 if (!var6) break;
1738 {
1739 var9 = ((val* (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_self_chars) /* item on <var_self_chars:IndexedIterator[Char]>*/;
1740 }
1741 {
1742 var10 = ((val* (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_other_chars) /* item on <var_other_chars:IndexedIterator[Char]>*/;
1743 }
1744 {
1745 { /* Inline kernel#Char#< (var9,var10) on <var9:nullable Object(Char)> */
1746 /* Covariant cast for argument 0 (i) <var10:nullable Object(Char)> isa OTHER */
1747 /* <var10:nullable Object(Char)> isa OTHER */
1748 var13 = 1; /* easy <var10:nullable Object(Char)> isa OTHER*/
1749 if (unlikely(!var13)) {
1750 var_class_name16 = var10 == NULL ? "null" : var10->type->name;
1751 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
1752 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 500);
1753 show_backtrace(1);
1754 }
1755 var17 = ((struct instance_kernel__Char*)var9)->value; /* autounbox from nullable Object to Char */;
1756 var18 = ((struct instance_kernel__Char*)var10)->value; /* autounbox from nullable Object to Char */;
1757 var19 = var17 < var18;
1758 var11 = var19;
1759 goto RET_LABEL12;
1760 RET_LABEL12:(void)0;
1761 }
1762 }
1763 if (var11){
1764 var20 = 1;
1765 var = var20;
1766 goto RET_LABEL;
1767 } else {
1768 }
1769 {
1770 var21 = ((val* (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_self_chars) /* item on <var_self_chars:IndexedIterator[Char]>*/;
1771 }
1772 {
1773 var22 = ((val* (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_other_chars) /* item on <var_other_chars:IndexedIterator[Char]>*/;
1774 }
1775 {
1776 { /* Inline kernel#Char#> (var21,var22) on <var21:nullable Object(Char)> */
1777 /* Covariant cast for argument 0 (i) <var22:nullable Object(Char)> isa OTHER */
1778 /* <var22:nullable Object(Char)> isa OTHER */
1779 var25 = 1; /* easy <var22:nullable Object(Char)> isa OTHER*/
1780 if (unlikely(!var25)) {
1781 var_class_name28 = var22 == NULL ? "null" : var22->type->name;
1782 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
1783 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 502);
1784 show_backtrace(1);
1785 }
1786 var29 = ((struct instance_kernel__Char*)var21)->value; /* autounbox from nullable Object to Char */;
1787 var30 = ((struct instance_kernel__Char*)var22)->value; /* autounbox from nullable Object to Char */;
1788 var31 = var29 > var30;
1789 var23 = var31;
1790 goto RET_LABEL24;
1791 RET_LABEL24:(void)0;
1792 }
1793 }
1794 if (var23){
1795 var32 = 0;
1796 var = var32;
1797 goto RET_LABEL;
1798 } else {
1799 }
1800 {
1801 ((void (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__next]))(var_self_chars) /* next on <var_self_chars:IndexedIterator[Char]>*/;
1802 }
1803 {
1804 ((void (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__next]))(var_other_chars) /* next on <var_other_chars:IndexedIterator[Char]>*/;
1805 }
1806 CONTINUE_label: (void)0;
1807 }
1808 BREAK_label: (void)0;
1809 {
1810 var33 = ((short int (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_self_chars) /* is_ok on <var_self_chars:IndexedIterator[Char]>*/;
1811 }
1812 if (var33){
1813 var34 = 0;
1814 var = var34;
1815 goto RET_LABEL;
1816 } else {
1817 var35 = 1;
1818 var = var35;
1819 goto RET_LABEL;
1820 }
1821 RET_LABEL:;
1822 return var;
1823 }
1824 /* method string#Text#< for (self: Object, Comparable): Bool */
1825 short int VIRTUAL_string__Text___60d(val* self, val* p0) {
1826 short int var /* : Bool */;
1827 short int var1 /* : Bool */;
1828 var1 = string__Text___60d(self, p0);
1829 var = var1;
1830 RET_LABEL:;
1831 return var;
1832 }
1833 /* method string#Text#hash_cache for (self: Text): nullable Int */
1834 val* string__Text__hash_cache(val* self) {
1835 val* var /* : nullable Int */;
1836 val* var1 /* : nullable Int */;
1837 var1 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on <self:Text> */
1838 var = var1;
1839 RET_LABEL:;
1840 return var;
1841 }
1842 /* method string#Text#hash_cache for (self: Object): nullable Int */
1843 val* VIRTUAL_string__Text__hash_cache(val* self) {
1844 val* var /* : nullable Int */;
1845 val* var1 /* : nullable Int */;
1846 val* var3 /* : nullable Int */;
1847 { /* Inline string#Text#hash_cache (self) on <self:Object(Text)> */
1848 var3 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on <self:Object(Text)> */
1849 var1 = var3;
1850 RET_LABEL2:(void)0;
1851 }
1852 var = var1;
1853 RET_LABEL:;
1854 return var;
1855 }
1856 /* method string#Text#hash_cache= for (self: Text, nullable Int) */
1857 void string__Text__hash_cache_61d(val* self, val* p0) {
1858 self->attrs[COLOR_string__Text___hash_cache].val = p0; /* _hash_cache on <self:Text> */
1859 RET_LABEL:;
1860 }
1861 /* method string#Text#hash_cache= for (self: Object, nullable Int) */
1862 void VIRTUAL_string__Text__hash_cache_61d(val* self, val* p0) {
1863 { /* Inline string#Text#hash_cache= (self,p0) on <self:Object(Text)> */
1864 self->attrs[COLOR_string__Text___hash_cache].val = p0; /* _hash_cache on <self:Object(Text)> */
1865 RET_LABEL1:(void)0;
1866 }
1867 RET_LABEL:;
1868 }
1869 /* method string#Text#hash for (self: Text): Int */
1870 long string__Text__hash(val* self) {
1871 long var /* : Int */;
1872 val* var1 /* : nullable Int */;
1873 val* var3 /* : nullable Int */;
1874 val* var4 /* : null */;
1875 short int var5 /* : Bool */;
1876 short int var6 /* : Bool */;
1877 short int var8 /* : Bool */;
1878 long var9 /* : Int */;
1879 long var_h /* var h: Int */;
1880 val* var10 /* : SequenceRead[Char] */;
1881 val* var11 /* : Iterator[nullable Object] */;
1882 short int var12 /* : Bool */;
1883 val* var13 /* : nullable Object */;
1884 char var_char /* var char: Char */;
1885 char var14 /* : Char */;
1886 long var15 /* : Int */;
1887 long var16 /* : Int */;
1888 long var18 /* : Int */;
1889 long var19 /* : Int */;
1890 short int var21 /* : Bool */;
1891 int cltype;
1892 int idtype;
1893 const char* var_class_name;
1894 long var22 /* : Int */;
1895 long var23 /* : Int */;
1896 long var25 /* : Int */;
1897 long var26 /* : Int */;
1898 short int var28 /* : Bool */;
1899 int cltype29;
1900 int idtype30;
1901 const char* var_class_name31;
1902 long var32 /* : Int */;
1903 val* var34 /* : nullable Int */;
1904 val* var35 /* : nullable Int */;
1905 val* var37 /* : nullable Int */;
1906 long var38 /* : Int */;
1907 {
1908 { /* Inline string#Text#hash_cache (self) on <self:Text> */
1909 var3 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on <self:Text> */
1910 var1 = var3;
1911 RET_LABEL2:(void)0;
1912 }
1913 }
1914 var4 = NULL;
1915 if (var1 == NULL) {
1916 var5 = 1; /* is null */
1917 } else {
1918 var5 = 0; /* arg is null but recv is not */
1919 }
1920 if (0) {
1921 { /* Inline kernel#Int#== (var1,var4) on <var1:nullable Int> */
1922 var8 = 0; /* incompatible types Int vs. null; cannot be NULL */
1923 var6 = var8;
1924 goto RET_LABEL7;
1925 RET_LABEL7:(void)0;
1926 }
1927 var5 = var6;
1928 }
1929 if (var5){
1930 var9 = 5381;
1931 var_h = var9;
1932 {
1933 var10 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on <self:Text>*/;
1934 }
1935 {
1936 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on <var10:SequenceRead[Char]>*/;
1937 }
1938 for(;;) {
1939 {
1940 var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on <var11:Iterator[nullable Object]>*/;
1941 }
1942 if(!var12) break;
1943 {
1944 var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on <var11:Iterator[nullable Object]>*/;
1945 }
1946 var14 = ((struct instance_kernel__Char*)var13)->value; /* autounbox from nullable Object to Char */;
1947 var_char = var14;
1948 var15 = 5;
1949 {
1950 { /* Inline kernel#Int#lshift (var_h,var15) on <var_h:Int> */
1951 var18 = var_h << var15;
1952 var16 = var18;
1953 goto RET_LABEL17;
1954 RET_LABEL17:(void)0;
1955 }
1956 }
1957 {
1958 { /* Inline kernel#Int#+ (var16,var_h) on <var16:Int> */
1959 /* Covariant cast for argument 0 (i) <var_h:Int> isa OTHER */
1960 /* <var_h:Int> isa OTHER */
1961 var21 = 1; /* easy <var_h:Int> isa OTHER*/
1962 if (unlikely(!var21)) {
1963 var_class_name = type_kernel__Int.name;
1964 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1965 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1966 show_backtrace(1);
1967 }
1968 var22 = var16 + var_h;
1969 var19 = var22;
1970 goto RET_LABEL20;
1971 RET_LABEL20:(void)0;
1972 }
1973 }
1974 {
1975 { /* Inline kernel#Char#ascii (var_char) on <var_char:Char> */
1976 var25 = (unsigned char)var_char;
1977 var23 = var25;
1978 goto RET_LABEL24;
1979 RET_LABEL24:(void)0;
1980 }
1981 }
1982 {
1983 { /* Inline kernel#Int#+ (var19,var23) on <var19:Int> */
1984 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
1985 /* <var23:Int> isa OTHER */
1986 var28 = 1; /* easy <var23:Int> isa OTHER*/
1987 if (unlikely(!var28)) {
1988 var_class_name31 = type_kernel__Int.name;
1989 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
1990 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1991 show_backtrace(1);
1992 }
1993 var32 = var19 + var23;
1994 var26 = var32;
1995 goto RET_LABEL27;
1996 RET_LABEL27:(void)0;
1997 }
1998 }
1999 var_h = var26;
2000 CONTINUE_label: (void)0;
2001 {
2002 ((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on <var11:Iterator[nullable Object]>*/;
2003 }
2004 }
2005 BREAK_label: (void)0;
2006 {
2007 { /* Inline string#Text#hash_cache= (self,var_h) on <self:Text> */
2008 var34 = BOX_kernel__Int(var_h); /* autobox from Int to nullable Int */
2009 self->attrs[COLOR_string__Text___hash_cache].val = var34; /* _hash_cache on <self:Text> */
2010 RET_LABEL33:(void)0;
2011 }
2012 }
2013 } else {
2014 }
2015 {
2016 { /* Inline string#Text#hash_cache (self) on <self:Text> */
2017 var37 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on <self:Text> */
2018 var35 = var37;
2019 RET_LABEL36:(void)0;
2020 }
2021 }
2022 if (unlikely(var35 == NULL)) {
2023 PRINT_ERROR("Runtime error: %s", "Cast failed");
2024 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 542);
2025 show_backtrace(1);
2026 }
2027 var38 = ((struct instance_kernel__Int*)var35)->value; /* autounbox from nullable Int to Int */;
2028 var = var38;
2029 goto RET_LABEL;
2030 RET_LABEL:;
2031 return var;
2032 }
2033 /* method string#Text#hash for (self: Object): Int */
2034 long VIRTUAL_string__Text__hash(val* self) {
2035 long var /* : Int */;
2036 long var1 /* : Int */;
2037 var1 = string__Text__hash(self);
2038 var = var1;
2039 RET_LABEL:;
2040 return var;
2041 }
2042 /* method string#Text#init for (self: Text) */
2043 void string__Text__init(val* self) {
2044 RET_LABEL:;
2045 }
2046 /* method string#Text#init for (self: Object) */
2047 void VIRTUAL_string__Text__init(val* self) {
2048 { /* Inline string#Text#init (self) on <self:Object(Text)> */
2049 RET_LABEL1:(void)0;
2050 }
2051 RET_LABEL:;
2052 }
2053 /* method string#FlatText#items for (self: FlatText): NativeString */
2054 char* string__FlatText__items(val* self) {
2055 char* var /* : NativeString */;
2056 char* var1 /* : NativeString */;
2057 var1 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatText> */
2058 var = var1;
2059 RET_LABEL:;
2060 return var;
2061 }
2062 /* method string#FlatText#items for (self: Object): NativeString */
2063 char* VIRTUAL_string__FlatText__items(val* self) {
2064 char* var /* : NativeString */;
2065 char* var1 /* : NativeString */;
2066 char* var3 /* : NativeString */;
2067 { /* Inline string#FlatText#items (self) on <self:Object(FlatText)> */
2068 var3 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:Object(FlatText)> */
2069 var1 = var3;
2070 RET_LABEL2:(void)0;
2071 }
2072 var = var1;
2073 RET_LABEL:;
2074 return var;
2075 }
2076 /* method string#FlatText#items= for (self: FlatText, NativeString) */
2077 void string__FlatText__items_61d(val* self, char* p0) {
2078 self->attrs[COLOR_string__FlatText___items].str = p0; /* _items on <self:FlatText> */
2079 RET_LABEL:;
2080 }
2081 /* method string#FlatText#items= for (self: Object, NativeString) */
2082 void VIRTUAL_string__FlatText__items_61d(val* self, char* p0) {
2083 { /* Inline string#FlatText#items= (self,p0) on <self:Object(FlatText)> */
2084 self->attrs[COLOR_string__FlatText___items].str = p0; /* _items on <self:Object(FlatText)> */
2085 RET_LABEL1:(void)0;
2086 }
2087 RET_LABEL:;
2088 }
2089 /* method string#FlatText#real_items for (self: FlatText): nullable NativeString */
2090 val* string__FlatText__real_items(val* self) {
2091 val* var /* : nullable NativeString */;
2092 val* var1 /* : nullable NativeString */;
2093 var1 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on <self:FlatText> */
2094 var = var1;
2095 RET_LABEL:;
2096 return var;
2097 }
2098 /* method string#FlatText#real_items for (self: Object): nullable NativeString */
2099 val* VIRTUAL_string__FlatText__real_items(val* self) {
2100 val* var /* : nullable NativeString */;
2101 val* var1 /* : nullable NativeString */;
2102 val* var3 /* : nullable NativeString */;
2103 { /* Inline string#FlatText#real_items (self) on <self:Object(FlatText)> */
2104 var3 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on <self:Object(FlatText)> */
2105 var1 = var3;
2106 RET_LABEL2:(void)0;
2107 }
2108 var = var1;
2109 RET_LABEL:;
2110 return var;
2111 }
2112 /* method string#FlatText#real_items= for (self: FlatText, nullable NativeString) */
2113 void string__FlatText__real_items_61d(val* self, val* p0) {
2114 self->attrs[COLOR_string__FlatText___real_items].val = p0; /* _real_items on <self:FlatText> */
2115 RET_LABEL:;
2116 }
2117 /* method string#FlatText#real_items= for (self: Object, nullable NativeString) */
2118 void VIRTUAL_string__FlatText__real_items_61d(val* self, val* p0) {
2119 { /* Inline string#FlatText#real_items= (self,p0) on <self:Object(FlatText)> */
2120 self->attrs[COLOR_string__FlatText___real_items].val = p0; /* _real_items on <self:Object(FlatText)> */
2121 RET_LABEL1:(void)0;
2122 }
2123 RET_LABEL:;
2124 }
2125 /* method string#FlatText#length for (self: FlatText): Int */
2126 long string__FlatText__length(val* self) {
2127 long var /* : Int */;
2128 long var1 /* : Int */;
2129 var1 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatText> */
2130 var = var1;
2131 RET_LABEL:;
2132 return var;
2133 }
2134 /* method string#FlatText#length for (self: Object): Int */
2135 long VIRTUAL_string__FlatText__length(val* self) {
2136 long var /* : Int */;
2137 long var1 /* : Int */;
2138 long var3 /* : Int */;
2139 { /* Inline string#FlatText#length (self) on <self:Object(FlatText)> */
2140 var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:Object(FlatText)> */
2141 var1 = var3;
2142 RET_LABEL2:(void)0;
2143 }
2144 var = var1;
2145 RET_LABEL:;
2146 return var;
2147 }
2148 /* method string#FlatText#length= for (self: FlatText, Int) */
2149 void string__FlatText__length_61d(val* self, long p0) {
2150 self->attrs[COLOR_string__FlatText___length].l = p0; /* _length on <self:FlatText> */
2151 RET_LABEL:;
2152 }
2153 /* method string#FlatText#length= for (self: Object, Int) */
2154 void VIRTUAL_string__FlatText__length_61d(val* self, long p0) {
2155 { /* Inline string#FlatText#length= (self,p0) on <self:Object(FlatText)> */
2156 self->attrs[COLOR_string__FlatText___length].l = p0; /* _length on <self:Object(FlatText)> */
2157 RET_LABEL1:(void)0;
2158 }
2159 RET_LABEL:;
2160 }
2161 /* method string#FlatText#init for (self: FlatText) */
2162 void string__FlatText__init(val* self) {
2163 {
2164 { /* Inline string#Text#init (self) on <self:FlatText> */
2165 RET_LABEL1:(void)0;
2166 }
2167 }
2168 RET_LABEL:;
2169 }
2170 /* method string#FlatText#init for (self: Object) */
2171 void VIRTUAL_string__FlatText__init(val* self) {
2172 string__FlatText__init(self); /* Direct call string#FlatText#init on <self:Object(FlatText)>*/
2173 RET_LABEL:;
2174 }
2175 /* method string#StringCharView#target for (self: StringCharView): Text */
2176 val* string__StringCharView__target(val* self) {
2177 val* var /* : Text */;
2178 val* var1 /* : Text */;
2179 var1 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:StringCharView> */
2180 if (unlikely(var1 == NULL)) {
2181 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
2182 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
2183 show_backtrace(1);
2184 }
2185 var = var1;
2186 RET_LABEL:;
2187 return var;
2188 }
2189 /* method string#StringCharView#target for (self: Object): Text */
2190 val* VIRTUAL_string__StringCharView__target(val* self) {
2191 val* var /* : Text */;
2192 val* var1 /* : Text */;
2193 val* var3 /* : Text */;
2194 { /* Inline string#StringCharView#target (self) on <self:Object(StringCharView)> */
2195 var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:Object(StringCharView)> */
2196 if (unlikely(var3 == NULL)) {
2197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
2198 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
2199 show_backtrace(1);
2200 }
2201 var1 = var3;
2202 RET_LABEL2:(void)0;
2203 }
2204 var = var1;
2205 RET_LABEL:;
2206 return var;
2207 }
2208 /* method string#StringCharView#target= for (self: StringCharView, Text) */
2209 void string__StringCharView__target_61d(val* self, val* p0) {
2210 short int var /* : Bool */;
2211 int cltype;
2212 int idtype;
2213 const struct type* type_struct;
2214 const char* var_class_name;
2215 /* Covariant cast for argument 0 (target) <p0:Text> isa SELFTYPE */
2216 /* <p0:Text> isa SELFTYPE */
2217 type_struct = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE];
2218 cltype = type_struct->color;
2219 idtype = type_struct->id;
2220 if(cltype >= p0->type->table_size) {
2221 var = 0;
2222 } else {
2223 var = p0->type->type_table[cltype] == idtype;
2224 }
2225 if (unlikely(!var)) {
2226 var_class_name = p0 == NULL ? "null" : p0->type->name;
2227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
2228 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
2229 show_backtrace(1);
2230 }
2231 self->attrs[COLOR_string__StringCharView___target].val = p0; /* _target on <self:StringCharView> */
2232 RET_LABEL:;
2233 }
2234 /* method string#StringCharView#target= for (self: Object, Text) */
2235 void VIRTUAL_string__StringCharView__target_61d(val* self, val* p0) {
2236 short int var /* : Bool */;
2237 int cltype;
2238 int idtype;
2239 const struct type* type_struct;
2240 const char* var_class_name;
2241 { /* Inline string#StringCharView#target= (self,p0) on <self:Object(StringCharView)> */
2242 /* Covariant cast for argument 0 (target) <p0:Text> isa SELFTYPE */
2243 /* <p0:Text> isa SELFTYPE */
2244 type_struct = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE];
2245 cltype = type_struct->color;
2246 idtype = type_struct->id;
2247 if(cltype >= p0->type->table_size) {
2248 var = 0;
2249 } else {
2250 var = p0->type->type_table[cltype] == idtype;
2251 }
2252 if (unlikely(!var)) {
2253 var_class_name = p0 == NULL ? "null" : p0->type->name;
2254 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
2255 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
2256 show_backtrace(1);
2257 }
2258 self->attrs[COLOR_string__StringCharView___target].val = p0; /* _target on <self:Object(StringCharView)> */
2259 RET_LABEL1:(void)0;
2260 }
2261 RET_LABEL:;
2262 }
2263 /* method string#StringCharView#init for (self: StringCharView, Text) */
2264 void string__StringCharView__init(val* self, val* p0) {
2265 short int var /* : Bool */;
2266 int cltype;
2267 int idtype;
2268 const struct type* type_struct;
2269 const char* var_class_name;
2270 val* var_tgt /* var tgt: Text */;
2271 short int var2 /* : Bool */;
2272 int cltype3;
2273 int idtype4;
2274 const struct type* type_struct5;
2275 const char* var_class_name6;
2276 /* Covariant cast for argument 0 (tgt) <p0:Text> isa SELFTYPE */
2277 /* <p0:Text> isa SELFTYPE */
2278 type_struct = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE];
2279 cltype = type_struct->color;
2280 idtype = type_struct->id;
2281 if(cltype >= p0->type->table_size) {
2282 var = 0;
2283 } else {
2284 var = p0->type->type_table[cltype] == idtype;
2285 }
2286 if (unlikely(!var)) {
2287 var_class_name = p0 == NULL ? "null" : p0->type->name;
2288 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
2289 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 581);
2290 show_backtrace(1);
2291 }
2292 var_tgt = p0;
2293 {
2294 { /* Inline string#StringCharView#target= (self,var_tgt) on <self:StringCharView> */
2295 /* Covariant cast for argument 0 (target) <var_tgt:Text> isa SELFTYPE */
2296 /* <var_tgt:Text> isa SELFTYPE */
2297 type_struct5 = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE];
2298 cltype3 = type_struct5->color;
2299 idtype4 = type_struct5->id;
2300 if(cltype3 >= var_tgt->type->table_size) {
2301 var2 = 0;
2302 } else {
2303 var2 = var_tgt->type->type_table[cltype3] == idtype4;
2304 }
2305 if (unlikely(!var2)) {
2306 var_class_name6 = var_tgt == NULL ? "null" : var_tgt->type->name;
2307 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name6);
2308 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
2309 show_backtrace(1);
2310 }
2311 self->attrs[COLOR_string__StringCharView___target].val = var_tgt; /* _target on <self:StringCharView> */
2312 RET_LABEL1:(void)0;
2313 }
2314 }
2315 RET_LABEL:;
2316 }
2317 /* method string#StringCharView#init for (self: Object, Text) */
2318 void VIRTUAL_string__StringCharView__init(val* self, val* p0) {
2319 string__StringCharView__init(self, p0); /* Direct call string#StringCharView#init on <self:Object(StringCharView)>*/
2320 RET_LABEL:;
2321 }
2322 /* method string#StringCharView#is_empty for (self: StringCharView): Bool */
2323 short int string__StringCharView__is_empty(val* self) {
2324 short int var /* : Bool */;
2325 val* var1 /* : Text */;
2326 val* var3 /* : Text */;
2327 short int var4 /* : Bool */;
2328 {
2329 { /* Inline string#StringCharView#target (self) on <self:StringCharView> */
2330 var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:StringCharView> */
2331 if (unlikely(var3 == NULL)) {
2332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
2333 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
2334 show_backtrace(1);
2335 }
2336 var1 = var3;
2337 RET_LABEL2:(void)0;
2338 }
2339 }
2340 {
2341 var4 = string__Text__is_empty(var1);
2342 }
2343 var = var4;
2344 goto RET_LABEL;
2345 RET_LABEL:;
2346 return var;
2347 }
2348 /* method string#StringCharView#is_empty for (self: Object): Bool */
2349 short int VIRTUAL_string__StringCharView__is_empty(val* self) {
2350 short int var /* : Bool */;
2351 short int var1 /* : Bool */;
2352 var1 = string__StringCharView__is_empty(self);
2353 var = var1;
2354 RET_LABEL:;
2355 return var;
2356 }
2357 /* method string#StringCharView#length for (self: StringCharView): Int */
2358 long string__StringCharView__length(val* self) {
2359 long var /* : Int */;
2360 val* var1 /* : Text */;
2361 val* var3 /* : Text */;
2362 long var4 /* : Int */;
2363 long var6 /* : Int */;
2364 {
2365 { /* Inline string#StringCharView#target (self) on <self:StringCharView> */
2366 var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:StringCharView> */
2367 if (unlikely(var3 == NULL)) {
2368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
2369 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
2370 show_backtrace(1);
2371 }
2372 var1 = var3;
2373 RET_LABEL2:(void)0;
2374 }
2375 }
2376 {
2377 { /* Inline string#FlatText#length (var1) on <var1:Text> */
2378 var6 = var1->attrs[COLOR_string__FlatText___length].l; /* _length on <var1:Text> */
2379 var4 = var6;
2380 RET_LABEL5:(void)0;
2381 }
2382 }
2383 var = var4;
2384 goto RET_LABEL;
2385 RET_LABEL:;
2386 return var;
2387 }
2388 /* method string#StringCharView#length for (self: Object): Int */
2389 long VIRTUAL_string__StringCharView__length(val* self) {
2390 long var /* : Int */;
2391 long var1 /* : Int */;
2392 var1 = string__StringCharView__length(self);
2393 var = var1;
2394 RET_LABEL:;
2395 return var;
2396 }
2397 /* method string#StringCharView#iterator for (self: StringCharView): IndexedIterator[Char] */
2398 val* string__StringCharView__iterator(val* self) {
2399 val* var /* : IndexedIterator[Char] */;
2400 long var1 /* : Int */;
2401 val* var2 /* : IndexedIterator[nullable Object] */;
2402 var1 = 0;
2403 {
2404 var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead__iterator_from]))(self, var1) /* iterator_from on <self:StringCharView>*/;
2405 }
2406 var = var2;
2407 goto RET_LABEL;
2408 RET_LABEL:;
2409 return var;
2410 }
2411 /* method string#StringCharView#iterator for (self: Object): Iterator[nullable Object] */
2412 val* VIRTUAL_string__StringCharView__iterator(val* self) {
2413 val* var /* : Iterator[nullable Object] */;
2414 val* var1 /* : IndexedIterator[Char] */;
2415 var1 = string__StringCharView__iterator(self);
2416 var = var1;
2417 RET_LABEL:;
2418 return var;
2419 }
2420 /* method string#String#to_s for (self: String): String */
2421 val* string__String__to_s(val* self) {
2422 val* var /* : String */;
2423 var = self;
2424 goto RET_LABEL;
2425 RET_LABEL:;
2426 return var;
2427 }
2428 /* method string#String#to_s for (self: Object): String */
2429 val* VIRTUAL_string__String__to_s(val* self) {
2430 val* var /* : String */;
2431 val* var1 /* : String */;
2432 var1 = string__String__to_s(self);
2433 var = var1;
2434 RET_LABEL:;
2435 return var;
2436 }
2437 /* method string#FlatSubstringsIter#tgt for (self: FlatSubstringsIter): nullable FlatText */
2438 val* string__FlatSubstringsIter__tgt(val* self) {
2439 val* var /* : nullable FlatText */;
2440 val* var1 /* : nullable FlatText */;
2441 var1 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on <self:FlatSubstringsIter> */
2442 var = var1;
2443 RET_LABEL:;
2444 return var;
2445 }
2446 /* method string#FlatSubstringsIter#tgt for (self: Object): nullable FlatText */
2447 val* VIRTUAL_string__FlatSubstringsIter__tgt(val* self) {
2448 val* var /* : nullable FlatText */;
2449 val* var1 /* : nullable FlatText */;
2450 val* var3 /* : nullable FlatText */;
2451 { /* Inline string#FlatSubstringsIter#tgt (self) on <self:Object(FlatSubstringsIter)> */
2452 var3 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on <self:Object(FlatSubstringsIter)> */
2453 var1 = var3;
2454 RET_LABEL2:(void)0;
2455 }
2456 var = var1;
2457 RET_LABEL:;
2458 return var;
2459 }
2460 /* method string#FlatSubstringsIter#tgt= for (self: FlatSubstringsIter, nullable FlatText) */
2461 void string__FlatSubstringsIter__tgt_61d(val* self, val* p0) {
2462 self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = p0; /* _tgt on <self:FlatSubstringsIter> */
2463 RET_LABEL:;
2464 }
2465 /* method string#FlatSubstringsIter#tgt= for (self: Object, nullable FlatText) */
2466 void VIRTUAL_string__FlatSubstringsIter__tgt_61d(val* self, val* p0) {
2467 { /* Inline string#FlatSubstringsIter#tgt= (self,p0) on <self:Object(FlatSubstringsIter)> */
2468 self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = p0; /* _tgt on <self:Object(FlatSubstringsIter)> */
2469 RET_LABEL1:(void)0;
2470 }
2471 RET_LABEL:;
2472 }
2473 /* method string#FlatSubstringsIter#init for (self: FlatSubstringsIter, FlatText) */
2474 void string__FlatSubstringsIter__init(val* self, val* p0) {
2475 val* var_tgt /* var tgt: FlatText */;
2476 var_tgt = p0;
2477 {
2478 { /* Inline string#FlatSubstringsIter#tgt= (self,var_tgt) on <self:FlatSubstringsIter> */
2479 self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = var_tgt; /* _tgt on <self:FlatSubstringsIter> */
2480 RET_LABEL1:(void)0;
2481 }
2482 }
2483 RET_LABEL:;
2484 }
2485 /* method string#FlatSubstringsIter#init for (self: Object, FlatText) */
2486 void VIRTUAL_string__FlatSubstringsIter__init(val* self, val* p0) {
2487 string__FlatSubstringsIter__init(self, p0); /* Direct call string#FlatSubstringsIter#init on <self:Object(FlatSubstringsIter)>*/
2488 RET_LABEL:;
2489 }
2490 /* method string#FlatSubstringsIter#item for (self: FlatSubstringsIter): FlatText */
2491 val* string__FlatSubstringsIter__item(val* self) {
2492 val* var /* : FlatText */;
2493 short int var1 /* : Bool */;
2494 val* var2 /* : nullable FlatText */;
2495 val* var4 /* : nullable FlatText */;
2496 {
2497 var1 = string__FlatSubstringsIter__is_ok(self);
2498 }
2499 if (unlikely(!var1)) {
2500 PRINT_ERROR("Runtime error: %s", "Assert failed");
2501 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 726);
2502 show_backtrace(1);
2503 }
2504 {
2505 { /* Inline string#FlatSubstringsIter#tgt (self) on <self:FlatSubstringsIter> */
2506 var4 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on <self:FlatSubstringsIter> */
2507 var2 = var4;
2508 RET_LABEL3:(void)0;
2509 }
2510 }
2511 if (unlikely(var2 == NULL)) {
2512 PRINT_ERROR("Runtime error: %s", "Cast failed");
2513 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 727);
2514 show_backtrace(1);
2515 }
2516 var = var2;
2517 goto RET_LABEL;
2518 RET_LABEL:;
2519 return var;
2520 }
2521 /* method string#FlatSubstringsIter#item for (self: Object): nullable Object */
2522 val* VIRTUAL_string__FlatSubstringsIter__item(val* self) {
2523 val* var /* : nullable Object */;
2524 val* var1 /* : FlatText */;
2525 var1 = string__FlatSubstringsIter__item(self);
2526 var = var1;
2527 RET_LABEL:;
2528 return var;
2529 }
2530 /* method string#FlatSubstringsIter#is_ok for (self: FlatSubstringsIter): Bool */
2531 short int string__FlatSubstringsIter__is_ok(val* self) {
2532 short int var /* : Bool */;
2533 val* var1 /* : nullable FlatText */;
2534 val* var3 /* : nullable FlatText */;
2535 val* var4 /* : null */;
2536 short int var5 /* : Bool */;
2537 short int var6 /* : Bool */;
2538 val* var_other /* var other: nullable Object */;
2539 short int var8 /* : Bool */;
2540 short int var9 /* : Bool */;
2541 short int var10 /* : Bool */;
2542 {
2543 { /* Inline string#FlatSubstringsIter#tgt (self) on <self:FlatSubstringsIter> */
2544 var3 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on <self:FlatSubstringsIter> */
2545 var1 = var3;
2546 RET_LABEL2:(void)0;
2547 }
2548 }
2549 var4 = NULL;
2550 if (var1 == NULL) {
2551 var5 = 0; /* is null */
2552 } else {
2553 var5 = 1; /* arg is null and recv is not */
2554 }
2555 if (0) {
2556 { /* Inline kernel#Object#!= (var1,var4) on <var1:nullable FlatText> */
2557 var_other = var4;
2558 {
2559 var9 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var_other) /* == on <var1:nullable FlatText(FlatText)>*/;
2560 var8 = var9;
2561 }
2562 var10 = !var8;
2563 var6 = var10;
2564 goto RET_LABEL7;
2565 RET_LABEL7:(void)0;
2566 }
2567 var5 = var6;
2568 }
2569 var = var5;
2570 goto RET_LABEL;
2571 RET_LABEL:;
2572 return var;
2573 }
2574 /* method string#FlatSubstringsIter#is_ok for (self: Object): Bool */
2575 short int VIRTUAL_string__FlatSubstringsIter__is_ok(val* self) {
2576 short int var /* : Bool */;
2577 short int var1 /* : Bool */;
2578 var1 = string__FlatSubstringsIter__is_ok(self);
2579 var = var1;
2580 RET_LABEL:;
2581 return var;
2582 }
2583 /* method string#FlatSubstringsIter#next for (self: FlatSubstringsIter) */
2584 void string__FlatSubstringsIter__next(val* self) {
2585 val* var /* : null */;
2586 var = NULL;
2587 {
2588 { /* Inline string#FlatSubstringsIter#tgt= (self,var) on <self:FlatSubstringsIter> */
2589 self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = var; /* _tgt on <self:FlatSubstringsIter> */
2590 RET_LABEL1:(void)0;
2591 }
2592 }
2593 RET_LABEL:;
2594 }
2595 /* method string#FlatSubstringsIter#next for (self: Object) */
2596 void VIRTUAL_string__FlatSubstringsIter__next(val* self) {
2597 string__FlatSubstringsIter__next(self); /* Direct call string#FlatSubstringsIter#next on <self:Object(FlatSubstringsIter)>*/
2598 RET_LABEL:;
2599 }
2600 /* method string#FlatString#index_from for (self: FlatString): Int */
2601 long string__FlatString__index_from(val* self) {
2602 long var /* : Int */;
2603 long var1 /* : Int */;
2604 var1 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
2605 var = var1;
2606 RET_LABEL:;
2607 return var;
2608 }
2609 /* method string#FlatString#index_from for (self: Object): Int */
2610 long VIRTUAL_string__FlatString__index_from(val* self) {
2611 long var /* : Int */;
2612 long var1 /* : Int */;
2613 long var3 /* : Int */;
2614 { /* Inline string#FlatString#index_from (self) on <self:Object(FlatString)> */
2615 var3 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:Object(FlatString)> */
2616 var1 = var3;
2617 RET_LABEL2:(void)0;
2618 }
2619 var = var1;
2620 RET_LABEL:;
2621 return var;
2622 }
2623 /* method string#FlatString#index_from= for (self: FlatString, Int) */
2624 void string__FlatString__index_from_61d(val* self, long p0) {
2625 self->attrs[COLOR_string__FlatString___index_from].l = p0; /* _index_from on <self:FlatString> */
2626 RET_LABEL:;
2627 }
2628 /* method string#FlatString#index_from= for (self: Object, Int) */
2629 void VIRTUAL_string__FlatString__index_from_61d(val* self, long p0) {
2630 { /* Inline string#FlatString#index_from= (self,p0) on <self:Object(FlatString)> */
2631 self->attrs[COLOR_string__FlatString___index_from].l = p0; /* _index_from on <self:Object(FlatString)> */
2632 RET_LABEL1:(void)0;
2633 }
2634 RET_LABEL:;
2635 }
2636 /* method string#FlatString#index_to for (self: FlatString): Int */
2637 long string__FlatString__index_to(val* self) {
2638 long var /* : Int */;
2639 long var1 /* : Int */;
2640 var1 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:FlatString> */
2641 var = var1;
2642 RET_LABEL:;
2643 return var;
2644 }
2645 /* method string#FlatString#index_to for (self: Object): Int */
2646 long VIRTUAL_string__FlatString__index_to(val* self) {
2647 long var /* : Int */;
2648 long var1 /* : Int */;
2649 long var3 /* : Int */;
2650 { /* Inline string#FlatString#index_to (self) on <self:Object(FlatString)> */
2651 var3 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:Object(FlatString)> */
2652 var1 = var3;
2653 RET_LABEL2:(void)0;
2654 }
2655 var = var1;
2656 RET_LABEL:;
2657 return var;
2658 }
2659 /* method string#FlatString#index_to= for (self: FlatString, Int) */
2660 void string__FlatString__index_to_61d(val* self, long p0) {
2661 self->attrs[COLOR_string__FlatString___index_to].l = p0; /* _index_to on <self:FlatString> */
2662 RET_LABEL:;
2663 }
2664 /* method string#FlatString#index_to= for (self: Object, Int) */
2665 void VIRTUAL_string__FlatString__index_to_61d(val* self, long p0) {
2666 { /* Inline string#FlatString#index_to= (self,p0) on <self:Object(FlatString)> */
2667 self->attrs[COLOR_string__FlatString___index_to].l = p0; /* _index_to on <self:Object(FlatString)> */
2668 RET_LABEL1:(void)0;
2669 }
2670 RET_LABEL:;
2671 }
2672 /* method string#FlatString#chars for (self: FlatString): SequenceRead[Char] */
2673 val* string__FlatString__chars(val* self) {
2674 val* var /* : SequenceRead[Char] */;
2675 val* var1 /* : SequenceRead[Char] */;
2676 var1 = self->attrs[COLOR_string__FlatString___chars].val; /* _chars on <self:FlatString> */
2677 if (unlikely(var1 == NULL)) {
2678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2679 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
2680 show_backtrace(1);
2681 }
2682 var = var1;
2683 RET_LABEL:;
2684 return var;
2685 }
2686 /* method string#FlatString#chars for (self: Object): SequenceRead[Char] */
2687 val* VIRTUAL_string__FlatString__chars(val* self) {
2688 val* var /* : SequenceRead[Char] */;
2689 val* var1 /* : SequenceRead[Char] */;
2690 val* var3 /* : SequenceRead[Char] */;
2691 { /* Inline string#FlatString#chars (self) on <self:Object(FlatString)> */
2692 var3 = self->attrs[COLOR_string__FlatString___chars].val; /* _chars on <self:Object(FlatString)> */
2693 if (unlikely(var3 == NULL)) {
2694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2695 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
2696 show_backtrace(1);
2697 }
2698 var1 = var3;
2699 RET_LABEL2:(void)0;
2700 }
2701 var = var1;
2702 RET_LABEL:;
2703 return var;
2704 }
2705 /* method string#FlatString#substring for (self: FlatString, Int, Int): String */
2706 val* string__FlatString__substring(val* self, long p0, long p1) {
2707 val* var /* : String */;
2708 long var_from /* var from: Int */;
2709 long var_count /* var count: Int */;
2710 long var1 /* : Int */;
2711 short int var2 /* : Bool */;
2712 short int var4 /* : Bool */;
2713 int cltype;
2714 int idtype;
2715 const char* var_class_name;
2716 short int var5 /* : Bool */;
2717 long var6 /* : Int */;
2718 short int var7 /* : Bool */;
2719 short int var9 /* : Bool */;
2720 int cltype10;
2721 int idtype11;
2722 const char* var_class_name12;
2723 short int var13 /* : Bool */;
2724 long var14 /* : Int */;
2725 short int var16 /* : Bool */;
2726 int cltype17;
2727 int idtype18;
2728 const char* var_class_name19;
2729 long var20 /* : Int */;
2730 long var21 /* : Int */;
2731 short int var22 /* : Bool */;
2732 short int var24 /* : Bool */;
2733 int cltype25;
2734 int idtype26;
2735 const char* var_class_name27;
2736 short int var28 /* : Bool */;
2737 long var29 /* : Int */;
2738 long var30 /* : Int */;
2739 long var31 /* : Int */;
2740 long var33 /* : Int */;
2741 long var34 /* : Int */;
2742 short int var36 /* : Bool */;
2743 int cltype37;
2744 int idtype38;
2745 const char* var_class_name39;
2746 long var40 /* : Int */;
2747 long var_realFrom /* var realFrom: Int */;
2748 long var41 /* : Int */;
2749 short int var43 /* : Bool */;
2750 int cltype44;
2751 int idtype45;
2752 const char* var_class_name46;
2753 long var47 /* : Int */;
2754 long var48 /* : Int */;
2755 long var50 /* : Int */;
2756 short int var51 /* : Bool */;
2757 short int var53 /* : Bool */;
2758 int cltype54;
2759 int idtype55;
2760 const char* var_class_name56;
2761 short int var57 /* : Bool */;
2762 val* var58 /* : FlatString */;
2763 char* var59 /* : NativeString */;
2764 char* var61 /* : NativeString */;
2765 long var62 /* : Int */;
2766 long var64 /* : Int */;
2767 long var65 /* : Int */;
2768 short int var67 /* : Bool */;
2769 int cltype68;
2770 int idtype69;
2771 const char* var_class_name70;
2772 long var71 /* : Int */;
2773 long var72 /* : Int */;
2774 long var73 /* : Int */;
2775 short int var75 /* : Bool */;
2776 int cltype76;
2777 int idtype77;
2778 const char* var_class_name78;
2779 long var79 /* : Int */;
2780 long var80 /* : Int */;
2781 long var82 /* : Int */;
2782 short int var83 /* : Bool */;
2783 int cltype84;
2784 int idtype85;
2785 const struct type* type_struct;
2786 const char* var_class_name86;
2787 long var87 /* : Int */;
2788 short int var88 /* : Bool */;
2789 short int var89 /* : Bool */;
2790 short int var91 /* : Bool */;
2791 val* var92 /* : String */;
2792 long var93 /* : Int */;
2793 short int var95 /* : Bool */;
2794 int cltype96;
2795 int idtype97;
2796 const char* var_class_name98;
2797 long var99 /* : Int */;
2798 long var100 /* : Int */;
2799 long var101 /* : Int */;
2800 short int var103 /* : Bool */;
2801 int cltype104;
2802 int idtype105;
2803 const char* var_class_name106;
2804 long var107 /* : Int */;
2805 long var_to /* var to: Int */;
2806 val* var108 /* : FlatString */;
2807 char* var109 /* : NativeString */;
2808 char* var111 /* : NativeString */;
2809 long var112 /* : Int */;
2810 short int var114 /* : Bool */;
2811 int cltype115;
2812 int idtype116;
2813 const char* var_class_name117;
2814 long var118 /* : Int */;
2815 long var119 /* : Int */;
2816 long var120 /* : Int */;
2817 short int var122 /* : Bool */;
2818 int cltype123;
2819 int idtype124;
2820 const char* var_class_name125;
2821 long var126 /* : Int */;
2822 short int var127 /* : Bool */;
2823 int cltype128;
2824 int idtype129;
2825 const struct type* type_struct130;
2826 const char* var_class_name131;
2827 var_from = p0;
2828 var_count = p1;
2829 var1 = 0;
2830 {
2831 { /* Inline kernel#Int#>= (var_count,var1) on <var_count:Int> */
2832 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2833 /* <var1:Int> isa OTHER */
2834 var4 = 1; /* easy <var1:Int> isa OTHER*/
2835 if (unlikely(!var4)) {
2836 var_class_name = type_kernel__Int.name;
2837 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2838 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
2839 show_backtrace(1);
2840 }
2841 var5 = var_count >= var1;
2842 var2 = var5;
2843 goto RET_LABEL3;
2844 RET_LABEL3:(void)0;
2845 }
2846 }
2847 if (unlikely(!var2)) {
2848 PRINT_ERROR("Runtime error: %s", "Assert failed");
2849 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 769);
2850 show_backtrace(1);
2851 }
2852 var6 = 0;
2853 {
2854 { /* Inline kernel#Int#< (var_from,var6) on <var_from:Int> */
2855 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
2856 /* <var6:Int> isa OTHER */
2857 var9 = 1; /* easy <var6:Int> isa OTHER*/
2858 if (unlikely(!var9)) {
2859 var_class_name12 = type_kernel__Int.name;
2860 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
2861 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
2862 show_backtrace(1);
2863 }
2864 var13 = var_from < var6;
2865 var7 = var13;
2866 goto RET_LABEL8;
2867 RET_LABEL8:(void)0;
2868 }
2869 }
2870 if (var7){
2871 {
2872 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
2873 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2874 /* <var_from:Int> isa OTHER */
2875 var16 = 1; /* easy <var_from:Int> isa OTHER*/
2876 if (unlikely(!var16)) {
2877 var_class_name19 = type_kernel__Int.name;
2878 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
2879 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
2880 show_backtrace(1);
2881 }
2882 var20 = var_count + var_from;
2883 var14 = var20;
2884 goto RET_LABEL15;
2885 RET_LABEL15:(void)0;
2886 }
2887 }
2888 var_count = var14;
2889 var21 = 0;
2890 {
2891 { /* Inline kernel#Int#< (var_count,var21) on <var_count:Int> */
2892 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
2893 /* <var21:Int> isa OTHER */
2894 var24 = 1; /* easy <var21:Int> isa OTHER*/
2895 if (unlikely(!var24)) {
2896 var_class_name27 = type_kernel__Int.name;
2897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
2898 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
2899 show_backtrace(1);
2900 }
2901 var28 = var_count < var21;
2902 var22 = var28;
2903 goto RET_LABEL23;
2904 RET_LABEL23:(void)0;
2905 }
2906 }
2907 if (var22){
2908 var29 = 0;
2909 var_count = var29;
2910 } else {
2911 }
2912 var30 = 0;
2913 var_from = var30;
2914 } else {
2915 }
2916 {
2917 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
2918 var33 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
2919 var31 = var33;
2920 RET_LABEL32:(void)0;
2921 }
2922 }
2923 {
2924 { /* Inline kernel#Int#+ (var31,var_from) on <var31:Int> */
2925 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
2926 /* <var_from:Int> isa OTHER */
2927 var36 = 1; /* easy <var_from:Int> isa OTHER*/
2928 if (unlikely(!var36)) {
2929 var_class_name39 = type_kernel__Int.name;
2930 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
2931 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
2932 show_backtrace(1);
2933 }
2934 var40 = var31 + var_from;
2935 var34 = var40;
2936 goto RET_LABEL35;
2937 RET_LABEL35:(void)0;
2938 }
2939 }
2940 var_realFrom = var34;
2941 {
2942 { /* Inline kernel#Int#+ (var_realFrom,var_count) on <var_realFrom:Int> */
2943 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
2944 /* <var_count:Int> isa OTHER */
2945 var43 = 1; /* easy <var_count:Int> isa OTHER*/
2946 if (unlikely(!var43)) {
2947 var_class_name46 = type_kernel__Int.name;
2948 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
2949 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
2950 show_backtrace(1);
2951 }
2952 var47 = var_realFrom + var_count;
2953 var41 = var47;
2954 goto RET_LABEL42;
2955 RET_LABEL42:(void)0;
2956 }
2957 }
2958 {
2959 { /* Inline string#FlatString#index_to (self) on <self:FlatString> */
2960 var50 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:FlatString> */
2961 var48 = var50;
2962 RET_LABEL49:(void)0;
2963 }
2964 }
2965 {
2966 { /* Inline kernel#Int#> (var41,var48) on <var41:Int> */
2967 /* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
2968 /* <var48:Int> isa OTHER */
2969 var53 = 1; /* easy <var48:Int> isa OTHER*/
2970 if (unlikely(!var53)) {
2971 var_class_name56 = type_kernel__Int.name;
2972 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
2973 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
2974 show_backtrace(1);
2975 }
2976 var57 = var41 > var48;
2977 var51 = var57;
2978 goto RET_LABEL52;
2979 RET_LABEL52:(void)0;
2980 }
2981 }
2982 if (var51){
2983 var58 = NEW_string__FlatString(&type_string__FlatString);
2984 {
2985 { /* Inline string#FlatText#items (self) on <self:FlatString> */
2986 var61 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
2987 var59 = var61;
2988 RET_LABEL60:(void)0;
2989 }
2990 }
2991 {
2992 { /* Inline string#FlatString#index_to (self) on <self:FlatString> */
2993 var64 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:FlatString> */
2994 var62 = var64;
2995 RET_LABEL63:(void)0;
2996 }
2997 }
2998 {
2999 { /* Inline kernel#Int#- (var62,var_realFrom) on <var62:Int> */
3000 /* Covariant cast for argument 0 (i) <var_realFrom:Int> isa OTHER */
3001 /* <var_realFrom:Int> isa OTHER */
3002 var67 = 1; /* easy <var_realFrom:Int> isa OTHER*/
3003 if (unlikely(!var67)) {
3004 var_class_name70 = type_kernel__Int.name;
3005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
3006 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
3007 show_backtrace(1);
3008 }
3009 var71 = var62 - var_realFrom;
3010 var65 = var71;
3011 goto RET_LABEL66;
3012 RET_LABEL66:(void)0;
3013 }
3014 }
3015 var72 = 1;
3016 {
3017 { /* Inline kernel#Int#+ (var65,var72) on <var65:Int> */
3018 /* Covariant cast for argument 0 (i) <var72:Int> isa OTHER */
3019 /* <var72:Int> isa OTHER */
3020 var75 = 1; /* easy <var72:Int> isa OTHER*/
3021 if (unlikely(!var75)) {
3022 var_class_name78 = type_kernel__Int.name;
3023 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78);
3024 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3025 show_backtrace(1);
3026 }
3027 var79 = var65 + var72;
3028 var73 = var79;
3029 goto RET_LABEL74;
3030 RET_LABEL74:(void)0;
3031 }
3032 }
3033 {
3034 { /* Inline string#FlatString#index_to (self) on <self:FlatString> */
3035 var82 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:FlatString> */
3036 var80 = var82;
3037 RET_LABEL81:(void)0;
3038 }
3039 }
3040 {
3041 string__FlatString__with_infos(var58, var59, var73, var_realFrom, var80); /* Direct call string#FlatString#with_infos on <var58:FlatString>*/
3042 }
3043 /* <var58:FlatString> isa SELFTYPE */
3044 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
3045 cltype84 = type_struct->color;
3046 idtype85 = type_struct->id;
3047 if(cltype84 >= var58->type->table_size) {
3048 var83 = 0;
3049 } else {
3050 var83 = var58->type->type_table[cltype84] == idtype85;
3051 }
3052 if (unlikely(!var83)) {
3053 var_class_name86 = var58 == NULL ? "null" : var58->type->name;
3054 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name86);
3055 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 779);
3056 show_backtrace(1);
3057 }
3058 var = var58;
3059 goto RET_LABEL;
3060 } else {
3061 }
3062 var87 = 0;
3063 {
3064 { /* Inline kernel#Int#== (var_count,var87) on <var_count:Int> */
3065 var91 = var_count == var87;
3066 var89 = var91;
3067 goto RET_LABEL90;
3068 RET_LABEL90:(void)0;
3069 }
3070 var88 = var89;
3071 }
3072 if (var88){
3073 {
3074 var92 = string__FlatString__empty(self);
3075 }
3076 var = var92;
3077 goto RET_LABEL;
3078 } else {
3079 }
3080 {
3081 { /* Inline kernel#Int#+ (var_realFrom,var_count) on <var_realFrom:Int> */
3082 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
3083 /* <var_count:Int> isa OTHER */
3084 var95 = 1; /* easy <var_count:Int> isa OTHER*/
3085 if (unlikely(!var95)) {
3086 var_class_name98 = type_kernel__Int.name;
3087 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name98);
3088 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3089 show_backtrace(1);
3090 }
3091 var99 = var_realFrom + var_count;
3092 var93 = var99;
3093 goto RET_LABEL94;
3094 RET_LABEL94:(void)0;
3095 }
3096 }
3097 var100 = 1;
3098 {
3099 { /* Inline kernel#Int#- (var93,var100) on <var93:Int> */
3100 /* Covariant cast for argument 0 (i) <var100:Int> isa OTHER */
3101 /* <var100:Int> isa OTHER */
3102 var103 = 1; /* easy <var100:Int> isa OTHER*/
3103 if (unlikely(!var103)) {
3104 var_class_name106 = type_kernel__Int.name;
3105 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name106);
3106 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
3107 show_backtrace(1);
3108 }
3109 var107 = var93 - var100;
3110 var101 = var107;
3111 goto RET_LABEL102;
3112 RET_LABEL102:(void)0;
3113 }
3114 }
3115 var_to = var101;
3116 var108 = NEW_string__FlatString(&type_string__FlatString);
3117 {
3118 { /* Inline string#FlatText#items (self) on <self:FlatString> */
3119 var111 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
3120 var109 = var111;
3121 RET_LABEL110:(void)0;
3122 }
3123 }
3124 {
3125 { /* Inline kernel#Int#- (var_to,var_realFrom) on <var_to:Int> */
3126 /* Covariant cast for argument 0 (i) <var_realFrom:Int> isa OTHER */
3127 /* <var_realFrom:Int> isa OTHER */
3128 var114 = 1; /* easy <var_realFrom:Int> isa OTHER*/
3129 if (unlikely(!var114)) {
3130 var_class_name117 = type_kernel__Int.name;
3131 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name117);
3132 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
3133 show_backtrace(1);
3134 }
3135 var118 = var_to - var_realFrom;
3136 var112 = var118;
3137 goto RET_LABEL113;
3138 RET_LABEL113:(void)0;
3139 }
3140 }
3141 var119 = 1;
3142 {
3143 { /* Inline kernel#Int#+ (var112,var119) on <var112:Int> */
3144 /* Covariant cast for argument 0 (i) <var119:Int> isa OTHER */
3145 /* <var119:Int> isa OTHER */
3146 var122 = 1; /* easy <var119:Int> isa OTHER*/
3147 if (unlikely(!var122)) {
3148 var_class_name125 = type_kernel__Int.name;
3149 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name125);
3150 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3151 show_backtrace(1);
3152 }
3153 var126 = var112 + var119;
3154 var120 = var126;
3155 goto RET_LABEL121;
3156 RET_LABEL121:(void)0;
3157 }
3158 }
3159 {
3160 string__FlatString__with_infos(var108, var109, var120, var_realFrom, var_to); /* Direct call string#FlatString#with_infos on <var108:FlatString>*/
3161 }
3162 /* <var108:FlatString> isa SELFTYPE */
3163 type_struct130 = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
3164 cltype128 = type_struct130->color;
3165 idtype129 = type_struct130->id;
3166 if(cltype128 >= var108->type->table_size) {
3167 var127 = 0;
3168 } else {
3169 var127 = var108->type->type_table[cltype128] == idtype129;
3170 }
3171 if (unlikely(!var127)) {
3172 var_class_name131 = var108 == NULL ? "null" : var108->type->name;
3173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name131);
3174 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 785);
3175 show_backtrace(1);
3176 }
3177 var = var108;
3178 goto RET_LABEL;
3179 RET_LABEL:;
3180 return var;
3181 }
3182 /* method string#FlatString#substring for (self: Object, Int, Int): Text */
3183 val* VIRTUAL_string__FlatString__substring(val* self, long p0, long p1) {
3184 val* var /* : Text */;
3185 val* var1 /* : String */;
3186 var1 = string__FlatString__substring(self, p0, p1);
3187 var = var1;
3188 RET_LABEL:;
3189 return var;
3190 }
3191 /* method string#FlatString#empty for (self: FlatString): String */
3192 val* string__FlatString__empty(val* self) {
3193 val* var /* : String */;
3194 static val* varonce;
3195 val* var1 /* : String */;
3196 char* var2 /* : NativeString */;
3197 long var3 /* : Int */;
3198 val* var4 /* : FlatString */;
3199 short int var5 /* : Bool */;
3200 int cltype;
3201 int idtype;
3202 const char* var_class_name;
3203 short int var6 /* : Bool */;
3204 int cltype7;
3205 int idtype8;
3206 const struct type* type_struct;
3207 const char* var_class_name9;
3208 if (varonce) {
3209 var1 = varonce;
3210 } else {
3211 var2 = "";
3212 var3 = 0;
3213 var4 = string__NativeString__to_s_with_length(var2, var3);
3214 var1 = var4;
3215 varonce = var1;
3216 }
3217 /* <var1:String> isa FlatString */
3218 cltype = type_string__FlatString.color;
3219 idtype = type_string__FlatString.id;
3220 if(cltype >= var1->type->table_size) {
3221 var5 = 0;
3222 } else {
3223 var5 = var1->type->type_table[cltype] == idtype;
3224 }
3225 if (unlikely(!var5)) {
3226 var_class_name = var1 == NULL ? "null" : var1->type->name;
3227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name);
3228 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 788);
3229 show_backtrace(1);
3230 }
3231 /* <var1:String(FlatString)> isa SELFTYPE */
3232 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
3233 cltype7 = type_struct->color;
3234 idtype8 = type_struct->id;
3235 if(cltype7 >= var1->type->table_size) {
3236 var6 = 0;
3237 } else {
3238 var6 = var1->type->type_table[cltype7] == idtype8;
3239 }
3240 if (unlikely(!var6)) {
3241 var_class_name9 = var1 == NULL ? "null" : var1->type->name;
3242 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name9);
3243 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 788);
3244 show_backtrace(1);
3245 }
3246 var = var1;
3247 goto RET_LABEL;
3248 RET_LABEL:;
3249 return var;
3250 }
3251 /* method string#FlatString#empty for (self: Object): Text */
3252 val* VIRTUAL_string__FlatString__empty(val* self) {
3253 val* var /* : Text */;
3254 val* var1 /* : String */;
3255 var1 = string__FlatString__empty(self);
3256 var = var1;
3257 RET_LABEL:;
3258 return var;
3259 }
3260 /* method string#FlatString#to_lower for (self: FlatString): String */
3261 val* string__FlatString__to_lower(val* self) {
3262 val* var /* : String */;
3263 long var1 /* : Int */;
3264 long var3 /* : Int */;
3265 long var4 /* : Int */;
3266 long var5 /* : Int */;
3267 short int var7 /* : Bool */;
3268 int cltype;
3269 int idtype;
3270 const char* var_class_name;
3271 long var8 /* : Int */;
3272 char* var9 /* : NativeString */;
3273 char* var11 /* : NativeString */;
3274 char* var_outstr /* var outstr: NativeString */;
3275 long var12 /* : Int */;
3276 long var_out_index /* var out_index: Int */;
3277 char* var13 /* : NativeString */;
3278 char* var15 /* : NativeString */;
3279 char* var_myitems /* var myitems: NativeString */;
3280 long var16 /* : Int */;
3281 long var18 /* : Int */;
3282 long var_index_from /* var index_from: Int */;
3283 long var19 /* : Int */;
3284 long var21 /* : Int */;
3285 long var_max /* var max: Int */;
3286 short int var22 /* : Bool */;
3287 short int var24 /* : Bool */;
3288 int cltype25;
3289 int idtype26;
3290 const char* var_class_name27;
3291 short int var28 /* : Bool */;
3292 char var29 /* : Char */;
3293 char var31 /* : Char */;
3294 char var32 /* : Char */;
3295 long var34 /* : Int */;
3296 long var35 /* : Int */;
3297 short int var37 /* : Bool */;
3298 int cltype38;
3299 int idtype39;
3300 const char* var_class_name40;
3301 long var41 /* : Int */;
3302 long var42 /* : Int */;
3303 long var43 /* : Int */;
3304 short int var45 /* : Bool */;
3305 int cltype46;
3306 int idtype47;
3307 const char* var_class_name48;
3308 long var49 /* : Int */;
3309 long var50 /* : Int */;
3310 long var52 /* : Int */;
3311 char var53 /* : Char */;
3312 long var55 /* : Int */;
3313 long var57 /* : Int */;
3314 val* var58 /* : FlatString */;
3315 short int var59 /* : Bool */;
3316 int cltype60;
3317 int idtype61;
3318 const struct type* type_struct;
3319 const char* var_class_name62;
3320 {
3321 { /* Inline string#FlatText#length (self) on <self:FlatString> */
3322 var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
3323 var1 = var3;
3324 RET_LABEL2:(void)0;
3325 }
3326 }
3327 var4 = 1;
3328 {
3329 { /* Inline kernel#Int#+ (var1,var4) on <var1:Int> */
3330 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
3331 /* <var4:Int> isa OTHER */
3332 var7 = 1; /* easy <var4:Int> isa OTHER*/
3333 if (unlikely(!var7)) {
3334 var_class_name = type_kernel__Int.name;
3335 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3336 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3337 show_backtrace(1);
3338 }
3339 var8 = var1 + var4;
3340 var5 = var8;
3341 goto RET_LABEL6;
3342 RET_LABEL6:(void)0;
3343 }
3344 }
3345 {
3346 { /* Inline string#StringCapable#calloc_string (self,var5) on <self:FlatString> */
3347 var11 = (char*)nit_alloc(var5);
3348 var9 = var11;
3349 goto RET_LABEL10;
3350 RET_LABEL10:(void)0;
3351 }
3352 }
3353 var_outstr = var9;
3354 var12 = 0;
3355 var_out_index = var12;
3356 {
3357 { /* Inline string#FlatText#items (self) on <self:FlatString> */
3358 var15 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
3359 var13 = var15;
3360 RET_LABEL14:(void)0;
3361 }
3362 }
3363 var_myitems = var13;
3364 {
3365 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
3366 var18 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
3367 var16 = var18;
3368 RET_LABEL17:(void)0;
3369 }
3370 }
3371 var_index_from = var16;
3372 {
3373 { /* Inline string#FlatString#index_to (self) on <self:FlatString> */
3374 var21 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:FlatString> */
3375 var19 = var21;
3376 RET_LABEL20:(void)0;
3377 }
3378 }
3379 var_max = var19;
3380 for(;;) {
3381 {
3382 { /* Inline kernel#Int#<= (var_index_from,var_max) on <var_index_from:Int> */
3383 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
3384 /* <var_max:Int> isa OTHER */
3385 var24 = 1; /* easy <var_max:Int> isa OTHER*/
3386 if (unlikely(!var24)) {
3387 var_class_name27 = type_kernel__Int.name;
3388 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
3389 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
3390 show_backtrace(1);
3391 }
3392 var28 = var_index_from <= var_max;
3393 var22 = var28;
3394 goto RET_LABEL23;
3395 RET_LABEL23:(void)0;
3396 }
3397 }
3398 if (!var22) break;
3399 {
3400 { /* Inline string#NativeString#[] (var_myitems,var_index_from) on <var_myitems:NativeString> */
3401 var31 = var_myitems[var_index_from];
3402 var29 = var31;
3403 goto RET_LABEL30;
3404 RET_LABEL30:(void)0;
3405 }
3406 }
3407 {
3408 var32 = kernel__Char__to_lower(var29);
3409 }
3410 {
3411 { /* Inline string#NativeString#[]= (var_outstr,var_out_index,var32) on <var_outstr:NativeString> */
3412 var_outstr[var_out_index]=var32;
3413 RET_LABEL33:(void)0;
3414 }
3415 }
3416 var34 = 1;
3417 {
3418 { /* Inline kernel#Int#+ (var_out_index,var34) on <var_out_index:Int> */
3419 /* Covariant cast for argument 0 (i) <var34:Int> isa OTHER */
3420 /* <var34:Int> isa OTHER */
3421 var37 = 1; /* easy <var34:Int> isa OTHER*/
3422 if (unlikely(!var37)) {
3423 var_class_name40 = type_kernel__Int.name;
3424 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
3425 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3426 show_backtrace(1);
3427 }
3428 var41 = var_out_index + var34;
3429 var35 = var41;
3430 goto RET_LABEL36;
3431 RET_LABEL36:(void)0;
3432 }
3433 }
3434 var_out_index = var35;
3435 var42 = 1;
3436 {
3437 { /* Inline kernel#Int#+ (var_index_from,var42) on <var_index_from:Int> */
3438 /* Covariant cast for argument 0 (i) <var42:Int> isa OTHER */
3439 /* <var42:Int> isa OTHER */
3440 var45 = 1; /* easy <var42:Int> isa OTHER*/
3441 if (unlikely(!var45)) {
3442 var_class_name48 = type_kernel__Int.name;
3443 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
3444 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3445 show_backtrace(1);
3446 }
3447 var49 = var_index_from + var42;
3448 var43 = var49;
3449 goto RET_LABEL44;
3450 RET_LABEL44:(void)0;
3451 }
3452 }
3453 var_index_from = var43;
3454 CONTINUE_label: (void)0;
3455 }
3456 BREAK_label: (void)0;
3457 {
3458 { /* Inline string#FlatText#length (self) on <self:FlatString> */
3459 var52 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
3460 var50 = var52;
3461 RET_LABEL51:(void)0;
3462 }
3463 }
3464 var53 = '\0';
3465 {
3466 { /* Inline string#NativeString#[]= (var_outstr,var50,var53) on <var_outstr:NativeString> */
3467 var_outstr[var50]=var53;
3468 RET_LABEL54:(void)0;
3469 }
3470 }
3471 {
3472 { /* Inline string#FlatText#length (self) on <self:FlatString> */
3473 var57 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
3474 var55 = var57;
3475 RET_LABEL56:(void)0;
3476 }
3477 }
3478 {
3479 var58 = string__NativeString__to_s_with_length(var_outstr, var55);
3480 }
3481 /* <var58:FlatString> isa SELFTYPE */
3482 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
3483 cltype60 = type_struct->color;
3484 idtype61 = type_struct->id;
3485 if(cltype60 >= var58->type->table_size) {
3486 var59 = 0;
3487 } else {
3488 var59 = var58->type->type_table[cltype60] == idtype61;
3489 }
3490 if (unlikely(!var59)) {
3491 var_class_name62 = var58 == NULL ? "null" : var58->type->name;
3492 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name62);
3493 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 827);
3494 show_backtrace(1);
3495 }
3496 var = var58;
3497 goto RET_LABEL;
3498 RET_LABEL:;
3499 return var;
3500 }
3501 /* method string#FlatString#to_lower for (self: Object): String */
3502 val* VIRTUAL_string__FlatString__to_lower(val* self) {
3503 val* var /* : String */;
3504 val* var1 /* : String */;
3505 var1 = string__FlatString__to_lower(self);
3506 var = var1;
3507 RET_LABEL:;
3508 return var;
3509 }
3510 /* method string#FlatString#with_infos for (self: FlatString, NativeString, Int, Int, Int) */
3511 void string__FlatString__with_infos(val* self, char* p0, long p1, long p2, long p3) {
3512 char* var_items /* var items: NativeString */;
3513 long var_len /* var len: Int */;
3514 long var_from /* var from: Int */;
3515 long var_to /* var to: Int */;
3516 {
3517 string__FlatText__init(self); /* Direct call string#FlatText#init on <self:FlatString>*/
3518 }
3519 {
3520 { /* Inline string#Text#init (self) on <self:FlatString> */
3521 RET_LABEL1:(void)0;
3522 }
3523 }
3524 var_items = p0;
3525 var_len = p1;
3526 var_from = p2;
3527 var_to = p3;
3528 {
3529 { /* Inline string#FlatText#items= (self,var_items) on <self:FlatString> */
3530 self->attrs[COLOR_string__FlatText___items].str = var_items; /* _items on <self:FlatString> */
3531 RET_LABEL2:(void)0;
3532 }
3533 }
3534 {
3535 { /* Inline string#FlatText#length= (self,var_len) on <self:FlatString> */
3536 self->attrs[COLOR_string__FlatText___length].l = var_len; /* _length on <self:FlatString> */
3537 RET_LABEL3:(void)0;
3538 }
3539 }
3540 {
3541 { /* Inline string#FlatString#index_from= (self,var_from) on <self:FlatString> */
3542 self->attrs[COLOR_string__FlatString___index_from].l = var_from; /* _index_from on <self:FlatString> */
3543 RET_LABEL4:(void)0;
3544 }
3545 }
3546 {
3547 { /* Inline string#FlatString#index_to= (self,var_to) on <self:FlatString> */
3548 self->attrs[COLOR_string__FlatString___index_to].l = var_to; /* _index_to on <self:FlatString> */
3549 RET_LABEL5:(void)0;
3550 }
3551 }
3552 RET_LABEL:;
3553 }
3554 /* method string#FlatString#with_infos for (self: Object, NativeString, Int, Int, Int) */
3555 void VIRTUAL_string__FlatString__with_infos(val* self, char* p0, long p1, long p2, long p3) {
3556 string__FlatString__with_infos(self, p0, p1, p2, p3); /* Direct call string#FlatString#with_infos on <self:Object(FlatString)>*/
3557 RET_LABEL:;
3558 }
3559 /* method string#FlatString#to_cstring for (self: FlatString): NativeString */
3560 char* string__FlatString__to_cstring(val* self) {
3561 char* var /* : NativeString */;
3562 val* var1 /* : nullable NativeString */;
3563 val* var3 /* : nullable NativeString */;
3564 val* var4 /* : null */;
3565 short int var5 /* : Bool */;
3566 short int var6 /* : Bool */;
3567 val* var_other /* var other: nullable Object */;
3568 short int var8 /* : Bool */;
3569 val* var_other10 /* var other: nullable Object */;
3570 short int var11 /* : Bool */;
3571 short int var13 /* : Bool */;
3572 short int var14 /* : Bool */;
3573 val* var15 /* : nullable NativeString */;
3574 val* var17 /* : nullable NativeString */;
3575 char* var18 /* : NativeString */;
3576 short int var19 /* : Bool */;
3577 long var20 /* : Int */;
3578 long var22 /* : Int */;
3579 long var23 /* : Int */;
3580 short int var24 /* : Bool */;
3581 short int var26 /* : Bool */;
3582 int cltype;
3583 int idtype;
3584 const char* var_class_name;
3585 short int var27 /* : Bool */;
3586 short int var_ /* var : Bool */;
3587 long var28 /* : Int */;
3588 long var30 /* : Int */;
3589 char* var31 /* : NativeString */;
3590 char* var33 /* : NativeString */;
3591 long var34 /* : Int */;
3592 long var35 /* : Int */;
3593 long var36 /* : Int */;
3594 short int var38 /* : Bool */;
3595 int cltype39;
3596 int idtype40;
3597 const char* var_class_name41;
3598 long var42 /* : Int */;
3599 short int var43 /* : Bool */;
3600 short int var44 /* : Bool */;
3601 short int var46 /* : Bool */;
3602 short int var47 /* : Bool */;
3603 long var48 /* : Int */;
3604 long var50 /* : Int */;
3605 long var51 /* : Int */;
3606 long var52 /* : Int */;
3607 short int var54 /* : Bool */;
3608 int cltype55;
3609 int idtype56;
3610 const char* var_class_name57;
3611 long var58 /* : Int */;
3612 char* var59 /* : NativeString */;
3613 char* var61 /* : NativeString */;
3614 char* var_newItems /* var newItems: NativeString */;
3615 char* var62 /* : NativeString */;
3616 char* var64 /* : NativeString */;
3617 long var65 /* : Int */;
3618 long var67 /* : Int */;
3619 long var68 /* : Int */;
3620 long var70 /* : Int */;
3621 long var71 /* : Int */;
3622 long var73 /* : Int */;
3623 long var75 /* : Int */;
3624 char var76 /* : Char */;
3625 val* var79 /* : nullable NativeString */;
3626 char* var80 /* : NativeString */;
3627 char* var82 /* : NativeString */;
3628 {
3629 { /* Inline string#FlatText#real_items (self) on <self:FlatString> */
3630 var3 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on <self:FlatString> */
3631 var1 = var3;
3632 RET_LABEL2:(void)0;
3633 }
3634 }
3635 var4 = NULL;
3636 if (var1 == NULL) {
3637 var5 = 0; /* is null */
3638 } else {
3639 var5 = 1; /* arg is null and recv is not */
3640 }
3641 if (0) {
3642 { /* Inline kernel#Object#!= (var1,var4) on <var1:nullable NativeString> */
3643 var_other = var4;
3644 { /* Inline kernel#Object#== (var1,var_other) on <var1:nullable NativeString(NativeString)> */
3645 var_other10 = var_other;
3646 {
3647 { /* Inline kernel#Object#is_same_instance (var1,var_other10) on <var1:nullable NativeString(NativeString)> */
3648 var13 = var1 == var_other10 || (var_other10 != NULL && var1->class == var_other10->class && ((struct instance_kernel__Pointer*)var1)->value == ((struct instance_kernel__Pointer*)var_other10)->value);
3649 var11 = var13;
3650 goto RET_LABEL12;
3651 RET_LABEL12:(void)0;
3652 }
3653 }
3654 var8 = var11;
3655 goto RET_LABEL9;
3656 RET_LABEL9:(void)0;
3657 }
3658 var14 = !var8;
3659 var6 = var14;
3660 goto RET_LABEL7;
3661 RET_LABEL7:(void)0;
3662 }
3663 var5 = var6;
3664 }
3665 if (var5){
3666 {
3667 { /* Inline string#FlatText#real_items (self) on <self:FlatString> */
3668 var17 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on <self:FlatString> */
3669 var15 = var17;
3670 RET_LABEL16:(void)0;
3671 }
3672 }
3673 if (unlikely(var15 == NULL)) {
3674 PRINT_ERROR("Runtime error: %s", "Cast failed");
3675 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 854);
3676 show_backtrace(1);
3677 }
3678 var18 = ((struct instance_kernel__Pointer*)var15)->value; /* autounbox from nullable NativeString to NativeString */;
3679 var = var18;
3680 goto RET_LABEL;
3681 } else {
3682 }
3683 {
3684 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
3685 var22 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
3686 var20 = var22;
3687 RET_LABEL21:(void)0;
3688 }
3689 }
3690 var23 = 0;
3691 {
3692 { /* Inline kernel#Int#> (var20,var23) on <var20:Int> */
3693 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
3694 /* <var23:Int> isa OTHER */
3695 var26 = 1; /* easy <var23:Int> isa OTHER*/
3696 if (unlikely(!var26)) {
3697 var_class_name = type_kernel__Int.name;
3698 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3699 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
3700 show_backtrace(1);
3701 }
3702 var27 = var20 > var23;
3703 var24 = var27;
3704 goto RET_LABEL25;
3705 RET_LABEL25:(void)0;
3706 }
3707 }
3708 var_ = var24;
3709 if (var24){
3710 var19 = var_;
3711 } else {
3712 {
3713 { /* Inline string#FlatString#index_to (self) on <self:FlatString> */
3714 var30 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:FlatString> */
3715 var28 = var30;
3716 RET_LABEL29:(void)0;
3717 }
3718 }
3719 {
3720 { /* Inline string#FlatText#items (self) on <self:FlatString> */
3721 var33 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
3722 var31 = var33;
3723 RET_LABEL32:(void)0;
3724 }
3725 }
3726 {
3727 var34 = string__NativeString__cstring_length(var31);
3728 }
3729 var35 = 1;
3730 {
3731 { /* Inline kernel#Int#- (var34,var35) on <var34:Int> */
3732 /* Covariant cast for argument 0 (i) <var35:Int> isa OTHER */
3733 /* <var35:Int> isa OTHER */
3734 var38 = 1; /* easy <var35:Int> isa OTHER*/
3735 if (unlikely(!var38)) {
3736 var_class_name41 = type_kernel__Int.name;
3737 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
3738 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
3739 show_backtrace(1);
3740 }
3741 var42 = var34 - var35;
3742 var36 = var42;
3743 goto RET_LABEL37;
3744 RET_LABEL37:(void)0;
3745 }
3746 }
3747 {
3748 { /* Inline kernel#Int#!= (var28,var36) on <var28:Int> */
3749 var46 = var28 == var36;
3750 var47 = !var46;
3751 var44 = var47;
3752 goto RET_LABEL45;
3753 RET_LABEL45:(void)0;
3754 }
3755 var43 = var44;
3756 }
3757 var19 = var43;
3758 }
3759 if (var19){
3760 {
3761 { /* Inline string#FlatText#length (self) on <self:FlatString> */
3762 var50 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
3763 var48 = var50;
3764 RET_LABEL49:(void)0;
3765 }
3766 }
3767 var51 = 1;
3768 {
3769 { /* Inline kernel#Int#+ (var48,var51) on <var48:Int> */
3770 /* Covariant cast for argument 0 (i) <var51:Int> isa OTHER */
3771 /* <var51:Int> isa OTHER */
3772 var54 = 1; /* easy <var51:Int> isa OTHER*/
3773 if (unlikely(!var54)) {
3774 var_class_name57 = type_kernel__Int.name;
3775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
3776 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3777 show_backtrace(1);
3778 }
3779 var58 = var48 + var51;
3780 var52 = var58;
3781 goto RET_LABEL53;
3782 RET_LABEL53:(void)0;
3783 }
3784 }
3785 {
3786 { /* Inline string#StringCapable#calloc_string (self,var52) on <self:FlatString> */
3787 var61 = (char*)nit_alloc(var52);
3788 var59 = var61;
3789 goto RET_LABEL60;
3790 RET_LABEL60:(void)0;
3791 }
3792 }
3793 var_newItems = var59;
3794 {
3795 { /* Inline string#FlatText#items (self) on <self:FlatString> */
3796 var64 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
3797 var62 = var64;
3798 RET_LABEL63:(void)0;
3799 }
3800 }
3801 {
3802 { /* Inline string#FlatText#length (self) on <self:FlatString> */
3803 var67 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
3804 var65 = var67;
3805 RET_LABEL66:(void)0;
3806 }
3807 }
3808 {
3809 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
3810 var70 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
3811 var68 = var70;
3812 RET_LABEL69:(void)0;
3813 }
3814 }
3815 var71 = 0;
3816 {
3817 { /* Inline string#NativeString#copy_to (var62,var_newItems,var65,var68,var71) on <var62:NativeString> */
3818 memcpy(var_newItems+var71,var62+var68,var65);
3819 RET_LABEL72:(void)0;
3820 }
3821 }
3822 {
3823 { /* Inline string#FlatText#length (self) on <self:FlatString> */
3824 var75 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
3825 var73 = var75;
3826 RET_LABEL74:(void)0;
3827 }
3828 }
3829 var76 = '\0';
3830 {
3831 { /* Inline string#NativeString#[]= (var_newItems,var73,var76) on <var_newItems:NativeString> */
3832 var_newItems[var73]=var76;
3833 RET_LABEL77:(void)0;
3834 }
3835 }
3836 {
3837 { /* Inline string#FlatText#real_items= (self,var_newItems) on <self:FlatString> */
3838 var79 = BOX_string__NativeString(var_newItems); /* autobox from NativeString to nullable NativeString */
3839 self->attrs[COLOR_string__FlatText___real_items].val = var79; /* _real_items on <self:FlatString> */
3840 RET_LABEL78:(void)0;
3841 }
3842 }
3843 var = var_newItems;
3844 goto RET_LABEL;
3845 } else {
3846 }
3847 {
3848 { /* Inline string#FlatText#items (self) on <self:FlatString> */
3849 var82 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
3850 var80 = var82;
3851 RET_LABEL81:(void)0;
3852 }
3853 }
3854 var = var80;
3855 goto RET_LABEL;
3856 RET_LABEL:;
3857 return var;
3858 }
3859 /* method string#FlatString#to_cstring for (self: Object): NativeString */
3860 char* VIRTUAL_string__FlatString__to_cstring(val* self) {
3861 char* var /* : NativeString */;
3862 char* var1 /* : NativeString */;
3863 var1 = string__FlatString__to_cstring(self);
3864 var = var1;
3865 RET_LABEL:;
3866 return var;
3867 }
3868 /* method string#FlatString#== for (self: FlatString, nullable Object): Bool */
3869 short int string__FlatString___61d_61d(val* self, val* p0) {
3870 short int var /* : Bool */;
3871 val* var_other /* var other: nullable Object */;
3872 short int var1 /* : Bool */;
3873 int cltype;
3874 int idtype;
3875 short int var2 /* : Bool */;
3876 short int var3 /* : Bool */;
3877 short int var4 /* : Bool */;
3878 long var5 /* : Int */;
3879 long var7 /* : Int */;
3880 long var8 /* : Int */;
3881 long var10 /* : Int */;
3882 short int var11 /* : Bool */;
3883 short int var12 /* : Bool */;
3884 short int var14 /* : Bool */;
3885 short int var15 /* : Bool */;
3886 long var16 /* : Int */;
3887 long var18 /* : Int */;
3888 long var_my_length /* var my_length: Int */;
3889 long var19 /* : Int */;
3890 long var21 /* : Int */;
3891 short int var22 /* : Bool */;
3892 short int var23 /* : Bool */;
3893 short int var25 /* : Bool */;
3894 short int var26 /* : Bool */;
3895 short int var27 /* : Bool */;
3896 long var28 /* : Int */;
3897 long var30 /* : Int */;
3898 long var_my_index /* var my_index: Int */;
3899 long var31 /* : Int */;
3900 long var33 /* : Int */;
3901 long var_its_index /* var its_index: Int */;
3902 long var34 /* : Int */;
3903 short int var36 /* : Bool */;
3904 int cltype37;
3905 int idtype38;
3906 const char* var_class_name;
3907 long var39 /* : Int */;
3908 long var_last_iteration /* var last_iteration: Int */;
3909 char* var40 /* : NativeString */;
3910 char* var42 /* : NativeString */;
3911 char* var_itsitems /* var itsitems: NativeString */;
3912 char* var43 /* : NativeString */;
3913 char* var45 /* : NativeString */;
3914 char* var_myitems /* var myitems: NativeString */;
3915 short int var46 /* : Bool */;
3916 short int var48 /* : Bool */;
3917 int cltype49;
3918 int idtype50;
3919 const char* var_class_name51;
3920 short int var52 /* : Bool */;
3921 char var53 /* : Char */;
3922 char var55 /* : Char */;
3923 char var56 /* : Char */;
3924 char var58 /* : Char */;
3925 short int var59 /* : Bool */;
3926 short int var60 /* : Bool */;
3927 short int var62 /* : Bool */;
3928 short int var63 /* : Bool */;
3929 short int var64 /* : Bool */;
3930 long var65 /* : Int */;
3931 long var66 /* : Int */;
3932 short int var68 /* : Bool */;
3933 int cltype69;
3934 int idtype70;
3935 const char* var_class_name71;
3936 long var72 /* : Int */;
3937 long var73 /* : Int */;
3938 long var74 /* : Int */;
3939 short int var76 /* : Bool */;
3940 int cltype77;
3941 int idtype78;
3942 const char* var_class_name79;
3943 long var80 /* : Int */;
3944 short int var81 /* : Bool */;
3945 var_other = p0;
3946 /* <var_other:nullable Object> isa FlatString */
3947 cltype = type_string__FlatString.color;
3948 idtype = type_string__FlatString.id;
3949 if(var_other == NULL) {
3950 var1 = 0;
3951 } else {
3952 if(cltype >= var_other->type->table_size) {
3953 var1 = 0;
3954 } else {
3955 var1 = var_other->type->type_table[cltype] == idtype;
3956 }
3957 }
3958 var2 = !var1;
3959 if (var2){
3960 {
3961 var4 = ((short int (*)(val*, val*))(self->class->vft[COLOR_string__FlatString___61d_61d]))(self, p0) /* == on <self:FlatString>*/;
3962 var3 = var4;
3963 }
3964 var = var3;
3965 goto RET_LABEL;
3966 } else {
3967 }
3968 {
3969 { /* Inline kernel#Object#object_id (self) on <self:FlatString> */
3970 var7 = (long)self;
3971 var5 = var7;
3972 goto RET_LABEL6;
3973 RET_LABEL6:(void)0;
3974 }
3975 }
3976 {
3977 { /* Inline kernel#Object#object_id (var_other) on <var_other:nullable Object(FlatString)> */
3978 var10 = (long)var_other;
3979 var8 = var10;
3980 goto RET_LABEL9;
3981 RET_LABEL9:(void)0;
3982 }
3983 }
3984 {
3985 { /* Inline kernel#Int#== (var5,var8) on <var5:Int> */
3986 var14 = var5 == var8;
3987 var12 = var14;
3988 goto RET_LABEL13;
3989 RET_LABEL13:(void)0;
3990 }
3991 var11 = var12;
3992 }
3993 if (var11){
3994 var15 = 1;
3995 var = var15;
3996 goto RET_LABEL;
3997 } else {
3998 }
3999 {
4000 { /* Inline string#FlatText#length (self) on <self:FlatString> */
4001 var18 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
4002 var16 = var18;
4003 RET_LABEL17:(void)0;
4004 }
4005 }
4006 var_my_length = var16;
4007 {
4008 { /* Inline string#FlatText#length (var_other) on <var_other:nullable Object(FlatString)> */
4009 var21 = var_other->attrs[COLOR_string__FlatText___length].l; /* _length on <var_other:nullable Object(FlatString)> */
4010 var19 = var21;
4011 RET_LABEL20:(void)0;
4012 }
4013 }
4014 {
4015 { /* Inline kernel#Int#!= (var19,var_my_length) on <var19:Int> */
4016 var25 = var19 == var_my_length;
4017 var26 = !var25;
4018 var23 = var26;
4019 goto RET_LABEL24;
4020 RET_LABEL24:(void)0;
4021 }
4022 var22 = var23;
4023 }
4024 if (var22){
4025 var27 = 0;
4026 var = var27;
4027 goto RET_LABEL;
4028 } else {
4029 }
4030 {
4031 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
4032 var30 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
4033 var28 = var30;
4034 RET_LABEL29:(void)0;
4035 }
4036 }
4037 var_my_index = var28;
4038 {
4039 { /* Inline string#FlatString#index_from (var_other) on <var_other:nullable Object(FlatString)> */
4040 var33 = var_other->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_other:nullable Object(FlatString)> */
4041 var31 = var33;
4042 RET_LABEL32:(void)0;
4043 }
4044 }
4045 var_its_index = var31;
4046 {
4047 { /* Inline kernel#Int#+ (var_my_index,var_my_length) on <var_my_index:Int> */
4048 /* Covariant cast for argument 0 (i) <var_my_length:Int> isa OTHER */
4049 /* <var_my_length:Int> isa OTHER */
4050 var36 = 1; /* easy <var_my_length:Int> isa OTHER*/
4051 if (unlikely(!var36)) {
4052 var_class_name = type_kernel__Int.name;
4053 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4054 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4055 show_backtrace(1);
4056 }
4057 var39 = var_my_index + var_my_length;
4058 var34 = var39;
4059 goto RET_LABEL35;
4060 RET_LABEL35:(void)0;
4061 }
4062 }
4063 var_last_iteration = var34;
4064 {
4065 { /* Inline string#FlatText#items (var_other) on <var_other:nullable Object(FlatString)> */
4066 var42 = var_other->attrs[COLOR_string__FlatText___items].str; /* _items on <var_other:nullable Object(FlatString)> */
4067 var40 = var42;
4068 RET_LABEL41:(void)0;
4069 }
4070 }
4071 var_itsitems = var40;
4072 {
4073 { /* Inline string#FlatText#items (self) on <self:FlatString> */
4074 var45 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
4075 var43 = var45;
4076 RET_LABEL44:(void)0;
4077 }
4078 }
4079 var_myitems = var43;
4080 for(;;) {
4081 {
4082 { /* Inline kernel#Int#< (var_my_index,var_last_iteration) on <var_my_index:Int> */
4083 /* Covariant cast for argument 0 (i) <var_last_iteration:Int> isa OTHER */
4084 /* <var_last_iteration:Int> isa OTHER */
4085 var48 = 1; /* easy <var_last_iteration:Int> isa OTHER*/
4086 if (unlikely(!var48)) {
4087 var_class_name51 = type_kernel__Int.name;
4088 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51);
4089 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
4090 show_backtrace(1);
4091 }
4092 var52 = var_my_index < var_last_iteration;
4093 var46 = var52;
4094 goto RET_LABEL47;
4095 RET_LABEL47:(void)0;
4096 }
4097 }
4098 if (!var46) break;
4099 {
4100 { /* Inline string#NativeString#[] (var_myitems,var_my_index) on <var_myitems:NativeString> */
4101 var55 = var_myitems[var_my_index];
4102 var53 = var55;
4103 goto RET_LABEL54;
4104 RET_LABEL54:(void)0;
4105 }
4106 }
4107 {
4108 { /* Inline string#NativeString#[] (var_itsitems,var_its_index) on <var_itsitems:NativeString> */
4109 var58 = var_itsitems[var_its_index];
4110 var56 = var58;
4111 goto RET_LABEL57;
4112 RET_LABEL57:(void)0;
4113 }
4114 }
4115 {
4116 { /* Inline kernel#Char#!= (var53,var56) on <var53:Char> */
4117 var62 = var53 == var56;
4118 var63 = !var62;
4119 var60 = var63;
4120 goto RET_LABEL61;
4121 RET_LABEL61:(void)0;
4122 }
4123 var59 = var60;
4124 }
4125 if (var59){
4126 var64 = 0;
4127 var = var64;
4128 goto RET_LABEL;
4129 } else {
4130 }
4131 var65 = 1;
4132 {
4133 { /* Inline kernel#Int#+ (var_my_index,var65) on <var_my_index:Int> */
4134 /* Covariant cast for argument 0 (i) <var65:Int> isa OTHER */
4135 /* <var65:Int> isa OTHER */
4136 var68 = 1; /* easy <var65:Int> isa OTHER*/
4137 if (unlikely(!var68)) {
4138 var_class_name71 = type_kernel__Int.name;
4139 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71);
4140 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4141 show_backtrace(1);
4142 }
4143 var72 = var_my_index + var65;
4144 var66 = var72;
4145 goto RET_LABEL67;
4146 RET_LABEL67:(void)0;
4147 }
4148 }
4149 var_my_index = var66;
4150 var73 = 1;
4151 {
4152 { /* Inline kernel#Int#+ (var_its_index,var73) on <var_its_index:Int> */
4153 /* Covariant cast for argument 0 (i) <var73:Int> isa OTHER */
4154 /* <var73:Int> isa OTHER */
4155 var76 = 1; /* easy <var73:Int> isa OTHER*/
4156 if (unlikely(!var76)) {
4157 var_class_name79 = type_kernel__Int.name;
4158 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79);
4159 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4160 show_backtrace(1);
4161 }
4162 var80 = var_its_index + var73;
4163 var74 = var80;
4164 goto RET_LABEL75;
4165 RET_LABEL75:(void)0;
4166 }
4167 }
4168 var_its_index = var74;
4169 CONTINUE_label: (void)0;
4170 }
4171 BREAK_label: (void)0;
4172 var81 = 1;
4173 var = var81;
4174 goto RET_LABEL;
4175 RET_LABEL:;
4176 return var;
4177 }
4178 /* method string#FlatString#== for (self: Object, nullable Object): Bool */
4179 short int VIRTUAL_string__FlatString___61d_61d(val* self, val* p0) {
4180 short int var /* : Bool */;
4181 short int var1 /* : Bool */;
4182 var1 = string__FlatString___61d_61d(self, p0);
4183 var = var1;
4184 RET_LABEL:;
4185 return var;
4186 }
4187 /* method string#FlatString#< for (self: FlatString, Text): Bool */
4188 short int string__FlatString___60d(val* self, val* p0) {
4189 short int var /* : Bool */;
4190 short int var1 /* : Bool */;
4191 int cltype;
4192 int idtype;
4193 const struct type* type_struct;
4194 const char* var_class_name;
4195 val* var_other /* var other: Text */;
4196 short int var2 /* : Bool */;
4197 int cltype3;
4198 int idtype4;
4199 short int var5 /* : Bool */;
4200 short int var6 /* : Bool */;
4201 long var7 /* : Int */;
4202 long var9 /* : Int */;
4203 long var10 /* : Int */;
4204 long var12 /* : Int */;
4205 short int var13 /* : Bool */;
4206 short int var14 /* : Bool */;
4207 short int var16 /* : Bool */;
4208 short int var17 /* : Bool */;
4209 long var18 /* : Int */;
4210 long var20 /* : Int */;
4211 long var_curr_id_self /* var curr_id_self: Int */;
4212 long var21 /* : Int */;
4213 long var23 /* : Int */;
4214 long var_curr_id_other /* var curr_id_other: Int */;
4215 char* var24 /* : NativeString */;
4216 char* var26 /* : NativeString */;
4217 char* var_my_items /* var my_items: NativeString */;
4218 char* var27 /* : NativeString */;
4219 char* var29 /* : NativeString */;
4220 char* var_its_items /* var its_items: NativeString */;
4221 long var30 /* : Int */;
4222 long var32 /* : Int */;
4223 long var_my_length /* var my_length: Int */;
4224 long var33 /* : Int */;
4225 long var35 /* : Int */;
4226 long var_its_length /* var its_length: Int */;
4227 long var36 /* : Int */;
4228 short int var38 /* : Bool */;
4229 int cltype39;
4230 int idtype40;
4231 const char* var_class_name41;
4232 long var42 /* : Int */;
4233 long var_max_iterations /* var max_iterations: Int */;
4234 short int var43 /* : Bool */;
4235 short int var45 /* : Bool */;
4236 int cltype46;
4237 int idtype47;
4238 const char* var_class_name48;
4239 short int var49 /* : Bool */;
4240 char var50 /* : Char */;
4241 char var52 /* : Char */;
4242 char var_my_curr_char /* var my_curr_char: Char */;
4243 char var53 /* : Char */;
4244 char var55 /* : Char */;
4245 char var_its_curr_char /* var its_curr_char: Char */;
4246 short int var56 /* : Bool */;
4247 short int var57 /* : Bool */;
4248 short int var59 /* : Bool */;
4249 short int var60 /* : Bool */;
4250 short int var61 /* : Bool */;
4251 short int var63 /* : Bool */;
4252 int cltype64;
4253 int idtype65;
4254 const char* var_class_name66;
4255 short int var67 /* : Bool */;
4256 short int var68 /* : Bool */;
4257 short int var69 /* : Bool */;
4258 long var70 /* : Int */;
4259 long var71 /* : Int */;
4260 short int var73 /* : Bool */;
4261 int cltype74;
4262 int idtype75;
4263 const char* var_class_name76;
4264 long var77 /* : Int */;
4265 long var78 /* : Int */;
4266 long var79 /* : Int */;
4267 short int var81 /* : Bool */;
4268 int cltype82;
4269 int idtype83;
4270 const char* var_class_name84;
4271 long var85 /* : Int */;
4272 short int var86 /* : Bool */;
4273 short int var88 /* : Bool */;
4274 int cltype89;
4275 int idtype90;
4276 const char* var_class_name91;
4277 short int var92 /* : Bool */;
4278 /* Covariant cast for argument 0 (other) <p0:Text> isa OTHER */
4279 /* <p0:Text> isa OTHER */
4280 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
4281 cltype = type_struct->color;
4282 idtype = type_struct->id;
4283 if(cltype >= p0->type->table_size) {
4284 var1 = 0;
4285 } else {
4286 var1 = p0->type->type_table[cltype] == idtype;
4287 }
4288 if (unlikely(!var1)) {
4289 var_class_name = p0 == NULL ? "null" : p0->type->name;
4290 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4291 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 892);
4292 show_backtrace(1);
4293 }
4294 var_other = p0;
4295 /* <var_other:Text> isa FlatString */
4296 cltype3 = type_string__FlatString.color;
4297 idtype4 = type_string__FlatString.id;
4298 if(cltype3 >= var_other->type->table_size) {
4299 var2 = 0;
4300 } else {
4301 var2 = var_other->type->type_table[cltype3] == idtype4;
4302 }
4303 var5 = !var2;
4304 if (var5){
4305 {
4306 var6 = ((short int (*)(val*, val*))(self->class->vft[COLOR_string__FlatString___60d]))(self, p0) /* < on <self:FlatString>*/;
4307 }
4308 var = var6;
4309 goto RET_LABEL;
4310 } else {
4311 }
4312 {
4313 { /* Inline kernel#Object#object_id (self) on <self:FlatString> */
4314 var9 = (long)self;
4315 var7 = var9;
4316 goto RET_LABEL8;
4317 RET_LABEL8:(void)0;
4318 }
4319 }
4320 {
4321 { /* Inline kernel#Object#object_id (var_other) on <var_other:Text(FlatString)> */
4322 var12 = (long)var_other;
4323 var10 = var12;
4324 goto RET_LABEL11;
4325 RET_LABEL11:(void)0;
4326 }
4327 }
4328 {
4329 { /* Inline kernel#Int#== (var7,var10) on <var7:Int> */
4330 var16 = var7 == var10;
4331 var14 = var16;
4332 goto RET_LABEL15;
4333 RET_LABEL15:(void)0;
4334 }
4335 var13 = var14;
4336 }
4337 if (var13){
4338 var17 = 0;
4339 var = var17;
4340 goto RET_LABEL;
4341 } else {
4342 }
4343 {
4344 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
4345 var20 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
4346 var18 = var20;
4347 RET_LABEL19:(void)0;
4348 }
4349 }
4350 var_curr_id_self = var18;
4351 {
4352 { /* Inline string#FlatString#index_from (var_other) on <var_other:Text(FlatString)> */
4353 var23 = var_other->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_other:Text(FlatString)> */
4354 var21 = var23;
4355 RET_LABEL22:(void)0;
4356 }
4357 }
4358 var_curr_id_other = var21;
4359 {
4360 { /* Inline string#FlatText#items (self) on <self:FlatString> */
4361 var26 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
4362 var24 = var26;
4363 RET_LABEL25:(void)0;
4364 }
4365 }
4366 var_my_items = var24;
4367 {
4368 { /* Inline string#FlatText#items (var_other) on <var_other:Text(FlatString)> */
4369 var29 = var_other->attrs[COLOR_string__FlatText___items].str; /* _items on <var_other:Text(FlatString)> */
4370 var27 = var29;
4371 RET_LABEL28:(void)0;
4372 }
4373 }
4374 var_its_items = var27;
4375 {
4376 { /* Inline string#FlatText#length (self) on <self:FlatString> */
4377 var32 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
4378 var30 = var32;
4379 RET_LABEL31:(void)0;
4380 }
4381 }
4382 var_my_length = var30;
4383 {
4384 { /* Inline string#FlatText#length (var_other) on <var_other:Text(FlatString)> */
4385 var35 = var_other->attrs[COLOR_string__FlatText___length].l; /* _length on <var_other:Text(FlatString)> */
4386 var33 = var35;
4387 RET_LABEL34:(void)0;
4388 }
4389 }
4390 var_its_length = var33;
4391 {
4392 { /* Inline kernel#Int#+ (var_curr_id_self,var_my_length) on <var_curr_id_self:Int> */
4393 /* Covariant cast for argument 0 (i) <var_my_length:Int> isa OTHER */
4394 /* <var_my_length:Int> isa OTHER */
4395 var38 = 1; /* easy <var_my_length:Int> isa OTHER*/
4396 if (unlikely(!var38)) {
4397 var_class_name41 = type_kernel__Int.name;
4398 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
4399 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4400 show_backtrace(1);
4401 }
4402 var42 = var_curr_id_self + var_my_length;
4403 var36 = var42;
4404 goto RET_LABEL37;
4405 RET_LABEL37:(void)0;
4406 }
4407 }
4408 var_max_iterations = var36;
4409 for(;;) {
4410 {
4411 { /* Inline kernel#Int#< (var_curr_id_self,var_max_iterations) on <var_curr_id_self:Int> */
4412 /* Covariant cast for argument 0 (i) <var_max_iterations:Int> isa OTHER */
4413 /* <var_max_iterations:Int> isa OTHER */
4414 var45 = 1; /* easy <var_max_iterations:Int> isa OTHER*/
4415 if (unlikely(!var45)) {
4416 var_class_name48 = type_kernel__Int.name;
4417 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
4418 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
4419 show_backtrace(1);
4420 }
4421 var49 = var_curr_id_self < var_max_iterations;
4422 var43 = var49;
4423 goto RET_LABEL44;
4424 RET_LABEL44:(void)0;
4425 }
4426 }
4427 if (!var43) break;
4428 {
4429 { /* Inline string#NativeString#[] (var_my_items,var_curr_id_self) on <var_my_items:NativeString> */
4430 var52 = var_my_items[var_curr_id_self];
4431 var50 = var52;
4432 goto RET_LABEL51;
4433 RET_LABEL51:(void)0;
4434 }
4435 }
4436 var_my_curr_char = var50;
4437 {
4438 { /* Inline string#NativeString#[] (var_its_items,var_curr_id_other) on <var_its_items:NativeString> */
4439 var55 = var_its_items[var_curr_id_other];
4440 var53 = var55;
4441 goto RET_LABEL54;
4442 RET_LABEL54:(void)0;
4443 }
4444 }
4445 var_its_curr_char = var53;
4446 {
4447 { /* Inline kernel#Char#!= (var_my_curr_char,var_its_curr_char) on <var_my_curr_char:Char> */
4448 var59 = var_my_curr_char == var_its_curr_char;
4449 var60 = !var59;
4450 var57 = var60;
4451 goto RET_LABEL58;
4452 RET_LABEL58:(void)0;
4453 }
4454 var56 = var57;
4455 }
4456 if (var56){
4457 {
4458 { /* Inline kernel#Char#< (var_my_curr_char,var_its_curr_char) on <var_my_curr_char:Char> */
4459 /* Covariant cast for argument 0 (i) <var_its_curr_char:Char> isa OTHER */
4460 /* <var_its_curr_char:Char> isa OTHER */
4461 var63 = 1; /* easy <var_its_curr_char:Char> isa OTHER*/
4462 if (unlikely(!var63)) {
4463 var_class_name66 = type_kernel__Char.name;
4464 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
4465 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 500);
4466 show_backtrace(1);
4467 }
4468 var67 = var_my_curr_char < var_its_curr_char;
4469 var61 = var67;
4470 goto RET_LABEL62;
4471 RET_LABEL62:(void)0;
4472 }
4473 }
4474 if (var61){
4475 var68 = 1;
4476 var = var68;
4477 goto RET_LABEL;
4478 } else {
4479 }
4480 var69 = 0;
4481 var = var69;
4482 goto RET_LABEL;
4483 } else {
4484 }
4485 var70 = 1;
4486 {
4487 { /* Inline kernel#Int#+ (var_curr_id_self,var70) on <var_curr_id_self:Int> */
4488 /* Covariant cast for argument 0 (i) <var70:Int> isa OTHER */
4489 /* <var70:Int> isa OTHER */
4490 var73 = 1; /* easy <var70:Int> isa OTHER*/
4491 if (unlikely(!var73)) {
4492 var_class_name76 = type_kernel__Int.name;
4493 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76);
4494 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4495 show_backtrace(1);
4496 }
4497 var77 = var_curr_id_self + var70;
4498 var71 = var77;
4499 goto RET_LABEL72;
4500 RET_LABEL72:(void)0;
4501 }
4502 }
4503 var_curr_id_self = var71;
4504 var78 = 1;
4505 {
4506 { /* Inline kernel#Int#+ (var_curr_id_other,var78) on <var_curr_id_other:Int> */
4507 /* Covariant cast for argument 0 (i) <var78:Int> isa OTHER */
4508 /* <var78:Int> isa OTHER */
4509 var81 = 1; /* easy <var78:Int> isa OTHER*/
4510 if (unlikely(!var81)) {
4511 var_class_name84 = type_kernel__Int.name;
4512 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84);
4513 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4514 show_backtrace(1);
4515 }
4516 var85 = var_curr_id_other + var78;
4517 var79 = var85;
4518 goto RET_LABEL80;
4519 RET_LABEL80:(void)0;
4520 }
4521 }
4522 var_curr_id_other = var79;
4523 CONTINUE_label: (void)0;
4524 }
4525 BREAK_label: (void)0;
4526 {
4527 { /* Inline kernel#Int#< (var_my_length,var_its_length) on <var_my_length:Int> */
4528 /* Covariant cast for argument 0 (i) <var_its_length:Int> isa OTHER */
4529 /* <var_its_length:Int> isa OTHER */
4530 var88 = 1; /* easy <var_its_length:Int> isa OTHER*/
4531 if (unlikely(!var88)) {
4532 var_class_name91 = type_kernel__Int.name;
4533 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
4534 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
4535 show_backtrace(1);
4536 }
4537 var92 = var_my_length < var_its_length;
4538 var86 = var92;
4539 goto RET_LABEL87;
4540 RET_LABEL87:(void)0;
4541 }
4542 }
4543 var = var86;
4544 goto RET_LABEL;
4545 RET_LABEL:;
4546 return var;
4547 }
4548 /* method string#FlatString#< for (self: Object, Comparable): Bool */
4549 short int VIRTUAL_string__FlatString___60d(val* self, val* p0) {
4550 short int var /* : Bool */;
4551 short int var1 /* : Bool */;
4552 var1 = string__FlatString___60d(self, p0);
4553 var = var1;
4554 RET_LABEL:;
4555 return var;
4556 }
4557 /* method string#FlatString#+ for (self: FlatString, Text): String */
4558 val* string__FlatString___43d(val* self, val* p0) {
4559 val* var /* : String */;
4560 val* var_s /* var s: Text */;
4561 long var1 /* : Int */;
4562 long var3 /* : Int */;
4563 long var_my_length /* var my_length: Int */;
4564 long var4 /* : Int */;
4565 long var6 /* : Int */;
4566 long var_its_length /* var its_length: Int */;
4567 long var7 /* : Int */;
4568 short int var9 /* : Bool */;
4569 int cltype;
4570 int idtype;
4571 const char* var_class_name;
4572 long var10 /* : Int */;
4573 long var_total_length /* var total_length: Int */;
4574 long var11 /* : Int */;
4575 short int var13 /* : Bool */;
4576 int cltype14;
4577 int idtype15;
4578 const char* var_class_name16;
4579 long var17 /* : Int */;
4580 long var18 /* : Int */;
4581 long var19 /* : Int */;
4582 short int var21 /* : Bool */;
4583 int cltype22;
4584 int idtype23;
4585 const char* var_class_name24;
4586 long var25 /* : Int */;
4587 char* var26 /* : NativeString */;
4588 char* var28 /* : NativeString */;
4589 char* var_target_string /* var target_string: NativeString */;
4590 char* var29 /* : NativeString */;
4591 char* var31 /* : NativeString */;
4592 long var32 /* : Int */;
4593 long var34 /* : Int */;
4594 long var35 /* : Int */;
4595 short int var37 /* : Bool */;
4596 int cltype38;
4597 int idtype39;
4598 char* var40 /* : NativeString */;
4599 char* var42 /* : NativeString */;
4600 long var43 /* : Int */;
4601 long var45 /* : Int */;
4602 short int var47 /* : Bool */;
4603 int cltype48;
4604 int idtype49;
4605 char* var50 /* : NativeString */;
4606 char* var52 /* : NativeString */;
4607 long var53 /* : Int */;
4608 long var_curr_pos /* var curr_pos: Int */;
4609 val* var55 /* : SequenceRead[Char] */;
4610 val* var56 /* : Iterator[nullable Object] */;
4611 short int var57 /* : Bool */;
4612 val* var58 /* : nullable Object */;
4613 char var_i /* var i: Char */;
4614 char var59 /* : Char */;
4615 long var61 /* : Int */;
4616 long var62 /* : Int */;
4617 short int var64 /* : Bool */;
4618 int cltype65;
4619 int idtype66;
4620 const char* var_class_name67;
4621 long var68 /* : Int */;
4622 char var69 /* : Char */;
4623 val* var71 /* : FlatString */;
4624 short int var72 /* : Bool */;
4625 int cltype73;
4626 int idtype74;
4627 const struct type* type_struct;
4628 const char* var_class_name75;
4629 var_s = p0;
4630 {
4631 { /* Inline string#FlatText#length (self) on <self:FlatString> */
4632 var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
4633 var1 = var3;
4634 RET_LABEL2:(void)0;
4635 }
4636 }
4637 var_my_length = var1;
4638 {
4639 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
4640 var6 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:Text> */
4641 var4 = var6;
4642 RET_LABEL5:(void)0;
4643 }
4644 }
4645 var_its_length = var4;
4646 {
4647 { /* Inline kernel#Int#+ (var_my_length,var_its_length) on <var_my_length:Int> */
4648 /* Covariant cast for argument 0 (i) <var_its_length:Int> isa OTHER */
4649 /* <var_its_length:Int> isa OTHER */
4650 var9 = 1; /* easy <var_its_length:Int> isa OTHER*/
4651 if (unlikely(!var9)) {
4652 var_class_name = type_kernel__Int.name;
4653 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4654 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4655 show_backtrace(1);
4656 }
4657 var10 = var_my_length + var_its_length;
4658 var7 = var10;
4659 goto RET_LABEL8;
4660 RET_LABEL8:(void)0;
4661 }
4662 }
4663 var_total_length = var7;
4664 {
4665 { /* Inline kernel#Int#+ (var_my_length,var_its_length) on <var_my_length:Int> */
4666 /* Covariant cast for argument 0 (i) <var_its_length:Int> isa OTHER */
4667 /* <var_its_length:Int> isa OTHER */
4668 var13 = 1; /* easy <var_its_length:Int> isa OTHER*/
4669 if (unlikely(!var13)) {
4670 var_class_name16 = type_kernel__Int.name;
4671 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
4672 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4673 show_backtrace(1);
4674 }
4675 var17 = var_my_length + var_its_length;
4676 var11 = var17;
4677 goto RET_LABEL12;
4678 RET_LABEL12:(void)0;
4679 }
4680 }
4681 var18 = 1;
4682 {
4683 { /* Inline kernel#Int#+ (var11,var18) on <var11:Int> */
4684 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
4685 /* <var18:Int> isa OTHER */
4686 var21 = 1; /* easy <var18:Int> isa OTHER*/
4687 if (unlikely(!var21)) {
4688 var_class_name24 = type_kernel__Int.name;
4689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
4690 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4691 show_backtrace(1);
4692 }
4693 var25 = var11 + var18;
4694 var19 = var25;
4695 goto RET_LABEL20;
4696 RET_LABEL20:(void)0;
4697 }
4698 }
4699 {
4700 { /* Inline string#StringCapable#calloc_string (self,var19) on <self:FlatString> */
4701 var28 = (char*)nit_alloc(var19);
4702 var26 = var28;
4703 goto RET_LABEL27;
4704 RET_LABEL27:(void)0;
4705 }
4706 }
4707 var_target_string = var26;
4708 {
4709 { /* Inline string#FlatText#items (self) on <self:FlatString> */
4710 var31 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
4711 var29 = var31;
4712 RET_LABEL30:(void)0;
4713 }
4714 }
4715 {
4716 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
4717 var34 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
4718 var32 = var34;
4719 RET_LABEL33:(void)0;
4720 }
4721 }
4722 var35 = 0;
4723 {
4724 { /* Inline string#NativeString#copy_to (var29,var_target_string,var_my_length,var32,var35) on <var29:NativeString> */
4725 memcpy(var_target_string+var35,var29+var32,var_my_length);
4726 RET_LABEL36:(void)0;
4727 }
4728 }
4729 /* <var_s:Text> isa FlatString */
4730 cltype38 = type_string__FlatString.color;
4731 idtype39 = type_string__FlatString.id;
4732 if(cltype38 >= var_s->type->table_size) {
4733 var37 = 0;
4734 } else {
4735 var37 = var_s->type->type_table[cltype38] == idtype39;
4736 }
4737 if (var37){
4738 {
4739 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatString)> */
4740 var42 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on <var_s:Text(FlatString)> */
4741 var40 = var42;
4742 RET_LABEL41:(void)0;
4743 }
4744 }
4745 {
4746 { /* Inline string#FlatString#index_from (var_s) on <var_s:Text(FlatString)> */
4747 var45 = var_s->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_s:Text(FlatString)> */
4748 var43 = var45;
4749 RET_LABEL44:(void)0;
4750 }
4751 }
4752 {
4753 { /* Inline string#NativeString#copy_to (var40,var_target_string,var_its_length,var43,var_my_length) on <var40:NativeString> */
4754 memcpy(var_target_string+var_my_length,var40+var43,var_its_length);
4755 RET_LABEL46:(void)0;
4756 }
4757 }
4758 } else {
4759 /* <var_s:Text> isa FlatBuffer */
4760 cltype48 = type_string__FlatBuffer.color;
4761 idtype49 = type_string__FlatBuffer.id;
4762 if(cltype48 >= var_s->type->table_size) {
4763 var47 = 0;
4764 } else {
4765 var47 = var_s->type->type_table[cltype48] == idtype49;
4766 }
4767 if (var47){
4768 {
4769 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatBuffer)> */
4770 var52 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on <var_s:Text(FlatBuffer)> */
4771 var50 = var52;
4772 RET_LABEL51:(void)0;
4773 }
4774 }
4775 var53 = 0;
4776 {
4777 { /* Inline string#NativeString#copy_to (var50,var_target_string,var_its_length,var53,var_my_length) on <var50:NativeString> */
4778 memcpy(var_target_string+var_my_length,var50+var53,var_its_length);
4779 RET_LABEL54:(void)0;
4780 }
4781 }
4782 } else {
4783 var_curr_pos = var_my_length;
4784 {
4785 var55 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on <var_s:Text>*/;
4786 }
4787 {
4788 var56 = ((val* (*)(val*))(var55->class->vft[COLOR_abstract_collection__Collection__iterator]))(var55) /* iterator on <var55:SequenceRead[Char]>*/;
4789 }
4790 for(;;) {
4791 {
4792 var57 = ((short int (*)(val*))(var56->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var56) /* is_ok on <var56:Iterator[nullable Object]>*/;
4793 }
4794 if(!var57) break;
4795 {
4796 var58 = ((val* (*)(val*))(var56->class->vft[COLOR_abstract_collection__Iterator__item]))(var56) /* item on <var56:Iterator[nullable Object]>*/;
4797 }
4798 var59 = ((struct instance_kernel__Char*)var58)->value; /* autounbox from nullable Object to Char */;
4799 var_i = var59;
4800 {
4801 { /* Inline string#NativeString#[]= (var_target_string,var_curr_pos,var_i) on <var_target_string:NativeString> */
4802 var_target_string[var_curr_pos]=var_i;
4803 RET_LABEL60:(void)0;
4804 }
4805 }
4806 var61 = 1;
4807 {
4808 { /* Inline kernel#Int#+ (var_curr_pos,var61) on <var_curr_pos:Int> */
4809 /* Covariant cast for argument 0 (i) <var61:Int> isa OTHER */
4810 /* <var61:Int> isa OTHER */
4811 var64 = 1; /* easy <var61:Int> isa OTHER*/
4812 if (unlikely(!var64)) {
4813 var_class_name67 = type_kernel__Int.name;
4814 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
4815 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4816 show_backtrace(1);
4817 }
4818 var68 = var_curr_pos + var61;
4819 var62 = var68;
4820 goto RET_LABEL63;
4821 RET_LABEL63:(void)0;
4822 }
4823 }
4824 var_curr_pos = var62;
4825 CONTINUE_label: (void)0;
4826 {
4827 ((void (*)(val*))(var56->class->vft[COLOR_abstract_collection__Iterator__next]))(var56) /* next on <var56:Iterator[nullable Object]>*/;
4828 }
4829 }
4830 BREAK_label: (void)0;
4831 }
4832 }
4833 var69 = '\0';
4834 {
4835 { /* Inline string#NativeString#[]= (var_target_string,var_total_length,var69) on <var_target_string:NativeString> */
4836 var_target_string[var_total_length]=var69;
4837 RET_LABEL70:(void)0;
4838 }
4839 }
4840 {
4841 var71 = string__NativeString__to_s_with_length(var_target_string, var_total_length);
4842 }
4843 /* <var71:FlatString> isa SELFTYPE */
4844 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
4845 cltype73 = type_struct->color;
4846 idtype74 = type_struct->id;
4847 if(cltype73 >= var71->type->table_size) {
4848 var72 = 0;
4849 } else {
4850 var72 = var71->type->type_table[cltype73] == idtype74;
4851 }
4852 if (unlikely(!var72)) {
4853 var_class_name75 = var71 == NULL ? "null" : var71->type->name;
4854 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name75);
4855 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 952);
4856 show_backtrace(1);
4857 }
4858 var = var71;
4859 goto RET_LABEL;
4860 RET_LABEL:;
4861 return var;
4862 }
4863 /* method string#FlatString#+ for (self: Object, Text): String */
4864 val* VIRTUAL_string__FlatString___43d(val* self, val* p0) {
4865 val* var /* : String */;
4866 val* var1 /* : String */;
4867 var1 = string__FlatString___43d(self, p0);
4868 var = var1;
4869 RET_LABEL:;
4870 return var;
4871 }
4872 /* method string#FlatString#* for (self: FlatString, Int): String */
4873 val* string__FlatString___42d(val* self, long p0) {
4874 val* var /* : String */;
4875 long var_i /* var i: Int */;
4876 long var1 /* : Int */;
4877 short int var2 /* : Bool */;
4878 short int var4 /* : Bool */;
4879 int cltype;
4880 int idtype;
4881 const char* var_class_name;
4882 short int var5 /* : Bool */;
4883 long var6 /* : Int */;
4884 long var8 /* : Int */;
4885 long var_my_length /* var my_length: Int */;
4886 long var9 /* : Int */;
4887 short int var11 /* : Bool */;
4888 int cltype12;
4889 int idtype13;
4890 const char* var_class_name14;
4891 long var15 /* : Int */;
4892 long var_final_length /* var final_length: Int */;
4893 char* var16 /* : NativeString */;
4894 char* var18 /* : NativeString */;
4895 char* var_my_items /* var my_items: NativeString */;
4896 long var19 /* : Int */;
4897 long var20 /* : Int */;
4898 short int var22 /* : Bool */;
4899 int cltype23;
4900 int idtype24;
4901 const char* var_class_name25;
4902 long var26 /* : Int */;
4903 char* var27 /* : NativeString */;
4904 char* var29 /* : NativeString */;
4905 char* var_target_string /* var target_string: NativeString */;
4906 char var30 /* : Char */;
4907 long var32 /* : Int */;
4908 long var_current_last /* var current_last: Int */;
4909 val* var33 /* : Range[Int] */;
4910 long var34 /* : Int */;
4911 val* var35 /* : Discrete */;
4912 val* var36 /* : Discrete */;
4913 val* var37 /* : Iterator[Discrete] */;
4914 short int var38 /* : Bool */;
4915 val* var39 /* : nullable Object */;
4916 long var_iteration /* var iteration: Int */;
4917 long var40 /* : Int */;
4918 long var41 /* : Int */;
4919 long var43 /* : Int */;
4920 short int var45 /* : Bool */;
4921 int cltype46;
4922 int idtype47;
4923 const char* var_class_name48;
4924 long var49 /* : Int */;
4925 val* var50 /* : FlatString */;
4926 short int var51 /* : Bool */;
4927 int cltype52;
4928 int idtype53;
4929 const struct type* type_struct;
4930 const char* var_class_name54;
4931 var_i = p0;
4932 var1 = 0;
4933 {
4934 { /* Inline kernel#Int#>= (var_i,var1) on <var_i:Int> */
4935 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
4936 /* <var1:Int> isa OTHER */
4937 var4 = 1; /* easy <var1:Int> isa OTHER*/
4938 if (unlikely(!var4)) {
4939 var_class_name = type_kernel__Int.name;
4940 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4941 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
4942 show_backtrace(1);
4943 }
4944 var5 = var_i >= var1;
4945 var2 = var5;
4946 goto RET_LABEL3;
4947 RET_LABEL3:(void)0;
4948 }
4949 }
4950 if (unlikely(!var2)) {
4951 PRINT_ERROR("Runtime error: %s", "Assert failed");
4952 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 957);
4953 show_backtrace(1);
4954 }
4955 {
4956 { /* Inline string#FlatText#length (self) on <self:FlatString> */
4957 var8 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatString> */
4958 var6 = var8;
4959 RET_LABEL7:(void)0;
4960 }
4961 }
4962 var_my_length = var6;
4963 {
4964 { /* Inline kernel#Int#* (var_my_length,var_i) on <var_my_length:Int> */
4965 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
4966 /* <var_i:Int> isa OTHER */
4967 var11 = 1; /* easy <var_i:Int> isa OTHER*/
4968 if (unlikely(!var11)) {
4969 var_class_name14 = type_kernel__Int.name;
4970 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
4971 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 332);
4972 show_backtrace(1);
4973 }
4974 var15 = var_my_length * var_i;
4975 var9 = var15;
4976 goto RET_LABEL10;
4977 RET_LABEL10:(void)0;
4978 }
4979 }
4980 var_final_length = var9;
4981 {
4982 { /* Inline string#FlatText#items (self) on <self:FlatString> */
4983 var18 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
4984 var16 = var18;
4985 RET_LABEL17:(void)0;
4986 }
4987 }
4988 var_my_items = var16;
4989 var19 = 1;
4990 {
4991 { /* Inline kernel#Int#+ (var_final_length,var19) on <var_final_length:Int> */
4992 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
4993 /* <var19:Int> isa OTHER */
4994 var22 = 1; /* easy <var19:Int> isa OTHER*/
4995 if (unlikely(!var22)) {
4996 var_class_name25 = type_kernel__Int.name;
4997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
4998 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4999 show_backtrace(1);
5000 }
5001 var26 = var_final_length + var19;
5002 var20 = var26;
5003 goto RET_LABEL21;
5004 RET_LABEL21:(void)0;
5005 }
5006 }
5007 {
5008 { /* Inline string#StringCapable#calloc_string (self,var20) on <self:FlatString> */
5009 var29 = (char*)nit_alloc(var20);
5010 var27 = var29;
5011 goto RET_LABEL28;
5012 RET_LABEL28:(void)0;
5013 }
5014 }
5015 var_target_string = var27;
5016 var30 = '\0';
5017 {
5018 { /* Inline string#NativeString#[]= (var_target_string,var_final_length,var30) on <var_target_string:NativeString> */
5019 var_target_string[var_final_length]=var30;
5020 RET_LABEL31:(void)0;
5021 }
5022 }
5023 var32 = 0;
5024 var_current_last = var32;
5025 var33 = NEW_range__Range(&type_range__Rangekernel__Int);
5026 var34 = 1;
5027 {
5028 var35 = BOX_kernel__Int(var34); /* autobox from Int to Discrete */
5029 var36 = BOX_kernel__Int(var_i); /* autobox from Int to Discrete */
5030 range__Range__init(var33, var35, var36); /* Direct call range#Range#init on <var33:Range[Int]>*/
5031 }
5032 {
5033 var37 = range__Range__iterator(var33);
5034 }
5035 for(;;) {
5036 {
5037 var38 = ((short int (*)(val*))(var37->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var37) /* is_ok on <var37:Iterator[Discrete]>*/;
5038 }
5039 if(!var38) break;
5040 {
5041 var39 = ((val* (*)(val*))(var37->class->vft[COLOR_abstract_collection__Iterator__item]))(var37) /* item on <var37:Iterator[Discrete]>*/;
5042 }
5043 var40 = ((struct instance_kernel__Int*)var39)->value; /* autounbox from nullable Object to Int */;
5044 var_iteration = var40;
5045 var41 = 0;
5046 {
5047 { /* Inline string#NativeString#copy_to (var_my_items,var_target_string,var_my_length,var41,var_current_last) on <var_my_items:NativeString> */
5048 memcpy(var_target_string+var_current_last,var_my_items+var41,var_my_length);
5049 RET_LABEL42:(void)0;
5050 }
5051 }
5052 {
5053 { /* Inline kernel#Int#+ (var_current_last,var_my_length) on <var_current_last:Int> */
5054 /* Covariant cast for argument 0 (i) <var_my_length:Int> isa OTHER */
5055 /* <var_my_length:Int> isa OTHER */
5056 var45 = 1; /* easy <var_my_length:Int> isa OTHER*/
5057 if (unlikely(!var45)) {
5058 var_class_name48 = type_kernel__Int.name;
5059 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
5060 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5061 show_backtrace(1);
5062 }
5063 var49 = var_current_last + var_my_length;
5064 var43 = var49;
5065 goto RET_LABEL44;
5066 RET_LABEL44:(void)0;
5067 }
5068 }
5069 var_current_last = var43;
5070 CONTINUE_label: (void)0;
5071 {
5072 ((void (*)(val*))(var37->class->vft[COLOR_abstract_collection__Iterator__next]))(var37) /* next on <var37:Iterator[Discrete]>*/;
5073 }
5074 }
5075 BREAK_label: (void)0;
5076 {
5077 var50 = string__NativeString__to_s_with_length(var_target_string, var_final_length);
5078 }
5079 /* <var50:FlatString> isa SELFTYPE */
5080 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
5081 cltype52 = type_struct->color;
5082 idtype53 = type_struct->id;
5083 if(cltype52 >= var50->type->table_size) {
5084 var51 = 0;
5085 } else {
5086 var51 = var50->type->type_table[cltype52] == idtype53;
5087 }
5088 if (unlikely(!var51)) {
5089 var_class_name54 = var50 == NULL ? "null" : var50->type->name;
5090 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name54);
5091 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 976);
5092 show_backtrace(1);
5093 }
5094 var = var50;
5095 goto RET_LABEL;
5096 RET_LABEL:;
5097 return var;
5098 }
5099 /* method string#FlatString#* for (self: Object, Int): String */
5100 val* VIRTUAL_string__FlatString___42d(val* self, long p0) {
5101 val* var /* : String */;
5102 val* var1 /* : String */;
5103 var1 = string__FlatString___42d(self, p0);
5104 var = var1;
5105 RET_LABEL:;
5106 return var;
5107 }
5108 /* method string#FlatString#hash for (self: FlatString): Int */
5109 long string__FlatString__hash(val* self) {
5110 long var /* : Int */;
5111 val* var1 /* : nullable Int */;
5112 val* var3 /* : nullable Int */;
5113 val* var4 /* : null */;
5114 short int var5 /* : Bool */;
5115 short int var6 /* : Bool */;
5116 short int var8 /* : Bool */;
5117 long var9 /* : Int */;
5118 long var_h /* var h: Int */;
5119 long var10 /* : Int */;
5120 long var12 /* : Int */;
5121 long var_i /* var i: Int */;
5122 char* var13 /* : NativeString */;
5123 char* var15 /* : NativeString */;
5124 char* var_myitems /* var myitems: NativeString */;
5125 long var16 /* : Int */;
5126 long var18 /* : Int */;
5127 short int var19 /* : Bool */;
5128 short int var21 /* : Bool */;
5129 int cltype;
5130 int idtype;
5131 const char* var_class_name;
5132 short int var22 /* : Bool */;
5133 long var23 /* : Int */;
5134 long var24 /* : Int */;
5135 long var26 /* : Int */;
5136 long var27 /* : Int */;
5137 short int var29 /* : Bool */;
5138 int cltype30;
5139 int idtype31;
5140 const char* var_class_name32;
5141 long var33 /* : Int */;
5142 char var34 /* : Char */;
5143 char var36 /* : Char */;
5144 long var37 /* : Int */;
5145 long var39 /* : Int */;
5146 long var40 /* : Int */;
5147 short int var42 /* : Bool */;
5148 int cltype43;
5149 int idtype44;
5150 const char* var_class_name45;
5151 long var46 /* : Int */;
5152 long var47 /* : Int */;
5153 long var48 /* : Int */;
5154 short int var50 /* : Bool */;
5155 int cltype51;
5156 int idtype52;
5157 const char* var_class_name53;
5158 long var54 /* : Int */;
5159 val* var56 /* : nullable Int */;
5160 val* var57 /* : nullable Int */;
5161 val* var59 /* : nullable Int */;
5162 long var60 /* : Int */;
5163 {
5164 { /* Inline string#Text#hash_cache (self) on <self:FlatString> */
5165 var3 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on <self:FlatString> */
5166 var1 = var3;
5167 RET_LABEL2:(void)0;
5168 }
5169 }
5170 var4 = NULL;
5171 if (var1 == NULL) {
5172 var5 = 1; /* is null */
5173 } else {
5174 var5 = 0; /* arg is null but recv is not */
5175 }
5176 if (0) {
5177 { /* Inline kernel#Int#== (var1,var4) on <var1:nullable Int> */
5178 var8 = 0; /* incompatible types Int vs. null; cannot be NULL */
5179 var6 = var8;
5180 goto RET_LABEL7;
5181 RET_LABEL7:(void)0;
5182 }
5183 var5 = var6;
5184 }
5185 if (var5){
5186 var9 = 5381;
5187 var_h = var9;
5188 {
5189 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
5190 var12 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
5191 var10 = var12;
5192 RET_LABEL11:(void)0;
5193 }
5194 }
5195 var_i = var10;
5196 {
5197 { /* Inline string#FlatText#items (self) on <self:FlatString> */
5198 var15 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatString> */
5199 var13 = var15;
5200 RET_LABEL14:(void)0;
5201 }
5202 }
5203 var_myitems = var13;
5204 for(;;) {
5205 {
5206 { /* Inline string#FlatString#index_to (self) on <self:FlatString> */
5207 var18 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <self:FlatString> */
5208 var16 = var18;
5209 RET_LABEL17:(void)0;
5210 }
5211 }
5212 {
5213 { /* Inline kernel#Int#<= (var_i,var16) on <var_i:Int> */
5214 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
5215 /* <var16:Int> isa OTHER */
5216 var21 = 1; /* easy <var16:Int> isa OTHER*/
5217 if (unlikely(!var21)) {
5218 var_class_name = type_kernel__Int.name;
5219 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5220 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
5221 show_backtrace(1);
5222 }
5223 var22 = var_i <= var16;
5224 var19 = var22;
5225 goto RET_LABEL20;
5226 RET_LABEL20:(void)0;
5227 }
5228 }
5229 if (!var19) break;
5230 var23 = 5;
5231 {
5232 { /* Inline kernel#Int#lshift (var_h,var23) on <var_h:Int> */
5233 var26 = var_h << var23;
5234 var24 = var26;
5235 goto RET_LABEL25;
5236 RET_LABEL25:(void)0;
5237 }
5238 }
5239 {
5240 { /* Inline kernel#Int#+ (var24,var_h) on <var24:Int> */
5241 /* Covariant cast for argument 0 (i) <var_h:Int> isa OTHER */
5242 /* <var_h:Int> isa OTHER */
5243 var29 = 1; /* easy <var_h:Int> isa OTHER*/
5244 if (unlikely(!var29)) {
5245 var_class_name32 = type_kernel__Int.name;
5246 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
5247 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5248 show_backtrace(1);
5249 }
5250 var33 = var24 + var_h;
5251 var27 = var33;
5252 goto RET_LABEL28;
5253 RET_LABEL28:(void)0;
5254 }
5255 }
5256 {
5257 { /* Inline string#NativeString#[] (var_myitems,var_i) on <var_myitems:NativeString> */
5258 var36 = var_myitems[var_i];
5259 var34 = var36;
5260 goto RET_LABEL35;
5261 RET_LABEL35:(void)0;
5262 }
5263 }
5264 {
5265 { /* Inline kernel#Char#ascii (var34) on <var34:Char> */
5266 var39 = (unsigned char)var34;
5267 var37 = var39;
5268 goto RET_LABEL38;
5269 RET_LABEL38:(void)0;
5270 }
5271 }
5272 {
5273 { /* Inline kernel#Int#+ (var27,var37) on <var27:Int> */
5274 /* Covariant cast for argument 0 (i) <var37:Int> isa OTHER */
5275 /* <var37:Int> isa OTHER */
5276 var42 = 1; /* easy <var37:Int> isa OTHER*/
5277 if (unlikely(!var42)) {
5278 var_class_name45 = type_kernel__Int.name;
5279 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
5280 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5281 show_backtrace(1);
5282 }
5283 var46 = var27 + var37;
5284 var40 = var46;
5285 goto RET_LABEL41;
5286 RET_LABEL41:(void)0;
5287 }
5288 }
5289 var_h = var40;
5290 var47 = 1;
5291 {
5292 { /* Inline kernel#Int#+ (var_i,var47) on <var_i:Int> */
5293 /* Covariant cast for argument 0 (i) <var47:Int> isa OTHER */
5294 /* <var47:Int> isa OTHER */
5295 var50 = 1; /* easy <var47:Int> isa OTHER*/
5296 if (unlikely(!var50)) {
5297 var_class_name53 = type_kernel__Int.name;
5298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
5299 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5300 show_backtrace(1);
5301 }
5302 var54 = var_i + var47;
5303 var48 = var54;
5304 goto RET_LABEL49;
5305 RET_LABEL49:(void)0;
5306 }
5307 }
5308 var_i = var48;
5309 CONTINUE_label: (void)0;
5310 }
5311 BREAK_label: (void)0;
5312 {
5313 { /* Inline string#Text#hash_cache= (self,var_h) on <self:FlatString> */
5314 var56 = BOX_kernel__Int(var_h); /* autobox from Int to nullable Int */
5315 self->attrs[COLOR_string__Text___hash_cache].val = var56; /* _hash_cache on <self:FlatString> */
5316 RET_LABEL55:(void)0;
5317 }
5318 }
5319 } else {
5320 }
5321 {
5322 { /* Inline string#Text#hash_cache (self) on <self:FlatString> */
5323 var59 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on <self:FlatString> */
5324 var57 = var59;
5325 RET_LABEL58:(void)0;
5326 }
5327 }
5328 if (unlikely(var57 == NULL)) {
5329 PRINT_ERROR("Runtime error: %s", "Cast failed");
5330 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 996);
5331 show_backtrace(1);
5332 }
5333 var60 = ((struct instance_kernel__Int*)var57)->value; /* autounbox from nullable Int to Int */;
5334 var = var60;
5335 goto RET_LABEL;
5336 RET_LABEL:;
5337 return var;
5338 }
5339 /* method string#FlatString#hash for (self: Object): Int */
5340 long VIRTUAL_string__FlatString__hash(val* self) {
5341 long var /* : Int */;
5342 long var1 /* : Int */;
5343 var1 = string__FlatString__hash(self);
5344 var = var1;
5345 RET_LABEL:;
5346 return var;
5347 }
5348 /* method string#FlatString#substrings for (self: FlatString): Iterator[Text] */
5349 val* string__FlatString__substrings(val* self) {
5350 val* var /* : Iterator[Text] */;
5351 val* var1 /* : FlatSubstringsIter */;
5352 var1 = NEW_string__FlatSubstringsIter(&type_string__FlatSubstringsIter);
5353 {
5354 string__FlatSubstringsIter__init(var1, self); /* Direct call string#FlatSubstringsIter#init on <var1:FlatSubstringsIter>*/
5355 }
5356 var = var1;
5357 goto RET_LABEL;
5358 RET_LABEL:;
5359 return var;
5360 }
5361 /* method string#FlatString#substrings for (self: Object): Iterator[Text] */
5362 val* VIRTUAL_string__FlatString__substrings(val* self) {
5363 val* var /* : Iterator[Text] */;
5364 val* var1 /* : Iterator[Text] */;
5365 var1 = string__FlatString__substrings(self);
5366 var = var1;
5367 RET_LABEL:;
5368 return var;
5369 }
5370 /* method string#FlatStringIterator#target for (self: FlatStringIterator): FlatString */
5371 val* string__FlatStringIterator__target(val* self) {
5372 val* var /* : FlatString */;
5373 val* var1 /* : FlatString */;
5374 var1 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on <self:FlatStringIterator> */
5375 if (unlikely(var1 == NULL)) {
5376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5377 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1031);
5378 show_backtrace(1);
5379 }
5380 var = var1;
5381 RET_LABEL:;
5382 return var;
5383 }
5384 /* method string#FlatStringIterator#target for (self: Object): FlatString */
5385 val* VIRTUAL_string__FlatStringIterator__target(val* self) {
5386 val* var /* : FlatString */;
5387 val* var1 /* : FlatString */;
5388 val* var3 /* : FlatString */;
5389 { /* Inline string#FlatStringIterator#target (self) on <self:Object(FlatStringIterator)> */
5390 var3 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on <self:Object(FlatStringIterator)> */
5391 if (unlikely(var3 == NULL)) {
5392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5393 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1031);
5394 show_backtrace(1);
5395 }
5396 var1 = var3;
5397 RET_LABEL2:(void)0;
5398 }
5399 var = var1;
5400 RET_LABEL:;
5401 return var;
5402 }
5403 /* method string#FlatStringIterator#target= for (self: FlatStringIterator, FlatString) */
5404 void string__FlatStringIterator__target_61d(val* self, val* p0) {
5405 self->attrs[COLOR_string__FlatStringIterator___target].val = p0; /* _target on <self:FlatStringIterator> */
5406 RET_LABEL:;
5407 }
5408 /* method string#FlatStringIterator#target= for (self: Object, FlatString) */
5409 void VIRTUAL_string__FlatStringIterator__target_61d(val* self, val* p0) {
5410 { /* Inline string#FlatStringIterator#target= (self,p0) on <self:Object(FlatStringIterator)> */
5411 self->attrs[COLOR_string__FlatStringIterator___target].val = p0; /* _target on <self:Object(FlatStringIterator)> */
5412 RET_LABEL1:(void)0;
5413 }
5414 RET_LABEL:;
5415 }
5416 /* method string#FlatStringIterator#target_items for (self: FlatStringIterator): NativeString */
5417 char* string__FlatStringIterator__target_items(val* self) {
5418 char* var /* : NativeString */;
5419 char* var1 /* : NativeString */;
5420 var1 = self->attrs[COLOR_string__FlatStringIterator___target_items].str; /* _target_items on <self:FlatStringIterator> */
5421 var = var1;
5422 RET_LABEL:;
5423 return var;
5424 }
5425 /* method string#FlatStringIterator#target_items for (self: Object): NativeString */
5426 char* VIRTUAL_string__FlatStringIterator__target_items(val* self) {
5427 char* var /* : NativeString */;
5428 char* var1 /* : NativeString */;
5429 char* var3 /* : NativeString */;
5430 { /* Inline string#FlatStringIterator#target_items (self) on <self:Object(FlatStringIterator)> */
5431 var3 = self->attrs[COLOR_string__FlatStringIterator___target_items].str; /* _target_items on <self:Object(FlatStringIterator)> */
5432 var1 = var3;
5433 RET_LABEL2:(void)0;
5434 }
5435 var = var1;
5436 RET_LABEL:;
5437 return var;
5438 }
5439 /* method string#FlatStringIterator#target_items= for (self: FlatStringIterator, NativeString) */
5440 void string__FlatStringIterator__target_items_61d(val* self, char* p0) {
5441 self->attrs[COLOR_string__FlatStringIterator___target_items].str = p0; /* _target_items on <self:FlatStringIterator> */
5442 RET_LABEL:;
5443 }
5444 /* method string#FlatStringIterator#target_items= for (self: Object, NativeString) */
5445 void VIRTUAL_string__FlatStringIterator__target_items_61d(val* self, char* p0) {
5446 { /* Inline string#FlatStringIterator#target_items= (self,p0) on <self:Object(FlatStringIterator)> */
5447 self->attrs[COLOR_string__FlatStringIterator___target_items].str = p0; /* _target_items on <self:Object(FlatStringIterator)> */
5448 RET_LABEL1:(void)0;
5449 }
5450 RET_LABEL:;
5451 }
5452 /* method string#FlatStringIterator#curr_pos for (self: FlatStringIterator): Int */
5453 long string__FlatStringIterator__curr_pos(val* self) {
5454 long var /* : Int */;
5455 long var1 /* : Int */;
5456 var1 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on <self:FlatStringIterator> */
5457 var = var1;
5458 RET_LABEL:;
5459 return var;
5460 }
5461 /* method string#FlatStringIterator#curr_pos for (self: Object): Int */
5462 long VIRTUAL_string__FlatStringIterator__curr_pos(val* self) {
5463 long var /* : Int */;
5464 long var1 /* : Int */;
5465 long var3 /* : Int */;
5466 { /* Inline string#FlatStringIterator#curr_pos (self) on <self:Object(FlatStringIterator)> */
5467 var3 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on <self:Object(FlatStringIterator)> */
5468 var1 = var3;
5469 RET_LABEL2:(void)0;
5470 }
5471 var = var1;
5472 RET_LABEL:;
5473 return var;
5474 }
5475 /* method string#FlatStringIterator#curr_pos= for (self: FlatStringIterator, Int) */
5476 void string__FlatStringIterator__curr_pos_61d(val* self, long p0) {
5477 self->attrs[COLOR_string__FlatStringIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatStringIterator> */
5478 RET_LABEL:;
5479 }
5480 /* method string#FlatStringIterator#curr_pos= for (self: Object, Int) */
5481 void VIRTUAL_string__FlatStringIterator__curr_pos_61d(val* self, long p0) {
5482 { /* Inline string#FlatStringIterator#curr_pos= (self,p0) on <self:Object(FlatStringIterator)> */
5483 self->attrs[COLOR_string__FlatStringIterator___curr_pos].l = p0; /* _curr_pos on <self:Object(FlatStringIterator)> */
5484 RET_LABEL1:(void)0;
5485 }
5486 RET_LABEL:;
5487 }
5488 /* method string#FlatStringIterator#with_pos for (self: FlatStringIterator, FlatString, Int) */
5489 void string__FlatStringIterator__with_pos(val* self, val* p0, long p1) {
5490 val* var_tgt /* var tgt: FlatString */;
5491 long var_pos /* var pos: Int */;
5492 char* var /* : NativeString */;
5493 char* var3 /* : NativeString */;
5494 val* var5 /* : FlatString */;
5495 val* var7 /* : FlatString */;
5496 long var8 /* : Int */;
5497 long var10 /* : Int */;
5498 long var11 /* : Int */;
5499 short int var13 /* : Bool */;
5500 int cltype;
5501 int idtype;
5502 const char* var_class_name;
5503 long var14 /* : Int */;
5504 var_tgt = p0;
5505 var_pos = p1;
5506 {
5507 { /* Inline string#FlatStringIterator#target= (self,var_tgt) on <self:FlatStringIterator> */
5508 self->attrs[COLOR_string__FlatStringIterator___target].val = var_tgt; /* _target on <self:FlatStringIterator> */
5509 RET_LABEL1:(void)0;
5510 }
5511 }
5512 {
5513 { /* Inline string#FlatText#items (var_tgt) on <var_tgt:FlatString> */
5514 var3 = var_tgt->attrs[COLOR_string__FlatText___items].str; /* _items on <var_tgt:FlatString> */
5515 var = var3;
5516 RET_LABEL2:(void)0;
5517 }
5518 }
5519 {
5520 { /* Inline string#FlatStringIterator#target_items= (self,var) on <self:FlatStringIterator> */
5521 self->attrs[COLOR_string__FlatStringIterator___target_items].str = var; /* _target_items on <self:FlatStringIterator> */
5522 RET_LABEL4:(void)0;
5523 }
5524 }
5525 {
5526 { /* Inline string#FlatStringIterator#target (self) on <self:FlatStringIterator> */
5527 var7 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on <self:FlatStringIterator> */
5528 if (unlikely(var7 == NULL)) {
5529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5530 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1031);
5531 show_backtrace(1);
5532 }
5533 var5 = var7;
5534 RET_LABEL6:(void)0;
5535 }
5536 }
5537 {
5538 { /* Inline string#FlatString#index_from (var5) on <var5:FlatString> */
5539 var10 = var5->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var5:FlatString> */
5540 var8 = var10;
5541 RET_LABEL9:(void)0;
5542 }
5543 }
5544 {
5545 { /* Inline kernel#Int#+ (var_pos,var8) on <var_pos:Int> */
5546 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
5547 /* <var8:Int> isa OTHER */
5548 var13 = 1; /* easy <var8:Int> isa OTHER*/
5549 if (unlikely(!var13)) {
5550 var_class_name = type_kernel__Int.name;
5551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5552 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5553 show_backtrace(1);
5554 }
5555 var14 = var_pos + var8;
5556 var11 = var14;
5557 goto RET_LABEL12;
5558 RET_LABEL12:(void)0;
5559 }
5560 }
5561 {
5562 { /* Inline string#FlatStringIterator#curr_pos= (self,var11) on <self:FlatStringIterator> */
5563 self->attrs[COLOR_string__FlatStringIterator___curr_pos].l = var11; /* _curr_pos on <self:FlatStringIterator> */
5564 RET_LABEL15:(void)0;
5565 }
5566 }
5567 RET_LABEL:;
5568 }
5569 /* method string#FlatStringIterator#with_pos for (self: Object, FlatString, Int) */
5570 void VIRTUAL_string__FlatStringIterator__with_pos(val* self, val* p0, long p1) {
5571 string__FlatStringIterator__with_pos(self, p0, p1); /* Direct call string#FlatStringIterator#with_pos on <self:Object(FlatStringIterator)>*/
5572 RET_LABEL:;
5573 }
5574 /* method string#FlatStringIterator#is_ok for (self: FlatStringIterator): Bool */
5575 short int string__FlatStringIterator__is_ok(val* self) {
5576 short int var /* : Bool */;
5577 long var1 /* : Int */;
5578 long var3 /* : Int */;
5579 val* var4 /* : FlatString */;
5580 val* var6 /* : FlatString */;
5581 long var7 /* : Int */;
5582 long var9 /* : Int */;
5583 short int var10 /* : Bool */;
5584 short int var12 /* : Bool */;
5585 int cltype;
5586 int idtype;
5587 const char* var_class_name;
5588 short int var13 /* : Bool */;
5589 {
5590 { /* Inline string#FlatStringIterator#curr_pos (self) on <self:FlatStringIterator> */
5591 var3 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on <self:FlatStringIterator> */
5592 var1 = var3;
5593 RET_LABEL2:(void)0;
5594 }
5595 }
5596 {
5597 { /* Inline string#FlatStringIterator#target (self) on <self:FlatStringIterator> */
5598 var6 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on <self:FlatStringIterator> */
5599 if (unlikely(var6 == NULL)) {
5600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5601 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1031);
5602 show_backtrace(1);
5603 }
5604 var4 = var6;
5605 RET_LABEL5:(void)0;
5606 }
5607 }
5608 {
5609 { /* Inline string#FlatString#index_to (var4) on <var4:FlatString> */
5610 var9 = var4->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <var4:FlatString> */
5611 var7 = var9;
5612 RET_LABEL8:(void)0;
5613 }
5614 }
5615 {
5616 { /* Inline kernel#Int#<= (var1,var7) on <var1:Int> */
5617 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
5618 /* <var7:Int> isa OTHER */
5619 var12 = 1; /* easy <var7:Int> isa OTHER*/
5620 if (unlikely(!var12)) {
5621 var_class_name = type_kernel__Int.name;
5622 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5623 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
5624 show_backtrace(1);
5625 }
5626 var13 = var1 <= var7;
5627 var10 = var13;
5628 goto RET_LABEL11;
5629 RET_LABEL11:(void)0;
5630 }
5631 }
5632 var = var10;
5633 goto RET_LABEL;
5634 RET_LABEL:;
5635 return var;
5636 }
5637 /* method string#FlatStringIterator#is_ok for (self: Object): Bool */
5638 short int VIRTUAL_string__FlatStringIterator__is_ok(val* self) {
5639 short int var /* : Bool */;
5640 short int var1 /* : Bool */;
5641 var1 = string__FlatStringIterator__is_ok(self);
5642 var = var1;
5643 RET_LABEL:;
5644 return var;
5645 }
5646 /* method string#FlatStringIterator#item for (self: FlatStringIterator): Char */
5647 char string__FlatStringIterator__item(val* self) {
5648 char var /* : Char */;
5649 char* var1 /* : NativeString */;
5650 char* var3 /* : NativeString */;
5651 long var4 /* : Int */;
5652 long var6 /* : Int */;
5653 char var7 /* : Char */;
5654 char var9 /* : Char */;
5655 {
5656 { /* Inline string#FlatStringIterator#target_items (self) on <self:FlatStringIterator> */
5657 var3 = self->attrs[COLOR_string__FlatStringIterator___target_items].str; /* _target_items on <self:FlatStringIterator> */
5658 var1 = var3;
5659 RET_LABEL2:(void)0;
5660 }
5661 }
5662 {
5663 { /* Inline string#FlatStringIterator#curr_pos (self) on <self:FlatStringIterator> */
5664 var6 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on <self:FlatStringIterator> */
5665 var4 = var6;
5666 RET_LABEL5:(void)0;
5667 }
5668 }
5669 {
5670 { /* Inline string#NativeString#[] (var1,var4) on <var1:NativeString> */
5671 var9 = var1[var4];
5672 var7 = var9;
5673 goto RET_LABEL8;
5674 RET_LABEL8:(void)0;
5675 }
5676 }
5677 var = var7;
5678 goto RET_LABEL;
5679 RET_LABEL:;
5680 return var;
5681 }
5682 /* method string#FlatStringIterator#item for (self: Object): nullable Object */
5683 val* VIRTUAL_string__FlatStringIterator__item(val* self) {
5684 val* var /* : nullable Object */;
5685 char var1 /* : Char */;
5686 val* var2 /* : nullable Object */;
5687 var1 = string__FlatStringIterator__item(self);
5688 var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
5689 var = var2;
5690 RET_LABEL:;
5691 return var;
5692 }
5693 /* method string#FlatStringIterator#next for (self: FlatStringIterator) */
5694 void string__FlatStringIterator__next(val* self) {
5695 val* var_ /* var : FlatStringIterator */;
5696 long var /* : Int */;
5697 long var2 /* : Int */;
5698 long var3 /* : Int */;
5699 long var4 /* : Int */;
5700 short int var6 /* : Bool */;
5701 int cltype;
5702 int idtype;
5703 const char* var_class_name;
5704 long var7 /* : Int */;
5705 var_ = self;
5706 {
5707 { /* Inline string#FlatStringIterator#curr_pos (var_) on <var_:FlatStringIterator> */
5708 var2 = var_->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on <var_:FlatStringIterator> */
5709 var = var2;
5710 RET_LABEL1:(void)0;
5711 }
5712 }
5713 var3 = 1;
5714 {
5715 { /* Inline kernel#Int#+ (var,var3) on <var:Int> */
5716 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
5717 /* <var3:Int> isa OTHER */
5718 var6 = 1; /* easy <var3:Int> isa OTHER*/
5719 if (unlikely(!var6)) {
5720 var_class_name = type_kernel__Int.name;
5721 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5722 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5723 show_backtrace(1);
5724 }
5725 var7 = var + var3;
5726 var4 = var7;
5727 goto RET_LABEL5;
5728 RET_LABEL5:(void)0;
5729 }
5730 }
5731 {
5732 { /* Inline string#FlatStringIterator#curr_pos= (var_,var4) on <var_:FlatStringIterator> */
5733 var_->attrs[COLOR_string__FlatStringIterator___curr_pos].l = var4; /* _curr_pos on <var_:FlatStringIterator> */
5734 RET_LABEL8:(void)0;
5735 }
5736 }
5737 RET_LABEL:;
5738 }
5739 /* method string#FlatStringIterator#next for (self: Object) */
5740 void VIRTUAL_string__FlatStringIterator__next(val* self) {
5741 string__FlatStringIterator__next(self); /* Direct call string#FlatStringIterator#next on <self:Object(FlatStringIterator)>*/
5742 RET_LABEL:;
5743 }
5744 /* method string#FlatStringIterator#index for (self: FlatStringIterator): Int */
5745 long string__FlatStringIterator__index(val* self) {
5746 long var /* : Int */;
5747 long var1 /* : Int */;
5748 long var3 /* : Int */;
5749 val* var4 /* : FlatString */;
5750 val* var6 /* : FlatString */;
5751 long var7 /* : Int */;
5752 long var9 /* : Int */;
5753 long var10 /* : Int */;
5754 short int var12 /* : Bool */;
5755 int cltype;
5756 int idtype;
5757 const char* var_class_name;
5758 long var13 /* : Int */;
5759 {
5760 { /* Inline string#FlatStringIterator#curr_pos (self) on <self:FlatStringIterator> */
5761 var3 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on <self:FlatStringIterator> */
5762 var1 = var3;
5763 RET_LABEL2:(void)0;
5764 }
5765 }
5766 {
5767 { /* Inline string#FlatStringIterator#target (self) on <self:FlatStringIterator> */
5768 var6 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on <self:FlatStringIterator> */
5769 if (unlikely(var6 == NULL)) {
5770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5771 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1031);
5772 show_backtrace(1);
5773 }
5774 var4 = var6;
5775 RET_LABEL5:(void)0;
5776 }
5777 }
5778 {
5779 { /* Inline string#FlatString#index_from (var4) on <var4:FlatString> */
5780 var9 = var4->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var4:FlatString> */
5781 var7 = var9;
5782 RET_LABEL8:(void)0;
5783 }
5784 }
5785 {
5786 { /* Inline kernel#Int#- (var1,var7) on <var1:Int> */
5787 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
5788 /* <var7:Int> isa OTHER */
5789 var12 = 1; /* easy <var7:Int> isa OTHER*/
5790 if (unlikely(!var12)) {
5791 var_class_name = type_kernel__Int.name;
5792 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5793 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
5794 show_backtrace(1);
5795 }
5796 var13 = var1 - var7;
5797 var10 = var13;
5798 goto RET_LABEL11;
5799 RET_LABEL11:(void)0;
5800 }
5801 }
5802 var = var10;
5803 goto RET_LABEL;
5804 RET_LABEL:;
5805 return var;
5806 }
5807 /* method string#FlatStringIterator#index for (self: Object): Int */
5808 long VIRTUAL_string__FlatStringIterator__index(val* self) {
5809 long var /* : Int */;
5810 long var1 /* : Int */;
5811 var1 = string__FlatStringIterator__index(self);
5812 var = var1;
5813 RET_LABEL:;
5814 return var;
5815 }
5816 /* method string#FlatStringCharView#[] for (self: FlatStringCharView, Int): Char */
5817 char string__FlatStringCharView___91d_93d(val* self, long p0) {
5818 char var /* : Char */;
5819 long var_index /* var index: Int */;
5820 long var1 /* : Int */;
5821 short int var2 /* : Bool */;
5822 short int var4 /* : Bool */;
5823 int cltype;
5824 int idtype;
5825 const char* var_class_name;
5826 short int var5 /* : Bool */;
5827 val* var6 /* : Text */;
5828 val* var8 /* : Text */;
5829 val* var_target /* var target: FlatString */;
5830 long var9 /* : Int */;
5831 long var11 /* : Int */;
5832 long var12 /* : Int */;
5833 short int var14 /* : Bool */;
5834 int cltype15;
5835 int idtype16;
5836 const char* var_class_name17;
5837 long var18 /* : Int */;
5838 long var19 /* : Int */;
5839 long var21 /* : Int */;
5840 short int var22 /* : Bool */;
5841 short int var24 /* : Bool */;
5842 int cltype25;
5843 int idtype26;
5844 const char* var_class_name27;
5845 short int var28 /* : Bool */;
5846 char* var29 /* : NativeString */;
5847 char* var31 /* : NativeString */;
5848 long var32 /* : Int */;
5849 long var34 /* : Int */;
5850 long var35 /* : Int */;
5851 short int var37 /* : Bool */;
5852 int cltype38;
5853 int idtype39;
5854 const char* var_class_name40;
5855 long var41 /* : Int */;
5856 char var42 /* : Char */;
5857 char var44 /* : Char */;
5858 var_index = p0;
5859 var1 = 0;
5860 {
5861 { /* Inline kernel#Int#>= (var_index,var1) on <var_index:Int> */
5862 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
5863 /* <var1:Int> isa OTHER */
5864 var4 = 1; /* easy <var1:Int> isa OTHER*/
5865 if (unlikely(!var4)) {
5866 var_class_name = type_kernel__Int.name;
5867 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5868 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
5869 show_backtrace(1);
5870 }
5871 var5 = var_index >= var1;
5872 var2 = var5;
5873 goto RET_LABEL3;
5874 RET_LABEL3:(void)0;
5875 }
5876 }
5877 if (unlikely(!var2)) {
5878 PRINT_ERROR("Runtime error: %s", "Assert failed");
5879 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1063);
5880 show_backtrace(1);
5881 }
5882 {
5883 { /* Inline string#StringCharView#target (self) on <self:FlatStringCharView> */
5884 var8 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatStringCharView> */
5885 if (unlikely(var8 == NULL)) {
5886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5887 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
5888 show_backtrace(1);
5889 }
5890 var6 = var8;
5891 RET_LABEL7:(void)0;
5892 }
5893 }
5894 var_target = var6;
5895 {
5896 { /* Inline string#FlatString#index_from (var_target) on <var_target:FlatString> */
5897 var11 = var_target->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_target:FlatString> */
5898 var9 = var11;
5899 RET_LABEL10:(void)0;
5900 }
5901 }
5902 {
5903 { /* Inline kernel#Int#+ (var_index,var9) on <var_index:Int> */
5904 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
5905 /* <var9:Int> isa OTHER */
5906 var14 = 1; /* easy <var9:Int> isa OTHER*/
5907 if (unlikely(!var14)) {
5908 var_class_name17 = type_kernel__Int.name;
5909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
5910 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5911 show_backtrace(1);
5912 }
5913 var18 = var_index + var9;
5914 var12 = var18;
5915 goto RET_LABEL13;
5916 RET_LABEL13:(void)0;
5917 }
5918 }
5919 {
5920 { /* Inline string#FlatString#index_to (var_target) on <var_target:FlatString> */
5921 var21 = var_target->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on <var_target:FlatString> */
5922 var19 = var21;
5923 RET_LABEL20:(void)0;
5924 }
5925 }
5926 {
5927 { /* Inline kernel#Int#<= (var12,var19) on <var12:Int> */
5928 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
5929 /* <var19:Int> isa OTHER */
5930 var24 = 1; /* easy <var19:Int> isa OTHER*/
5931 if (unlikely(!var24)) {
5932 var_class_name27 = type_kernel__Int.name;
5933 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
5934 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
5935 show_backtrace(1);
5936 }
5937 var28 = var12 <= var19;
5938 var22 = var28;
5939 goto RET_LABEL23;
5940 RET_LABEL23:(void)0;
5941 }
5942 }
5943 if (unlikely(!var22)) {
5944 PRINT_ERROR("Runtime error: %s", "Assert failed");
5945 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1065);
5946 show_backtrace(1);
5947 }
5948 {
5949 { /* Inline string#FlatText#items (var_target) on <var_target:FlatString> */
5950 var31 = var_target->attrs[COLOR_string__FlatText___items].str; /* _items on <var_target:FlatString> */
5951 var29 = var31;
5952 RET_LABEL30:(void)0;
5953 }
5954 }
5955 {
5956 { /* Inline string#FlatString#index_from (var_target) on <var_target:FlatString> */
5957 var34 = var_target->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_target:FlatString> */
5958 var32 = var34;
5959 RET_LABEL33:(void)0;
5960 }
5961 }
5962 {
5963 { /* Inline kernel#Int#+ (var_index,var32) on <var_index:Int> */
5964 /* Covariant cast for argument 0 (i) <var32:Int> isa OTHER */
5965 /* <var32:Int> isa OTHER */
5966 var37 = 1; /* easy <var32:Int> isa OTHER*/
5967 if (unlikely(!var37)) {
5968 var_class_name40 = type_kernel__Int.name;
5969 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
5970 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5971 show_backtrace(1);
5972 }
5973 var41 = var_index + var32;
5974 var35 = var41;
5975 goto RET_LABEL36;
5976 RET_LABEL36:(void)0;
5977 }
5978 }
5979 {
5980 { /* Inline string#NativeString#[] (var29,var35) on <var29:NativeString> */
5981 var44 = var29[var35];
5982 var42 = var44;
5983 goto RET_LABEL43;
5984 RET_LABEL43:(void)0;
5985 }
5986 }
5987 var = var42;
5988 goto RET_LABEL;
5989 RET_LABEL:;
5990 return var;
5991 }
5992 /* method string#FlatStringCharView#[] for (self: Object, Int): nullable Object */
5993 val* VIRTUAL_string__FlatStringCharView___91d_93d(val* self, long p0) {
5994 val* var /* : nullable Object */;
5995 char var1 /* : Char */;
5996 val* var2 /* : nullable Object */;
5997 var1 = string__FlatStringCharView___91d_93d(self, p0);
5998 var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
5999 var = var2;
6000 RET_LABEL:;
6001 return var;
6002 }
6003 /* method string#FlatStringCharView#iterator_from for (self: FlatStringCharView, Int): IndexedIterator[Char] */
6004 val* string__FlatStringCharView__iterator_from(val* self, long p0) {
6005 val* var /* : IndexedIterator[Char] */;
6006 long var_start /* var start: Int */;
6007 val* var1 /* : FlatStringIterator */;
6008 val* var2 /* : Text */;
6009 val* var4 /* : Text */;
6010 var_start = p0;
6011 var1 = NEW_string__FlatStringIterator(&type_string__FlatStringIterator);
6012 {
6013 { /* Inline string#StringCharView#target (self) on <self:FlatStringCharView> */
6014 var4 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatStringCharView> */
6015 if (unlikely(var4 == NULL)) {
6016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6017 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
6018 show_backtrace(1);
6019 }
6020 var2 = var4;
6021 RET_LABEL3:(void)0;
6022 }
6023 }
6024 {
6025 string__FlatStringIterator__with_pos(var1, var2, var_start); /* Direct call string#FlatStringIterator#with_pos on <var1:FlatStringIterator>*/
6026 }
6027 var = var1;
6028 goto RET_LABEL;
6029 RET_LABEL:;
6030 return var;
6031 }
6032 /* method string#FlatStringCharView#iterator_from for (self: Object, Int): IndexedIterator[nullable Object] */
6033 val* VIRTUAL_string__FlatStringCharView__iterator_from(val* self, long p0) {
6034 val* var /* : IndexedIterator[nullable Object] */;
6035 val* var1 /* : IndexedIterator[Char] */;
6036 var1 = string__FlatStringCharView__iterator_from(self, p0);
6037 var = var1;
6038 RET_LABEL:;
6039 return var;
6040 }
6041 /* method string#Buffer#is_dirty for (self: Buffer): Bool */
6042 short int string__Buffer__is_dirty(val* self) {
6043 short int var /* : Bool */;
6044 short int var1 /* : Bool */;
6045 var1 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on <self:Buffer> */
6046 var = var1;
6047 RET_LABEL:;
6048 return var;
6049 }
6050 /* method string#Buffer#is_dirty for (self: Object): Bool */
6051 short int VIRTUAL_string__Buffer__is_dirty(val* self) {
6052 short int var /* : Bool */;
6053 short int var1 /* : Bool */;
6054 short int var3 /* : Bool */;
6055 { /* Inline string#Buffer#is_dirty (self) on <self:Object(Buffer)> */
6056 var3 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on <self:Object(Buffer)> */
6057 var1 = var3;
6058 RET_LABEL2:(void)0;
6059 }
6060 var = var1;
6061 RET_LABEL:;
6062 return var;
6063 }
6064 /* method string#Buffer#is_dirty= for (self: Buffer, Bool) */
6065 void string__Buffer__is_dirty_61d(val* self, short int p0) {
6066 self->attrs[COLOR_string__Buffer___is_dirty].s = p0; /* _is_dirty on <self:Buffer> */
6067 RET_LABEL:;
6068 }
6069 /* method string#Buffer#is_dirty= for (self: Object, Bool) */
6070 void VIRTUAL_string__Buffer__is_dirty_61d(val* self, short int p0) {
6071 { /* Inline string#Buffer#is_dirty= (self,p0) on <self:Object(Buffer)> */
6072 self->attrs[COLOR_string__Buffer___is_dirty].s = p0; /* _is_dirty on <self:Object(Buffer)> */
6073 RET_LABEL1:(void)0;
6074 }
6075 RET_LABEL:;
6076 }
6077 /* method string#Buffer#hash for (self: Buffer): Int */
6078 long string__Buffer__hash(val* self) {
6079 long var /* : Int */;
6080 short int var1 /* : Bool */;
6081 short int var3 /* : Bool */;
6082 val* var4 /* : null */;
6083 long var6 /* : Int */;
6084 {
6085 { /* Inline string#Buffer#is_dirty (self) on <self:Buffer> */
6086 var3 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on <self:Buffer> */
6087 var1 = var3;
6088 RET_LABEL2:(void)0;
6089 }
6090 }
6091 if (var1){
6092 var4 = NULL;
6093 {
6094 { /* Inline string#Text#hash_cache= (self,var4) on <self:Buffer> */
6095 self->attrs[COLOR_string__Text___hash_cache].val = var4; /* _hash_cache on <self:Buffer> */
6096 RET_LABEL5:(void)0;
6097 }
6098 }
6099 } else {
6100 }
6101 {
6102 var6 = ((long (*)(val*))(self->class->vft[COLOR_string__Buffer__hash]))(self) /* hash on <self:Buffer>*/;
6103 }
6104 var = var6;
6105 goto RET_LABEL;
6106 RET_LABEL:;
6107 return var;
6108 }
6109 /* method string#Buffer#hash for (self: Object): Int */
6110 long VIRTUAL_string__Buffer__hash(val* self) {
6111 long var /* : Int */;
6112 long var1 /* : Int */;
6113 var1 = string__Buffer__hash(self);
6114 var = var1;
6115 RET_LABEL:;
6116 return var;
6117 }
6118 /* method string#FlatBuffer#chars for (self: FlatBuffer): Sequence[Char] */
6119 val* string__FlatBuffer__chars(val* self) {
6120 val* var /* : Sequence[Char] */;
6121 val* var1 /* : Sequence[Char] */;
6122 var1 = self->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <self:FlatBuffer> */
6123 if (unlikely(var1 == NULL)) {
6124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
6125 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1163);
6126 show_backtrace(1);
6127 }
6128 var = var1;
6129 RET_LABEL:;
6130 return var;
6131 }
6132 /* method string#FlatBuffer#chars for (self: Object): SequenceRead[Char] */
6133 val* VIRTUAL_string__FlatBuffer__chars(val* self) {
6134 val* var /* : SequenceRead[Char] */;
6135 val* var1 /* : Sequence[Char] */;
6136 val* var3 /* : Sequence[Char] */;
6137 { /* Inline string#FlatBuffer#chars (self) on <self:Object(FlatBuffer)> */
6138 var3 = self->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <self:Object(FlatBuffer)> */
6139 if (unlikely(var3 == NULL)) {
6140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
6141 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1163);
6142 show_backtrace(1);
6143 }
6144 var1 = var3;
6145 RET_LABEL2:(void)0;
6146 }
6147 var = var1;
6148 RET_LABEL:;
6149 return var;
6150 }
6151 /* method string#FlatBuffer#capacity for (self: FlatBuffer): Int */
6152 long string__FlatBuffer__capacity(val* self) {
6153 long var /* : Int */;
6154 long var1 /* : Int */;
6155 var1 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6156 var = var1;
6157 RET_LABEL:;
6158 return var;
6159 }
6160 /* method string#FlatBuffer#capacity for (self: Object): Int */
6161 long VIRTUAL_string__FlatBuffer__capacity(val* self) {
6162 long var /* : Int */;
6163 long var1 /* : Int */;
6164 long var3 /* : Int */;
6165 { /* Inline string#FlatBuffer#capacity (self) on <self:Object(FlatBuffer)> */
6166 var3 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on <self:Object(FlatBuffer)> */
6167 var1 = var3;
6168 RET_LABEL2:(void)0;
6169 }
6170 var = var1;
6171 RET_LABEL:;
6172 return var;
6173 }
6174 /* method string#FlatBuffer#capacity= for (self: FlatBuffer, Int) */
6175 void string__FlatBuffer__capacity_61d(val* self, long p0) {
6176 self->attrs[COLOR_string__FlatBuffer___capacity].l = p0; /* _capacity on <self:FlatBuffer> */
6177 RET_LABEL:;
6178 }
6179 /* method string#FlatBuffer#capacity= for (self: Object, Int) */
6180 void VIRTUAL_string__FlatBuffer__capacity_61d(val* self, long p0) {
6181 { /* Inline string#FlatBuffer#capacity= (self,p0) on <self:Object(FlatBuffer)> */
6182 self->attrs[COLOR_string__FlatBuffer___capacity].l = p0; /* _capacity on <self:Object(FlatBuffer)> */
6183 RET_LABEL1:(void)0;
6184 }
6185 RET_LABEL:;
6186 }
6187 /* method string#FlatBuffer#substrings for (self: FlatBuffer): Iterator[Text] */
6188 val* string__FlatBuffer__substrings(val* self) {
6189 val* var /* : Iterator[Text] */;
6190 val* var1 /* : FlatSubstringsIter */;
6191 var1 = NEW_string__FlatSubstringsIter(&type_string__FlatSubstringsIter);
6192 {
6193 string__FlatSubstringsIter__init(var1, self); /* Direct call string#FlatSubstringsIter#init on <var1:FlatSubstringsIter>*/
6194 }
6195 var = var1;
6196 goto RET_LABEL;
6197 RET_LABEL:;
6198 return var;
6199 }
6200 /* method string#FlatBuffer#substrings for (self: Object): Iterator[Text] */
6201 val* VIRTUAL_string__FlatBuffer__substrings(val* self) {
6202 val* var /* : Iterator[Text] */;
6203 val* var1 /* : Iterator[Text] */;
6204 var1 = string__FlatBuffer__substrings(self);
6205 var = var1;
6206 RET_LABEL:;
6207 return var;
6208 }
6209 /* method string#FlatBuffer#add for (self: FlatBuffer, Char) */
6210 void string__FlatBuffer__add(val* self, char p0) {
6211 char var_c /* var c: Char */;
6212 short int var /* : Bool */;
6213 long var2 /* : Int */;
6214 long var4 /* : Int */;
6215 long var5 /* : Int */;
6216 long var7 /* : Int */;
6217 short int var8 /* : Bool */;
6218 short int var10 /* : Bool */;
6219 int cltype;
6220 int idtype;
6221 const char* var_class_name;
6222 short int var11 /* : Bool */;
6223 long var12 /* : Int */;
6224 long var14 /* : Int */;
6225 long var15 /* : Int */;
6226 long var16 /* : Int */;
6227 short int var18 /* : Bool */;
6228 int cltype19;
6229 int idtype20;
6230 const char* var_class_name21;
6231 long var22 /* : Int */;
6232 char* var23 /* : NativeString */;
6233 char* var25 /* : NativeString */;
6234 long var26 /* : Int */;
6235 long var28 /* : Int */;
6236 val* var_ /* var : FlatBuffer */;
6237 long var30 /* : Int */;
6238 long var32 /* : Int */;
6239 long var33 /* : Int */;
6240 long var34 /* : Int */;
6241 short int var36 /* : Bool */;
6242 int cltype37;
6243 int idtype38;
6244 const char* var_class_name39;
6245 long var40 /* : Int */;
6246 var_c = p0;
6247 var = 1;
6248 {
6249 { /* Inline string#Buffer#is_dirty= (self,var) on <self:FlatBuffer> */
6250 self->attrs[COLOR_string__Buffer___is_dirty].s = var; /* _is_dirty on <self:FlatBuffer> */
6251 RET_LABEL1:(void)0;
6252 }
6253 }
6254 {
6255 { /* Inline string#FlatBuffer#capacity (self) on <self:FlatBuffer> */
6256 var4 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6257 var2 = var4;
6258 RET_LABEL3:(void)0;
6259 }
6260 }
6261 {
6262 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6263 var7 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6264 var5 = var7;
6265 RET_LABEL6:(void)0;
6266 }
6267 }
6268 {
6269 { /* Inline kernel#Int#<= (var2,var5) on <var2:Int> */
6270 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
6271 /* <var5:Int> isa OTHER */
6272 var10 = 1; /* easy <var5:Int> isa OTHER*/
6273 if (unlikely(!var10)) {
6274 var_class_name = type_kernel__Int.name;
6275 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6276 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
6277 show_backtrace(1);
6278 }
6279 var11 = var2 <= var5;
6280 var8 = var11;
6281 goto RET_LABEL9;
6282 RET_LABEL9:(void)0;
6283 }
6284 }
6285 if (var8){
6286 {
6287 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6288 var14 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6289 var12 = var14;
6290 RET_LABEL13:(void)0;
6291 }
6292 }
6293 var15 = 5;
6294 {
6295 { /* Inline kernel#Int#+ (var12,var15) on <var12:Int> */
6296 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
6297 /* <var15:Int> isa OTHER */
6298 var18 = 1; /* easy <var15:Int> isa OTHER*/
6299 if (unlikely(!var18)) {
6300 var_class_name21 = type_kernel__Int.name;
6301 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
6302 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6303 show_backtrace(1);
6304 }
6305 var22 = var12 + var15;
6306 var16 = var22;
6307 goto RET_LABEL17;
6308 RET_LABEL17:(void)0;
6309 }
6310 }
6311 {
6312 string__FlatBuffer__enlarge(self, var16); /* Direct call string#FlatBuffer#enlarge on <self:FlatBuffer>*/
6313 }
6314 } else {
6315 }
6316 {
6317 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
6318 var25 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
6319 var23 = var25;
6320 RET_LABEL24:(void)0;
6321 }
6322 }
6323 {
6324 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6325 var28 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6326 var26 = var28;
6327 RET_LABEL27:(void)0;
6328 }
6329 }
6330 {
6331 { /* Inline string#NativeString#[]= (var23,var26,var_c) on <var23:NativeString> */
6332 var23[var26]=var_c;
6333 RET_LABEL29:(void)0;
6334 }
6335 }
6336 var_ = self;
6337 {
6338 { /* Inline string#FlatText#length (var_) on <var_:FlatBuffer> */
6339 var32 = var_->attrs[COLOR_string__FlatText___length].l; /* _length on <var_:FlatBuffer> */
6340 var30 = var32;
6341 RET_LABEL31:(void)0;
6342 }
6343 }
6344 var33 = 1;
6345 {
6346 { /* Inline kernel#Int#+ (var30,var33) on <var30:Int> */
6347 /* Covariant cast for argument 0 (i) <var33:Int> isa OTHER */
6348 /* <var33:Int> isa OTHER */
6349 var36 = 1; /* easy <var33:Int> isa OTHER*/
6350 if (unlikely(!var36)) {
6351 var_class_name39 = type_kernel__Int.name;
6352 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
6353 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6354 show_backtrace(1);
6355 }
6356 var40 = var30 + var33;
6357 var34 = var40;
6358 goto RET_LABEL35;
6359 RET_LABEL35:(void)0;
6360 }
6361 }
6362 {
6363 { /* Inline string#FlatText#length= (var_,var34) on <var_:FlatBuffer> */
6364 var_->attrs[COLOR_string__FlatText___length].l = var34; /* _length on <var_:FlatBuffer> */
6365 RET_LABEL41:(void)0;
6366 }
6367 }
6368 RET_LABEL:;
6369 }
6370 /* method string#FlatBuffer#add for (self: Object, Char) */
6371 void VIRTUAL_string__FlatBuffer__add(val* self, char p0) {
6372 string__FlatBuffer__add(self, p0); /* Direct call string#FlatBuffer#add on <self:Object(FlatBuffer)>*/
6373 RET_LABEL:;
6374 }
6375 /* method string#FlatBuffer#empty for (self: FlatBuffer): FlatBuffer */
6376 val* string__FlatBuffer__empty(val* self) {
6377 val* var /* : FlatBuffer */;
6378 val* var1 /* : FlatBuffer */;
6379 short int var2 /* : Bool */;
6380 int cltype;
6381 int idtype;
6382 const struct type* type_struct;
6383 const char* var_class_name;
6384 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
6385 {
6386 string__FlatBuffer__init(var1); /* Direct call string#FlatBuffer#init on <var1:FlatBuffer>*/
6387 }
6388 /* <var1:FlatBuffer> isa SELFTYPE */
6389 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
6390 cltype = type_struct->color;
6391 idtype = type_struct->id;
6392 if(cltype >= var1->type->table_size) {
6393 var2 = 0;
6394 } else {
6395 var2 = var1->type->type_table[cltype] == idtype;
6396 }
6397 if (unlikely(!var2)) {
6398 var_class_name = var1 == NULL ? "null" : var1->type->name;
6399 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name);
6400 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1193);
6401 show_backtrace(1);
6402 }
6403 var = var1;
6404 goto RET_LABEL;
6405 RET_LABEL:;
6406 return var;
6407 }
6408 /* method string#FlatBuffer#empty for (self: Object): Text */
6409 val* VIRTUAL_string__FlatBuffer__empty(val* self) {
6410 val* var /* : Text */;
6411 val* var1 /* : FlatBuffer */;
6412 var1 = string__FlatBuffer__empty(self);
6413 var = var1;
6414 RET_LABEL:;
6415 return var;
6416 }
6417 /* method string#FlatBuffer#enlarge for (self: FlatBuffer, Int) */
6418 void string__FlatBuffer__enlarge(val* self, long p0) {
6419 long var_cap /* var cap: Int */;
6420 long var /* : Int */;
6421 long var2 /* : Int */;
6422 long var_c /* var c: Int */;
6423 short int var3 /* : Bool */;
6424 short int var5 /* : Bool */;
6425 int cltype;
6426 int idtype;
6427 const char* var_class_name;
6428 short int var6 /* : Bool */;
6429 short int var7 /* : Bool */;
6430 short int var9 /* : Bool */;
6431 int cltype10;
6432 int idtype11;
6433 const char* var_class_name12;
6434 short int var13 /* : Bool */;
6435 long var14 /* : Int */;
6436 long var15 /* : Int */;
6437 short int var17 /* : Bool */;
6438 int cltype18;
6439 int idtype19;
6440 const char* var_class_name20;
6441 long var21 /* : Int */;
6442 long var22 /* : Int */;
6443 long var23 /* : Int */;
6444 short int var25 /* : Bool */;
6445 int cltype26;
6446 int idtype27;
6447 const char* var_class_name28;
6448 long var29 /* : Int */;
6449 long var30 /* : Int */;
6450 long var31 /* : Int */;
6451 short int var33 /* : Bool */;
6452 int cltype34;
6453 int idtype35;
6454 const char* var_class_name36;
6455 long var37 /* : Int */;
6456 char* var38 /* : NativeString */;
6457 char* var40 /* : NativeString */;
6458 char* var_a /* var a: NativeString */;
6459 long var41 /* : Int */;
6460 long var43 /* : Int */;
6461 long var44 /* : Int */;
6462 short int var45 /* : Bool */;
6463 short int var47 /* : Bool */;
6464 int cltype48;
6465 int idtype49;
6466 const char* var_class_name50;
6467 short int var51 /* : Bool */;
6468 char* var52 /* : NativeString */;
6469 char* var54 /* : NativeString */;
6470 long var55 /* : Int */;
6471 long var57 /* : Int */;
6472 long var58 /* : Int */;
6473 long var59 /* : Int */;
6474 var_cap = p0;
6475 {
6476 { /* Inline string#FlatBuffer#capacity (self) on <self:FlatBuffer> */
6477 var2 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
6478 var = var2;
6479 RET_LABEL1:(void)0;
6480 }
6481 }
6482 var_c = var;
6483 {
6484 { /* Inline kernel#Int#<= (var_cap,var_c) on <var_cap:Int> */
6485 /* Covariant cast for argument 0 (i) <var_c:Int> isa OTHER */
6486 /* <var_c:Int> isa OTHER */
6487 var5 = 1; /* easy <var_c:Int> isa OTHER*/
6488 if (unlikely(!var5)) {
6489 var_class_name = type_kernel__Int.name;
6490 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6491 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
6492 show_backtrace(1);
6493 }
6494 var6 = var_cap <= var_c;
6495 var3 = var6;
6496 goto RET_LABEL4;
6497 RET_LABEL4:(void)0;
6498 }
6499 }
6500 if (var3){
6501 goto RET_LABEL;
6502 } else {
6503 }
6504 for(;;) {
6505 {
6506 { /* Inline kernel#Int#<= (var_c,var_cap) on <var_c:Int> */
6507 /* Covariant cast for argument 0 (i) <var_cap:Int> isa OTHER */
6508 /* <var_cap:Int> isa OTHER */
6509 var9 = 1; /* easy <var_cap:Int> isa OTHER*/
6510 if (unlikely(!var9)) {
6511 var_class_name12 = type_kernel__Int.name;
6512 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
6513 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
6514 show_backtrace(1);
6515 }
6516 var13 = var_c <= var_cap;
6517 var7 = var13;
6518 goto RET_LABEL8;
6519 RET_LABEL8:(void)0;
6520 }
6521 }
6522 if (!var7) break;
6523 var14 = 2;
6524 {
6525 { /* Inline kernel#Int#* (var_c,var14) on <var_c:Int> */
6526 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
6527 /* <var14:Int> isa OTHER */
6528 var17 = 1; /* easy <var14:Int> isa OTHER*/
6529 if (unlikely(!var17)) {
6530 var_class_name20 = type_kernel__Int.name;
6531 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
6532 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 332);
6533 show_backtrace(1);
6534 }
6535 var21 = var_c * var14;
6536 var15 = var21;
6537 goto RET_LABEL16;
6538 RET_LABEL16:(void)0;
6539 }
6540 }
6541 var22 = 2;
6542 {
6543 { /* Inline kernel#Int#+ (var15,var22) on <var15:Int> */
6544 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
6545 /* <var22:Int> isa OTHER */
6546 var25 = 1; /* easy <var22:Int> isa OTHER*/
6547 if (unlikely(!var25)) {
6548 var_class_name28 = type_kernel__Int.name;
6549 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
6550 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6551 show_backtrace(1);
6552 }
6553 var29 = var15 + var22;
6554 var23 = var29;
6555 goto RET_LABEL24;
6556 RET_LABEL24:(void)0;
6557 }
6558 }
6559 var_c = var23;
6560 CONTINUE_label: (void)0;
6561 }
6562 BREAK_label: (void)0;
6563 var30 = 1;
6564 {
6565 { /* Inline kernel#Int#+ (var_c,var30) on <var_c:Int> */
6566 /* Covariant cast for argument 0 (i) <var30:Int> isa OTHER */
6567 /* <var30:Int> isa OTHER */
6568 var33 = 1; /* easy <var30:Int> isa OTHER*/
6569 if (unlikely(!var33)) {
6570 var_class_name36 = type_kernel__Int.name;
6571 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
6572 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6573 show_backtrace(1);
6574 }
6575 var37 = var_c + var30;
6576 var31 = var37;
6577 goto RET_LABEL32;
6578 RET_LABEL32:(void)0;
6579 }
6580 }
6581 {
6582 { /* Inline string#StringCapable#calloc_string (self,var31) on <self:FlatBuffer> */
6583 var40 = (char*)nit_alloc(var31);
6584 var38 = var40;
6585 goto RET_LABEL39;
6586 RET_LABEL39:(void)0;
6587 }
6588 }
6589 var_a = var38;
6590 {
6591 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6592 var43 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6593 var41 = var43;
6594 RET_LABEL42:(void)0;
6595 }
6596 }
6597 var44 = 0;
6598 {
6599 { /* Inline kernel#Int#> (var41,var44) on <var41:Int> */
6600 /* Covariant cast for argument 0 (i) <var44:Int> isa OTHER */
6601 /* <var44:Int> isa OTHER */
6602 var47 = 1; /* easy <var44:Int> isa OTHER*/
6603 if (unlikely(!var47)) {
6604 var_class_name50 = type_kernel__Int.name;
6605 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50);
6606 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
6607 show_backtrace(1);
6608 }
6609 var51 = var41 > var44;
6610 var45 = var51;
6611 goto RET_LABEL46;
6612 RET_LABEL46:(void)0;
6613 }
6614 }
6615 if (var45){
6616 {
6617 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
6618 var54 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
6619 var52 = var54;
6620 RET_LABEL53:(void)0;
6621 }
6622 }
6623 {
6624 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6625 var57 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6626 var55 = var57;
6627 RET_LABEL56:(void)0;
6628 }
6629 }
6630 var58 = 0;
6631 var59 = 0;
6632 {
6633 { /* Inline string#NativeString#copy_to (var52,var_a,var55,var58,var59) on <var52:NativeString> */
6634 memcpy(var_a+var59,var52+var58,var55);
6635 RET_LABEL60:(void)0;
6636 }
6637 }
6638 } else {
6639 }
6640 {
6641 { /* Inline string#FlatText#items= (self,var_a) on <self:FlatBuffer> */
6642 self->attrs[COLOR_string__FlatText___items].str = var_a; /* _items on <self:FlatBuffer> */
6643 RET_LABEL61:(void)0;
6644 }
6645 }
6646 {
6647 { /* Inline string#FlatBuffer#capacity= (self,var_c) on <self:FlatBuffer> */
6648 self->attrs[COLOR_string__FlatBuffer___capacity].l = var_c; /* _capacity on <self:FlatBuffer> */
6649 RET_LABEL62:(void)0;
6650 }
6651 }
6652 RET_LABEL:;
6653 }
6654 /* method string#FlatBuffer#enlarge for (self: Object, Int) */
6655 void VIRTUAL_string__FlatBuffer__enlarge(val* self, long p0) {
6656 string__FlatBuffer__enlarge(self, p0); /* Direct call string#FlatBuffer#enlarge on <self:Object(FlatBuffer)>*/
6657 RET_LABEL:;
6658 }
6659 /* method string#FlatBuffer#to_s for (self: FlatBuffer): String */
6660 val* string__FlatBuffer__to_s(val* self) {
6661 val* var /* : String */;
6662 char* var1 /* : NativeString */;
6663 long var2 /* : Int */;
6664 long var4 /* : Int */;
6665 val* var5 /* : FlatString */;
6666 {
6667 var1 = string__FlatBuffer__to_cstring(self);
6668 }
6669 {
6670 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6671 var4 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6672 var2 = var4;
6673 RET_LABEL3:(void)0;
6674 }
6675 }
6676 {
6677 var5 = string__NativeString__to_s_with_length(var1, var2);
6678 }
6679 var = var5;
6680 goto RET_LABEL;
6681 RET_LABEL:;
6682 return var;
6683 }
6684 /* method string#FlatBuffer#to_s for (self: Object): String */
6685 val* VIRTUAL_string__FlatBuffer__to_s(val* self) {
6686 val* var /* : String */;
6687 val* var1 /* : String */;
6688 var1 = string__FlatBuffer__to_s(self);
6689 var = var1;
6690 RET_LABEL:;
6691 return var;
6692 }
6693 /* method string#FlatBuffer#to_cstring for (self: FlatBuffer): NativeString */
6694 char* string__FlatBuffer__to_cstring(val* self) {
6695 char* var /* : NativeString */;
6696 short int var1 /* : Bool */;
6697 short int var3 /* : Bool */;
6698 long var4 /* : Int */;
6699 long var6 /* : Int */;
6700 long var7 /* : Int */;
6701 long var8 /* : Int */;
6702 short int var10 /* : Bool */;
6703 int cltype;
6704 int idtype;
6705 const char* var_class_name;
6706 long var11 /* : Int */;
6707 char* var12 /* : NativeString */;
6708 char* var14 /* : NativeString */;
6709 char* var_new_native /* var new_native: NativeString */;
6710 long var15 /* : Int */;
6711 long var17 /* : Int */;
6712 char var18 /* : Char */;
6713 long var20 /* : Int */;
6714 long var22 /* : Int */;
6715 long var23 /* : Int */;
6716 short int var24 /* : Bool */;
6717 short int var26 /* : Bool */;
6718 int cltype27;
6719 int idtype28;
6720 const char* var_class_name29;
6721 short int var30 /* : Bool */;
6722 char* var31 /* : NativeString */;
6723 char* var33 /* : NativeString */;
6724 long var34 /* : Int */;
6725 long var36 /* : Int */;
6726 long var37 /* : Int */;
6727 long var38 /* : Int */;
6728 val* var41 /* : nullable NativeString */;
6729 short int var42 /* : Bool */;
6730 val* var44 /* : nullable NativeString */;
6731 val* var46 /* : nullable NativeString */;
6732 char* var47 /* : NativeString */;
6733 {
6734 { /* Inline string#Buffer#is_dirty (self) on <self:FlatBuffer> */
6735 var3 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on <self:FlatBuffer> */
6736 var1 = var3;
6737 RET_LABEL2:(void)0;
6738 }
6739 }
6740 if (var1){
6741 {
6742 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6743 var6 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6744 var4 = var6;
6745 RET_LABEL5:(void)0;
6746 }
6747 }
6748 var7 = 1;
6749 {
6750 { /* Inline kernel#Int#+ (var4,var7) on <var4:Int> */
6751 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
6752 /* <var7:Int> isa OTHER */
6753 var10 = 1; /* easy <var7:Int> isa OTHER*/
6754 if (unlikely(!var10)) {
6755 var_class_name = type_kernel__Int.name;
6756 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6757 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6758 show_backtrace(1);
6759 }
6760 var11 = var4 + var7;
6761 var8 = var11;
6762 goto RET_LABEL9;
6763 RET_LABEL9:(void)0;
6764 }
6765 }
6766 {
6767 { /* Inline string#StringCapable#calloc_string (self,var8) on <self:FlatBuffer> */
6768 var14 = (char*)nit_alloc(var8);
6769 var12 = var14;
6770 goto RET_LABEL13;
6771 RET_LABEL13:(void)0;
6772 }
6773 }
6774 var_new_native = var12;
6775 {
6776 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6777 var17 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6778 var15 = var17;
6779 RET_LABEL16:(void)0;
6780 }
6781 }
6782 var18 = '\0';
6783 {
6784 { /* Inline string#NativeString#[]= (var_new_native,var15,var18) on <var_new_native:NativeString> */
6785 var_new_native[var15]=var18;
6786 RET_LABEL19:(void)0;
6787 }
6788 }
6789 {
6790 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6791 var22 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6792 var20 = var22;
6793 RET_LABEL21:(void)0;
6794 }
6795 }
6796 var23 = 0;
6797 {
6798 { /* Inline kernel#Int#> (var20,var23) on <var20:Int> */
6799 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
6800 /* <var23:Int> isa OTHER */
6801 var26 = 1; /* easy <var23:Int> isa OTHER*/
6802 if (unlikely(!var26)) {
6803 var_class_name29 = type_kernel__Int.name;
6804 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
6805 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
6806 show_backtrace(1);
6807 }
6808 var30 = var20 > var23;
6809 var24 = var30;
6810 goto RET_LABEL25;
6811 RET_LABEL25:(void)0;
6812 }
6813 }
6814 if (var24){
6815 {
6816 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
6817 var33 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
6818 var31 = var33;
6819 RET_LABEL32:(void)0;
6820 }
6821 }
6822 {
6823 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
6824 var36 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
6825 var34 = var36;
6826 RET_LABEL35:(void)0;
6827 }
6828 }
6829 var37 = 0;
6830 var38 = 0;
6831 {
6832 { /* Inline string#NativeString#copy_to (var31,var_new_native,var34,var37,var38) on <var31:NativeString> */
6833 memcpy(var_new_native+var38,var31+var37,var34);
6834 RET_LABEL39:(void)0;
6835 }
6836 }
6837 } else {
6838 }
6839 {
6840 { /* Inline string#FlatText#real_items= (self,var_new_native) on <self:FlatBuffer> */
6841 var41 = BOX_string__NativeString(var_new_native); /* autobox from NativeString to nullable NativeString */
6842 self->attrs[COLOR_string__FlatText___real_items].val = var41; /* _real_items on <self:FlatBuffer> */
6843 RET_LABEL40:(void)0;
6844 }
6845 }
6846 var42 = 0;
6847 {
6848 { /* Inline string#Buffer#is_dirty= (self,var42) on <self:FlatBuffer> */
6849 self->attrs[COLOR_string__Buffer___is_dirty].s = var42; /* _is_dirty on <self:FlatBuffer> */
6850 RET_LABEL43:(void)0;
6851 }
6852 }
6853 } else {
6854 }
6855 {
6856 { /* Inline string#FlatText#real_items (self) on <self:FlatBuffer> */
6857 var46 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on <self:FlatBuffer> */
6858 var44 = var46;
6859 RET_LABEL45:(void)0;
6860 }
6861 }
6862 if (unlikely(var44 == NULL)) {
6863 PRINT_ERROR("Runtime error: %s", "Cast failed");
6864 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1220);
6865 show_backtrace(1);
6866 }
6867 var47 = ((struct instance_kernel__Pointer*)var44)->value; /* autounbox from nullable NativeString to NativeString */;
6868 var = var47;
6869 goto RET_LABEL;
6870 RET_LABEL:;
6871 return var;
6872 }
6873 /* method string#FlatBuffer#to_cstring for (self: Object): NativeString */
6874 char* VIRTUAL_string__FlatBuffer__to_cstring(val* self) {
6875 char* var /* : NativeString */;
6876 char* var1 /* : NativeString */;
6877 var1 = string__FlatBuffer__to_cstring(self);
6878 var = var1;
6879 RET_LABEL:;
6880 return var;
6881 }
6882 /* method string#FlatBuffer#init for (self: FlatBuffer) */
6883 void string__FlatBuffer__init(val* self) {
6884 {
6885 string__FlatText__init(self); /* Direct call string#FlatText#init on <self:FlatBuffer>*/
6886 }
6887 {
6888 { /* Inline string#Text#init (self) on <self:FlatBuffer> */
6889 RET_LABEL1:(void)0;
6890 }
6891 }
6892 RET_LABEL:;
6893 }
6894 /* method string#FlatBuffer#init for (self: Object) */
6895 void VIRTUAL_string__FlatBuffer__init(val* self) {
6896 string__FlatBuffer__init(self); /* Direct call string#FlatBuffer#init on <self:Object(FlatBuffer)>*/
6897 RET_LABEL:;
6898 }
6899 /* method string#FlatBuffer#from for (self: FlatBuffer, Text) */
6900 void string__FlatBuffer__from(val* self, val* p0) {
6901 val* var_s /* var s: Text */;
6902 long var /* : Int */;
6903 long var3 /* : Int */;
6904 long var4 /* : Int */;
6905 long var5 /* : Int */;
6906 short int var7 /* : Bool */;
6907 int cltype;
6908 int idtype;
6909 const char* var_class_name;
6910 long var8 /* : Int */;
6911 long var10 /* : Int */;
6912 long var12 /* : Int */;
6913 long var14 /* : Int */;
6914 long var16 /* : Int */;
6915 char* var17 /* : NativeString */;
6916 char* var19 /* : NativeString */;
6917 short int var21 /* : Bool */;
6918 int cltype22;
6919 int idtype23;
6920 char* var24 /* : NativeString */;
6921 char* var26 /* : NativeString */;
6922 char* var27 /* : NativeString */;
6923 char* var29 /* : NativeString */;
6924 long var30 /* : Int */;
6925 long var32 /* : Int */;
6926 long var33 /* : Int */;
6927 long var35 /* : Int */;
6928 long var36 /* : Int */;
6929 short int var38 /* : Bool */;
6930 int cltype39;
6931 int idtype40;
6932 char* var41 /* : NativeString */;
6933 char* var43 /* : NativeString */;
6934 char* var44 /* : NativeString */;
6935 char* var46 /* : NativeString */;
6936 long var47 /* : Int */;
6937 long var49 /* : Int */;
6938 long var50 /* : Int */;
6939 long var51 /* : Int */;
6940 long var53 /* : Int */;
6941 long var_curr_pos /* var curr_pos: Int */;
6942 val* var54 /* : SequenceRead[Char] */;
6943 val* var55 /* : Iterator[nullable Object] */;
6944 short int var56 /* : Bool */;
6945 val* var57 /* : nullable Object */;
6946 char var_i /* var i: Char */;
6947 char var58 /* : Char */;
6948 char* var59 /* : NativeString */;
6949 char* var61 /* : NativeString */;
6950 long var63 /* : Int */;
6951 long var64 /* : Int */;
6952 short int var66 /* : Bool */;
6953 int cltype67;
6954 int idtype68;
6955 const char* var_class_name69;
6956 long var70 /* : Int */;
6957 {
6958 string__FlatText__init(self); /* Direct call string#FlatText#init on <self:FlatBuffer>*/
6959 }
6960 {
6961 { /* Inline string#Text#init (self) on <self:FlatBuffer> */
6962 RET_LABEL1:(void)0;
6963 }
6964 }
6965 var_s = p0;
6966 {
6967 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
6968 var3 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:Text> */
6969 var = var3;
6970 RET_LABEL2:(void)0;
6971 }
6972 }
6973 var4 = 1;
6974 {
6975 { /* Inline kernel#Int#+ (var,var4) on <var:Int> */
6976 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
6977 /* <var4:Int> isa OTHER */
6978 var7 = 1; /* easy <var4:Int> isa OTHER*/
6979 if (unlikely(!var7)) {
6980 var_class_name = type_kernel__Int.name;
6981 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6982 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6983 show_backtrace(1);
6984 }
6985 var8 = var + var4;
6986 var5 = var8;
6987 goto RET_LABEL6;
6988 RET_LABEL6:(void)0;
6989 }
6990 }
6991 {
6992 { /* Inline string#FlatBuffer#capacity= (self,var5) on <self:FlatBuffer> */
6993 self->attrs[COLOR_string__FlatBuffer___capacity].l = var5; /* _capacity on <self:FlatBuffer> */
6994 RET_LABEL9:(void)0;
6995 }
6996 }
6997 {
6998 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
6999 var12 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:Text> */
7000 var10 = var12;
7001 RET_LABEL11:(void)0;
7002 }
7003 }
7004 {
7005 { /* Inline string#FlatText#length= (self,var10) on <self:FlatBuffer> */
7006 self->attrs[COLOR_string__FlatText___length].l = var10; /* _length on <self:FlatBuffer> */
7007 RET_LABEL13:(void)0;
7008 }
7009 }
7010 {
7011 { /* Inline string#FlatBuffer#capacity (self) on <self:FlatBuffer> */
7012 var16 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
7013 var14 = var16;
7014 RET_LABEL15:(void)0;
7015 }
7016 }
7017 {
7018 { /* Inline string#StringCapable#calloc_string (self,var14) on <self:FlatBuffer> */
7019 var19 = (char*)nit_alloc(var14);
7020 var17 = var19;
7021 goto RET_LABEL18;
7022 RET_LABEL18:(void)0;
7023 }
7024 }
7025 {
7026 { /* Inline string#FlatText#items= (self,var17) on <self:FlatBuffer> */
7027 self->attrs[COLOR_string__FlatText___items].str = var17; /* _items on <self:FlatBuffer> */
7028 RET_LABEL20:(void)0;
7029 }
7030 }
7031 /* <var_s:Text> isa FlatString */
7032 cltype22 = type_string__FlatString.color;
7033 idtype23 = type_string__FlatString.id;
7034 if(cltype22 >= var_s->type->table_size) {
7035 var21 = 0;
7036 } else {
7037 var21 = var_s->type->type_table[cltype22] == idtype23;
7038 }
7039 if (var21){
7040 {
7041 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatString)> */
7042 var26 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on <var_s:Text(FlatString)> */
7043 var24 = var26;
7044 RET_LABEL25:(void)0;
7045 }
7046 }
7047 {
7048 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
7049 var29 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
7050 var27 = var29;
7051 RET_LABEL28:(void)0;
7052 }
7053 }
7054 {
7055 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7056 var32 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7057 var30 = var32;
7058 RET_LABEL31:(void)0;
7059 }
7060 }
7061 {
7062 { /* Inline string#FlatString#index_from (var_s) on <var_s:Text(FlatString)> */
7063 var35 = var_s->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_s:Text(FlatString)> */
7064 var33 = var35;
7065 RET_LABEL34:(void)0;
7066 }
7067 }
7068 var36 = 0;
7069 {
7070 { /* Inline string#NativeString#copy_to (var24,var27,var30,var33,var36) on <var24:NativeString> */
7071 memcpy(var27+var36,var24+var33,var30);
7072 RET_LABEL37:(void)0;
7073 }
7074 }
7075 } else {
7076 /* <var_s:Text> isa FlatBuffer */
7077 cltype39 = type_string__FlatBuffer.color;
7078 idtype40 = type_string__FlatBuffer.id;
7079 if(cltype39 >= var_s->type->table_size) {
7080 var38 = 0;
7081 } else {
7082 var38 = var_s->type->type_table[cltype39] == idtype40;
7083 }
7084 if (var38){
7085 {
7086 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatBuffer)> */
7087 var43 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on <var_s:Text(FlatBuffer)> */
7088 var41 = var43;
7089 RET_LABEL42:(void)0;
7090 }
7091 }
7092 {
7093 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
7094 var46 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
7095 var44 = var46;
7096 RET_LABEL45:(void)0;
7097 }
7098 }
7099 {
7100 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7101 var49 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7102 var47 = var49;
7103 RET_LABEL48:(void)0;
7104 }
7105 }
7106 var50 = 0;
7107 var51 = 0;
7108 {
7109 { /* Inline string#NativeString#copy_to (var41,var44,var47,var50,var51) on <var41:NativeString> */
7110 memcpy(var44+var51,var41+var50,var47);
7111 RET_LABEL52:(void)0;
7112 }
7113 }
7114 } else {
7115 var53 = 0;
7116 var_curr_pos = var53;
7117 {
7118 var54 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on <var_s:Text>*/;
7119 }
7120 {
7121 var55 = ((val* (*)(val*))(var54->class->vft[COLOR_abstract_collection__Collection__iterator]))(var54) /* iterator on <var54:SequenceRead[Char]>*/;
7122 }
7123 for(;;) {
7124 {
7125 var56 = ((short int (*)(val*))(var55->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var55) /* is_ok on <var55:Iterator[nullable Object]>*/;
7126 }
7127 if(!var56) break;
7128 {
7129 var57 = ((val* (*)(val*))(var55->class->vft[COLOR_abstract_collection__Iterator__item]))(var55) /* item on <var55:Iterator[nullable Object]>*/;
7130 }
7131 var58 = ((struct instance_kernel__Char*)var57)->value; /* autounbox from nullable Object to Char */;
7132 var_i = var58;
7133 {
7134 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
7135 var61 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
7136 var59 = var61;
7137 RET_LABEL60:(void)0;
7138 }
7139 }
7140 {
7141 { /* Inline string#NativeString#[]= (var59,var_curr_pos,var_i) on <var59:NativeString> */
7142 var59[var_curr_pos]=var_i;
7143 RET_LABEL62:(void)0;
7144 }
7145 }
7146 var63 = 1;
7147 {
7148 { /* Inline kernel#Int#+ (var_curr_pos,var63) on <var_curr_pos:Int> */
7149 /* Covariant cast for argument 0 (i) <var63:Int> isa OTHER */
7150 /* <var63:Int> isa OTHER */
7151 var66 = 1; /* easy <var63:Int> isa OTHER*/
7152 if (unlikely(!var66)) {
7153 var_class_name69 = type_kernel__Int.name;
7154 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
7155 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7156 show_backtrace(1);
7157 }
7158 var70 = var_curr_pos + var63;
7159 var64 = var70;
7160 goto RET_LABEL65;
7161 RET_LABEL65:(void)0;
7162 }
7163 }
7164 var_curr_pos = var64;
7165 CONTINUE_label: (void)0;
7166 {
7167 ((void (*)(val*))(var55->class->vft[COLOR_abstract_collection__Iterator__next]))(var55) /* next on <var55:Iterator[nullable Object]>*/;
7168 }
7169 }
7170 BREAK_label: (void)0;
7171 }
7172 }
7173 RET_LABEL:;
7174 }
7175 /* method string#FlatBuffer#from for (self: Object, Text) */
7176 void VIRTUAL_string__FlatBuffer__from(val* self, val* p0) {
7177 string__FlatBuffer__from(self, p0); /* Direct call string#FlatBuffer#from on <self:Object(FlatBuffer)>*/
7178 RET_LABEL:;
7179 }
7180 /* method string#FlatBuffer#with_capacity for (self: FlatBuffer, Int) */
7181 void string__FlatBuffer__with_capacity(val* self, long p0) {
7182 long var_cap /* var cap: Int */;
7183 long var /* : Int */;
7184 short int var2 /* : Bool */;
7185 short int var4 /* : Bool */;
7186 int cltype;
7187 int idtype;
7188 const char* var_class_name;
7189 short int var5 /* : Bool */;
7190 long var6 /* : Int */;
7191 long var7 /* : Int */;
7192 short int var9 /* : Bool */;
7193 int cltype10;
7194 int idtype11;
7195 const char* var_class_name12;
7196 long var13 /* : Int */;
7197 char* var14 /* : NativeString */;
7198 char* var16 /* : NativeString */;
7199 long var19 /* : Int */;
7200 {
7201 string__FlatText__init(self); /* Direct call string#FlatText#init on <self:FlatBuffer>*/
7202 }
7203 {
7204 { /* Inline string#Text#init (self) on <self:FlatBuffer> */
7205 RET_LABEL1:(void)0;
7206 }
7207 }
7208 var_cap = p0;
7209 var = 0;
7210 {
7211 { /* Inline kernel#Int#>= (var_cap,var) on <var_cap:Int> */
7212 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
7213 /* <var:Int> isa OTHER */
7214 var4 = 1; /* easy <var:Int> isa OTHER*/
7215 if (unlikely(!var4)) {
7216 var_class_name = type_kernel__Int.name;
7217 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7218 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
7219 show_backtrace(1);
7220 }
7221 var5 = var_cap >= var;
7222 var2 = var5;
7223 goto RET_LABEL3;
7224 RET_LABEL3:(void)0;
7225 }
7226 }
7227 if (unlikely(!var2)) {
7228 PRINT_ERROR("Runtime error: %s", "Assert failed");
7229 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1247);
7230 show_backtrace(1);
7231 }
7232 var6 = 1;
7233 {
7234 { /* Inline kernel#Int#+ (var_cap,var6) on <var_cap:Int> */
7235 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
7236 /* <var6:Int> isa OTHER */
7237 var9 = 1; /* easy <var6:Int> isa OTHER*/
7238 if (unlikely(!var9)) {
7239 var_class_name12 = type_kernel__Int.name;
7240 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
7241 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7242 show_backtrace(1);
7243 }
7244 var13 = var_cap + var6;
7245 var7 = var13;
7246 goto RET_LABEL8;
7247 RET_LABEL8:(void)0;
7248 }
7249 }
7250 {
7251 { /* Inline string#StringCapable#calloc_string (self,var7) on <self:FlatBuffer> */
7252 var16 = (char*)nit_alloc(var7);
7253 var14 = var16;
7254 goto RET_LABEL15;
7255 RET_LABEL15:(void)0;
7256 }
7257 }
7258 {
7259 { /* Inline string#FlatText#items= (self,var14) on <self:FlatBuffer> */
7260 self->attrs[COLOR_string__FlatText___items].str = var14; /* _items on <self:FlatBuffer> */
7261 RET_LABEL17:(void)0;
7262 }
7263 }
7264 {
7265 { /* Inline string#FlatBuffer#capacity= (self,var_cap) on <self:FlatBuffer> */
7266 self->attrs[COLOR_string__FlatBuffer___capacity].l = var_cap; /* _capacity on <self:FlatBuffer> */
7267 RET_LABEL18:(void)0;
7268 }
7269 }
7270 var19 = 0;
7271 {
7272 { /* Inline string#FlatText#length= (self,var19) on <self:FlatBuffer> */
7273 self->attrs[COLOR_string__FlatText___length].l = var19; /* _length on <self:FlatBuffer> */
7274 RET_LABEL20:(void)0;
7275 }
7276 }
7277 RET_LABEL:;
7278 }
7279 /* method string#FlatBuffer#with_capacity for (self: Object, Int) */
7280 void VIRTUAL_string__FlatBuffer__with_capacity(val* self, long p0) {
7281 string__FlatBuffer__with_capacity(self, p0); /* Direct call string#FlatBuffer#with_capacity on <self:Object(FlatBuffer)>*/
7282 RET_LABEL:;
7283 }
7284 /* method string#FlatBuffer#append for (self: FlatBuffer, Text) */
7285 void string__FlatBuffer__append(val* self, val* p0) {
7286 val* var_s /* var s: Text */;
7287 short int var /* : Bool */;
7288 short int var1 /* : Bool */;
7289 long var3 /* : Int */;
7290 long var5 /* : Int */;
7291 long var_sl /* var sl: Int */;
7292 long var6 /* : Int */;
7293 long var8 /* : Int */;
7294 long var9 /* : Int */;
7295 long var11 /* : Int */;
7296 long var12 /* : Int */;
7297 short int var14 /* : Bool */;
7298 int cltype;
7299 int idtype;
7300 const char* var_class_name;
7301 long var15 /* : Int */;
7302 short int var16 /* : Bool */;
7303 short int var18 /* : Bool */;
7304 int cltype19;
7305 int idtype20;
7306 const char* var_class_name21;
7307 short int var22 /* : Bool */;
7308 long var23 /* : Int */;
7309 long var25 /* : Int */;
7310 long var26 /* : Int */;
7311 short int var28 /* : Bool */;
7312 int cltype29;
7313 int idtype30;
7314 const char* var_class_name31;
7315 long var32 /* : Int */;
7316 short int var33 /* : Bool */;
7317 int cltype34;
7318 int idtype35;
7319 char* var36 /* : NativeString */;
7320 char* var38 /* : NativeString */;
7321 char* var39 /* : NativeString */;
7322 char* var41 /* : NativeString */;
7323 long var42 /* : Int */;
7324 long var44 /* : Int */;
7325 long var45 /* : Int */;
7326 long var47 /* : Int */;
7327 short int var49 /* : Bool */;
7328 int cltype50;
7329 int idtype51;
7330 char* var52 /* : NativeString */;
7331 char* var54 /* : NativeString */;
7332 char* var55 /* : NativeString */;
7333 char* var57 /* : NativeString */;
7334 long var58 /* : Int */;
7335 long var59 /* : Int */;
7336 long var61 /* : Int */;
7337 long var63 /* : Int */;
7338 long var65 /* : Int */;
7339 long var_curr_pos /* var curr_pos: Int */;
7340 val* var66 /* : SequenceRead[Char] */;
7341 val* var67 /* : Iterator[nullable Object] */;
7342 short int var68 /* : Bool */;
7343 val* var69 /* : nullable Object */;
7344 char var_i /* var i: Char */;
7345 char var70 /* : Char */;
7346 char* var71 /* : NativeString */;
7347 char* var73 /* : NativeString */;
7348 long var75 /* : Int */;
7349 long var76 /* : Int */;
7350 short int var78 /* : Bool */;
7351 int cltype79;
7352 int idtype80;
7353 const char* var_class_name81;
7354 long var82 /* : Int */;
7355 val* var_ /* var : FlatBuffer */;
7356 long var83 /* : Int */;
7357 long var85 /* : Int */;
7358 long var86 /* : Int */;
7359 short int var88 /* : Bool */;
7360 int cltype89;
7361 int idtype90;
7362 const char* var_class_name91;
7363 long var92 /* : Int */;
7364 var_s = p0;
7365 {
7366 var = string__Text__is_empty(var_s);
7367 }
7368 if (var){
7369 goto RET_LABEL;
7370 } else {
7371 }
7372 var1 = 1;
7373 {
7374 { /* Inline string#Buffer#is_dirty= (self,var1) on <self:FlatBuffer> */
7375 self->attrs[COLOR_string__Buffer___is_dirty].s = var1; /* _is_dirty on <self:FlatBuffer> */
7376 RET_LABEL2:(void)0;
7377 }
7378 }
7379 {
7380 { /* Inline string#FlatText#length (var_s) on <var_s:Text> */
7381 var5 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:Text> */
7382 var3 = var5;
7383 RET_LABEL4:(void)0;
7384 }
7385 }
7386 var_sl = var3;
7387 {
7388 { /* Inline string#FlatBuffer#capacity (self) on <self:FlatBuffer> */
7389 var8 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on <self:FlatBuffer> */
7390 var6 = var8;
7391 RET_LABEL7:(void)0;
7392 }
7393 }
7394 {
7395 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7396 var11 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7397 var9 = var11;
7398 RET_LABEL10:(void)0;
7399 }
7400 }
7401 {
7402 { /* Inline kernel#Int#+ (var9,var_sl) on <var9:Int> */
7403 /* Covariant cast for argument 0 (i) <var_sl:Int> isa OTHER */
7404 /* <var_sl:Int> isa OTHER */
7405 var14 = 1; /* easy <var_sl:Int> isa OTHER*/
7406 if (unlikely(!var14)) {
7407 var_class_name = type_kernel__Int.name;
7408 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7409 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7410 show_backtrace(1);
7411 }
7412 var15 = var9 + var_sl;
7413 var12 = var15;
7414 goto RET_LABEL13;
7415 RET_LABEL13:(void)0;
7416 }
7417 }
7418 {
7419 { /* Inline kernel#Int#< (var6,var12) on <var6:Int> */
7420 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
7421 /* <var12:Int> isa OTHER */
7422 var18 = 1; /* easy <var12:Int> isa OTHER*/
7423 if (unlikely(!var18)) {
7424 var_class_name21 = type_kernel__Int.name;
7425 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
7426 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
7427 show_backtrace(1);
7428 }
7429 var22 = var6 < var12;
7430 var16 = var22;
7431 goto RET_LABEL17;
7432 RET_LABEL17:(void)0;
7433 }
7434 }
7435 if (var16){
7436 {
7437 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7438 var25 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7439 var23 = var25;
7440 RET_LABEL24:(void)0;
7441 }
7442 }
7443 {
7444 { /* Inline kernel#Int#+ (var23,var_sl) on <var23:Int> */
7445 /* Covariant cast for argument 0 (i) <var_sl:Int> isa OTHER */
7446 /* <var_sl:Int> isa OTHER */
7447 var28 = 1; /* easy <var_sl:Int> isa OTHER*/
7448 if (unlikely(!var28)) {
7449 var_class_name31 = type_kernel__Int.name;
7450 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
7451 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7452 show_backtrace(1);
7453 }
7454 var32 = var23 + var_sl;
7455 var26 = var32;
7456 goto RET_LABEL27;
7457 RET_LABEL27:(void)0;
7458 }
7459 }
7460 {
7461 string__FlatBuffer__enlarge(self, var26); /* Direct call string#FlatBuffer#enlarge on <self:FlatBuffer>*/
7462 }
7463 } else {
7464 }
7465 /* <var_s:Text> isa FlatString */
7466 cltype34 = type_string__FlatString.color;
7467 idtype35 = type_string__FlatString.id;
7468 if(cltype34 >= var_s->type->table_size) {
7469 var33 = 0;
7470 } else {
7471 var33 = var_s->type->type_table[cltype34] == idtype35;
7472 }
7473 if (var33){
7474 {
7475 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatString)> */
7476 var38 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on <var_s:Text(FlatString)> */
7477 var36 = var38;
7478 RET_LABEL37:(void)0;
7479 }
7480 }
7481 {
7482 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
7483 var41 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
7484 var39 = var41;
7485 RET_LABEL40:(void)0;
7486 }
7487 }
7488 {
7489 { /* Inline string#FlatString#index_from (var_s) on <var_s:Text(FlatString)> */
7490 var44 = var_s->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_s:Text(FlatString)> */
7491 var42 = var44;
7492 RET_LABEL43:(void)0;
7493 }
7494 }
7495 {
7496 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7497 var47 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7498 var45 = var47;
7499 RET_LABEL46:(void)0;
7500 }
7501 }
7502 {
7503 { /* Inline string#NativeString#copy_to (var36,var39,var_sl,var42,var45) on <var36:NativeString> */
7504 memcpy(var39+var45,var36+var42,var_sl);
7505 RET_LABEL48:(void)0;
7506 }
7507 }
7508 } else {
7509 /* <var_s:Text> isa FlatBuffer */
7510 cltype50 = type_string__FlatBuffer.color;
7511 idtype51 = type_string__FlatBuffer.id;
7512 if(cltype50 >= var_s->type->table_size) {
7513 var49 = 0;
7514 } else {
7515 var49 = var_s->type->type_table[cltype50] == idtype51;
7516 }
7517 if (var49){
7518 {
7519 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatBuffer)> */
7520 var54 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on <var_s:Text(FlatBuffer)> */
7521 var52 = var54;
7522 RET_LABEL53:(void)0;
7523 }
7524 }
7525 {
7526 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
7527 var57 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
7528 var55 = var57;
7529 RET_LABEL56:(void)0;
7530 }
7531 }
7532 var58 = 0;
7533 {
7534 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7535 var61 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7536 var59 = var61;
7537 RET_LABEL60:(void)0;
7538 }
7539 }
7540 {
7541 { /* Inline string#NativeString#copy_to (var52,var55,var_sl,var58,var59) on <var52:NativeString> */
7542 memcpy(var55+var59,var52+var58,var_sl);
7543 RET_LABEL62:(void)0;
7544 }
7545 }
7546 } else {
7547 {
7548 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7549 var65 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7550 var63 = var65;
7551 RET_LABEL64:(void)0;
7552 }
7553 }
7554 var_curr_pos = var63;
7555 {
7556 var66 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on <var_s:Text>*/;
7557 }
7558 {
7559 var67 = ((val* (*)(val*))(var66->class->vft[COLOR_abstract_collection__Collection__iterator]))(var66) /* iterator on <var66:SequenceRead[Char]>*/;
7560 }
7561 for(;;) {
7562 {
7563 var68 = ((short int (*)(val*))(var67->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var67) /* is_ok on <var67:Iterator[nullable Object]>*/;
7564 }
7565 if(!var68) break;
7566 {
7567 var69 = ((val* (*)(val*))(var67->class->vft[COLOR_abstract_collection__Iterator__item]))(var67) /* item on <var67:Iterator[nullable Object]>*/;
7568 }
7569 var70 = ((struct instance_kernel__Char*)var69)->value; /* autounbox from nullable Object to Char */;
7570 var_i = var70;
7571 {
7572 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
7573 var73 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
7574 var71 = var73;
7575 RET_LABEL72:(void)0;
7576 }
7577 }
7578 {
7579 { /* Inline string#NativeString#[]= (var71,var_curr_pos,var_i) on <var71:NativeString> */
7580 var71[var_curr_pos]=var_i;
7581 RET_LABEL74:(void)0;
7582 }
7583 }
7584 var75 = 1;
7585 {
7586 { /* Inline kernel#Int#+ (var_curr_pos,var75) on <var_curr_pos:Int> */
7587 /* Covariant cast for argument 0 (i) <var75:Int> isa OTHER */
7588 /* <var75:Int> isa OTHER */
7589 var78 = 1; /* easy <var75:Int> isa OTHER*/
7590 if (unlikely(!var78)) {
7591 var_class_name81 = type_kernel__Int.name;
7592 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81);
7593 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7594 show_backtrace(1);
7595 }
7596 var82 = var_curr_pos + var75;
7597 var76 = var82;
7598 goto RET_LABEL77;
7599 RET_LABEL77:(void)0;
7600 }
7601 }
7602 var_curr_pos = var76;
7603 CONTINUE_label: (void)0;
7604 {
7605 ((void (*)(val*))(var67->class->vft[COLOR_abstract_collection__Iterator__next]))(var67) /* next on <var67:Iterator[nullable Object]>*/;
7606 }
7607 }
7608 BREAK_label: (void)0;
7609 }
7610 }
7611 var_ = self;
7612 {
7613 { /* Inline string#FlatText#length (var_) on <var_:FlatBuffer> */
7614 var85 = var_->attrs[COLOR_string__FlatText___length].l; /* _length on <var_:FlatBuffer> */
7615 var83 = var85;
7616 RET_LABEL84:(void)0;
7617 }
7618 }
7619 {
7620 { /* Inline kernel#Int#+ (var83,var_sl) on <var83:Int> */
7621 /* Covariant cast for argument 0 (i) <var_sl:Int> isa OTHER */
7622 /* <var_sl:Int> isa OTHER */
7623 var88 = 1; /* easy <var_sl:Int> isa OTHER*/
7624 if (unlikely(!var88)) {
7625 var_class_name91 = type_kernel__Int.name;
7626 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
7627 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7628 show_backtrace(1);
7629 }
7630 var92 = var83 + var_sl;
7631 var86 = var92;
7632 goto RET_LABEL87;
7633 RET_LABEL87:(void)0;
7634 }
7635 }
7636 {
7637 { /* Inline string#FlatText#length= (var_,var86) on <var_:FlatBuffer> */
7638 var_->attrs[COLOR_string__FlatText___length].l = var86; /* _length on <var_:FlatBuffer> */
7639 RET_LABEL93:(void)0;
7640 }
7641 }
7642 RET_LABEL:;
7643 }
7644 /* method string#FlatBuffer#append for (self: Object, Text) */
7645 void VIRTUAL_string__FlatBuffer__append(val* self, val* p0) {
7646 string__FlatBuffer__append(self, p0); /* Direct call string#FlatBuffer#append on <self:Object(FlatBuffer)>*/
7647 RET_LABEL:;
7648 }
7649 /* method string#FlatBuffer#substring for (self: FlatBuffer, Int, Int): FlatBuffer */
7650 val* string__FlatBuffer__substring(val* self, long p0, long p1) {
7651 val* var /* : FlatBuffer */;
7652 long var_from /* var from: Int */;
7653 long var_count /* var count: Int */;
7654 long var1 /* : Int */;
7655 short int var2 /* : Bool */;
7656 short int var4 /* : Bool */;
7657 int cltype;
7658 int idtype;
7659 const char* var_class_name;
7660 short int var5 /* : Bool */;
7661 long var6 /* : Int */;
7662 short int var8 /* : Bool */;
7663 int cltype9;
7664 int idtype10;
7665 const char* var_class_name11;
7666 long var12 /* : Int */;
7667 long var13 /* : Int */;
7668 short int var14 /* : Bool */;
7669 short int var16 /* : Bool */;
7670 int cltype17;
7671 int idtype18;
7672 const char* var_class_name19;
7673 short int var20 /* : Bool */;
7674 long var21 /* : Int */;
7675 long var22 /* : Int */;
7676 long var24 /* : Int */;
7677 short int var25 /* : Bool */;
7678 short int var27 /* : Bool */;
7679 int cltype28;
7680 int idtype29;
7681 const char* var_class_name30;
7682 short int var31 /* : Bool */;
7683 long var32 /* : Int */;
7684 long var34 /* : Int */;
7685 short int var35 /* : Bool */;
7686 short int var37 /* : Bool */;
7687 int cltype38;
7688 int idtype39;
7689 const char* var_class_name40;
7690 short int var41 /* : Bool */;
7691 val* var42 /* : FlatBuffer */;
7692 long var43 /* : Int */;
7693 short int var45 /* : Bool */;
7694 int cltype46;
7695 int idtype47;
7696 const char* var_class_name48;
7697 long var49 /* : Int */;
7698 val* var_r /* var r: FlatBuffer */;
7699 short int var50 /* : Bool */;
7700 short int var52 /* : Bool */;
7701 int cltype53;
7702 int idtype54;
7703 const char* var_class_name55;
7704 short int var56 /* : Bool */;
7705 val* var57 /* : Sequence[Char] */;
7706 val* var59 /* : Sequence[Char] */;
7707 char* var60 /* : NativeString */;
7708 char* var62 /* : NativeString */;
7709 char var63 /* : Char */;
7710 char var65 /* : Char */;
7711 val* var66 /* : nullable Object */;
7712 long var67 /* : Int */;
7713 long var68 /* : Int */;
7714 short int var70 /* : Bool */;
7715 int cltype71;
7716 int idtype72;
7717 const char* var_class_name73;
7718 long var74 /* : Int */;
7719 short int var75 /* : Bool */;
7720 int cltype76;
7721 int idtype77;
7722 const struct type* type_struct;
7723 const char* var_class_name78;
7724 val* var79 /* : FlatBuffer */;
7725 short int var80 /* : Bool */;
7726 int cltype81;
7727 int idtype82;
7728 const struct type* type_struct83;
7729 const char* var_class_name84;
7730 var_from = p0;
7731 var_count = p1;
7732 var1 = 0;
7733 {
7734 { /* Inline kernel#Int#>= (var_count,var1) on <var_count:Int> */
7735 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
7736 /* <var1:Int> isa OTHER */
7737 var4 = 1; /* easy <var1:Int> isa OTHER*/
7738 if (unlikely(!var4)) {
7739 var_class_name = type_kernel__Int.name;
7740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7741 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
7742 show_backtrace(1);
7743 }
7744 var5 = var_count >= var1;
7745 var2 = var5;
7746 goto RET_LABEL3;
7747 RET_LABEL3:(void)0;
7748 }
7749 }
7750 if (unlikely(!var2)) {
7751 PRINT_ERROR("Runtime error: %s", "Assert failed");
7752 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1286);
7753 show_backtrace(1);
7754 }
7755 {
7756 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
7757 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
7758 /* <var_from:Int> isa OTHER */
7759 var8 = 1; /* easy <var_from:Int> isa OTHER*/
7760 if (unlikely(!var8)) {
7761 var_class_name11 = type_kernel__Int.name;
7762 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
7763 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7764 show_backtrace(1);
7765 }
7766 var12 = var_count + var_from;
7767 var6 = var12;
7768 goto RET_LABEL7;
7769 RET_LABEL7:(void)0;
7770 }
7771 }
7772 var_count = var6;
7773 var13 = 0;
7774 {
7775 { /* Inline kernel#Int#< (var_from,var13) on <var_from:Int> */
7776 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
7777 /* <var13:Int> isa OTHER */
7778 var16 = 1; /* easy <var13:Int> isa OTHER*/
7779 if (unlikely(!var16)) {
7780 var_class_name19 = type_kernel__Int.name;
7781 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
7782 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
7783 show_backtrace(1);
7784 }
7785 var20 = var_from < var13;
7786 var14 = var20;
7787 goto RET_LABEL15;
7788 RET_LABEL15:(void)0;
7789 }
7790 }
7791 if (var14){
7792 var21 = 0;
7793 var_from = var21;
7794 } else {
7795 }
7796 {
7797 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7798 var24 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7799 var22 = var24;
7800 RET_LABEL23:(void)0;
7801 }
7802 }
7803 {
7804 { /* Inline kernel#Int#> (var_count,var22) on <var_count:Int> */
7805 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
7806 /* <var22:Int> isa OTHER */
7807 var27 = 1; /* easy <var22:Int> isa OTHER*/
7808 if (unlikely(!var27)) {
7809 var_class_name30 = type_kernel__Int.name;
7810 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
7811 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
7812 show_backtrace(1);
7813 }
7814 var31 = var_count > var22;
7815 var25 = var31;
7816 goto RET_LABEL26;
7817 RET_LABEL26:(void)0;
7818 }
7819 }
7820 if (var25){
7821 {
7822 { /* Inline string#FlatText#length (self) on <self:FlatBuffer> */
7823 var34 = self->attrs[COLOR_string__FlatText___length].l; /* _length on <self:FlatBuffer> */
7824 var32 = var34;
7825 RET_LABEL33:(void)0;
7826 }
7827 }
7828 var_count = var32;
7829 } else {
7830 }
7831 {
7832 { /* Inline kernel#Int#< (var_from,var_count) on <var_from:Int> */
7833 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
7834 /* <var_count:Int> isa OTHER */
7835 var37 = 1; /* easy <var_count:Int> isa OTHER*/
7836 if (unlikely(!var37)) {
7837 var_class_name40 = type_kernel__Int.name;
7838 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
7839 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
7840 show_backtrace(1);
7841 }
7842 var41 = var_from < var_count;
7843 var35 = var41;
7844 goto RET_LABEL36;
7845 RET_LABEL36:(void)0;
7846 }
7847 }
7848 if (var35){
7849 var42 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
7850 {
7851 { /* Inline kernel#Int#- (var_count,var_from) on <var_count:Int> */
7852 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
7853 /* <var_from:Int> isa OTHER */
7854 var45 = 1; /* easy <var_from:Int> isa OTHER*/
7855 if (unlikely(!var45)) {
7856 var_class_name48 = type_kernel__Int.name;
7857 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
7858 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
7859 show_backtrace(1);
7860 }
7861 var49 = var_count - var_from;
7862 var43 = var49;
7863 goto RET_LABEL44;
7864 RET_LABEL44:(void)0;
7865 }
7866 }
7867 {
7868 string__FlatBuffer__with_capacity(var42, var43); /* Direct call string#FlatBuffer#with_capacity on <var42:FlatBuffer>*/
7869 }
7870 var_r = var42;
7871 for(;;) {
7872 {
7873 { /* Inline kernel#Int#< (var_from,var_count) on <var_from:Int> */
7874 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
7875 /* <var_count:Int> isa OTHER */
7876 var52 = 1; /* easy <var_count:Int> isa OTHER*/
7877 if (unlikely(!var52)) {
7878 var_class_name55 = type_kernel__Int.name;
7879 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
7880 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
7881 show_backtrace(1);
7882 }
7883 var56 = var_from < var_count;
7884 var50 = var56;
7885 goto RET_LABEL51;
7886 RET_LABEL51:(void)0;
7887 }
7888 }
7889 if (!var50) break;
7890 {
7891 { /* Inline string#FlatBuffer#chars (var_r) on <var_r:FlatBuffer> */
7892 var59 = var_r->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_r:FlatBuffer> */
7893 if (unlikely(var59 == NULL)) {
7894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
7895 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1163);
7896 show_backtrace(1);
7897 }
7898 var57 = var59;
7899 RET_LABEL58:(void)0;
7900 }
7901 }
7902 {
7903 { /* Inline string#FlatText#items (self) on <self:FlatBuffer> */
7904 var62 = self->attrs[COLOR_string__FlatText___items].str; /* _items on <self:FlatBuffer> */
7905 var60 = var62;
7906 RET_LABEL61:(void)0;
7907 }
7908 }
7909 {
7910 { /* Inline string#NativeString#[] (var60,var_from) on <var60:NativeString> */
7911 var65 = var60[var_from];
7912 var63 = var65;
7913 goto RET_LABEL64;
7914 RET_LABEL64:(void)0;
7915 }
7916 }
7917 {
7918 var66 = BOX_kernel__Char(var63); /* autobox from Char to nullable Object */
7919 ((void (*)(val*, val*))(var57->class->vft[COLOR_abstract_collection__Sequence__push]))(var57, var66) /* push on <var57:Sequence[Char]>*/;
7920 }
7921 var67 = 1;
7922 {
7923 { /* Inline kernel#Int#+ (var_from,var67) on <var_from:Int> */
7924 /* Covariant cast for argument 0 (i) <var67:Int> isa OTHER */
7925 /* <var67:Int> isa OTHER */
7926 var70 = 1; /* easy <var67:Int> isa OTHER*/
7927 if (unlikely(!var70)) {
7928 var_class_name73 = type_kernel__Int.name;
7929 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
7930 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7931 show_backtrace(1);
7932 }
7933 var74 = var_from + var67;
7934 var68 = var74;
7935 goto RET_LABEL69;
7936 RET_LABEL69:(void)0;
7937 }
7938 }
7939 var_from = var68;
7940 CONTINUE_label: (void)0;
7941 }
7942 BREAK_label: (void)0;
7943 /* <var_r:FlatBuffer> isa SELFTYPE */
7944 type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
7945 cltype76 = type_struct->color;
7946 idtype77 = type_struct->id;
7947 if(cltype76 >= var_r->type->table_size) {
7948 var75 = 0;
7949 } else {
7950 var75 = var_r->type->type_table[cltype76] == idtype77;
7951 }
7952 if (unlikely(!var75)) {
7953 var_class_name78 = var_r == NULL ? "null" : var_r->type->name;
7954 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name78);
7955 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1296);
7956 show_backtrace(1);
7957 }
7958 var = var_r;
7959 goto RET_LABEL;
7960 } else {
7961 var79 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
7962 {
7963 string__FlatBuffer__init(var79); /* Direct call string#FlatBuffer#init on <var79:FlatBuffer>*/
7964 }
7965 /* <var79:FlatBuffer> isa SELFTYPE */
7966 type_struct83 = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE];
7967 cltype81 = type_struct83->color;
7968 idtype82 = type_struct83->id;
7969 if(cltype81 >= var79->type->table_size) {
7970 var80 = 0;
7971 } else {
7972 var80 = var79->type->type_table[cltype81] == idtype82;
7973 }
7974 if (unlikely(!var80)) {
7975 var_class_name84 = var79 == NULL ? "null" : var79->type->name;
7976 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name84);
7977 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1298);
7978 show_backtrace(1);
7979 }
7980 var = var79;
7981 goto RET_LABEL;
7982 }
7983 RET_LABEL:;
7984 return var;
7985 }
7986 /* method string#FlatBuffer#substring for (self: Object, Int, Int): Text */
7987 val* VIRTUAL_string__FlatBuffer__substring(val* self, long p0, long p1) {
7988 val* var /* : Text */;
7989 val* var1 /* : FlatBuffer */;
7990 var1 = string__FlatBuffer__substring(self, p0, p1);
7991 var = var1;
7992 RET_LABEL:;
7993 return var;
7994 }
7995 /* method string#FlatBufferCharView#[] for (self: FlatBufferCharView, Int): Char */
7996 char string__FlatBufferCharView___91d_93d(val* self, long p0) {
7997 char var /* : Char */;
7998 long var_index /* var index: Int */;
7999 val* var1 /* : Text */;
8000 val* var3 /* : Text */;
8001 char* var4 /* : NativeString */;
8002 char* var6 /* : NativeString */;
8003 char var7 /* : Char */;
8004 char var9 /* : Char */;
8005 var_index = p0;
8006 {
8007 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8008 var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8009 if (unlikely(var3 == NULL)) {
8010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8011 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8012 show_backtrace(1);
8013 }
8014 var1 = var3;
8015 RET_LABEL2:(void)0;
8016 }
8017 }
8018 {
8019 { /* Inline string#FlatText#items (var1) on <var1:Text(FlatBuffer)> */
8020 var6 = var1->attrs[COLOR_string__FlatText___items].str; /* _items on <var1:Text(FlatBuffer)> */
8021 var4 = var6;
8022 RET_LABEL5:(void)0;
8023 }
8024 }
8025 {
8026 { /* Inline string#NativeString#[] (var4,var_index) on <var4:NativeString> */
8027 var9 = var4[var_index];
8028 var7 = var9;
8029 goto RET_LABEL8;
8030 RET_LABEL8:(void)0;
8031 }
8032 }
8033 var = var7;
8034 goto RET_LABEL;
8035 RET_LABEL:;
8036 return var;
8037 }
8038 /* method string#FlatBufferCharView#[] for (self: Object, Int): nullable Object */
8039 val* VIRTUAL_string__FlatBufferCharView___91d_93d(val* self, long p0) {
8040 val* var /* : nullable Object */;
8041 char var1 /* : Char */;
8042 val* var2 /* : nullable Object */;
8043 var1 = string__FlatBufferCharView___91d_93d(self, p0);
8044 var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
8045 var = var2;
8046 RET_LABEL:;
8047 return var;
8048 }
8049 /* method string#FlatBufferCharView#[]= for (self: FlatBufferCharView, Int, Char) */
8050 void string__FlatBufferCharView___91d_93d_61d(val* self, long p0, char p1) {
8051 short int var /* : Bool */;
8052 int cltype;
8053 int idtype;
8054 const char* var_class_name;
8055 long var_index /* var index: Int */;
8056 char var_item /* var item: Char */;
8057 short int var1 /* : Bool */;
8058 long var2 /* : Int */;
8059 short int var3 /* : Bool */;
8060 short int var5 /* : Bool */;
8061 int cltype6;
8062 int idtype7;
8063 const char* var_class_name8;
8064 short int var9 /* : Bool */;
8065 short int var_ /* var : Bool */;
8066 long var10 /* : Int */;
8067 short int var11 /* : Bool */;
8068 short int var13 /* : Bool */;
8069 int cltype14;
8070 int idtype15;
8071 const char* var_class_name16;
8072 short int var17 /* : Bool */;
8073 long var18 /* : Int */;
8074 short int var19 /* : Bool */;
8075 short int var20 /* : Bool */;
8076 short int var22 /* : Bool */;
8077 val* var23 /* : Text */;
8078 val* var25 /* : Text */;
8079 char* var26 /* : NativeString */;
8080 char* var28 /* : NativeString */;
8081 /* Covariant cast for argument 1 (item) <p1:Char> isa Sequence#0 */
8082 /* <p1:Char> isa Sequence#0 */
8083 var = 1; /* easy <p1:Char> isa Sequence#0*/
8084 if (unlikely(!var)) {
8085 var_class_name = type_kernel__Char.name;
8086 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name);
8087 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1379);
8088 show_backtrace(1);
8089 }
8090 var_index = p0;
8091 var_item = p1;
8092 var2 = 0;
8093 {
8094 { /* Inline kernel#Int#>= (var_index,var2) on <var_index:Int> */
8095 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
8096 /* <var2:Int> isa OTHER */
8097 var5 = 1; /* easy <var2:Int> isa OTHER*/
8098 if (unlikely(!var5)) {
8099 var_class_name8 = type_kernel__Int.name;
8100 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
8101 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
8102 show_backtrace(1);
8103 }
8104 var9 = var_index >= var2;
8105 var3 = var9;
8106 goto RET_LABEL4;
8107 RET_LABEL4:(void)0;
8108 }
8109 }
8110 var_ = var3;
8111 if (var3){
8112 {
8113 var10 = string__StringCharView__length(self);
8114 }
8115 {
8116 { /* Inline kernel#Int#<= (var_index,var10) on <var_index:Int> */
8117 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
8118 /* <var10:Int> isa OTHER */
8119 var13 = 1; /* easy <var10:Int> isa OTHER*/
8120 if (unlikely(!var13)) {
8121 var_class_name16 = type_kernel__Int.name;
8122 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
8123 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
8124 show_backtrace(1);
8125 }
8126 var17 = var_index <= var10;
8127 var11 = var17;
8128 goto RET_LABEL12;
8129 RET_LABEL12:(void)0;
8130 }
8131 }
8132 var1 = var11;
8133 } else {
8134 var1 = var_;
8135 }
8136 if (unlikely(!var1)) {
8137 PRINT_ERROR("Runtime error: %s", "Assert failed");
8138 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1381);
8139 show_backtrace(1);
8140 }
8141 {
8142 var18 = string__StringCharView__length(self);
8143 }
8144 {
8145 { /* Inline kernel#Int#== (var_index,var18) on <var_index:Int> */
8146 var22 = var_index == var18;
8147 var20 = var22;
8148 goto RET_LABEL21;
8149 RET_LABEL21:(void)0;
8150 }
8151 var19 = var20;
8152 }
8153 if (var19){
8154 {
8155 string__FlatBufferCharView__add(self, var_item); /* Direct call string#FlatBufferCharView#add on <self:FlatBufferCharView>*/
8156 }
8157 goto RET_LABEL;
8158 } else {
8159 }
8160 {
8161 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8162 var25 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8163 if (unlikely(var25 == NULL)) {
8164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8165 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8166 show_backtrace(1);
8167 }
8168 var23 = var25;
8169 RET_LABEL24:(void)0;
8170 }
8171 }
8172 {
8173 { /* Inline string#FlatText#items (var23) on <var23:Text(FlatBuffer)> */
8174 var28 = var23->attrs[COLOR_string__FlatText___items].str; /* _items on <var23:Text(FlatBuffer)> */
8175 var26 = var28;
8176 RET_LABEL27:(void)0;
8177 }
8178 }
8179 {
8180 { /* Inline string#NativeString#[]= (var26,var_index,var_item) on <var26:NativeString> */
8181 var26[var_index]=var_item;
8182 RET_LABEL29:(void)0;
8183 }
8184 }
8185 RET_LABEL:;
8186 }
8187 /* method string#FlatBufferCharView#[]= for (self: Object, Int, nullable Object) */
8188 void VIRTUAL_string__FlatBufferCharView___91d_93d_61d(val* self, long p0, val* p1) {
8189 char var /* : Char */;
8190 var = ((struct instance_kernel__Char*)p1)->value; /* autounbox from nullable Object to Char */;
8191 string__FlatBufferCharView___91d_93d_61d(self, p0, var); /* Direct call string#FlatBufferCharView#[]= on <self:Object(FlatBufferCharView)>*/
8192 RET_LABEL:;
8193 }
8194 /* method string#FlatBufferCharView#push for (self: FlatBufferCharView, Char) */
8195 void string__FlatBufferCharView__push(val* self, char p0) {
8196 short int var /* : Bool */;
8197 int cltype;
8198 int idtype;
8199 const char* var_class_name;
8200 char var_c /* var c: Char */;
8201 val* var1 /* : Text */;
8202 val* var3 /* : Text */;
8203 /* Covariant cast for argument 0 (c) <p0:Char> isa Sequence#0 */
8204 /* <p0:Char> isa Sequence#0 */
8205 var = 1; /* easy <p0:Char> isa Sequence#0*/
8206 if (unlikely(!var)) {
8207 var_class_name = type_kernel__Char.name;
8208 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name);
8209 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1389);
8210 show_backtrace(1);
8211 }
8212 var_c = p0;
8213 {
8214 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8215 var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8216 if (unlikely(var3 == NULL)) {
8217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8218 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8219 show_backtrace(1);
8220 }
8221 var1 = var3;
8222 RET_LABEL2:(void)0;
8223 }
8224 }
8225 {
8226 string__FlatBuffer__add(var1, var_c); /* Direct call string#FlatBuffer#add on <var1:Text(FlatBuffer)>*/
8227 }
8228 RET_LABEL:;
8229 }
8230 /* method string#FlatBufferCharView#push for (self: Object, nullable Object) */
8231 void VIRTUAL_string__FlatBufferCharView__push(val* self, val* p0) {
8232 char var /* : Char */;
8233 var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
8234 string__FlatBufferCharView__push(self, var); /* Direct call string#FlatBufferCharView#push on <self:Object(FlatBufferCharView)>*/
8235 RET_LABEL:;
8236 }
8237 /* method string#FlatBufferCharView#add for (self: FlatBufferCharView, Char) */
8238 void string__FlatBufferCharView__add(val* self, char p0) {
8239 short int var /* : Bool */;
8240 int cltype;
8241 int idtype;
8242 const char* var_class_name;
8243 char var_c /* var c: Char */;
8244 val* var1 /* : Text */;
8245 val* var3 /* : Text */;
8246 /* Covariant cast for argument 0 (c) <p0:Char> isa SimpleCollection#0 */
8247 /* <p0:Char> isa SimpleCollection#0 */
8248 var = 1; /* easy <p0:Char> isa SimpleCollection#0*/
8249 if (unlikely(!var)) {
8250 var_class_name = type_kernel__Char.name;
8251 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SimpleCollection#0", var_class_name);
8252 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1394);
8253 show_backtrace(1);
8254 }
8255 var_c = p0;
8256 {
8257 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8258 var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8259 if (unlikely(var3 == NULL)) {
8260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8261 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8262 show_backtrace(1);
8263 }
8264 var1 = var3;
8265 RET_LABEL2:(void)0;
8266 }
8267 }
8268 {
8269 string__FlatBuffer__add(var1, var_c); /* Direct call string#FlatBuffer#add on <var1:Text(FlatBuffer)>*/
8270 }
8271 RET_LABEL:;
8272 }
8273 /* method string#FlatBufferCharView#add for (self: Object, nullable Object) */
8274 void VIRTUAL_string__FlatBufferCharView__add(val* self, val* p0) {
8275 char var /* : Char */;
8276 var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
8277 string__FlatBufferCharView__add(self, var); /* Direct call string#FlatBufferCharView#add on <self:Object(FlatBufferCharView)>*/
8278 RET_LABEL:;
8279 }
8280 /* method string#FlatBufferCharView#enlarge for (self: FlatBufferCharView, Int) */
8281 void string__FlatBufferCharView__enlarge(val* self, long p0) {
8282 long var_cap /* var cap: Int */;
8283 val* var /* : Text */;
8284 val* var2 /* : Text */;
8285 var_cap = p0;
8286 {
8287 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8288 var2 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8289 if (unlikely(var2 == NULL)) {
8290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8291 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8292 show_backtrace(1);
8293 }
8294 var = var2;
8295 RET_LABEL1:(void)0;
8296 }
8297 }
8298 {
8299 string__FlatBuffer__enlarge(var, var_cap); /* Direct call string#FlatBuffer#enlarge on <var:Text(FlatBuffer)>*/
8300 }
8301 RET_LABEL:;
8302 }
8303 /* method string#FlatBufferCharView#enlarge for (self: Object, Int) */
8304 void VIRTUAL_string__FlatBufferCharView__enlarge(val* self, long p0) {
8305 string__FlatBufferCharView__enlarge(self, p0); /* Direct call string#FlatBufferCharView#enlarge on <self:Object(FlatBufferCharView)>*/
8306 RET_LABEL:;
8307 }
8308 /* method string#FlatBufferCharView#append for (self: FlatBufferCharView, Collection[Char]) */
8309 void string__FlatBufferCharView__append(val* self, val* p0) {
8310 short int var /* : Bool */;
8311 int cltype;
8312 int idtype;
8313 const char* var_class_name;
8314 val* var_s /* var s: Collection[Char] */;
8315 val* var1 /* : Text */;
8316 val* var3 /* : Text */;
8317 char* var4 /* : NativeString */;
8318 char* var6 /* : NativeString */;
8319 char* var_my_items /* var my_items: NativeString */;
8320 long var7 /* : Int */;
8321 long var_s_length /* var s_length: Int */;
8322 val* var8 /* : Text */;
8323 val* var10 /* : Text */;
8324 long var11 /* : Int */;
8325 long var13 /* : Int */;
8326 long var14 /* : Int */;
8327 short int var15 /* : Bool */;
8328 short int var17 /* : Bool */;
8329 int cltype18;
8330 int idtype19;
8331 const char* var_class_name20;
8332 short int var21 /* : Bool */;
8333 val* var22 /* : Text */;
8334 val* var24 /* : Text */;
8335 long var25 /* : Int */;
8336 long var27 /* : Int */;
8337 long var28 /* : Int */;
8338 short int var30 /* : Bool */;
8339 int cltype31;
8340 int idtype32;
8341 const char* var_class_name33;
8342 long var34 /* : Int */;
8343 /* Covariant cast for argument 0 (s) <p0:Collection[Char]> isa Collection[Sequence#0] */
8344 /* <p0:Collection[Char]> isa Collection[Sequence#0] */
8345 var = 1; /* easy <p0:Collection[Char]> isa Collection[Sequence#0]*/
8346 if (unlikely(!var)) {
8347 var_class_name = p0 == NULL ? "null" : p0->type->name;
8348 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Sequence#0]", var_class_name);
8349 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1404);
8350 show_backtrace(1);
8351 }
8352 var_s = p0;
8353 {
8354 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8355 var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8356 if (unlikely(var3 == NULL)) {
8357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8358 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8359 show_backtrace(1);
8360 }
8361 var1 = var3;
8362 RET_LABEL2:(void)0;
8363 }
8364 }
8365 {
8366 { /* Inline string#FlatText#items (var1) on <var1:Text(FlatBuffer)> */
8367 var6 = var1->attrs[COLOR_string__FlatText___items].str; /* _items on <var1:Text(FlatBuffer)> */
8368 var4 = var6;
8369 RET_LABEL5:(void)0;
8370 }
8371 }
8372 var_my_items = var4;
8373 {
8374 var7 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:Collection[Char]>*/;
8375 }
8376 var_s_length = var7;
8377 {
8378 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8379 var10 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8380 if (unlikely(var10 == NULL)) {
8381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8382 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8383 show_backtrace(1);
8384 }
8385 var8 = var10;
8386 RET_LABEL9:(void)0;
8387 }
8388 }
8389 {
8390 { /* Inline string#FlatBuffer#capacity (var8) on <var8:Text(FlatBuffer)> */
8391 var13 = var8->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on <var8:Text(FlatBuffer)> */
8392 var11 = var13;
8393 RET_LABEL12:(void)0;
8394 }
8395 }
8396 {
8397 var14 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:Collection[Char]>*/;
8398 }
8399 {
8400 { /* Inline kernel#Int#< (var11,var14) on <var11:Int> */
8401 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
8402 /* <var14:Int> isa OTHER */
8403 var17 = 1; /* easy <var14:Int> isa OTHER*/
8404 if (unlikely(!var17)) {
8405 var_class_name20 = type_kernel__Int.name;
8406 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
8407 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
8408 show_backtrace(1);
8409 }
8410 var21 = var11 < var14;
8411 var15 = var21;
8412 goto RET_LABEL16;
8413 RET_LABEL16:(void)0;
8414 }
8415 }
8416 if (var15){
8417 {
8418 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8419 var24 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8420 if (unlikely(var24 == NULL)) {
8421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8422 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8423 show_backtrace(1);
8424 }
8425 var22 = var24;
8426 RET_LABEL23:(void)0;
8427 }
8428 }
8429 {
8430 { /* Inline string#FlatText#length (var22) on <var22:Text(FlatBuffer)> */
8431 var27 = var22->attrs[COLOR_string__FlatText___length].l; /* _length on <var22:Text(FlatBuffer)> */
8432 var25 = var27;
8433 RET_LABEL26:(void)0;
8434 }
8435 }
8436 {
8437 { /* Inline kernel#Int#+ (var_s_length,var25) on <var_s_length:Int> */
8438 /* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
8439 /* <var25:Int> isa OTHER */
8440 var30 = 1; /* easy <var25:Int> isa OTHER*/
8441 if (unlikely(!var30)) {
8442 var_class_name33 = type_kernel__Int.name;
8443 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
8444 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
8445 show_backtrace(1);
8446 }
8447 var34 = var_s_length + var25;
8448 var28 = var34;
8449 goto RET_LABEL29;
8450 RET_LABEL29:(void)0;
8451 }
8452 }
8453 {
8454 string__FlatBufferCharView__enlarge(self, var28); /* Direct call string#FlatBufferCharView#enlarge on <self:FlatBufferCharView>*/
8455 }
8456 } else {
8457 }
8458 RET_LABEL:;
8459 }
8460 /* method string#FlatBufferCharView#append for (self: Object, Collection[nullable Object]) */
8461 void VIRTUAL_string__FlatBufferCharView__append(val* self, val* p0) {
8462 string__FlatBufferCharView__append(self, p0); /* Direct call string#FlatBufferCharView#append on <self:Object(FlatBufferCharView)>*/
8463 RET_LABEL:;
8464 }
8465 /* method string#FlatBufferCharView#iterator_from for (self: FlatBufferCharView, Int): IndexedIterator[Char] */
8466 val* string__FlatBufferCharView__iterator_from(val* self, long p0) {
8467 val* var /* : IndexedIterator[Char] */;
8468 long var_pos /* var pos: Int */;
8469 val* var1 /* : FlatBufferIterator */;
8470 val* var2 /* : Text */;
8471 val* var4 /* : Text */;
8472 var_pos = p0;
8473 var1 = NEW_string__FlatBufferIterator(&type_string__FlatBufferIterator);
8474 {
8475 { /* Inline string#StringCharView#target (self) on <self:FlatBufferCharView> */
8476 var4 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on <self:FlatBufferCharView> */
8477 if (unlikely(var4 == NULL)) {
8478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8479 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 579);
8480 show_backtrace(1);
8481 }
8482 var2 = var4;
8483 RET_LABEL3:(void)0;
8484 }
8485 }
8486 {
8487 string__FlatBufferIterator__with_pos(var1, var2, var_pos); /* Direct call string#FlatBufferIterator#with_pos on <var1:FlatBufferIterator>*/
8488 }
8489 var = var1;
8490 goto RET_LABEL;
8491 RET_LABEL:;
8492 return var;
8493 }
8494 /* method string#FlatBufferCharView#iterator_from for (self: Object, Int): IndexedIterator[nullable Object] */
8495 val* VIRTUAL_string__FlatBufferCharView__iterator_from(val* self, long p0) {
8496 val* var /* : IndexedIterator[nullable Object] */;
8497 val* var1 /* : IndexedIterator[Char] */;
8498 var1 = string__FlatBufferCharView__iterator_from(self, p0);
8499 var = var1;
8500 RET_LABEL:;
8501 return var;
8502 }
8503 /* method string#FlatBufferIterator#target for (self: FlatBufferIterator): FlatBuffer */
8504 val* string__FlatBufferIterator__target(val* self) {
8505 val* var /* : FlatBuffer */;
8506 val* var1 /* : FlatBuffer */;
8507 var1 = self->attrs[COLOR_string__FlatBufferIterator___target].val; /* _target on <self:FlatBufferIterator> */
8508 if (unlikely(var1 == NULL)) {
8509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8510 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1420);
8511 show_backtrace(1);
8512 }
8513 var = var1;
8514 RET_LABEL:;
8515 return var;
8516 }
8517 /* method string#FlatBufferIterator#target for (self: Object): FlatBuffer */
8518 val* VIRTUAL_string__FlatBufferIterator__target(val* self) {
8519 val* var /* : FlatBuffer */;
8520 val* var1 /* : FlatBuffer */;
8521 val* var3 /* : FlatBuffer */;
8522 { /* Inline string#FlatBufferIterator#target (self) on <self:Object(FlatBufferIterator)> */
8523 var3 = self->attrs[COLOR_string__FlatBufferIterator___target].val; /* _target on <self:Object(FlatBufferIterator)> */
8524 if (unlikely(var3 == NULL)) {
8525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8526 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1420);
8527 show_backtrace(1);
8528 }
8529 var1 = var3;
8530 RET_LABEL2:(void)0;
8531 }
8532 var = var1;
8533 RET_LABEL:;
8534 return var;
8535 }
8536 /* method string#FlatBufferIterator#target= for (self: FlatBufferIterator, FlatBuffer) */
8537 void string__FlatBufferIterator__target_61d(val* self, val* p0) {
8538 self->attrs[COLOR_string__FlatBufferIterator___target].val = p0; /* _target on <self:FlatBufferIterator> */
8539 RET_LABEL:;
8540 }
8541 /* method string#FlatBufferIterator#target= for (self: Object, FlatBuffer) */
8542 void VIRTUAL_string__FlatBufferIterator__target_61d(val* self, val* p0) {
8543 { /* Inline string#FlatBufferIterator#target= (self,p0) on <self:Object(FlatBufferIterator)> */
8544 self->attrs[COLOR_string__FlatBufferIterator___target].val = p0; /* _target on <self:Object(FlatBufferIterator)> */
8545 RET_LABEL1:(void)0;
8546 }
8547 RET_LABEL:;
8548 }
8549 /* method string#FlatBufferIterator#target_items for (self: FlatBufferIterator): NativeString */
8550 char* string__FlatBufferIterator__target_items(val* self) {
8551 char* var /* : NativeString */;
8552 char* var1 /* : NativeString */;
8553 var1 = self->attrs[COLOR_string__FlatBufferIterator___target_items].str; /* _target_items on <self:FlatBufferIterator> */
8554 var = var1;
8555 RET_LABEL:;
8556 return var;
8557 }
8558 /* method string#FlatBufferIterator#target_items for (self: Object): NativeString */
8559 char* VIRTUAL_string__FlatBufferIterator__target_items(val* self) {
8560 char* var /* : NativeString */;
8561 char* var1 /* : NativeString */;
8562 char* var3 /* : NativeString */;
8563 { /* Inline string#FlatBufferIterator#target_items (self) on <self:Object(FlatBufferIterator)> */
8564 var3 = self->attrs[COLOR_string__FlatBufferIterator___target_items].str; /* _target_items on <self:Object(FlatBufferIterator)> */
8565 var1 = var3;
8566 RET_LABEL2:(void)0;
8567 }
8568 var = var1;
8569 RET_LABEL:;
8570 return var;
8571 }
8572 /* method string#FlatBufferIterator#target_items= for (self: FlatBufferIterator, NativeString) */
8573 void string__FlatBufferIterator__target_items_61d(val* self, char* p0) {
8574 self->attrs[COLOR_string__FlatBufferIterator___target_items].str = p0; /* _target_items on <self:FlatBufferIterator> */
8575 RET_LABEL:;
8576 }
8577 /* method string#FlatBufferIterator#target_items= for (self: Object, NativeString) */
8578 void VIRTUAL_string__FlatBufferIterator__target_items_61d(val* self, char* p0) {
8579 { /* Inline string#FlatBufferIterator#target_items= (self,p0) on <self:Object(FlatBufferIterator)> */
8580 self->attrs[COLOR_string__FlatBufferIterator___target_items].str = p0; /* _target_items on <self:Object(FlatBufferIterator)> */
8581 RET_LABEL1:(void)0;
8582 }
8583 RET_LABEL:;
8584 }
8585 /* method string#FlatBufferIterator#curr_pos for (self: FlatBufferIterator): Int */
8586 long string__FlatBufferIterator__curr_pos(val* self) {
8587 long var /* : Int */;
8588 long var1 /* : Int */;
8589 var1 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferIterator> */
8590 var = var1;
8591 RET_LABEL:;
8592 return var;
8593 }
8594 /* method string#FlatBufferIterator#curr_pos for (self: Object): Int */
8595 long VIRTUAL_string__FlatBufferIterator__curr_pos(val* self) {
8596 long var /* : Int */;
8597 long var1 /* : Int */;
8598 long var3 /* : Int */;
8599 { /* Inline string#FlatBufferIterator#curr_pos (self) on <self:Object(FlatBufferIterator)> */
8600 var3 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:Object(FlatBufferIterator)> */
8601 var1 = var3;
8602 RET_LABEL2:(void)0;
8603 }
8604 var = var1;
8605 RET_LABEL:;
8606 return var;
8607 }
8608 /* method string#FlatBufferIterator#curr_pos= for (self: FlatBufferIterator, Int) */
8609 void string__FlatBufferIterator__curr_pos_61d(val* self, long p0) {
8610 self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = p0; /* _curr_pos on <self:FlatBufferIterator> */
8611 RET_LABEL:;
8612 }
8613 /* method string#FlatBufferIterator#curr_pos= for (self: Object, Int) */
8614 void VIRTUAL_string__FlatBufferIterator__curr_pos_61d(val* self, long p0) {
8615 { /* Inline string#FlatBufferIterator#curr_pos= (self,p0) on <self:Object(FlatBufferIterator)> */
8616 self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = p0; /* _curr_pos on <self:Object(FlatBufferIterator)> */
8617 RET_LABEL1:(void)0;
8618 }
8619 RET_LABEL:;
8620 }
8621 /* method string#FlatBufferIterator#with_pos for (self: FlatBufferIterator, FlatBuffer, Int) */
8622 void string__FlatBufferIterator__with_pos(val* self, val* p0, long p1) {
8623 val* var_tgt /* var tgt: FlatBuffer */;
8624 long var_pos /* var pos: Int */;
8625 long var /* : Int */;
8626 long var3 /* : Int */;
8627 long var4 /* : Int */;
8628 short int var5 /* : Bool */;
8629 short int var7 /* : Bool */;
8630 int cltype;
8631 int idtype;
8632 const char* var_class_name;
8633 short int var8 /* : Bool */;
8634 char* var9 /* : NativeString */;
8635 char* var11 /* : NativeString */;
8636 var_tgt = p0;
8637 var_pos = p1;
8638 {
8639 { /* Inline string#FlatBufferIterator#target= (self,var_tgt) on <self:FlatBufferIterator> */
8640 self->attrs[COLOR_string__FlatBufferIterator___target].val = var_tgt; /* _target on <self:FlatBufferIterator> */
8641 RET_LABEL1:(void)0;
8642 }
8643 }
8644 {
8645 { /* Inline string#FlatText#length (var_tgt) on <var_tgt:FlatBuffer> */
8646 var3 = var_tgt->attrs[COLOR_string__FlatText___length].l; /* _length on <var_tgt:FlatBuffer> */
8647 var = var3;
8648 RET_LABEL2:(void)0;
8649 }
8650 }
8651 var4 = 0;
8652 {
8653 { /* Inline kernel#Int#> (var,var4) on <var:Int> */
8654 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
8655 /* <var4:Int> isa OTHER */
8656 var7 = 1; /* easy <var4:Int> isa OTHER*/
8657 if (unlikely(!var7)) {
8658 var_class_name = type_kernel__Int.name;
8659 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8660 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
8661 show_backtrace(1);
8662 }
8663 var8 = var > var4;
8664 var5 = var8;
8665 goto RET_LABEL6;
8666 RET_LABEL6:(void)0;
8667 }
8668 }
8669 if (var5){
8670 {
8671 { /* Inline string#FlatText#items (var_tgt) on <var_tgt:FlatBuffer> */
8672 var11 = var_tgt->attrs[COLOR_string__FlatText___items].str; /* _items on <var_tgt:FlatBuffer> */
8673 var9 = var11;
8674 RET_LABEL10:(void)0;
8675 }
8676 }
8677 {
8678 { /* Inline string#FlatBufferIterator#target_items= (self,var9) on <self:FlatBufferIterator> */
8679 self->attrs[COLOR_string__FlatBufferIterator___target_items].str = var9; /* _target_items on <self:FlatBufferIterator> */
8680 RET_LABEL12:(void)0;
8681 }
8682 }
8683 } else {
8684 }
8685 {
8686 { /* Inline string#FlatBufferIterator#curr_pos= (self,var_pos) on <self:FlatBufferIterator> */
8687 self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = var_pos; /* _curr_pos on <self:FlatBufferIterator> */
8688 RET_LABEL13:(void)0;
8689 }
8690 }
8691 RET_LABEL:;
8692 }
8693 /* method string#FlatBufferIterator#with_pos for (self: Object, FlatBuffer, Int) */
8694 void VIRTUAL_string__FlatBufferIterator__with_pos(val* self, val* p0, long p1) {
8695 string__FlatBufferIterator__with_pos(self, p0, p1); /* Direct call string#FlatBufferIterator#with_pos on <self:Object(FlatBufferIterator)>*/
8696 RET_LABEL:;
8697 }
8698 /* method string#FlatBufferIterator#index for (self: FlatBufferIterator): Int */
8699 long string__FlatBufferIterator__index(val* self) {
8700 long var /* : Int */;
8701 long var1 /* : Int */;
8702 long var3 /* : Int */;
8703 {
8704 { /* Inline string#FlatBufferIterator#curr_pos (self) on <self:FlatBufferIterator> */
8705 var3 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferIterator> */
8706 var1 = var3;
8707 RET_LABEL2:(void)0;
8708 }
8709 }
8710 var = var1;
8711 goto RET_LABEL;
8712 RET_LABEL:;
8713 return var;
8714 }
8715 /* method string#FlatBufferIterator#index for (self: Object): Int */
8716 long VIRTUAL_string__FlatBufferIterator__index(val* self) {
8717 long var /* : Int */;
8718 long var1 /* : Int */;
8719 var1 = string__FlatBufferIterator__index(self);
8720 var = var1;
8721 RET_LABEL:;
8722 return var;
8723 }
8724 /* method string#FlatBufferIterator#is_ok for (self: FlatBufferIterator): Bool */
8725 short int string__FlatBufferIterator__is_ok(val* self) {
8726 short int var /* : Bool */;
8727 long var1 /* : Int */;
8728 long var3 /* : Int */;
8729 val* var4 /* : FlatBuffer */;
8730 val* var6 /* : FlatBuffer */;
8731 long var7 /* : Int */;
8732 long var9 /* : Int */;
8733 short int var10 /* : Bool */;
8734 short int var12 /* : Bool */;
8735 int cltype;
8736 int idtype;
8737 const char* var_class_name;
8738 short int var13 /* : Bool */;
8739 {
8740 { /* Inline string#FlatBufferIterator#curr_pos (self) on <self:FlatBufferIterator> */
8741 var3 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferIterator> */
8742 var1 = var3;
8743 RET_LABEL2:(void)0;
8744 }
8745 }
8746 {
8747 { /* Inline string#FlatBufferIterator#target (self) on <self:FlatBufferIterator> */
8748 var6 = self->attrs[COLOR_string__FlatBufferIterator___target].val; /* _target on <self:FlatBufferIterator> */
8749 if (unlikely(var6 == NULL)) {
8750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
8751 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1420);
8752 show_backtrace(1);
8753 }
8754 var4 = var6;
8755 RET_LABEL5:(void)0;
8756 }
8757 }
8758 {
8759 { /* Inline string#FlatText#length (var4) on <var4:FlatBuffer> */
8760 var9 = var4->attrs[COLOR_string__FlatText___length].l; /* _length on <var4:FlatBuffer> */
8761 var7 = var9;
8762 RET_LABEL8:(void)0;
8763 }
8764 }
8765 {
8766 { /* Inline kernel#Int#< (var1,var7) on <var1:Int> */
8767 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
8768 /* <var7:Int> isa OTHER */
8769 var12 = 1; /* easy <var7:Int> isa OTHER*/
8770 if (unlikely(!var12)) {
8771 var_class_name = type_kernel__Int.name;
8772 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8773 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
8774 show_backtrace(1);
8775 }
8776 var13 = var1 < var7;
8777 var10 = var13;
8778 goto RET_LABEL11;
8779 RET_LABEL11:(void)0;
8780 }
8781 }
8782 var = var10;
8783 goto RET_LABEL;
8784 RET_LABEL:;
8785 return var;
8786 }
8787 /* method string#FlatBufferIterator#is_ok for (self: Object): Bool */
8788 short int VIRTUAL_string__FlatBufferIterator__is_ok(val* self) {
8789 short int var /* : Bool */;
8790 short int var1 /* : Bool */;
8791 var1 = string__FlatBufferIterator__is_ok(self);
8792 var = var1;
8793 RET_LABEL:;
8794 return var;
8795 }
8796 /* method string#FlatBufferIterator#item for (self: FlatBufferIterator): Char */
8797 char string__FlatBufferIterator__item(val* self) {
8798 char var /* : Char */;
8799 char* var1 /* : NativeString */;
8800 char* var3 /* : NativeString */;
8801 long var4 /* : Int */;
8802 long var6 /* : Int */;
8803 char var7 /* : Char */;
8804 char var9 /* : Char */;
8805 {
8806 { /* Inline string#FlatBufferIterator#target_items (self) on <self:FlatBufferIterator> */
8807 var3 = self->attrs[COLOR_string__FlatBufferIterator___target_items].str; /* _target_items on <self:FlatBufferIterator> */
8808 var1 = var3;
8809 RET_LABEL2:(void)0;
8810 }
8811 }
8812 {
8813 { /* Inline string#FlatBufferIterator#curr_pos (self) on <self:FlatBufferIterator> */
8814 var6 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferIterator> */
8815 var4 = var6;
8816 RET_LABEL5:(void)0;
8817 }
8818 }
8819 {
8820 { /* Inline string#NativeString#[] (var1,var4) on <var1:NativeString> */
8821 var9 = var1[var4];
8822 var7 = var9;
8823 goto RET_LABEL8;
8824 RET_LABEL8:(void)0;
8825 }
8826 }
8827 var = var7;
8828 goto RET_LABEL;
8829 RET_LABEL:;
8830 return var;
8831 }
8832 /* method string#FlatBufferIterator#item for (self: Object): nullable Object */
8833 val* VIRTUAL_string__FlatBufferIterator__item(val* self) {
8834 val* var /* : nullable Object */;
8835 char var1 /* : Char */;
8836 val* var2 /* : nullable Object */;
8837 var1 = string__FlatBufferIterator__item(self);
8838 var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
8839 var = var2;
8840 RET_LABEL:;
8841 return var;
8842 }
8843 /* method string#FlatBufferIterator#next for (self: FlatBufferIterator) */
8844 void string__FlatBufferIterator__next(val* self) {
8845 val* var_ /* var : FlatBufferIterator */;
8846 long var /* : Int */;
8847 long var2 /* : Int */;
8848 long var3 /* : Int */;
8849 long var4 /* : Int */;
8850 short int var6 /* : Bool */;
8851 int cltype;
8852 int idtype;
8853 const char* var_class_name;
8854 long var7 /* : Int */;
8855 var_ = self;
8856 {
8857 { /* Inline string#FlatBufferIterator#curr_pos (var_) on <var_:FlatBufferIterator> */
8858 var2 = var_->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <var_:FlatBufferIterator> */
8859 var = var2;
8860 RET_LABEL1:(void)0;
8861 }
8862 }
8863 var3 = 1;
8864 {
8865 { /* Inline kernel#Int#+ (var,var3) on <var:Int> */
8866 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
8867 /* <var3:Int> isa OTHER */
8868 var6 = 1; /* easy <var3:Int> isa OTHER*/
8869 if (unlikely(!var6)) {
8870 var_class_name = type_kernel__Int.name;
8871 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8872 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
8873 show_backtrace(1);
8874 }
8875 var7 = var + var3;
8876 var4 = var7;
8877 goto RET_LABEL5;
8878 RET_LABEL5:(void)0;
8879 }
8880 }
8881 {
8882 { /* Inline string#FlatBufferIterator#curr_pos= (var_,var4) on <var_:FlatBufferIterator> */
8883 var_->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = var4; /* _curr_pos on <var_:FlatBufferIterator> */
8884 RET_LABEL8:(void)0;
8885 }
8886 }
8887 RET_LABEL:;
8888 }
8889 /* method string#FlatBufferIterator#next for (self: Object) */
8890 void VIRTUAL_string__FlatBufferIterator__next(val* self) {
8891 string__FlatBufferIterator__next(self); /* Direct call string#FlatBufferIterator#next on <self:Object(FlatBufferIterator)>*/
8892 RET_LABEL:;
8893 }
8894 /* method string#Object#to_s for (self: Object): String */
8895 val* string__Object__to_s(val* self) {
8896 val* var /* : String */;
8897 val* var1 /* : String */;
8898 {
8899 var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__inspect]))(self) /* inspect on <self:Object>*/;
8900 }
8901 var = var1;
8902 goto RET_LABEL;
8903 RET_LABEL:;
8904 return var;
8905 }
8906 /* method string#Object#to_s for (self: Object): String */
8907 val* VIRTUAL_string__Object__to_s(val* self) {
8908 val* var /* : String */;
8909 val* var1 /* : String */;
8910 var1 = string__Object__to_s(self);
8911 var = var1;
8912 RET_LABEL:;
8913 return var;
8914 }
8915 /* method string#Object#native_class_name for (self: Object): NativeString */
8916 char* string__Object__native_class_name(val* self) {
8917 char* var /* : NativeString */;
8918 const char* var_class_name;
8919 char* var1 /* : NativeString */;
8920 var_class_name = self == NULL ? "null" : self->type->name;
8921 var1 = (char*)var_class_name;
8922 var = var1;
8923 goto RET_LABEL;
8924 RET_LABEL:;
8925 return var;
8926 }
8927 /* method string#Object#native_class_name for (self: Object): NativeString */
8928 char* VIRTUAL_string__Object__native_class_name(val* self) {
8929 char* var /* : NativeString */;
8930 char* var1 /* : NativeString */;
8931 const char* var_class_name;
8932 char* var3 /* : NativeString */;
8933 { /* Inline string#Object#native_class_name (self) on <self:Object> */
8934 var_class_name = self == NULL ? "null" : self->type->name;
8935 var3 = (char*)var_class_name;
8936 var1 = var3;
8937 goto RET_LABEL2;
8938 RET_LABEL2:(void)0;
8939 }
8940 var = var1;
8941 RET_LABEL:;
8942 return var;
8943 }
8944 /* method string#Object#class_name for (self: Object): String */
8945 val* string__Object__class_name(val* self) {
8946 val* var /* : String */;
8947 char* var1 /* : NativeString */;
8948 const char* var_class_name;
8949 char* var3 /* : NativeString */;
8950 val* var4 /* : String */;
8951 {
8952 { /* Inline string#Object#native_class_name (self) on <self:Object> */
8953 var_class_name = self == NULL ? "null" : self->type->name;
8954 var3 = (char*)var_class_name;
8955 var1 = var3;
8956 goto RET_LABEL2;
8957 RET_LABEL2:(void)0;
8958 }
8959 }
8960 {
8961 var4 = string__NativeString__to_s(var1);
8962 }
8963 var = var4;
8964 goto RET_LABEL;
8965 RET_LABEL:;
8966 return var;
8967 }
8968 /* method string#Object#class_name for (self: Object): String */
8969 val* VIRTUAL_string__Object__class_name(val* self) {
8970 val* var /* : String */;
8971 val* var1 /* : String */;
8972 var1 = string__Object__class_name(self);
8973 var = var1;
8974 RET_LABEL:;
8975 return var;
8976 }
8977 /* method string#Object#inspect for (self: Object): String */
8978 val* string__Object__inspect(val* self) {
8979 val* var /* : String */;
8980 static val* varonce;
8981 val* var1 /* : String */;
8982 char* var2 /* : NativeString */;
8983 long var3 /* : Int */;
8984 val* var4 /* : FlatString */;
8985 val* var5 /* : String */;
8986 static val* varonce6;
8987 val* var7 /* : String */;
8988 char* var8 /* : NativeString */;
8989 long var9 /* : Int */;
8990 val* var10 /* : FlatString */;
8991 val* var11 /* : Array[Object] */;
8992 long var12 /* : Int */;
8993 val* var13 /* : NativeArray[Object] */;
8994 val* var14 /* : String */;
8995 if (varonce) {
8996 var1 = varonce;
8997 } else {
8998 var2 = "<";
8999 var3 = 1;
9000 var4 = string__NativeString__to_s_with_length(var2, var3);
9001 var1 = var4;
9002 varonce = var1;
9003 }
9004 {
9005 var5 = string__Object__inspect_head(self);
9006 }
9007 if (varonce6) {
9008 var7 = varonce6;
9009 } else {
9010 var8 = ">";
9011 var9 = 1;
9012 var10 = string__NativeString__to_s_with_length(var8, var9);
9013 var7 = var10;
9014 varonce6 = var7;
9015 }
9016 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
9017 { /* var11 = array_instance Array[Object] */
9018 var12 = 3;
9019 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
9020 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var1;
9021 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var5;
9022 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var7;
9023 {
9024 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
9025 }
9026 }
9027 {
9028 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
9029 }
9030 var = var14;
9031 goto RET_LABEL;
9032 RET_LABEL:;
9033 return var;
9034 }
9035 /* method string#Object#inspect for (self: Object): String */
9036 val* VIRTUAL_string__Object__inspect(val* self) {
9037 val* var /* : String */;
9038 val* var1 /* : String */;
9039 var1 = string__Object__inspect(self);
9040 var = var1;
9041 RET_LABEL:;
9042 return var;
9043 }
9044 /* method string#Object#inspect_head for (self: Object): String */
9045 val* string__Object__inspect_head(val* self) {
9046 val* var /* : String */;
9047 val* var1 /* : String */;
9048 static val* varonce;
9049 val* var2 /* : String */;
9050 char* var3 /* : NativeString */;
9051 long var4 /* : Int */;
9052 val* var5 /* : FlatString */;
9053 long var6 /* : Int */;
9054 val* var7 /* : String */;
9055 val* var8 /* : Array[Object] */;
9056 long var9 /* : Int */;
9057 val* var10 /* : NativeArray[Object] */;
9058 val* var11 /* : String */;
9059 {
9060 var1 = string__Object__class_name(self);
9061 }
9062 if (varonce) {
9063 var2 = varonce;
9064 } else {
9065 var3 = ":#";
9066 var4 = 2;
9067 var5 = string__NativeString__to_s_with_length(var3, var4);
9068 var2 = var5;
9069 varonce = var2;
9070 }
9071 {
9072 var6 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
9073 }
9074 {
9075 var7 = string__Int__to_hex(var6);
9076 }
9077 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9078 { /* var8 = array_instance Array[Object] */
9079 var9 = 3;
9080 var10 = NEW_array__NativeArray(var9, &type_array__NativeArraykernel__Object);
9081 ((struct instance_array__NativeArray*)var10)->values[0] = (val*) var1;
9082 ((struct instance_array__NativeArray*)var10)->values[1] = (val*) var2;
9083 ((struct instance_array__NativeArray*)var10)->values[2] = (val*) var7;
9084 {
9085 ((void (*)(val*, val*, long))(var8->class->vft[COLOR_array__Array__with_native]))(var8, var10, var9) /* with_native on <var8:Array[Object]>*/;
9086 }
9087 }
9088 {
9089 var11 = ((val* (*)(val*))(var8->class->vft[COLOR_string__Object__to_s]))(var8) /* to_s on <var8:Array[Object]>*/;
9090 }
9091 var = var11;
9092 goto RET_LABEL;
9093 RET_LABEL:;
9094 return var;
9095 }
9096 /* method string#Object#inspect_head for (self: Object): String */
9097 val* VIRTUAL_string__Object__inspect_head(val* self) {
9098 val* var /* : String */;
9099 val* var1 /* : String */;
9100 var1 = string__Object__inspect_head(self);
9101 var = var1;
9102 RET_LABEL:;
9103 return var;
9104 }
9105 /* method string#Object#args for (self: Object): Sequence[String] */
9106 val* string__Object__args(val* self) {
9107 val* var /* : Sequence[String] */;
9108 val* var1 /* : Sys */;
9109 val* var3 /* : Sys */;
9110 val* var4 /* : Sequence[String] */;
9111 {
9112 { /* Inline kernel#Object#sys (self) on <self:Object> */
9113 var3 = glob_sys;
9114 var1 = var3;
9115 goto RET_LABEL2;
9116 RET_LABEL2:(void)0;
9117 }
9118 }
9119 {
9120 var4 = string__Sys__program_args(var1);
9121 }
9122 var = var4;
9123 goto RET_LABEL;
9124 RET_LABEL:;
9125 return var;
9126 }
9127 /* method string#Object#args for (self: Object): Sequence[String] */
9128 val* VIRTUAL_string__Object__args(val* self) {
9129 val* var /* : Sequence[String] */;
9130 val* var1 /* : Sequence[String] */;
9131 var1 = string__Object__args(self);
9132 var = var1;
9133 RET_LABEL:;
9134 return var;
9135 }
9136 /* method string#Bool#to_s for (self: Bool): String */
9137 val* string__Bool__to_s(short int self) {
9138 val* var /* : String */;
9139 static val* varonce;
9140 static int varonce_guard;
9141 val* var1 /* : String */;
9142 static val* varonce2;
9143 val* var3 /* : String */;
9144 char* var4 /* : NativeString */;
9145 long var5 /* : Int */;
9146 val* var6 /* : FlatString */;
9147 static val* varonce7;
9148 static int varonce7_guard;
9149 val* var8 /* : String */;
9150 static val* varonce9;
9151 val* var10 /* : String */;
9152 char* var11 /* : NativeString */;
9153 long var12 /* : Int */;
9154 val* var13 /* : FlatString */;
9155 if (self){
9156 if (varonce_guard) {
9157 var1 = varonce;
9158 } else {
9159 if (varonce2) {
9160 var3 = varonce2;
9161 } else {
9162 var4 = "true";
9163 var5 = 4;
9164 var6 = string__NativeString__to_s_with_length(var4, var5);
9165 var3 = var6;
9166 varonce2 = var3;
9167 }
9168 var1 = var3;
9169 varonce = var1;
9170 varonce_guard = 1;
9171 }
9172 var = var1;
9173 goto RET_LABEL;
9174 } else {
9175 if (varonce7_guard) {
9176 var8 = varonce7;
9177 } else {
9178 if (varonce9) {
9179 var10 = varonce9;
9180 } else {
9181 var11 = "false";
9182 var12 = 5;
9183 var13 = string__NativeString__to_s_with_length(var11, var12);
9184 var10 = var13;
9185 varonce9 = var10;
9186 }
9187 var8 = var10;
9188 varonce7 = var8;
9189 varonce7_guard = 1;
9190 }
9191 var = var8;
9192 goto RET_LABEL;
9193 }
9194 RET_LABEL:;
9195 return var;
9196 }
9197 /* method string#Bool#to_s for (self: Object): String */
9198 val* VIRTUAL_string__Bool__to_s(val* self) {
9199 val* var /* : String */;
9200 val* var1 /* : String */;
9201 short int var2 /* : Bool */;
9202 var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
9203 var1 = string__Bool__to_s(var2);
9204 var = var1;
9205 RET_LABEL:;
9206 return var;
9207 }
9208 /* method string#Int#strerror_ext for (self: Int): NativeString */
9209 char* string__Int__strerror_ext(long self) {
9210 char* var /* : NativeString */;
9211 char* var1 /* : NativeString */;
9212 var1 = string___Int_strerror_ext___impl(self);
9213 var = var1;
9214 goto RET_LABEL;
9215 RET_LABEL:;
9216 return var;
9217 }
9218 /* method string#Int#strerror_ext for (self: Object): NativeString */
9219 char* VIRTUAL_string__Int__strerror_ext(val* self) {
9220 char* var /* : NativeString */;
9221 char* var1 /* : NativeString */;
9222 char* var3 /* : NativeString */;
9223 long var4 /* : Int */;
9224 { /* Inline string#Int#strerror_ext (self) on <self:Object(Int)> */
9225 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
9226 var3 = string___Int_strerror_ext___impl(var4);
9227 var1 = var3;
9228 goto RET_LABEL2;
9229 RET_LABEL2:(void)0;
9230 }
9231 var = var1;
9232 RET_LABEL:;
9233 return var;
9234 }
9235 /* method string#Int#strerror for (self: Int): String */
9236 val* string__Int__strerror(long self) {
9237 val* var /* : String */;
9238 char* var1 /* : NativeString */;
9239 char* var3 /* : NativeString */;
9240 val* var4 /* : String */;
9241 {
9242 { /* Inline string#Int#strerror_ext (self) on <self:Int> */
9243 var3 = string___Int_strerror_ext___impl(self);
9244 var1 = var3;
9245 goto RET_LABEL2;
9246 RET_LABEL2:(void)0;
9247 }
9248 }
9249 {
9250 var4 = string__NativeString__to_s(var1);
9251 }
9252 var = var4;
9253 goto RET_LABEL;
9254 RET_LABEL:;
9255 return var;
9256 }
9257 /* method string#Int#strerror for (self: Object): String */
9258 val* VIRTUAL_string__Int__strerror(val* self) {
9259 val* var /* : String */;
9260 val* var1 /* : String */;
9261 long var2 /* : Int */;
9262 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
9263 var1 = string__Int__strerror(var2);
9264 var = var1;
9265 RET_LABEL:;
9266 return var;
9267 }
9268 /* method string#Int#fill_buffer for (self: Int, Buffer, Int, Bool) */
9269 void string__Int__fill_buffer(long self, val* p0, long p1, short int p2) {
9270 val* var_s /* var s: Buffer */;
9271 long var_base /* var base: Int */;
9272 short int var_signed /* var signed: Bool */;
9273 long var /* : Int */;
9274 short int var1 /* : Bool */;
9275 short int var3 /* : Bool */;
9276 int cltype;
9277 int idtype;
9278 const char* var_class_name;
9279 short int var4 /* : Bool */;
9280 long var5 /* : Int */;
9281 long var7 /* : Int */;
9282 long var_n /* var n: Int */;
9283 val* var8 /* : Sequence[Char] */;
9284 val* var10 /* : Sequence[Char] */;
9285 long var11 /* : Int */;
9286 char var12 /* : Char */;
9287 val* var13 /* : nullable Object */;
9288 long var14 /* : Int */;
9289 short int var15 /* : Bool */;
9290 short int var16 /* : Bool */;
9291 short int var18 /* : Bool */;
9292 val* var19 /* : Sequence[Char] */;
9293 val* var21 /* : Sequence[Char] */;
9294 long var22 /* : Int */;
9295 char var23 /* : Char */;
9296 val* var24 /* : nullable Object */;
9297 long var25 /* : Int */;
9298 long var26 /* : Int */;
9299 long var27 /* : Int */;
9300 short int var29 /* : Bool */;
9301 int cltype30;
9302 int idtype31;
9303 const char* var_class_name32;
9304 long var33 /* : Int */;
9305 long var_pos /* var pos: Int */;
9306 short int var34 /* : Bool */;
9307 long var35 /* : Int */;
9308 short int var36 /* : Bool */;
9309 short int var38 /* : Bool */;
9310 int cltype39;
9311 int idtype40;
9312 const char* var_class_name41;
9313 short int var42 /* : Bool */;
9314 short int var_ /* var : Bool */;
9315 long var43 /* : Int */;
9316 short int var44 /* : Bool */;
9317 short int var46 /* : Bool */;
9318 int cltype47;
9319 int idtype48;
9320 const char* var_class_name49;
9321 short int var50 /* : Bool */;
9322 val* var51 /* : Sequence[Char] */;
9323 val* var53 /* : Sequence[Char] */;
9324 long var54 /* : Int */;
9325 long var56 /* : Int */;
9326 char var57 /* : Char */;
9327 val* var58 /* : nullable Object */;
9328 long var59 /* : Int */;
9329 short int var61 /* : Bool */;
9330 int cltype62;
9331 int idtype63;
9332 const char* var_class_name64;
9333 long var65 /* : Int */;
9334 long var66 /* : Int */;
9335 long var67 /* : Int */;
9336 short int var69 /* : Bool */;
9337 int cltype70;
9338 int idtype71;
9339 const char* var_class_name72;
9340 long var73 /* : Int */;
9341 var_s = p0;
9342 var_base = p1;
9343 var_signed = p2;
9344 var = 0;
9345 {
9346 { /* Inline kernel#Int#< (self,var) on <self:Int> */
9347 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
9348 /* <var:Int> isa OTHER */
9349 var3 = 1; /* easy <var:Int> isa OTHER*/
9350 if (unlikely(!var3)) {
9351 var_class_name = type_kernel__Int.name;
9352 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9353 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
9354 show_backtrace(1);
9355 }
9356 var4 = self < var;
9357 var1 = var4;
9358 goto RET_LABEL2;
9359 RET_LABEL2:(void)0;
9360 }
9361 }
9362 if (var1){
9363 {
9364 { /* Inline kernel#Int#unary - (self) on <self:Int> */
9365 var7 = -self;
9366 var5 = var7;
9367 goto RET_LABEL6;
9368 RET_LABEL6:(void)0;
9369 }
9370 }
9371 var_n = var5;
9372 {
9373 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:Buffer> */
9374 var10 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:Buffer> */
9375 if (unlikely(var10 == NULL)) {
9376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
9377 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1163);
9378 show_backtrace(1);
9379 }
9380 var8 = var10;
9381 RET_LABEL9:(void)0;
9382 }
9383 }
9384 var11 = 0;
9385 var12 = '-';
9386 {
9387 var13 = BOX_kernel__Char(var12); /* autobox from Char to nullable Object */
9388 ((void (*)(val*, long, val*))(var8->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var8, var11, var13) /* []= on <var8:Sequence[Char]>*/;
9389 }
9390 } else {
9391 var14 = 0;
9392 {
9393 { /* Inline kernel#Int#== (self,var14) on <self:Int> */
9394 var18 = self == var14;
9395 var16 = var18;
9396 goto RET_LABEL17;
9397 RET_LABEL17:(void)0;
9398 }
9399 var15 = var16;
9400 }
9401 if (var15){
9402 {
9403 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:Buffer> */
9404 var21 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:Buffer> */
9405 if (unlikely(var21 == NULL)) {
9406 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
9407 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1163);
9408 show_backtrace(1);
9409 }
9410 var19 = var21;
9411 RET_LABEL20:(void)0;
9412 }
9413 }
9414 var22 = 0;
9415 var23 = '0';
9416 {
9417 var24 = BOX_kernel__Char(var23); /* autobox from Char to nullable Object */
9418 ((void (*)(val*, long, val*))(var19->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var19, var22, var24) /* []= on <var19:Sequence[Char]>*/;
9419 }
9420 goto RET_LABEL;
9421 } else {
9422 var_n = self;
9423 }
9424 }
9425 {
9426 var25 = kernel__Int__digit_count(self, var_base);
9427 }
9428 var26 = 1;
9429 {
9430 { /* Inline kernel#Int#- (var25,var26) on <var25:Int> */
9431 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
9432 /* <var26:Int> isa OTHER */
9433 var29 = 1; /* easy <var26:Int> isa OTHER*/
9434 if (unlikely(!var29)) {
9435 var_class_name32 = type_kernel__Int.name;
9436 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
9437 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
9438 show_backtrace(1);
9439 }
9440 var33 = var25 - var26;
9441 var27 = var33;
9442 goto RET_LABEL28;
9443 RET_LABEL28:(void)0;
9444 }
9445 }
9446 var_pos = var27;
9447 for(;;) {
9448 var35 = 0;
9449 {
9450 { /* Inline kernel#Int#>= (var_pos,var35) on <var_pos:Int> */
9451 /* Covariant cast for argument 0 (i) <var35:Int> isa OTHER */
9452 /* <var35:Int> isa OTHER */
9453 var38 = 1; /* easy <var35:Int> isa OTHER*/
9454 if (unlikely(!var38)) {
9455 var_class_name41 = type_kernel__Int.name;
9456 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
9457 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
9458 show_backtrace(1);
9459 }
9460 var42 = var_pos >= var35;
9461 var36 = var42;
9462 goto RET_LABEL37;
9463 RET_LABEL37:(void)0;
9464 }
9465 }
9466 var_ = var36;
9467 if (var36){
9468 var43 = 0;
9469 {
9470 { /* Inline kernel#Int#> (var_n,var43) on <var_n:Int> */
9471 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
9472 /* <var43:Int> isa OTHER */
9473 var46 = 1; /* easy <var43:Int> isa OTHER*/
9474 if (unlikely(!var46)) {
9475 var_class_name49 = type_kernel__Int.name;
9476 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
9477 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
9478 show_backtrace(1);
9479 }
9480 var50 = var_n > var43;
9481 var44 = var50;
9482 goto RET_LABEL45;
9483 RET_LABEL45:(void)0;
9484 }
9485 }
9486 var34 = var44;
9487 } else {
9488 var34 = var_;
9489 }
9490 if (!var34) break;
9491 {
9492 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:Buffer> */
9493 var53 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:Buffer> */
9494 if (unlikely(var53 == NULL)) {
9495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
9496 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1163);
9497 show_backtrace(1);
9498 }
9499 var51 = var53;
9500 RET_LABEL52:(void)0;
9501 }
9502 }
9503 {
9504 { /* Inline kernel#Int#% (var_n,var_base) on <var_n:Int> */
9505 var56 = var_n % var_base;
9506 var54 = var56;
9507 goto RET_LABEL55;
9508 RET_LABEL55:(void)0;
9509 }
9510 }
9511 {
9512 var57 = kernel__Int__to_c(var54);
9513 }
9514 {
9515 var58 = BOX_kernel__Char(var57); /* autobox from Char to nullable Object */
9516 ((void (*)(val*, long, val*))(var51->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var51, var_pos, var58) /* []= on <var51:Sequence[Char]>*/;
9517 }
9518 {
9519 { /* Inline kernel#Int#/ (var_n,var_base) on <var_n:Int> */
9520 /* Covariant cast for argument 0 (i) <var_base:Int> isa OTHER */
9521 /* <var_base:Int> isa OTHER */
9522 var61 = 1; /* easy <var_base:Int> isa OTHER*/
9523 if (unlikely(!var61)) {
9524 var_class_name64 = type_kernel__Int.name;
9525 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name64);
9526 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 333);
9527 show_backtrace(1);
9528 }
9529 var65 = var_n / var_base;
9530 var59 = var65;
9531 goto RET_LABEL60;
9532 RET_LABEL60:(void)0;
9533 }
9534 }
9535 var_n = var59;
9536 var66 = 1;
9537 {
9538 { /* Inline kernel#Int#- (var_pos,var66) on <var_pos:Int> */
9539 /* Covariant cast for argument 0 (i) <var66:Int> isa OTHER */
9540 /* <var66:Int> isa OTHER */
9541 var69 = 1; /* easy <var66:Int> isa OTHER*/
9542 if (unlikely(!var69)) {
9543 var_class_name72 = type_kernel__Int.name;
9544 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
9545 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
9546 show_backtrace(1);
9547 }
9548 var73 = var_pos - var66;
9549 var67 = var73;
9550 goto RET_LABEL68;
9551 RET_LABEL68:(void)0;
9552 }
9553 }
9554 var_pos = var67;
9555 CONTINUE_label: (void)0;
9556 }
9557 BREAK_label: (void)0;
9558 RET_LABEL:;
9559 }
9560 /* method string#Int#fill_buffer for (self: Object, Buffer, Int, Bool) */
9561 void VIRTUAL_string__Int__fill_buffer(val* self, val* p0, long p1, short int p2) {
9562 long var /* : Int */;
9563 var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
9564 string__Int__fill_buffer(var, p0, p1, p2); /* Direct call string#Int#fill_buffer on <var:Int>*/
9565 RET_LABEL:;
9566 }
9567 /* method string#Int#native_int_to_s for (self: Int): NativeString */
9568 char* string__Int__native_int_to_s(long self) {
9569 char* var /* : NativeString */;
9570 char* var1 /* : NativeString */;
9571 var1 = native_int_to_s(self);
9572 var = var1;
9573 goto RET_LABEL;
9574 RET_LABEL:;
9575 return var;
9576 }
9577 /* method string#Int#native_int_to_s for (self: Object): NativeString */
9578 char* VIRTUAL_string__Int__native_int_to_s(val* self) {
9579 char* var /* : NativeString */;
9580 char* var1 /* : NativeString */;
9581 char* var3 /* : NativeString */;
9582 long var4 /* : Int */;
9583 { /* Inline string#Int#native_int_to_s (self) on <self:Object(Int)> */
9584 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
9585 var3 = native_int_to_s(var4);
9586 var1 = var3;
9587 goto RET_LABEL2;
9588 RET_LABEL2:(void)0;
9589 }
9590 var = var1;
9591 RET_LABEL:;
9592 return var;
9593 }
9594 /* method string#Int#to_s for (self: Int): String */
9595 val* string__Int__to_s(long self) {
9596 val* var /* : String */;
9597 char* var1 /* : NativeString */;
9598 char* var3 /* : NativeString */;
9599 val* var4 /* : String */;
9600 {
9601 { /* Inline string#Int#native_int_to_s (self) on <self:Int> */
9602 var3 = native_int_to_s(self);
9603 var1 = var3;
9604 goto RET_LABEL2;
9605 RET_LABEL2:(void)0;
9606 }
9607 }
9608 {
9609 var4 = string__NativeString__to_s(var1);
9610 }
9611 var = var4;
9612 goto RET_LABEL;
9613 RET_LABEL:;
9614 return var;
9615 }
9616 /* method string#Int#to_s for (self: Object): String */
9617 val* VIRTUAL_string__Int__to_s(val* self) {
9618 val* var /* : String */;
9619 val* var1 /* : String */;
9620 long var2 /* : Int */;
9621 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
9622 var1 = string__Int__to_s(var2);
9623 var = var1;
9624 RET_LABEL:;
9625 return var;
9626 }
9627 /* method string#Int#to_hex for (self: Int): String */
9628 val* string__Int__to_hex(long self) {
9629 val* var /* : String */;
9630 long var1 /* : Int */;
9631 short int var2 /* : Bool */;
9632 val* var3 /* : String */;
9633 var1 = 16;
9634 var2 = 0;
9635 {
9636 var3 = string__Int__to_base(self, var1, var2);
9637 }
9638 var = var3;
9639 goto RET_LABEL;
9640 RET_LABEL:;
9641 return var;
9642 }
9643 /* method string#Int#to_hex for (self: Object): String */
9644 val* VIRTUAL_string__Int__to_hex(val* self) {
9645 val* var /* : String */;
9646 val* var1 /* : String */;
9647 long var2 /* : Int */;
9648 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
9649 var1 = string__Int__to_hex(var2);
9650 var = var1;
9651 RET_LABEL:;
9652 return var;
9653 }
9654 /* method string#Int#to_base for (self: Int, Int, Bool): String */
9655 val* string__Int__to_base(long self, long p0, short int p1) {
9656 val* var /* : String */;
9657 long var_base /* var base: Int */;
9658 short int var_signed /* var signed: Bool */;
9659 long var1 /* : Int */;
9660 long var_l /* var l: Int */;
9661 val* var2 /* : FlatBuffer */;
9662 static val* varonce;
9663 val* var3 /* : String */;
9664 char* var4 /* : NativeString */;
9665 long var5 /* : Int */;
9666 val* var6 /* : FlatString */;
9667 val* var7 /* : String */;
9668 val* var_s /* var s: FlatBuffer */;
9669 val* var8 /* : String */;
9670 var_base = p0;
9671 var_signed = p1;
9672 {
9673 var1 = kernel__Int__digit_count(self, var_base);
9674 }
9675 var_l = var1;
9676 var2 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
9677 if (varonce) {
9678 var3 = varonce;
9679 } else {
9680 var4 = " ";
9681 var5 = 1;
9682 var6 = string__NativeString__to_s_with_length(var4, var5);
9683 var3 = var6;
9684 varonce = var3;
9685 }
9686 {
9687 var7 = string__FlatString___42d(var3, var_l);
9688 }
9689 {
9690 string__FlatBuffer__from(var2, var7); /* Direct call string#FlatBuffer#from on <var2:FlatBuffer>*/
9691 }
9692 var_s = var2;
9693 {
9694 string__Int__fill_buffer(self, var_s, var_base, var_signed); /* Direct call string#Int#fill_buffer on <self:Int>*/
9695 }
9696 {
9697 var8 = string__FlatBuffer__to_s(var_s);
9698 }
9699 var = var8;
9700 goto RET_LABEL;
9701 RET_LABEL:;
9702 return var;
9703 }
9704 /* method string#Int#to_base for (self: Object, Int, Bool): String */
9705 val* VIRTUAL_string__Int__to_base(val* self, long p0, short int p1) {
9706 val* var /* : String */;
9707 val* var1 /* : String */;
9708 long var2 /* : Int */;
9709 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
9710 var1 = string__Int__to_base(var2, p0, p1);
9711 var = var1;
9712 RET_LABEL:;
9713 return var;
9714 }