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