README: document nit_env.sh
[nit.git] / c_src / standard__ropes.sep.1.c
1 #include "standard__ropes.sep.0.h"
2 /* method ropes#RopeString#chars for (self: RopeString): SequenceRead[Char] */
3 val* standard__ropes___standard__ropes__RopeString___standard__string__Text__chars(val* self) {
4 val* var /* : SequenceRead[Char] */;
5 short int var1 /* : Bool */;
6 val* var2 /* : SequenceRead[Char] */;
7 val* var3 /* : SequenceRead[Char] */;
8 val* var5 /* : RopeChars */;
9 var1 = self->attrs[COLOR_standard__ropes__RopeString___chars].val != NULL; /* _chars on <self:RopeString> */
10 if(likely(var1)) {
11 var2 = self->attrs[COLOR_standard__ropes__RopeString___chars].val; /* _chars on <self:RopeString> */
12 if (unlikely(var2 == NULL)) {
13 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
14 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 70);
15 fatal_exit(1);
16 }
17 } else {
18 {
19 var5 = NEW_standard__ropes__RopeChars(&type_standard__ropes__RopeChars);
20 {
21 ((void(*)(val* self, val* p0))(var5->class->vft[COLOR_standard__string__StringCharView__target_61d]))(var5, self); /* target= on <var5:RopeChars>*/
22 }
23 {
24 ((void(*)(val* self))(var5->class->vft[COLOR_standard__kernel__Object__init]))(var5); /* init on <var5:RopeChars>*/
25 }
26 var3 = var5;
27 goto RET_LABEL4;
28 RET_LABEL4:(void)0;
29 }
30 self->attrs[COLOR_standard__ropes__RopeString___chars].val = var3; /* _chars on <self:RopeString> */
31 var2 = var3;
32 }
33 var = var2;
34 RET_LABEL:;
35 return var;
36 }
37 /* method ropes#Concat#length for (self: Concat): Int */
38 long standard__ropes___standard__ropes__Concat___standard__string__Text__length(val* self) {
39 long var /* : Int */;
40 long var1 /* : Int */;
41 var1 = self->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <self:Concat> */
42 var = var1;
43 RET_LABEL:;
44 return var;
45 }
46 /* method ropes#Concat#length= for (self: Concat, Int) */
47 void standard__ropes___standard__ropes__Concat___length_61d(val* self, long p0) {
48 self->attrs[COLOR_standard__ropes__Concat___length].l = p0; /* _length on <self:Concat> */
49 RET_LABEL:;
50 }
51 /* method ropes#Concat#substrings for (self: Concat): Iterator[FlatText] */
52 val* standard__ropes___standard__ropes__Concat___standard__string__Text__substrings(val* self) {
53 val* var /* : Iterator[FlatText] */;
54 val* var1 /* : RopeSubstrings */;
55 var1 = NEW_standard__ropes__RopeSubstrings(&type_standard__ropes__RopeSubstrings);
56 {
57 standard__ropes___standard__ropes__RopeSubstrings___init(var1, self); /* Direct call ropes#RopeSubstrings#init on <var1:RopeSubstrings>*/
58 }
59 var = var1;
60 goto RET_LABEL;
61 RET_LABEL:;
62 return var;
63 }
64 /* method ropes#Concat#empty for (self: Concat): String */
65 val* standard__ropes___standard__ropes__Concat___standard__string__Text__empty(val* self) {
66 val* var /* : String */;
67 static val* varonce;
68 val* var1 /* : String */;
69 char* var2 /* : NativeString */;
70 val* var3 /* : FlatString */;
71 if (likely(varonce!=NULL)) {
72 var1 = varonce;
73 } else {
74 var2 = "";
75 var3 = standard___standard__NativeString___to_s_with_length(var2, 0l);
76 var1 = var3;
77 varonce = var1;
78 }
79 var = var1;
80 goto RET_LABEL;
81 RET_LABEL:;
82 return var;
83 }
84 /* method ropes#Concat#to_cstring for (self: Concat): NativeString */
85 char* standard__ropes___standard__ropes__Concat___standard__string__Text__to_cstring(val* self) {
86 char* var /* : NativeString */;
87 short int var1 /* : Bool */;
88 char* var2 /* : NativeString */;
89 char* var3 /* : NativeString */;
90 long var5 /* : Int */;
91 long var7 /* : Int */;
92 long var_len /* var len: Int */;
93 char* var8 /* : NativeString */;
94 long var9 /* : Int */;
95 short int var11 /* : Bool */;
96 int cltype;
97 int idtype;
98 const char* var_class_name;
99 long var12 /* : Int */;
100 char* var13 /* : NativeString */;
101 char* var15 /* : NativeString */;
102 char* var_ns /* var ns: NativeString */;
103 long var_off /* var off: Int */;
104 val* var17 /* : Iterator[FlatText] */;
105 val* var_ /* var : Iterator[FlatText] */;
106 val* var18 /* : Iterator[nullable Object] */;
107 val* var_19 /* var : Iterator[FlatText] */;
108 short int var20 /* : Bool */;
109 val* var21 /* : nullable Object */;
110 val* var_i /* var i: FlatText */;
111 long var22 /* : Int */;
112 long var24 /* : Int */;
113 long var_ilen /* var ilen: Int */;
114 short int var25 /* : Bool */;
115 int cltype26;
116 int idtype27;
117 const char* var_class_name28;
118 char* var29 /* : NativeString */;
119 char* var31 /* : NativeString */;
120 short int var32 /* : Bool */;
121 int cltype33;
122 int idtype34;
123 const char* var_class_name35;
124 long var36 /* : Int */;
125 long var38 /* : Int */;
126 long var40 /* : Int */;
127 short int var42 /* : Bool */;
128 int cltype43;
129 int idtype44;
130 const char* var_class_name45;
131 long var46 /* : Int */;
132 var1 = self->attrs[COLOR_standard__ropes__Concat__lazy_32d_to_cstring].s; /* lazy _to_cstring on <self:Concat> */
133 if(likely(var1)) {
134 var2 = self->attrs[COLOR_standard__ropes__Concat___to_cstring].str; /* _to_cstring on <self:Concat> */
135 } else {
136 {
137 {
138 { /* Inline ropes#Concat#length (self) on <self:Concat> */
139 var7 = self->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <self:Concat> */
140 var5 = var7;
141 RET_LABEL6:(void)0;
142 }
143 }
144 var_len = var5;
145 var8 = NULL/*special!*/;
146 {
147 { /* Inline kernel#Int#+ (var_len,1l) on <var_len:Int> */
148 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
149 /* <1l:Int> isa OTHER */
150 var11 = 1; /* easy <1l:Int> isa OTHER*/
151 if (unlikely(!var11)) {
152 var_class_name = type_standard__Int.name;
153 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
154 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
155 fatal_exit(1);
156 }
157 var12 = var_len + 1l;
158 var9 = var12;
159 goto RET_LABEL10;
160 RET_LABEL10:(void)0;
161 }
162 }
163 {
164 { /* Inline string#NativeString#new (var8,var9) on <var8:NativeString> */
165 var15 = (char*)nit_alloc(var9);
166 var13 = var15;
167 goto RET_LABEL14;
168 RET_LABEL14:(void)0;
169 }
170 }
171 var_ns = var13;
172 {
173 { /* Inline string#NativeString#[]= (var_ns,var_len,'\000') on <var_ns:NativeString> */
174 var_ns[var_len]=(unsigned char)'\000';
175 RET_LABEL16:(void)0;
176 }
177 }
178 var_off = 0l;
179 {
180 var17 = standard__ropes___standard__ropes__Concat___standard__string__Text__substrings(self);
181 }
182 var_ = var17;
183 {
184 var18 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Iterator__iterator]))(var_); /* iterator on <var_:Iterator[FlatText]>*/
185 }
186 var_19 = var18;
187 for(;;) {
188 {
189 var20 = ((short int(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_19); /* is_ok on <var_19:Iterator[FlatText]>*/
190 }
191 if (var20){
192 {
193 var21 = ((val*(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_19); /* item on <var_19:Iterator[FlatText]>*/
194 }
195 var_i = var21;
196 {
197 { /* Inline string#FlatText#length (var_i) on <var_i:FlatText> */
198 var24 = var_i->attrs[COLOR_standard__string__FlatText___length].l; /* _length on <var_i:FlatText> */
199 var22 = var24;
200 RET_LABEL23:(void)0;
201 }
202 }
203 var_ilen = var22;
204 /* <var_i:FlatText> isa FlatString */
205 cltype26 = type_standard__FlatString.color;
206 idtype27 = type_standard__FlatString.id;
207 if(cltype26 >= var_i->type->table_size) {
208 var25 = 0;
209 } else {
210 var25 = var_i->type->type_table[cltype26] == idtype27;
211 }
212 if (unlikely(!var25)) {
213 var_class_name28 = var_i == NULL ? "null" : var_i->type->name;
214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name28);
215 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 90);
216 fatal_exit(1);
217 }
218 {
219 { /* Inline string#FlatText#items (var_i) on <var_i:FlatText(FlatString)> */
220 var31 = var_i->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_i:FlatText(FlatString)> */
221 var29 = var31;
222 RET_LABEL30:(void)0;
223 }
224 }
225 /* <var_i:FlatText> isa FlatString */
226 cltype33 = type_standard__FlatString.color;
227 idtype34 = type_standard__FlatString.id;
228 if(cltype33 >= var_i->type->table_size) {
229 var32 = 0;
230 } else {
231 var32 = var_i->type->type_table[cltype33] == idtype34;
232 }
233 if (unlikely(!var32)) {
234 var_class_name35 = var_i == NULL ? "null" : var_i->type->name;
235 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name35);
236 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 90);
237 fatal_exit(1);
238 }
239 {
240 { /* Inline string#FlatString#index_from (var_i) on <var_i:FlatText(FlatString)> */
241 var38 = var_i->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <var_i:FlatText(FlatString)> */
242 var36 = var38;
243 RET_LABEL37:(void)0;
244 }
245 }
246 {
247 { /* Inline string#NativeString#copy_to (var29,var_ns,var_ilen,var36,var_off) on <var29:NativeString> */
248 memmove(var_ns+var_off,var29+var36,var_ilen);
249 RET_LABEL39:(void)0;
250 }
251 }
252 {
253 { /* Inline kernel#Int#+ (var_off,var_ilen) on <var_off:Int> */
254 /* Covariant cast for argument 0 (i) <var_ilen:Int> isa OTHER */
255 /* <var_ilen:Int> isa OTHER */
256 var42 = 1; /* easy <var_ilen:Int> isa OTHER*/
257 if (unlikely(!var42)) {
258 var_class_name45 = type_standard__Int.name;
259 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
260 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
261 fatal_exit(1);
262 }
263 var46 = var_off + var_ilen;
264 var40 = var46;
265 goto RET_LABEL41;
266 RET_LABEL41:(void)0;
267 }
268 }
269 var_off = var40;
270 {
271 ((void(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_19); /* next on <var_19:Iterator[FlatText]>*/
272 }
273 } else {
274 goto BREAK_label;
275 }
276 }
277 BREAK_label: (void)0;
278 {
279 ((void(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_19); /* finish on <var_19:Iterator[FlatText]>*/
280 }
281 var3 = var_ns;
282 goto RET_LABEL4;
283 RET_LABEL4:(void)0;
284 }
285 self->attrs[COLOR_standard__ropes__Concat___to_cstring].str = var3; /* _to_cstring on <self:Concat> */
286 var2 = var3;
287 self->attrs[COLOR_standard__ropes__Concat__lazy_32d_to_cstring].s = 1; /* lazy _to_cstring on <self:Concat> */
288 }
289 var = var2;
290 RET_LABEL:;
291 return var;
292 }
293 /* method ropes#Concat#left for (self: Concat): String */
294 val* standard__ropes___standard__ropes__Concat___left(val* self) {
295 val* var /* : String */;
296 val* var1 /* : String */;
297 var1 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
298 if (unlikely(var1 == NULL)) {
299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
300 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
301 fatal_exit(1);
302 }
303 var = var1;
304 RET_LABEL:;
305 return var;
306 }
307 /* method ropes#Concat#left= for (self: Concat, String) */
308 void standard__ropes___standard__ropes__Concat___left_61d(val* self, val* p0) {
309 self->attrs[COLOR_standard__ropes__Concat___left].val = p0; /* _left on <self:Concat> */
310 RET_LABEL:;
311 }
312 /* method ropes#Concat#right for (self: Concat): String */
313 val* standard__ropes___standard__ropes__Concat___right(val* self) {
314 val* var /* : String */;
315 val* var1 /* : String */;
316 var1 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
317 if (unlikely(var1 == NULL)) {
318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
319 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
320 fatal_exit(1);
321 }
322 var = var1;
323 RET_LABEL:;
324 return var;
325 }
326 /* method ropes#Concat#right= for (self: Concat, String) */
327 void standard__ropes___standard__ropes__Concat___right_61d(val* self, val* p0) {
328 self->attrs[COLOR_standard__ropes__Concat___right].val = p0; /* _right on <self:Concat> */
329 RET_LABEL:;
330 }
331 /* method ropes#Concat#init for (self: Concat) */
332 void standard__ropes___standard__ropes__Concat___standard__kernel__Object__init(val* self) {
333 val* var /* : String */;
334 val* var2 /* : String */;
335 long var3 /* : Int */;
336 val* var4 /* : String */;
337 val* var6 /* : String */;
338 long var7 /* : Int */;
339 long var8 /* : Int */;
340 short int var10 /* : Bool */;
341 int cltype;
342 int idtype;
343 const char* var_class_name;
344 long var11 /* : Int */;
345 {
346 ((void(*)(val* self))(self->class->vft[COLOR_standard__ropes___standard__ropes__Concat___standard__kernel__Object__init]))(self); /* init on <self:Concat>*/
347 }
348 {
349 { /* Inline ropes#Concat#left (self) on <self:Concat> */
350 var2 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
351 if (unlikely(var2 == NULL)) {
352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
353 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
354 fatal_exit(1);
355 }
356 var = var2;
357 RET_LABEL1:(void)0;
358 }
359 }
360 {
361 var3 = ((long(*)(val* self))(var->class->vft[COLOR_standard__string__Text__length]))(var); /* length on <var:String>*/
362 }
363 {
364 { /* Inline ropes#Concat#right (self) on <self:Concat> */
365 var6 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
366 if (unlikely(var6 == NULL)) {
367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
368 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
369 fatal_exit(1);
370 }
371 var4 = var6;
372 RET_LABEL5:(void)0;
373 }
374 }
375 {
376 var7 = ((long(*)(val* self))(var4->class->vft[COLOR_standard__string__Text__length]))(var4); /* length on <var4:String>*/
377 }
378 {
379 { /* Inline kernel#Int#+ (var3,var7) on <var3:Int> */
380 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
381 /* <var7:Int> isa OTHER */
382 var10 = 1; /* easy <var7:Int> isa OTHER*/
383 if (unlikely(!var10)) {
384 var_class_name = type_standard__Int.name;
385 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
386 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
387 fatal_exit(1);
388 }
389 var11 = var3 + var7;
390 var8 = var11;
391 goto RET_LABEL9;
392 RET_LABEL9:(void)0;
393 }
394 }
395 {
396 { /* Inline ropes#Concat#length= (self,var8) on <self:Concat> */
397 self->attrs[COLOR_standard__ropes__Concat___length].l = var8; /* _length on <self:Concat> */
398 RET_LABEL12:(void)0;
399 }
400 }
401 RET_LABEL:;
402 }
403 /* method ropes#Concat#* for (self: Concat, Int): String */
404 val* standard__ropes___standard__ropes__Concat___standard__string__String___42d(val* self, long p0) {
405 val* var /* : String */;
406 long var_i /* var i: Int */;
407 val* var_x /* var x: String */;
408 long var_j /* var j: Int */;
409 long var_ /* var : Int */;
410 short int var1 /* : Bool */;
411 short int var3 /* : Bool */;
412 int cltype;
413 int idtype;
414 const char* var_class_name;
415 short int var4 /* : Bool */;
416 val* var5 /* : String */;
417 long var6 /* : Int */;
418 var_i = p0;
419 var_x = self;
420 var_j = 1l;
421 var_ = var_i;
422 for(;;) {
423 {
424 { /* Inline kernel#Int#< (var_j,var_) on <var_j:Int> */
425 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
426 /* <var_:Int> isa OTHER */
427 var3 = 1; /* easy <var_:Int> isa OTHER*/
428 if (unlikely(!var3)) {
429 var_class_name = type_standard__Int.name;
430 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
431 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
432 fatal_exit(1);
433 }
434 var4 = var_j < var_;
435 var1 = var4;
436 goto RET_LABEL2;
437 RET_LABEL2:(void)0;
438 }
439 }
440 if (var1){
441 {
442 var5 = ((val*(*)(val* self, val* p0))(var_x->class->vft[COLOR_standard__string__String___43d]))(var_x, self); /* + on <var_x:String>*/
443 }
444 var_x = var5;
445 {
446 var6 = standard___standard__Int___Discrete__successor(var_j, 1l);
447 }
448 var_j = var6;
449 } else {
450 goto BREAK_label;
451 }
452 }
453 BREAK_label: (void)0;
454 var = var_x;
455 goto RET_LABEL;
456 RET_LABEL:;
457 return var;
458 }
459 /* method ropes#Concat#[] for (self: Concat, Int): Char */
460 uint32_t standard__ropes___standard__ropes__Concat___standard__string__Text___91d_93d(val* self, long p0) {
461 uint32_t var /* : Char */;
462 long var_i /* var i: Int */;
463 val* var1 /* : String */;
464 val* var3 /* : String */;
465 long var4 /* : Int */;
466 long var_llen /* var llen: Int */;
467 short int var5 /* : Bool */;
468 short int var7 /* : Bool */;
469 int cltype;
470 int idtype;
471 const char* var_class_name;
472 short int var8 /* : Bool */;
473 val* var9 /* : String */;
474 val* var11 /* : String */;
475 long var12 /* : Int */;
476 short int var14 /* : Bool */;
477 int cltype15;
478 int idtype16;
479 const char* var_class_name17;
480 long var18 /* : Int */;
481 uint32_t var19 /* : Char */;
482 val* var20 /* : String */;
483 val* var22 /* : String */;
484 uint32_t var23 /* : Char */;
485 var_i = p0;
486 {
487 { /* Inline ropes#Concat#left (self) on <self:Concat> */
488 var3 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
489 if (unlikely(var3 == NULL)) {
490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
491 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
492 fatal_exit(1);
493 }
494 var1 = var3;
495 RET_LABEL2:(void)0;
496 }
497 }
498 {
499 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_standard__string__Text__length]))(var1); /* length on <var1:String>*/
500 }
501 var_llen = var4;
502 {
503 { /* Inline kernel#Int#>= (var_i,var_llen) on <var_i:Int> */
504 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
505 /* <var_llen:Int> isa OTHER */
506 var7 = 1; /* easy <var_llen:Int> isa OTHER*/
507 if (unlikely(!var7)) {
508 var_class_name = type_standard__Int.name;
509 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
510 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
511 fatal_exit(1);
512 }
513 var8 = var_i >= var_llen;
514 var5 = var8;
515 goto RET_LABEL6;
516 RET_LABEL6:(void)0;
517 }
518 }
519 if (var5){
520 {
521 { /* Inline ropes#Concat#right (self) on <self:Concat> */
522 var11 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
523 if (unlikely(var11 == NULL)) {
524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
525 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
526 fatal_exit(1);
527 }
528 var9 = var11;
529 RET_LABEL10:(void)0;
530 }
531 }
532 {
533 { /* Inline kernel#Int#- (var_i,var_llen) on <var_i:Int> */
534 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
535 /* <var_llen:Int> isa OTHER */
536 var14 = 1; /* easy <var_llen:Int> isa OTHER*/
537 if (unlikely(!var14)) {
538 var_class_name17 = type_standard__Int.name;
539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
540 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
541 fatal_exit(1);
542 }
543 var18 = var_i - var_llen;
544 var12 = var18;
545 goto RET_LABEL13;
546 RET_LABEL13:(void)0;
547 }
548 }
549 {
550 var19 = ((uint32_t(*)(val* self, long p0))(var9->class->vft[COLOR_standard__string__Text___91d_93d]))(var9, var12); /* [] on <var9:String>*/
551 }
552 var = var19;
553 goto RET_LABEL;
554 } else {
555 }
556 {
557 { /* Inline ropes#Concat#left (self) on <self:Concat> */
558 var22 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
559 if (unlikely(var22 == NULL)) {
560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
561 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
562 fatal_exit(1);
563 }
564 var20 = var22;
565 RET_LABEL21:(void)0;
566 }
567 }
568 {
569 var23 = ((uint32_t(*)(val* self, long p0))(var20->class->vft[COLOR_standard__string__Text___91d_93d]))(var20, var_i); /* [] on <var20:String>*/
570 }
571 var = var23;
572 goto RET_LABEL;
573 RET_LABEL:;
574 return var;
575 }
576 /* method ropes#Concat#substring for (self: Concat, Int, Int): String */
577 val* standard__ropes___standard__ropes__Concat___standard__string__Text__substring(val* self, long p0, long p1) {
578 val* var /* : String */;
579 long var_from /* var from: Int */;
580 long var_len /* var len: Int */;
581 val* var1 /* : String */;
582 val* var3 /* : String */;
583 long var4 /* : Int */;
584 long var_llen /* var llen: Int */;
585 short int var5 /* : Bool */;
586 short int var7 /* : Bool */;
587 int cltype;
588 int idtype;
589 const char* var_class_name;
590 short int var8 /* : Bool */;
591 long var9 /* : Int */;
592 short int var11 /* : Bool */;
593 int cltype12;
594 int idtype13;
595 const char* var_class_name14;
596 long var15 /* : Int */;
597 short int var16 /* : Bool */;
598 short int var18 /* : Bool */;
599 int cltype19;
600 int idtype20;
601 const char* var_class_name21;
602 short int var22 /* : Bool */;
603 val* var23 /* : String */;
604 val* var25 /* : String */;
605 val* var26 /* : Text */;
606 long var27 /* : Int */;
607 short int var29 /* : Bool */;
608 int cltype30;
609 int idtype31;
610 const char* var_class_name32;
611 long var33 /* : Int */;
612 long var_lsublen /* var lsublen: Int */;
613 val* var34 /* : String */;
614 val* var36 /* : String */;
615 val* var37 /* : Text */;
616 val* var38 /* : String */;
617 val* var40 /* : String */;
618 long var41 /* : Int */;
619 short int var43 /* : Bool */;
620 int cltype44;
621 int idtype45;
622 const char* var_class_name46;
623 long var47 /* : Int */;
624 val* var48 /* : Text */;
625 val* var49 /* : String */;
626 val* var50 /* : String */;
627 val* var52 /* : String */;
628 long var53 /* : Int */;
629 short int var55 /* : Bool */;
630 int cltype56;
631 int idtype57;
632 const char* var_class_name58;
633 long var59 /* : Int */;
634 val* var60 /* : Text */;
635 var_from = p0;
636 var_len = p1;
637 {
638 { /* Inline ropes#Concat#left (self) on <self:Concat> */
639 var3 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
640 if (unlikely(var3 == NULL)) {
641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
642 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
643 fatal_exit(1);
644 }
645 var1 = var3;
646 RET_LABEL2:(void)0;
647 }
648 }
649 {
650 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_standard__string__Text__length]))(var1); /* length on <var1:String>*/
651 }
652 var_llen = var4;
653 {
654 { /* Inline kernel#Int#< (var_from,var_llen) on <var_from:Int> */
655 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
656 /* <var_llen:Int> isa OTHER */
657 var7 = 1; /* easy <var_llen:Int> isa OTHER*/
658 if (unlikely(!var7)) {
659 var_class_name = type_standard__Int.name;
660 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
661 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
662 fatal_exit(1);
663 }
664 var8 = var_from < var_llen;
665 var5 = var8;
666 goto RET_LABEL6;
667 RET_LABEL6:(void)0;
668 }
669 }
670 if (var5){
671 {
672 { /* Inline kernel#Int#+ (var_from,var_len) on <var_from:Int> */
673 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
674 /* <var_len:Int> isa OTHER */
675 var11 = 1; /* easy <var_len:Int> isa OTHER*/
676 if (unlikely(!var11)) {
677 var_class_name14 = type_standard__Int.name;
678 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
679 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
680 fatal_exit(1);
681 }
682 var15 = var_from + var_len;
683 var9 = var15;
684 goto RET_LABEL10;
685 RET_LABEL10:(void)0;
686 }
687 }
688 {
689 { /* Inline kernel#Int#< (var9,var_llen) on <var9:Int> */
690 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
691 /* <var_llen:Int> isa OTHER */
692 var18 = 1; /* easy <var_llen:Int> isa OTHER*/
693 if (unlikely(!var18)) {
694 var_class_name21 = type_standard__Int.name;
695 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
696 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
697 fatal_exit(1);
698 }
699 var22 = var9 < var_llen;
700 var16 = var22;
701 goto RET_LABEL17;
702 RET_LABEL17:(void)0;
703 }
704 }
705 if (var16){
706 {
707 { /* Inline ropes#Concat#left (self) on <self:Concat> */
708 var25 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
709 if (unlikely(var25 == NULL)) {
710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
711 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
712 fatal_exit(1);
713 }
714 var23 = var25;
715 RET_LABEL24:(void)0;
716 }
717 }
718 {
719 var26 = ((val*(*)(val* self, long p0, long p1))(var23->class->vft[COLOR_standard__string__Text__substring]))(var23, var_from, var_len); /* substring on <var23:String>*/
720 }
721 var = var26;
722 goto RET_LABEL;
723 } else {
724 }
725 {
726 { /* Inline kernel#Int#- (var_llen,var_from) on <var_llen:Int> */
727 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
728 /* <var_from:Int> isa OTHER */
729 var29 = 1; /* easy <var_from:Int> isa OTHER*/
730 if (unlikely(!var29)) {
731 var_class_name32 = type_standard__Int.name;
732 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
733 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
734 fatal_exit(1);
735 }
736 var33 = var_llen - var_from;
737 var27 = var33;
738 goto RET_LABEL28;
739 RET_LABEL28:(void)0;
740 }
741 }
742 var_lsublen = var27;
743 {
744 { /* Inline ropes#Concat#left (self) on <self:Concat> */
745 var36 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
746 if (unlikely(var36 == NULL)) {
747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
748 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
749 fatal_exit(1);
750 }
751 var34 = var36;
752 RET_LABEL35:(void)0;
753 }
754 }
755 {
756 var37 = standard___standard__Text___substring_from(var34, var_from);
757 }
758 {
759 { /* Inline ropes#Concat#right (self) on <self:Concat> */
760 var40 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
761 if (unlikely(var40 == NULL)) {
762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
763 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
764 fatal_exit(1);
765 }
766 var38 = var40;
767 RET_LABEL39:(void)0;
768 }
769 }
770 {
771 { /* Inline kernel#Int#- (var_len,var_lsublen) on <var_len:Int> */
772 /* Covariant cast for argument 0 (i) <var_lsublen:Int> isa OTHER */
773 /* <var_lsublen:Int> isa OTHER */
774 var43 = 1; /* easy <var_lsublen:Int> isa OTHER*/
775 if (unlikely(!var43)) {
776 var_class_name46 = type_standard__Int.name;
777 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
778 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
779 fatal_exit(1);
780 }
781 var47 = var_len - var_lsublen;
782 var41 = var47;
783 goto RET_LABEL42;
784 RET_LABEL42:(void)0;
785 }
786 }
787 {
788 var48 = ((val*(*)(val* self, long p0, long p1))(var38->class->vft[COLOR_standard__string__Text__substring]))(var38, 0l, var41); /* substring on <var38:String>*/
789 }
790 {
791 var49 = ((val*(*)(val* self, val* p0))(var37->class->vft[COLOR_standard__string__String___43d]))(var37, var48); /* + on <var37:Text(String)>*/
792 }
793 var = var49;
794 goto RET_LABEL;
795 } else {
796 {
797 { /* Inline ropes#Concat#right (self) on <self:Concat> */
798 var52 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
799 if (unlikely(var52 == NULL)) {
800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
801 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
802 fatal_exit(1);
803 }
804 var50 = var52;
805 RET_LABEL51:(void)0;
806 }
807 }
808 {
809 { /* Inline kernel#Int#- (var_from,var_llen) on <var_from:Int> */
810 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
811 /* <var_llen:Int> isa OTHER */
812 var55 = 1; /* easy <var_llen:Int> isa OTHER*/
813 if (unlikely(!var55)) {
814 var_class_name58 = type_standard__Int.name;
815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
816 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
817 fatal_exit(1);
818 }
819 var59 = var_from - var_llen;
820 var53 = var59;
821 goto RET_LABEL54;
822 RET_LABEL54:(void)0;
823 }
824 }
825 {
826 var60 = ((val*(*)(val* self, long p0, long p1))(var50->class->vft[COLOR_standard__string__Text__substring]))(var50, var53, var_len); /* substring on <var50:String>*/
827 }
828 var = var60;
829 goto RET_LABEL;
830 }
831 RET_LABEL:;
832 return var;
833 }
834 /* method ropes#Concat#to_upper for (self: Concat): String */
835 val* standard__ropes___standard__ropes__Concat___standard__string__String__to_upper(val* self) {
836 val* var /* : String */;
837 val* var1 /* : Concat */;
838 val* var2 /* : String */;
839 val* var4 /* : String */;
840 val* var5 /* : String */;
841 val* var6 /* : String */;
842 val* var8 /* : String */;
843 val* var9 /* : String */;
844 var1 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
845 {
846 { /* Inline ropes#Concat#left (self) on <self:Concat> */
847 var4 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
848 if (unlikely(var4 == NULL)) {
849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
850 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
851 fatal_exit(1);
852 }
853 var2 = var4;
854 RET_LABEL3:(void)0;
855 }
856 }
857 {
858 var5 = ((val*(*)(val* self))(var2->class->vft[COLOR_standard__string__String__to_upper]))(var2); /* to_upper on <var2:String>*/
859 }
860 {
861 { /* Inline ropes#Concat#right (self) on <self:Concat> */
862 var8 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
863 if (unlikely(var8 == NULL)) {
864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
865 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
866 fatal_exit(1);
867 }
868 var6 = var8;
869 RET_LABEL7:(void)0;
870 }
871 }
872 {
873 var9 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__String__to_upper]))(var6); /* to_upper on <var6:String>*/
874 }
875 {
876 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var1, var5); /* left= on <var1:Concat>*/
877 }
878 {
879 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var1, var9); /* right= on <var1:Concat>*/
880 }
881 {
882 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:Concat>*/
883 }
884 var = var1;
885 goto RET_LABEL;
886 RET_LABEL:;
887 return var;
888 }
889 /* method ropes#Concat#to_lower for (self: Concat): String */
890 val* standard__ropes___standard__ropes__Concat___standard__string__String__to_lower(val* self) {
891 val* var /* : String */;
892 val* var1 /* : Concat */;
893 val* var2 /* : String */;
894 val* var4 /* : String */;
895 val* var5 /* : String */;
896 val* var6 /* : String */;
897 val* var8 /* : String */;
898 val* var9 /* : String */;
899 var1 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
900 {
901 { /* Inline ropes#Concat#left (self) on <self:Concat> */
902 var4 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
903 if (unlikely(var4 == NULL)) {
904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
905 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
906 fatal_exit(1);
907 }
908 var2 = var4;
909 RET_LABEL3:(void)0;
910 }
911 }
912 {
913 var5 = ((val*(*)(val* self))(var2->class->vft[COLOR_standard__string__String__to_lower]))(var2); /* to_lower on <var2:String>*/
914 }
915 {
916 { /* Inline ropes#Concat#right (self) on <self:Concat> */
917 var8 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
918 if (unlikely(var8 == NULL)) {
919 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
920 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
921 fatal_exit(1);
922 }
923 var6 = var8;
924 RET_LABEL7:(void)0;
925 }
926 }
927 {
928 var9 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__String__to_lower]))(var6); /* to_lower on <var6:String>*/
929 }
930 {
931 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var1, var5); /* left= on <var1:Concat>*/
932 }
933 {
934 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var1, var9); /* right= on <var1:Concat>*/
935 }
936 {
937 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:Concat>*/
938 }
939 var = var1;
940 goto RET_LABEL;
941 RET_LABEL:;
942 return var;
943 }
944 /* method ropes#Concat#+ for (self: Concat, Text): String */
945 val* standard__ropes___standard__ropes__Concat___standard__string__String___43d(val* self, val* p0) {
946 val* var /* : String */;
947 val* var_o /* var o: Text */;
948 val* var1 /* : String */;
949 val* var_s /* var s: String */;
950 long var2 /* : Int */;
951 long var_slen /* var slen: Int */;
952 short int var3 /* : Bool */;
953 int cltype;
954 int idtype;
955 val* var4 /* : Concat */;
956 val* var5 /* : String */;
957 val* var7 /* : String */;
958 val* var_r /* var r: String */;
959 long var8 /* : Int */;
960 long var_rlen /* var rlen: Int */;
961 long var9 /* : Int */;
962 short int var11 /* : Bool */;
963 int cltype12;
964 int idtype13;
965 const char* var_class_name;
966 long var14 /* : Int */;
967 val* var15 /* : Sys */;
968 long var16 /* : Int */;
969 short int var17 /* : Bool */;
970 short int var19 /* : Bool */;
971 int cltype20;
972 int idtype21;
973 const char* var_class_name22;
974 short int var23 /* : Bool */;
975 val* var24 /* : Concat */;
976 val* var25 /* : Concat */;
977 val* var26 /* : String */;
978 val* var28 /* : String */;
979 val* var29 /* : String */;
980 var_o = p0;
981 {
982 var1 = ((val*(*)(val* self))(var_o->class->vft[COLOR_standard__string__Object__to_s]))(var_o); /* to_s on <var_o:Text>*/
983 }
984 var_s = var1;
985 {
986 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s); /* length on <var_s:String>*/
987 }
988 var_slen = var2;
989 /* <var_s:String> isa Concat */
990 cltype = type_standard__ropes__Concat.color;
991 idtype = type_standard__ropes__Concat.id;
992 if(cltype >= var_s->type->table_size) {
993 var3 = 0;
994 } else {
995 var3 = var_s->type->type_table[cltype] == idtype;
996 }
997 if (var3){
998 var4 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
999 {
1000 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var4, self); /* left= on <var4:Concat>*/
1001 }
1002 {
1003 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var4, var_s); /* right= on <var4:Concat>*/
1004 }
1005 {
1006 ((void(*)(val* self))(var4->class->vft[COLOR_standard__kernel__Object__init]))(var4); /* init on <var4:Concat>*/
1007 }
1008 var = var4;
1009 goto RET_LABEL;
1010 } else {
1011 {
1012 { /* Inline ropes#Concat#right (self) on <self:Concat> */
1013 var7 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
1014 if (unlikely(var7 == NULL)) {
1015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1016 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
1017 fatal_exit(1);
1018 }
1019 var5 = var7;
1020 RET_LABEL6:(void)0;
1021 }
1022 }
1023 var_r = var5;
1024 {
1025 var8 = ((long(*)(val* self))(var_r->class->vft[COLOR_standard__string__Text__length]))(var_r); /* length on <var_r:String>*/
1026 }
1027 var_rlen = var8;
1028 {
1029 { /* Inline kernel#Int#+ (var_rlen,var_slen) on <var_rlen:Int> */
1030 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
1031 /* <var_slen:Int> isa OTHER */
1032 var11 = 1; /* easy <var_slen:Int> isa OTHER*/
1033 if (unlikely(!var11)) {
1034 var_class_name = type_standard__Int.name;
1035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1036 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1037 fatal_exit(1);
1038 }
1039 var14 = var_rlen + var_slen;
1040 var9 = var14;
1041 goto RET_LABEL10;
1042 RET_LABEL10:(void)0;
1043 }
1044 }
1045 var15 = glob_sys;
1046 {
1047 var16 = standard__ropes___Sys___maxlen(var15);
1048 }
1049 {
1050 { /* Inline kernel#Int#> (var9,var16) on <var9:Int> */
1051 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
1052 /* <var16:Int> isa OTHER */
1053 var19 = 1; /* easy <var16:Int> isa OTHER*/
1054 if (unlikely(!var19)) {
1055 var_class_name22 = type_standard__Int.name;
1056 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
1057 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
1058 fatal_exit(1);
1059 }
1060 var23 = var9 > var16;
1061 var17 = var23;
1062 goto RET_LABEL18;
1063 RET_LABEL18:(void)0;
1064 }
1065 }
1066 if (var17){
1067 var24 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
1068 {
1069 ((void(*)(val* self, val* p0))(var24->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var24, self); /* left= on <var24:Concat>*/
1070 }
1071 {
1072 ((void(*)(val* self, val* p0))(var24->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var24, var_s); /* right= on <var24:Concat>*/
1073 }
1074 {
1075 ((void(*)(val* self))(var24->class->vft[COLOR_standard__kernel__Object__init]))(var24); /* init on <var24:Concat>*/
1076 }
1077 var = var24;
1078 goto RET_LABEL;
1079 } else {
1080 }
1081 var25 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
1082 {
1083 { /* Inline ropes#Concat#left (self) on <self:Concat> */
1084 var28 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
1085 if (unlikely(var28 == NULL)) {
1086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1087 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
1088 fatal_exit(1);
1089 }
1090 var26 = var28;
1091 RET_LABEL27:(void)0;
1092 }
1093 }
1094 {
1095 var29 = ((val*(*)(val* self, val* p0))(var_r->class->vft[COLOR_standard__string__String___43d]))(var_r, var_s); /* + on <var_r:String>*/
1096 }
1097 {
1098 ((void(*)(val* self, val* p0))(var25->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var25, var26); /* left= on <var25:Concat>*/
1099 }
1100 {
1101 ((void(*)(val* self, val* p0))(var25->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var25, var29); /* right= on <var25:Concat>*/
1102 }
1103 {
1104 ((void(*)(val* self))(var25->class->vft[COLOR_standard__kernel__Object__init]))(var25); /* init on <var25:Concat>*/
1105 }
1106 var = var25;
1107 goto RET_LABEL;
1108 }
1109 RET_LABEL:;
1110 return var;
1111 }
1112 /* method ropes#RopeBuffer#chars for (self: RopeBuffer): Sequence[Char] */
1113 val* standard___standard__RopeBuffer___standard__string__Text__chars(val* self) {
1114 val* var /* : Sequence[Char] */;
1115 short int var1 /* : Bool */;
1116 val* var2 /* : Sequence[Char] */;
1117 val* var3 /* : Sequence[Char] */;
1118 val* var5 /* : RopeBufferChars */;
1119 var1 = self->attrs[COLOR_standard__ropes__RopeBuffer___chars].val != NULL; /* _chars on <self:RopeBuffer> */
1120 if(likely(var1)) {
1121 var2 = self->attrs[COLOR_standard__ropes__RopeBuffer___chars].val; /* _chars on <self:RopeBuffer> */
1122 if (unlikely(var2 == NULL)) {
1123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1124 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 200);
1125 fatal_exit(1);
1126 }
1127 } else {
1128 {
1129 var5 = NEW_standard__RopeBufferChars(&type_standard__RopeBufferChars);
1130 {
1131 ((void(*)(val* self, val* p0))(var5->class->vft[COLOR_standard__string__StringCharView__target_61d]))(var5, self); /* target= on <var5:RopeBufferChars>*/
1132 }
1133 {
1134 ((void(*)(val* self))(var5->class->vft[COLOR_standard__kernel__Object__init]))(var5); /* init on <var5:RopeBufferChars>*/
1135 }
1136 var3 = var5;
1137 goto RET_LABEL4;
1138 RET_LABEL4:(void)0;
1139 }
1140 self->attrs[COLOR_standard__ropes__RopeBuffer___chars].val = var3; /* _chars on <self:RopeBuffer> */
1141 var2 = var3;
1142 }
1143 var = var2;
1144 RET_LABEL:;
1145 return var;
1146 }
1147 /* method ropes#RopeBuffer#str for (self: RopeBuffer): String */
1148 val* standard___standard__RopeBuffer___str(val* self) {
1149 val* var /* : String */;
1150 val* var1 /* : String */;
1151 var1 = self->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
1152 if (unlikely(var1 == NULL)) {
1153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
1154 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
1155 fatal_exit(1);
1156 }
1157 var = var1;
1158 RET_LABEL:;
1159 return var;
1160 }
1161 /* method ropes#RopeBuffer#str= for (self: RopeBuffer, String) */
1162 void standard___standard__RopeBuffer___str_61d(val* self, val* p0) {
1163 self->attrs[COLOR_standard__ropes__RopeBuffer___str].val = p0; /* _str on <self:RopeBuffer> */
1164 RET_LABEL:;
1165 }
1166 /* method ropes#RopeBuffer#ns for (self: RopeBuffer): NativeString */
1167 char* standard___standard__RopeBuffer___ns(val* self) {
1168 char* var /* : NativeString */;
1169 char* var1 /* : NativeString */;
1170 var1 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
1171 var = var1;
1172 RET_LABEL:;
1173 return var;
1174 }
1175 /* method ropes#RopeBuffer#ns= for (self: RopeBuffer, NativeString) */
1176 void standard___standard__RopeBuffer___ns_61d(val* self, char* p0) {
1177 self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str = p0; /* _ns on <self:RopeBuffer> */
1178 RET_LABEL:;
1179 }
1180 /* method ropes#RopeBuffer#rpos for (self: RopeBuffer): Int */
1181 long standard___standard__RopeBuffer___rpos(val* self) {
1182 long var /* : Int */;
1183 long var1 /* : Int */;
1184 var1 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
1185 var = var1;
1186 RET_LABEL:;
1187 return var;
1188 }
1189 /* method ropes#RopeBuffer#rpos= for (self: RopeBuffer, Int) */
1190 void standard___standard__RopeBuffer___rpos_61d(val* self, long p0) {
1191 self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = p0; /* _rpos on <self:RopeBuffer> */
1192 RET_LABEL:;
1193 }
1194 /* method ropes#RopeBuffer#dumped for (self: RopeBuffer): Int */
1195 long standard___standard__RopeBuffer___dumped(val* self) {
1196 long var /* : Int */;
1197 long var1 /* : Int */;
1198 var1 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
1199 var = var1;
1200 RET_LABEL:;
1201 return var;
1202 }
1203 /* method ropes#RopeBuffer#dumped= for (self: RopeBuffer, Int) */
1204 void standard___standard__RopeBuffer___dumped_61d(val* self, long p0) {
1205 self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l = p0; /* _dumped on <self:RopeBuffer> */
1206 RET_LABEL:;
1207 }
1208 /* method ropes#RopeBuffer#length for (self: RopeBuffer): Int */
1209 long standard___standard__RopeBuffer___standard__string__Text__length(val* self) {
1210 long var /* : Int */;
1211 long var1 /* : Int */;
1212 var1 = self->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <self:RopeBuffer> */
1213 var = var1;
1214 RET_LABEL:;
1215 return var;
1216 }
1217 /* method ropes#RopeBuffer#length= for (self: RopeBuffer, Int) */
1218 void standard___standard__RopeBuffer___length_61d(val* self, long p0) {
1219 self->attrs[COLOR_standard__ropes__RopeBuffer___length].l = p0; /* _length on <self:RopeBuffer> */
1220 RET_LABEL:;
1221 }
1222 /* method ropes#RopeBuffer#buf_size for (self: RopeBuffer): Int */
1223 long standard___standard__RopeBuffer___buf_size(val* self) {
1224 long var /* : Int */;
1225 long var1 /* : Int */;
1226 var1 = self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
1227 var = var1;
1228 RET_LABEL:;
1229 return var;
1230 }
1231 /* method ropes#RopeBuffer#buf_size= for (self: RopeBuffer, Int) */
1232 void standard___standard__RopeBuffer___buf_size_61d(val* self, long p0) {
1233 self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l = p0; /* _buf_size on <self:RopeBuffer> */
1234 RET_LABEL:;
1235 }
1236 /* method ropes#RopeBuffer#substrings for (self: RopeBuffer): Iterator[FlatText] */
1237 val* standard___standard__RopeBuffer___standard__string__Text__substrings(val* self) {
1238 val* var /* : Iterator[FlatText] */;
1239 val* var1 /* : RopeBufSubstringIterator */;
1240 var1 = NEW_standard__ropes__RopeBufSubstringIterator(&type_standard__ropes__RopeBufSubstringIterator);
1241 {
1242 standard__ropes___standard__ropes__RopeBufSubstringIterator___init(var1, self); /* Direct call ropes#RopeBufSubstringIterator#init on <var1:RopeBufSubstringIterator>*/
1243 }
1244 var = var1;
1245 goto RET_LABEL;
1246 RET_LABEL:;
1247 return var;
1248 }
1249 /* method ropes#RopeBuffer#init for (self: RopeBuffer) */
1250 void standard___standard__RopeBuffer___standard__kernel__Object__init(val* self) {
1251 static val* varonce;
1252 val* var /* : String */;
1253 char* var1 /* : NativeString */;
1254 val* var2 /* : FlatString */;
1255 char* var4 /* : NativeString */;
1256 val* var5 /* : Sys */;
1257 long var6 /* : Int */;
1258 char* var7 /* : NativeString */;
1259 char* var9 /* : NativeString */;
1260 val* var11 /* : Sys */;
1261 long var12 /* : Int */;
1262 {
1263 ((void(*)(val* self))(self->class->vft[COLOR_standard___standard__RopeBuffer___standard__kernel__Object__init]))(self); /* init on <self:RopeBuffer>*/
1264 }
1265 if (likely(varonce!=NULL)) {
1266 var = varonce;
1267 } else {
1268 var1 = "";
1269 var2 = standard___standard__NativeString___to_s_with_length(var1, 0l);
1270 var = var2;
1271 varonce = var;
1272 }
1273 {
1274 { /* Inline ropes#RopeBuffer#str= (self,var) on <self:RopeBuffer> */
1275 self->attrs[COLOR_standard__ropes__RopeBuffer___str].val = var; /* _str on <self:RopeBuffer> */
1276 RET_LABEL3:(void)0;
1277 }
1278 }
1279 var4 = NULL/*special!*/;
1280 var5 = glob_sys;
1281 {
1282 var6 = standard__ropes___Sys___maxlen(var5);
1283 }
1284 {
1285 { /* Inline string#NativeString#new (var4,var6) on <var4:NativeString> */
1286 var9 = (char*)nit_alloc(var6);
1287 var7 = var9;
1288 goto RET_LABEL8;
1289 RET_LABEL8:(void)0;
1290 }
1291 }
1292 {
1293 { /* Inline ropes#RopeBuffer#ns= (self,var7) on <self:RopeBuffer> */
1294 self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str = var7; /* _ns on <self:RopeBuffer> */
1295 RET_LABEL10:(void)0;
1296 }
1297 }
1298 var11 = glob_sys;
1299 {
1300 var12 = standard__ropes___Sys___maxlen(var11);
1301 }
1302 {
1303 { /* Inline ropes#RopeBuffer#buf_size= (self,var12) on <self:RopeBuffer> */
1304 self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l = var12; /* _buf_size on <self:RopeBuffer> */
1305 RET_LABEL13:(void)0;
1306 }
1307 }
1308 {
1309 { /* Inline ropes#RopeBuffer#dumped= (self,0l) on <self:RopeBuffer> */
1310 self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l = 0l; /* _dumped on <self:RopeBuffer> */
1311 RET_LABEL14:(void)0;
1312 }
1313 }
1314 RET_LABEL:;
1315 }
1316 /* method ropes#RopeBuffer#from for (self: RopeBuffer, String) */
1317 void standard___standard__RopeBuffer___from(val* self, val* p0) {
1318 val* var_str /* var str: String */;
1319 char* var /* : NativeString */;
1320 val* var2 /* : Sys */;
1321 long var3 /* : Int */;
1322 char* var4 /* : NativeString */;
1323 char* var6 /* : NativeString */;
1324 val* var8 /* : Sys */;
1325 long var9 /* : Int */;
1326 long var11 /* : Int */;
1327 {
1328 standard___standard__RopeBuffer___standard__kernel__Object__init(self); /* Direct call ropes#RopeBuffer#init on <self:RopeBuffer>*/
1329 }
1330 var_str = p0;
1331 {
1332 { /* Inline ropes#RopeBuffer#str= (self,var_str) on <self:RopeBuffer> */
1333 self->attrs[COLOR_standard__ropes__RopeBuffer___str].val = var_str; /* _str on <self:RopeBuffer> */
1334 RET_LABEL1:(void)0;
1335 }
1336 }
1337 var = NULL/*special!*/;
1338 var2 = glob_sys;
1339 {
1340 var3 = standard__ropes___Sys___maxlen(var2);
1341 }
1342 {
1343 { /* Inline string#NativeString#new (var,var3) on <var:NativeString> */
1344 var6 = (char*)nit_alloc(var3);
1345 var4 = var6;
1346 goto RET_LABEL5;
1347 RET_LABEL5:(void)0;
1348 }
1349 }
1350 {
1351 { /* Inline ropes#RopeBuffer#ns= (self,var4) on <self:RopeBuffer> */
1352 self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str = var4; /* _ns on <self:RopeBuffer> */
1353 RET_LABEL7:(void)0;
1354 }
1355 }
1356 var8 = glob_sys;
1357 {
1358 var9 = standard__ropes___Sys___maxlen(var8);
1359 }
1360 {
1361 { /* Inline ropes#RopeBuffer#buf_size= (self,var9) on <self:RopeBuffer> */
1362 self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l = var9; /* _buf_size on <self:RopeBuffer> */
1363 RET_LABEL10:(void)0;
1364 }
1365 }
1366 {
1367 var11 = ((long(*)(val* self))(var_str->class->vft[COLOR_standard__string__Text__length]))(var_str); /* length on <var_str:String>*/
1368 }
1369 {
1370 { /* Inline ropes#RopeBuffer#length= (self,var11) on <self:RopeBuffer> */
1371 self->attrs[COLOR_standard__ropes__RopeBuffer___length].l = var11; /* _length on <self:RopeBuffer> */
1372 RET_LABEL12:(void)0;
1373 }
1374 }
1375 {
1376 { /* Inline ropes#RopeBuffer#dumped= (self,0l) on <self:RopeBuffer> */
1377 self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l = 0l; /* _dumped on <self:RopeBuffer> */
1378 RET_LABEL13:(void)0;
1379 }
1380 }
1381 RET_LABEL:;
1382 }
1383 /* method ropes#RopeBuffer#empty for (self: RopeBuffer): Buffer */
1384 val* standard___standard__RopeBuffer___standard__string__Text__empty(val* self) {
1385 val* var /* : Buffer */;
1386 val* var1 /* : RopeBuffer */;
1387 var1 = NEW_standard__RopeBuffer(&type_standard__RopeBuffer);
1388 {
1389 standard___standard__RopeBuffer___standard__kernel__Object__init(var1); /* Direct call ropes#RopeBuffer#init on <var1:RopeBuffer>*/
1390 }
1391 var = var1;
1392 goto RET_LABEL;
1393 RET_LABEL:;
1394 return var;
1395 }
1396 /* method ropes#RopeBuffer#substring for (self: RopeBuffer, Int, Int): Buffer */
1397 val* standard___standard__RopeBuffer___standard__string__Text__substring(val* self, long p0, long p1) {
1398 val* var /* : Buffer */;
1399 long var_from /* var from: Int */;
1400 long var_count /* var count: Int */;
1401 val* var1 /* : String */;
1402 val* var3 /* : String */;
1403 long var4 /* : Int */;
1404 long var_strlen /* var strlen: Int */;
1405 short int var5 /* : Bool */;
1406 short int var7 /* : Bool */;
1407 int cltype;
1408 int idtype;
1409 const char* var_class_name;
1410 short int var8 /* : Bool */;
1411 long var9 /* : Int */;
1412 short int var11 /* : Bool */;
1413 int cltype12;
1414 int idtype13;
1415 const char* var_class_name14;
1416 long var15 /* : Int */;
1417 short int var16 /* : Bool */;
1418 short int var18 /* : Bool */;
1419 int cltype19;
1420 int idtype20;
1421 const char* var_class_name21;
1422 short int var22 /* : Bool */;
1423 long var23 /* : Int */;
1424 long var25 /* : Int */;
1425 short int var26 /* : Bool */;
1426 short int var28 /* : Bool */;
1427 int cltype29;
1428 int idtype30;
1429 const char* var_class_name31;
1430 short int var32 /* : Bool */;
1431 long var33 /* : Int */;
1432 long var35 /* : Int */;
1433 long var36 /* : Int */;
1434 short int var38 /* : Bool */;
1435 int cltype39;
1436 int idtype40;
1437 const char* var_class_name41;
1438 long var42 /* : Int */;
1439 short int var43 /* : Bool */;
1440 short int var45 /* : Bool */;
1441 val* var46 /* : Buffer */;
1442 short int var47 /* : Bool */;
1443 short int var49 /* : Bool */;
1444 int cltype50;
1445 int idtype51;
1446 const char* var_class_name52;
1447 short int var53 /* : Bool */;
1448 long var54 /* : Int */;
1449 short int var56 /* : Bool */;
1450 int cltype57;
1451 int idtype58;
1452 const char* var_class_name59;
1453 long var60 /* : Int */;
1454 long var_subpos /* var subpos: Int */;
1455 short int var61 /* : Bool */;
1456 short int var63 /* : Bool */;
1457 int cltype64;
1458 int idtype65;
1459 const char* var_class_name66;
1460 short int var67 /* : Bool */;
1461 val* var68 /* : RopeBuffer */;
1462 val* var69 /* : String */;
1463 val* var71 /* : String */;
1464 val* var72 /* : Text */;
1465 val* var73 /* : String */;
1466 val* var75 /* : String */;
1467 val* var76 /* : Text */;
1468 val* var_l /* var l: String */;
1469 long var77 /* : Int */;
1470 short int var79 /* : Bool */;
1471 int cltype80;
1472 int idtype81;
1473 const char* var_class_name82;
1474 long var83 /* : Int */;
1475 long var_rem /* var rem: Int */;
1476 char* var84 /* : NativeString */;
1477 char* var85 /* : NativeString */;
1478 char* var87 /* : NativeString */;
1479 char* var_nns /* var nns: NativeString */;
1480 char* var88 /* : NativeString */;
1481 char* var90 /* : NativeString */;
1482 long var91 /* : Int */;
1483 long var93 /* : Int */;
1484 val* var95 /* : RopeBuffer */;
1485 val* var96 /* : FlatString */;
1486 val* var97 /* : String */;
1487 char* var98 /* : NativeString */;
1488 char* var99 /* : NativeString */;
1489 char* var101 /* : NativeString */;
1490 char* var_nns102 /* var nns: NativeString */;
1491 char* var103 /* : NativeString */;
1492 char* var105 /* : NativeString */;
1493 long var106 /* : Int */;
1494 long var108 /* : Int */;
1495 val* var110 /* : RopeBuffer */;
1496 val* var111 /* : FlatString */;
1497 var_from = p0;
1498 var_count = p1;
1499 {
1500 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
1501 var3 = self->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
1502 if (unlikely(var3 == NULL)) {
1503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
1504 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
1505 fatal_exit(1);
1506 }
1507 var1 = var3;
1508 RET_LABEL2:(void)0;
1509 }
1510 }
1511 {
1512 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_standard__string__Text__length]))(var1); /* length on <var1:String>*/
1513 }
1514 var_strlen = var4;
1515 {
1516 { /* Inline kernel#Int#< (var_from,0l) on <var_from:Int> */
1517 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1518 /* <0l:Int> isa OTHER */
1519 var7 = 1; /* easy <0l:Int> isa OTHER*/
1520 if (unlikely(!var7)) {
1521 var_class_name = type_standard__Int.name;
1522 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1523 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1524 fatal_exit(1);
1525 }
1526 var8 = var_from < 0l;
1527 var5 = var8;
1528 goto RET_LABEL6;
1529 RET_LABEL6:(void)0;
1530 }
1531 }
1532 if (var5){
1533 {
1534 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
1535 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1536 /* <var_from:Int> isa OTHER */
1537 var11 = 1; /* easy <var_from:Int> isa OTHER*/
1538 if (unlikely(!var11)) {
1539 var_class_name14 = type_standard__Int.name;
1540 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
1541 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1542 fatal_exit(1);
1543 }
1544 var15 = var_count + var_from;
1545 var9 = var15;
1546 goto RET_LABEL10;
1547 RET_LABEL10:(void)0;
1548 }
1549 }
1550 var_count = var9;
1551 {
1552 { /* Inline kernel#Int#< (var_count,0l) on <var_count:Int> */
1553 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1554 /* <0l:Int> isa OTHER */
1555 var18 = 1; /* easy <0l:Int> isa OTHER*/
1556 if (unlikely(!var18)) {
1557 var_class_name21 = type_standard__Int.name;
1558 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
1559 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1560 fatal_exit(1);
1561 }
1562 var22 = var_count < 0l;
1563 var16 = var22;
1564 goto RET_LABEL17;
1565 RET_LABEL17:(void)0;
1566 }
1567 }
1568 if (var16){
1569 var_count = 0l;
1570 } else {
1571 }
1572 var_from = 0l;
1573 } else {
1574 }
1575 {
1576 { /* Inline ropes#RopeBuffer#length (self) on <self:RopeBuffer> */
1577 var25 = self->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <self:RopeBuffer> */
1578 var23 = var25;
1579 RET_LABEL24:(void)0;
1580 }
1581 }
1582 {
1583 { /* Inline kernel#Int#> (var_count,var23) on <var_count:Int> */
1584 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
1585 /* <var23:Int> isa OTHER */
1586 var28 = 1; /* easy <var23:Int> isa OTHER*/
1587 if (unlikely(!var28)) {
1588 var_class_name31 = type_standard__Int.name;
1589 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
1590 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
1591 fatal_exit(1);
1592 }
1593 var32 = var_count > var23;
1594 var26 = var32;
1595 goto RET_LABEL27;
1596 RET_LABEL27:(void)0;
1597 }
1598 }
1599 if (var26){
1600 {
1601 { /* Inline ropes#RopeBuffer#length (self) on <self:RopeBuffer> */
1602 var35 = self->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <self:RopeBuffer> */
1603 var33 = var35;
1604 RET_LABEL34:(void)0;
1605 }
1606 }
1607 {
1608 { /* Inline kernel#Int#- (var33,var_from) on <var33:Int> */
1609 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1610 /* <var_from:Int> isa OTHER */
1611 var38 = 1; /* easy <var_from:Int> isa OTHER*/
1612 if (unlikely(!var38)) {
1613 var_class_name41 = type_standard__Int.name;
1614 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
1615 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1616 fatal_exit(1);
1617 }
1618 var42 = var33 - var_from;
1619 var36 = var42;
1620 goto RET_LABEL37;
1621 RET_LABEL37:(void)0;
1622 }
1623 }
1624 var_count = var36;
1625 } else {
1626 }
1627 {
1628 { /* Inline kernel#Int#== (var_count,0l) on <var_count:Int> */
1629 var45 = var_count == 0l;
1630 var43 = var45;
1631 goto RET_LABEL44;
1632 RET_LABEL44:(void)0;
1633 }
1634 }
1635 if (var43){
1636 {
1637 var46 = standard___standard__RopeBuffer___standard__string__Text__empty(self);
1638 }
1639 var = var46;
1640 goto RET_LABEL;
1641 } else {
1642 }
1643 {
1644 { /* Inline kernel#Int#< (var_from,var_strlen) on <var_from:Int> */
1645 /* Covariant cast for argument 0 (i) <var_strlen:Int> isa OTHER */
1646 /* <var_strlen:Int> isa OTHER */
1647 var49 = 1; /* easy <var_strlen:Int> isa OTHER*/
1648 if (unlikely(!var49)) {
1649 var_class_name52 = type_standard__Int.name;
1650 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
1651 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1652 fatal_exit(1);
1653 }
1654 var53 = var_from < var_strlen;
1655 var47 = var53;
1656 goto RET_LABEL48;
1657 RET_LABEL48:(void)0;
1658 }
1659 }
1660 if (var47){
1661 {
1662 { /* Inline kernel#Int#- (var_strlen,var_from) on <var_strlen:Int> */
1663 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1664 /* <var_from:Int> isa OTHER */
1665 var56 = 1; /* easy <var_from:Int> isa OTHER*/
1666 if (unlikely(!var56)) {
1667 var_class_name59 = type_standard__Int.name;
1668 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
1669 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1670 fatal_exit(1);
1671 }
1672 var60 = var_strlen - var_from;
1673 var54 = var60;
1674 goto RET_LABEL55;
1675 RET_LABEL55:(void)0;
1676 }
1677 }
1678 var_subpos = var54;
1679 {
1680 { /* Inline kernel#Int#<= (var_count,var_subpos) on <var_count:Int> */
1681 /* Covariant cast for argument 0 (i) <var_subpos:Int> isa OTHER */
1682 /* <var_subpos:Int> isa OTHER */
1683 var63 = 1; /* easy <var_subpos:Int> isa OTHER*/
1684 if (unlikely(!var63)) {
1685 var_class_name66 = type_standard__Int.name;
1686 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
1687 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
1688 fatal_exit(1);
1689 }
1690 var67 = var_count <= var_subpos;
1691 var61 = var67;
1692 goto RET_LABEL62;
1693 RET_LABEL62:(void)0;
1694 }
1695 }
1696 if (var61){
1697 var68 = NEW_standard__RopeBuffer(&type_standard__RopeBuffer);
1698 {
1699 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
1700 var71 = self->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
1701 if (unlikely(var71 == NULL)) {
1702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
1703 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
1704 fatal_exit(1);
1705 }
1706 var69 = var71;
1707 RET_LABEL70:(void)0;
1708 }
1709 }
1710 {
1711 var72 = ((val*(*)(val* self, long p0, long p1))(var69->class->vft[COLOR_standard__string__Text__substring]))(var69, var_from, var_count); /* substring on <var69:String>*/
1712 }
1713 {
1714 standard___standard__RopeBuffer___from(var68, var72); /* Direct call ropes#RopeBuffer#from on <var68:RopeBuffer>*/
1715 }
1716 var = var68;
1717 goto RET_LABEL;
1718 } else {
1719 {
1720 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
1721 var75 = self->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
1722 if (unlikely(var75 == NULL)) {
1723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
1724 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
1725 fatal_exit(1);
1726 }
1727 var73 = var75;
1728 RET_LABEL74:(void)0;
1729 }
1730 }
1731 {
1732 var76 = standard___standard__Text___substring_from(var73, var_from);
1733 }
1734 var_l = var76;
1735 {
1736 { /* Inline kernel#Int#- (var_count,var_subpos) on <var_count:Int> */
1737 /* Covariant cast for argument 0 (i) <var_subpos:Int> isa OTHER */
1738 /* <var_subpos:Int> isa OTHER */
1739 var79 = 1; /* easy <var_subpos:Int> isa OTHER*/
1740 if (unlikely(!var79)) {
1741 var_class_name82 = type_standard__Int.name;
1742 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name82);
1743 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1744 fatal_exit(1);
1745 }
1746 var83 = var_count - var_subpos;
1747 var77 = var83;
1748 goto RET_LABEL78;
1749 RET_LABEL78:(void)0;
1750 }
1751 }
1752 var_rem = var77;
1753 var84 = NULL/*special!*/;
1754 {
1755 { /* Inline string#NativeString#new (var84,var_rem) on <var84:NativeString> */
1756 var87 = (char*)nit_alloc(var_rem);
1757 var85 = var87;
1758 goto RET_LABEL86;
1759 RET_LABEL86:(void)0;
1760 }
1761 }
1762 var_nns = var85;
1763 {
1764 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
1765 var90 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
1766 var88 = var90;
1767 RET_LABEL89:(void)0;
1768 }
1769 }
1770 {
1771 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
1772 var93 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
1773 var91 = var93;
1774 RET_LABEL92:(void)0;
1775 }
1776 }
1777 {
1778 { /* Inline string#NativeString#copy_to (var88,var_nns,var_rem,var91,0l) on <var88:NativeString> */
1779 memmove(var_nns+0l,var88+var91,var_rem);
1780 RET_LABEL94:(void)0;
1781 }
1782 }
1783 var95 = NEW_standard__RopeBuffer(&type_standard__RopeBuffer);
1784 {
1785 var96 = standard___standard__NativeString___to_s_with_length(var_nns, var_rem);
1786 }
1787 {
1788 var97 = ((val*(*)(val* self, val* p0))(var_l->class->vft[COLOR_standard__string__String___43d]))(var_l, var96); /* + on <var_l:String>*/
1789 }
1790 {
1791 standard___standard__RopeBuffer___from(var95, var97); /* Direct call ropes#RopeBuffer#from on <var95:RopeBuffer>*/
1792 }
1793 var = var95;
1794 goto RET_LABEL;
1795 }
1796 } else {
1797 var98 = NULL/*special!*/;
1798 {
1799 { /* Inline string#NativeString#new (var98,var_count) on <var98:NativeString> */
1800 var101 = (char*)nit_alloc(var_count);
1801 var99 = var101;
1802 goto RET_LABEL100;
1803 RET_LABEL100:(void)0;
1804 }
1805 }
1806 var_nns102 = var99;
1807 {
1808 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
1809 var105 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
1810 var103 = var105;
1811 RET_LABEL104:(void)0;
1812 }
1813 }
1814 {
1815 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
1816 var108 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
1817 var106 = var108;
1818 RET_LABEL107:(void)0;
1819 }
1820 }
1821 {
1822 { /* Inline string#NativeString#copy_to (var103,var_nns102,var_count,var106,0l) on <var103:NativeString> */
1823 memmove(var_nns102+0l,var103+var106,var_count);
1824 RET_LABEL109:(void)0;
1825 }
1826 }
1827 var110 = NEW_standard__RopeBuffer(&type_standard__RopeBuffer);
1828 {
1829 var111 = standard___standard__NativeString___to_s_with_length(var_nns102, var_count);
1830 }
1831 {
1832 standard___standard__RopeBuffer___from(var110, var111); /* Direct call ropes#RopeBuffer#from on <var110:RopeBuffer>*/
1833 }
1834 var = var110;
1835 goto RET_LABEL;
1836 }
1837 RET_LABEL:;
1838 return var;
1839 }
1840 /* method ropes#RopeBuffer#append for (self: RopeBuffer, Text) */
1841 void standard___standard__RopeBuffer___standard__string__Buffer__append(val* self, val* p0) {
1842 val* var_s /* var s: Text */;
1843 long var /* : Int */;
1844 long var_slen /* var slen: Int */;
1845 val* var_ /* var : RopeBuffer */;
1846 long var1 /* : Int */;
1847 long var3 /* : Int */;
1848 long var4 /* : Int */;
1849 short int var6 /* : Bool */;
1850 int cltype;
1851 int idtype;
1852 const char* var_class_name;
1853 long var7 /* : Int */;
1854 long var9 /* : Int */;
1855 long var11 /* : Int */;
1856 long var_rp /* var rp: Int */;
1857 short int var12 /* : Bool */;
1858 short int var13 /* : Bool */;
1859 int cltype14;
1860 int idtype15;
1861 short int var_16 /* var : Bool */;
1862 val* var17 /* : Sys */;
1863 long var18 /* : Int */;
1864 short int var19 /* : Bool */;
1865 short int var21 /* : Bool */;
1866 int cltype22;
1867 int idtype23;
1868 const char* var_class_name24;
1869 short int var25 /* : Bool */;
1870 short int var26 /* : Bool */;
1871 short int var27 /* : Bool */;
1872 short int var29 /* : Bool */;
1873 int cltype30;
1874 int idtype31;
1875 const char* var_class_name32;
1876 short int var33 /* : Bool */;
1877 short int var_34 /* var : Bool */;
1878 long var35 /* : Int */;
1879 long var37 /* : Int */;
1880 short int var38 /* : Bool */;
1881 short int var40 /* : Bool */;
1882 short int var41 /* : Bool */;
1883 val* var_42 /* var : RopeBuffer */;
1884 val* var43 /* : String */;
1885 val* var45 /* : String */;
1886 val* var46 /* : FlatString */;
1887 char* var47 /* : NativeString */;
1888 char* var49 /* : NativeString */;
1889 long var50 /* : Int */;
1890 long var52 /* : Int */;
1891 long var53 /* : Int */;
1892 short int var55 /* : Bool */;
1893 int cltype56;
1894 int idtype57;
1895 const char* var_class_name58;
1896 long var59 /* : Int */;
1897 long var60 /* : Int */;
1898 long var62 /* : Int */;
1899 long var63 /* : Int */;
1900 short int var65 /* : Bool */;
1901 int cltype66;
1902 int idtype67;
1903 const char* var_class_name68;
1904 long var69 /* : Int */;
1905 val* var70 /* : String */;
1906 val* var73 /* : String */;
1907 val* var75 /* : String */;
1908 val* var76 /* : String */;
1909 long var78 /* : Int */;
1910 long var80 /* : Int */;
1911 long var81 /* : Int */;
1912 short int var83 /* : Bool */;
1913 int cltype84;
1914 int idtype85;
1915 const char* var_class_name86;
1916 long var87 /* : Int */;
1917 long var_remsp /* var remsp: Int */;
1918 short int var88 /* : Bool */;
1919 int cltype89;
1920 int idtype90;
1921 long var91 /* : Int */;
1922 long var93 /* : Int */;
1923 long var_begin /* var begin: Int */;
1924 char* var94 /* : NativeString */;
1925 char* var96 /* : NativeString */;
1926 char* var_sits /* var sits: NativeString */;
1927 short int var97 /* : Bool */;
1928 int cltype98;
1929 int idtype99;
1930 char* var100 /* : NativeString */;
1931 char* var102 /* : NativeString */;
1932 short int var103 /* : Bool */;
1933 short int var105 /* : Bool */;
1934 int cltype106;
1935 int idtype107;
1936 const char* var_class_name108;
1937 short int var109 /* : Bool */;
1938 val* var110 /* : SequenceRead[Char] */;
1939 val* var_111 /* var : SequenceRead[Char] */;
1940 val* var112 /* : Iterator[nullable Object] */;
1941 val* var_113 /* var : IndexedIterator[Char] */;
1942 short int var114 /* : Bool */;
1943 val* var115 /* : nullable Object */;
1944 uint32_t var116 /* : Char */;
1945 uint32_t var_i /* var i: Char */;
1946 char* var117 /* : NativeString */;
1947 char* var119 /* : NativeString */;
1948 long var120 /* : Int */;
1949 long var122 /* : Int */;
1950 val* var_124 /* var : RopeBuffer */;
1951 long var125 /* : Int */;
1952 long var127 /* : Int */;
1953 long var128 /* : Int */;
1954 short int var130 /* : Bool */;
1955 int cltype131;
1956 int idtype132;
1957 const char* var_class_name133;
1958 long var134 /* : Int */;
1959 long var_spos /* var spos: Int */;
1960 long var_i136 /* var i: Int */;
1961 long var_137 /* var : Int */;
1962 short int var138 /* : Bool */;
1963 short int var140 /* : Bool */;
1964 int cltype141;
1965 int idtype142;
1966 const char* var_class_name143;
1967 short int var144 /* : Bool */;
1968 char* var145 /* : NativeString */;
1969 char* var147 /* : NativeString */;
1970 long var148 /* : Int */;
1971 long var150 /* : Int */;
1972 uint32_t var151 /* : Char */;
1973 val* var_153 /* var : RopeBuffer */;
1974 long var154 /* : Int */;
1975 long var156 /* : Int */;
1976 long var157 /* : Int */;
1977 short int var159 /* : Bool */;
1978 int cltype160;
1979 int idtype161;
1980 const char* var_class_name162;
1981 long var163 /* : Int */;
1982 long var165 /* : Int */;
1983 short int var167 /* : Bool */;
1984 int cltype168;
1985 int idtype169;
1986 const char* var_class_name170;
1987 long var171 /* : Int */;
1988 long var172 /* : Int */;
1989 short int var174 /* : Bool */;
1990 short int var176 /* : Bool */;
1991 int cltype177;
1992 int idtype178;
1993 const char* var_class_name179;
1994 short int var180 /* : Bool */;
1995 char* var181 /* : NativeString */;
1996 char* var183 /* : NativeString */;
1997 long var184 /* : Int */;
1998 long var186 /* : Int */;
1999 uint32_t var187 /* : Char */;
2000 long var189 /* : Int */;
2001 short int var191 /* : Bool */;
2002 int cltype192;
2003 int idtype193;
2004 const char* var_class_name194;
2005 long var195 /* : Int */;
2006 val* var_196 /* var : RopeBuffer */;
2007 long var197 /* : Int */;
2008 long var199 /* : Int */;
2009 long var200 /* : Int */;
2010 short int var202 /* : Bool */;
2011 int cltype203;
2012 int idtype204;
2013 const char* var_class_name205;
2014 long var206 /* : Int */;
2015 short int var209 /* : Bool */;
2016 short int var211 /* : Bool */;
2017 int cltype212;
2018 int idtype213;
2019 const char* var_class_name214;
2020 short int var215 /* : Bool */;
2021 short int var216 /* : Bool */;
2022 short int var218 /* : Bool */;
2023 int cltype219;
2024 int idtype220;
2025 const char* var_class_name221;
2026 short int var222 /* : Bool */;
2027 char* var224 /* : NativeString */;
2028 char* var226 /* : NativeString */;
2029 val* var_228 /* var : RopeBuffer */;
2030 long var229 /* : Int */;
2031 long var231 /* : Int */;
2032 long var232 /* : Int */;
2033 short int var234 /* : Bool */;
2034 int cltype235;
2035 int idtype236;
2036 const char* var_class_name237;
2037 long var238 /* : Int */;
2038 char* var240 /* : NativeString */;
2039 char* var242 /* : NativeString */;
2040 long var244 /* : Int */;
2041 long var246 /* : Int */;
2042 long var248 /* : Int */;
2043 short int var250 /* : Bool */;
2044 int cltype251;
2045 int idtype252;
2046 const char* var_class_name253;
2047 long var254 /* : Int */;
2048 long var_nlen /* var nlen: Int */;
2049 char* var255 /* : NativeString */;
2050 char* var257 /* : NativeString */;
2051 long var258 /* : Int */;
2052 short int var260 /* : Bool */;
2053 int cltype261;
2054 int idtype262;
2055 const char* var_class_name263;
2056 long var264 /* : Int */;
2057 var_s = p0;
2058 {
2059 var = ((long(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s); /* length on <var_s:Text>*/
2060 }
2061 var_slen = var;
2062 var_ = self;
2063 {
2064 { /* Inline ropes#RopeBuffer#length (var_) on <var_:RopeBuffer> */
2065 var3 = var_->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <var_:RopeBuffer> */
2066 var1 = var3;
2067 RET_LABEL2:(void)0;
2068 }
2069 }
2070 {
2071 { /* Inline kernel#Int#+ (var1,var_slen) on <var1:Int> */
2072 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
2073 /* <var_slen:Int> isa OTHER */
2074 var6 = 1; /* easy <var_slen:Int> isa OTHER*/
2075 if (unlikely(!var6)) {
2076 var_class_name = type_standard__Int.name;
2077 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2078 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2079 fatal_exit(1);
2080 }
2081 var7 = var1 + var_slen;
2082 var4 = var7;
2083 goto RET_LABEL5;
2084 RET_LABEL5:(void)0;
2085 }
2086 }
2087 {
2088 { /* Inline ropes#RopeBuffer#length= (var_,var4) on <var_:RopeBuffer> */
2089 var_->attrs[COLOR_standard__ropes__RopeBuffer___length].l = var4; /* _length on <var_:RopeBuffer> */
2090 RET_LABEL8:(void)0;
2091 }
2092 }
2093 {
2094 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
2095 var11 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
2096 var9 = var11;
2097 RET_LABEL10:(void)0;
2098 }
2099 }
2100 var_rp = var9;
2101 /* <var_s:Text> isa Rope */
2102 cltype14 = type_standard__ropes__Rope.color;
2103 idtype15 = type_standard__ropes__Rope.id;
2104 if(cltype14 >= var_s->type->table_size) {
2105 var13 = 0;
2106 } else {
2107 var13 = var_s->type->type_table[cltype14] == idtype15;
2108 }
2109 var_16 = var13;
2110 if (var13){
2111 var12 = var_16;
2112 } else {
2113 var17 = glob_sys;
2114 {
2115 var18 = standard__ropes___Sys___maxlen(var17);
2116 }
2117 {
2118 { /* Inline kernel#Int#> (var_slen,var18) on <var_slen:Int> */
2119 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
2120 /* <var18:Int> isa OTHER */
2121 var21 = 1; /* easy <var18:Int> isa OTHER*/
2122 if (unlikely(!var21)) {
2123 var_class_name24 = type_standard__Int.name;
2124 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
2125 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
2126 fatal_exit(1);
2127 }
2128 var25 = var_slen > var18;
2129 var19 = var25;
2130 goto RET_LABEL20;
2131 RET_LABEL20:(void)0;
2132 }
2133 }
2134 var12 = var19;
2135 }
2136 if (var12){
2137 {
2138 { /* Inline kernel#Int#> (var_rp,0l) on <var_rp:Int> */
2139 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2140 /* <0l:Int> isa OTHER */
2141 var29 = 1; /* easy <0l:Int> isa OTHER*/
2142 if (unlikely(!var29)) {
2143 var_class_name32 = type_standard__Int.name;
2144 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
2145 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
2146 fatal_exit(1);
2147 }
2148 var33 = var_rp > 0l;
2149 var27 = var33;
2150 goto RET_LABEL28;
2151 RET_LABEL28:(void)0;
2152 }
2153 }
2154 var_34 = var27;
2155 if (var27){
2156 {
2157 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
2158 var37 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
2159 var35 = var37;
2160 RET_LABEL36:(void)0;
2161 }
2162 }
2163 {
2164 { /* Inline kernel#Int#!= (var35,var_rp) on <var35:Int> */
2165 var40 = var35 == var_rp;
2166 var41 = !var40;
2167 var38 = var41;
2168 goto RET_LABEL39;
2169 RET_LABEL39:(void)0;
2170 }
2171 }
2172 var26 = var38;
2173 } else {
2174 var26 = var_34;
2175 }
2176 if (var26){
2177 var_42 = self;
2178 {
2179 { /* Inline ropes#RopeBuffer#str (var_42) on <var_42:RopeBuffer> */
2180 var45 = var_42->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var_42:RopeBuffer> */
2181 if (unlikely(var45 == NULL)) {
2182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2183 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
2184 fatal_exit(1);
2185 }
2186 var43 = var45;
2187 RET_LABEL44:(void)0;
2188 }
2189 }
2190 var46 = NEW_standard__FlatString(&type_standard__FlatString);
2191 {
2192 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2193 var49 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2194 var47 = var49;
2195 RET_LABEL48:(void)0;
2196 }
2197 }
2198 {
2199 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
2200 var52 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
2201 var50 = var52;
2202 RET_LABEL51:(void)0;
2203 }
2204 }
2205 {
2206 { /* Inline kernel#Int#- (var_rp,var50) on <var_rp:Int> */
2207 /* Covariant cast for argument 0 (i) <var50:Int> isa OTHER */
2208 /* <var50:Int> isa OTHER */
2209 var55 = 1; /* easy <var50:Int> isa OTHER*/
2210 if (unlikely(!var55)) {
2211 var_class_name58 = type_standard__Int.name;
2212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
2213 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
2214 fatal_exit(1);
2215 }
2216 var59 = var_rp - var50;
2217 var53 = var59;
2218 goto RET_LABEL54;
2219 RET_LABEL54:(void)0;
2220 }
2221 }
2222 {
2223 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
2224 var62 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
2225 var60 = var62;
2226 RET_LABEL61:(void)0;
2227 }
2228 }
2229 {
2230 { /* Inline kernel#Int#- (var_rp,1l) on <var_rp:Int> */
2231 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2232 /* <1l:Int> isa OTHER */
2233 var65 = 1; /* easy <1l:Int> isa OTHER*/
2234 if (unlikely(!var65)) {
2235 var_class_name68 = type_standard__Int.name;
2236 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
2237 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
2238 fatal_exit(1);
2239 }
2240 var69 = var_rp - 1l;
2241 var63 = var69;
2242 goto RET_LABEL64;
2243 RET_LABEL64:(void)0;
2244 }
2245 }
2246 {
2247 standard___standard__FlatString___with_infos(var46, var47, var53, var60, var63); /* Direct call string#FlatString#with_infos on <var46:FlatString>*/
2248 }
2249 {
2250 var70 = ((val*(*)(val* self, val* p0))(var43->class->vft[COLOR_standard__string__String___43d]))(var43, var46); /* + on <var43:String>*/
2251 }
2252 {
2253 { /* Inline ropes#RopeBuffer#str= (var_42,var70) on <var_42:RopeBuffer> */
2254 var_42->attrs[COLOR_standard__ropes__RopeBuffer___str].val = var70; /* _str on <var_42:RopeBuffer> */
2255 RET_LABEL71:(void)0;
2256 }
2257 }
2258 {
2259 { /* Inline ropes#RopeBuffer#dumped= (self,var_rp) on <self:RopeBuffer> */
2260 self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l = var_rp; /* _dumped on <self:RopeBuffer> */
2261 RET_LABEL72:(void)0;
2262 }
2263 }
2264 } else {
2265 }
2266 {
2267 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
2268 var75 = self->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
2269 if (unlikely(var75 == NULL)) {
2270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2271 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
2272 fatal_exit(1);
2273 }
2274 var73 = var75;
2275 RET_LABEL74:(void)0;
2276 }
2277 }
2278 {
2279 var76 = ((val*(*)(val* self, val* p0))(var73->class->vft[COLOR_standard__string__String___43d]))(var73, var_s); /* + on <var73:String>*/
2280 }
2281 {
2282 { /* Inline ropes#RopeBuffer#str= (self,var76) on <self:RopeBuffer> */
2283 self->attrs[COLOR_standard__ropes__RopeBuffer___str].val = var76; /* _str on <self:RopeBuffer> */
2284 RET_LABEL77:(void)0;
2285 }
2286 }
2287 goto RET_LABEL;
2288 } else {
2289 }
2290 {
2291 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
2292 var80 = self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
2293 var78 = var80;
2294 RET_LABEL79:(void)0;
2295 }
2296 }
2297 {
2298 { /* Inline kernel#Int#- (var78,var_rp) on <var78:Int> */
2299 /* Covariant cast for argument 0 (i) <var_rp:Int> isa OTHER */
2300 /* <var_rp:Int> isa OTHER */
2301 var83 = 1; /* easy <var_rp:Int> isa OTHER*/
2302 if (unlikely(!var83)) {
2303 var_class_name86 = type_standard__Int.name;
2304 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86);
2305 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
2306 fatal_exit(1);
2307 }
2308 var87 = var78 - var_rp;
2309 var81 = var87;
2310 goto RET_LABEL82;
2311 RET_LABEL82:(void)0;
2312 }
2313 }
2314 var_remsp = var81;
2315 /* <var_s:Text> isa FlatString */
2316 cltype89 = type_standard__FlatString.color;
2317 idtype90 = type_standard__FlatString.id;
2318 if(cltype89 >= var_s->type->table_size) {
2319 var88 = 0;
2320 } else {
2321 var88 = var_s->type->type_table[cltype89] == idtype90;
2322 }
2323 if (var88){
2324 {
2325 { /* Inline string#FlatString#index_from (var_s) on <var_s:Text(FlatString)> */
2326 var93 = var_s->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <var_s:Text(FlatString)> */
2327 var91 = var93;
2328 RET_LABEL92:(void)0;
2329 }
2330 }
2331 var_begin = var91;
2332 {
2333 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatString)> */
2334 var96 = var_s->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_s:Text(FlatString)> */
2335 var94 = var96;
2336 RET_LABEL95:(void)0;
2337 }
2338 }
2339 var_sits = var94;
2340 } else {
2341 /* <var_s:Text> isa FlatBuffer */
2342 cltype98 = type_standard__FlatBuffer.color;
2343 idtype99 = type_standard__FlatBuffer.id;
2344 if(cltype98 >= var_s->type->table_size) {
2345 var97 = 0;
2346 } else {
2347 var97 = var_s->type->type_table[cltype98] == idtype99;
2348 }
2349 if (var97){
2350 var_begin = 0l;
2351 {
2352 { /* Inline string#FlatText#items (var_s) on <var_s:Text(FlatBuffer)> */
2353 var102 = var_s->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_s:Text(FlatBuffer)> */
2354 var100 = var102;
2355 RET_LABEL101:(void)0;
2356 }
2357 }
2358 var_sits = var100;
2359 } else {
2360 {
2361 { /* Inline kernel#Int#<= (var_slen,var_remsp) on <var_slen:Int> */
2362 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
2363 /* <var_remsp:Int> isa OTHER */
2364 var105 = 1; /* easy <var_remsp:Int> isa OTHER*/
2365 if (unlikely(!var105)) {
2366 var_class_name108 = type_standard__Int.name;
2367 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name108);
2368 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2369 fatal_exit(1);
2370 }
2371 var109 = var_slen <= var_remsp;
2372 var103 = var109;
2373 goto RET_LABEL104;
2374 RET_LABEL104:(void)0;
2375 }
2376 }
2377 if (var103){
2378 {
2379 var110 = ((val*(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__chars]))(var_s); /* chars on <var_s:Text>*/
2380 }
2381 var_111 = var110;
2382 {
2383 var112 = ((val*(*)(val* self))((((long)var_111&3)?class_info[((long)var_111&3)]:var_111->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_111); /* iterator on <var_111:SequenceRead[Char]>*/
2384 }
2385 var_113 = var112;
2386 for(;;) {
2387 {
2388 var114 = ((short int(*)(val* self))((((long)var_113&3)?class_info[((long)var_113&3)]:var_113->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_113); /* is_ok on <var_113:IndexedIterator[Char]>*/
2389 }
2390 if (var114){
2391 {
2392 var115 = ((val*(*)(val* self))((((long)var_113&3)?class_info[((long)var_113&3)]:var_113->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_113); /* item on <var_113:IndexedIterator[Char]>*/
2393 }
2394 var116 = (uint32_t)((long)(var115)>>2);
2395 var_i = var116;
2396 {
2397 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2398 var119 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2399 var117 = var119;
2400 RET_LABEL118:(void)0;
2401 }
2402 }
2403 {
2404 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
2405 var122 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
2406 var120 = var122;
2407 RET_LABEL121:(void)0;
2408 }
2409 }
2410 {
2411 { /* Inline string#NativeString#[]= (var117,var120,var_i) on <var117:NativeString> */
2412 var117[var120]=(unsigned char)var_i;
2413 RET_LABEL123:(void)0;
2414 }
2415 }
2416 var_124 = self;
2417 {
2418 { /* Inline ropes#RopeBuffer#rpos (var_124) on <var_124:RopeBuffer> */
2419 var127 = var_124->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <var_124:RopeBuffer> */
2420 var125 = var127;
2421 RET_LABEL126:(void)0;
2422 }
2423 }
2424 {
2425 { /* Inline kernel#Int#+ (var125,1l) on <var125:Int> */
2426 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2427 /* <1l:Int> isa OTHER */
2428 var130 = 1; /* easy <1l:Int> isa OTHER*/
2429 if (unlikely(!var130)) {
2430 var_class_name133 = type_standard__Int.name;
2431 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name133);
2432 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2433 fatal_exit(1);
2434 }
2435 var134 = var125 + 1l;
2436 var128 = var134;
2437 goto RET_LABEL129;
2438 RET_LABEL129:(void)0;
2439 }
2440 }
2441 {
2442 { /* Inline ropes#RopeBuffer#rpos= (var_124,var128) on <var_124:RopeBuffer> */
2443 var_124->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = var128; /* _rpos on <var_124:RopeBuffer> */
2444 RET_LABEL135:(void)0;
2445 }
2446 }
2447 {
2448 ((void(*)(val* self))((((long)var_113&3)?class_info[((long)var_113&3)]:var_113->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_113); /* next on <var_113:IndexedIterator[Char]>*/
2449 }
2450 } else {
2451 goto BREAK_label;
2452 }
2453 }
2454 BREAK_label: (void)0;
2455 {
2456 ((void(*)(val* self))((((long)var_113&3)?class_info[((long)var_113&3)]:var_113->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_113); /* finish on <var_113:IndexedIterator[Char]>*/
2457 }
2458 } else {
2459 var_spos = 0l;
2460 var_i136 = 0l;
2461 var_137 = var_remsp;
2462 for(;;) {
2463 {
2464 { /* Inline kernel#Int#< (var_i136,var_137) on <var_i136:Int> */
2465 /* Covariant cast for argument 0 (i) <var_137:Int> isa OTHER */
2466 /* <var_137:Int> isa OTHER */
2467 var140 = 1; /* easy <var_137:Int> isa OTHER*/
2468 if (unlikely(!var140)) {
2469 var_class_name143 = type_standard__Int.name;
2470 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name143);
2471 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
2472 fatal_exit(1);
2473 }
2474 var144 = var_i136 < var_137;
2475 var138 = var144;
2476 goto RET_LABEL139;
2477 RET_LABEL139:(void)0;
2478 }
2479 }
2480 if (var138){
2481 {
2482 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2483 var147 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2484 var145 = var147;
2485 RET_LABEL146:(void)0;
2486 }
2487 }
2488 {
2489 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
2490 var150 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
2491 var148 = var150;
2492 RET_LABEL149:(void)0;
2493 }
2494 }
2495 {
2496 var151 = ((uint32_t(*)(val* self, long p0))(var_s->class->vft[COLOR_standard__string__Text___91d_93d]))(var_s, var_spos); /* [] on <var_s:Text>*/
2497 }
2498 {
2499 { /* Inline string#NativeString#[]= (var145,var148,var151) on <var145:NativeString> */
2500 var145[var148]=(unsigned char)var151;
2501 RET_LABEL152:(void)0;
2502 }
2503 }
2504 var_153 = self;
2505 {
2506 { /* Inline ropes#RopeBuffer#rpos (var_153) on <var_153:RopeBuffer> */
2507 var156 = var_153->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <var_153:RopeBuffer> */
2508 var154 = var156;
2509 RET_LABEL155:(void)0;
2510 }
2511 }
2512 {
2513 { /* Inline kernel#Int#+ (var154,1l) on <var154:Int> */
2514 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2515 /* <1l:Int> isa OTHER */
2516 var159 = 1; /* easy <1l:Int> isa OTHER*/
2517 if (unlikely(!var159)) {
2518 var_class_name162 = type_standard__Int.name;
2519 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name162);
2520 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2521 fatal_exit(1);
2522 }
2523 var163 = var154 + 1l;
2524 var157 = var163;
2525 goto RET_LABEL158;
2526 RET_LABEL158:(void)0;
2527 }
2528 }
2529 {
2530 { /* Inline ropes#RopeBuffer#rpos= (var_153,var157) on <var_153:RopeBuffer> */
2531 var_153->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = var157; /* _rpos on <var_153:RopeBuffer> */
2532 RET_LABEL164:(void)0;
2533 }
2534 }
2535 {
2536 { /* Inline kernel#Int#+ (var_spos,1l) on <var_spos:Int> */
2537 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2538 /* <1l:Int> isa OTHER */
2539 var167 = 1; /* easy <1l:Int> isa OTHER*/
2540 if (unlikely(!var167)) {
2541 var_class_name170 = type_standard__Int.name;
2542 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name170);
2543 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2544 fatal_exit(1);
2545 }
2546 var171 = var_spos + 1l;
2547 var165 = var171;
2548 goto RET_LABEL166;
2549 RET_LABEL166:(void)0;
2550 }
2551 }
2552 var_spos = var165;
2553 {
2554 var172 = standard___standard__Int___Discrete__successor(var_i136, 1l);
2555 }
2556 var_i136 = var172;
2557 } else {
2558 goto BREAK_label173;
2559 }
2560 }
2561 BREAK_label173: (void)0;
2562 {
2563 standard___standard__RopeBuffer___dump_buffer(self); /* Direct call ropes#RopeBuffer#dump_buffer on <self:RopeBuffer>*/
2564 }
2565 for(;;) {
2566 {
2567 { /* Inline kernel#Int#< (var_spos,var_slen) on <var_spos:Int> */
2568 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
2569 /* <var_slen:Int> isa OTHER */
2570 var176 = 1; /* easy <var_slen:Int> isa OTHER*/
2571 if (unlikely(!var176)) {
2572 var_class_name179 = type_standard__Int.name;
2573 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name179);
2574 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
2575 fatal_exit(1);
2576 }
2577 var180 = var_spos < var_slen;
2578 var174 = var180;
2579 goto RET_LABEL175;
2580 RET_LABEL175:(void)0;
2581 }
2582 }
2583 if (var174){
2584 {
2585 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2586 var183 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2587 var181 = var183;
2588 RET_LABEL182:(void)0;
2589 }
2590 }
2591 {
2592 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
2593 var186 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
2594 var184 = var186;
2595 RET_LABEL185:(void)0;
2596 }
2597 }
2598 {
2599 var187 = ((uint32_t(*)(val* self, long p0))(var_s->class->vft[COLOR_standard__string__Text___91d_93d]))(var_s, var_spos); /* [] on <var_s:Text>*/
2600 }
2601 {
2602 { /* Inline string#NativeString#[]= (var181,var184,var187) on <var181:NativeString> */
2603 var181[var184]=(unsigned char)var187;
2604 RET_LABEL188:(void)0;
2605 }
2606 }
2607 {
2608 { /* Inline kernel#Int#+ (var_spos,1l) on <var_spos:Int> */
2609 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2610 /* <1l:Int> isa OTHER */
2611 var191 = 1; /* easy <1l:Int> isa OTHER*/
2612 if (unlikely(!var191)) {
2613 var_class_name194 = type_standard__Int.name;
2614 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name194);
2615 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2616 fatal_exit(1);
2617 }
2618 var195 = var_spos + 1l;
2619 var189 = var195;
2620 goto RET_LABEL190;
2621 RET_LABEL190:(void)0;
2622 }
2623 }
2624 var_spos = var189;
2625 var_196 = self;
2626 {
2627 { /* Inline ropes#RopeBuffer#rpos (var_196) on <var_196:RopeBuffer> */
2628 var199 = var_196->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <var_196:RopeBuffer> */
2629 var197 = var199;
2630 RET_LABEL198:(void)0;
2631 }
2632 }
2633 {
2634 { /* Inline kernel#Int#+ (var197,1l) on <var197:Int> */
2635 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2636 /* <1l:Int> isa OTHER */
2637 var202 = 1; /* easy <1l:Int> isa OTHER*/
2638 if (unlikely(!var202)) {
2639 var_class_name205 = type_standard__Int.name;
2640 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name205);
2641 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2642 fatal_exit(1);
2643 }
2644 var206 = var197 + 1l;
2645 var200 = var206;
2646 goto RET_LABEL201;
2647 RET_LABEL201:(void)0;
2648 }
2649 }
2650 {
2651 { /* Inline ropes#RopeBuffer#rpos= (var_196,var200) on <var_196:RopeBuffer> */
2652 var_196->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = var200; /* _rpos on <var_196:RopeBuffer> */
2653 RET_LABEL207:(void)0;
2654 }
2655 }
2656 } else {
2657 goto BREAK_label208;
2658 }
2659 }
2660 BREAK_label208: (void)0;
2661 }
2662 goto RET_LABEL;
2663 }
2664 }
2665 {
2666 { /* Inline kernel#Int#<= (var_slen,var_remsp) on <var_slen:Int> */
2667 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
2668 /* <var_remsp:Int> isa OTHER */
2669 var211 = 1; /* easy <var_remsp:Int> isa OTHER*/
2670 if (unlikely(!var211)) {
2671 var_class_name214 = type_standard__Int.name;
2672 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name214);
2673 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2674 fatal_exit(1);
2675 }
2676 var215 = var_slen <= var_remsp;
2677 var209 = var215;
2678 goto RET_LABEL210;
2679 RET_LABEL210:(void)0;
2680 }
2681 }
2682 if (var209){
2683 {
2684 { /* Inline kernel#Int#<= (var_remsp,0l) on <var_remsp:Int> */
2685 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2686 /* <0l:Int> isa OTHER */
2687 var218 = 1; /* easy <0l:Int> isa OTHER*/
2688 if (unlikely(!var218)) {
2689 var_class_name221 = type_standard__Int.name;
2690 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name221);
2691 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2692 fatal_exit(1);
2693 }
2694 var222 = var_remsp <= 0l;
2695 var216 = var222;
2696 goto RET_LABEL217;
2697 RET_LABEL217:(void)0;
2698 }
2699 }
2700 if (var216){
2701 {
2702 standard___standard__RopeBuffer___dump_buffer(self); /* Direct call ropes#RopeBuffer#dump_buffer on <self:RopeBuffer>*/
2703 }
2704 {
2705 { /* Inline ropes#RopeBuffer#rpos= (self,0l) on <self:RopeBuffer> */
2706 self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = 0l; /* _rpos on <self:RopeBuffer> */
2707 RET_LABEL223:(void)0;
2708 }
2709 }
2710 } else {
2711 {
2712 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2713 var226 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2714 var224 = var226;
2715 RET_LABEL225:(void)0;
2716 }
2717 }
2718 {
2719 { /* Inline string#NativeString#copy_to (var_sits,var224,var_slen,var_begin,var_rp) on <var_sits:NativeString> */
2720 memmove(var224+var_rp,var_sits+var_begin,var_slen);
2721 RET_LABEL227:(void)0;
2722 }
2723 }
2724 var_228 = self;
2725 {
2726 { /* Inline ropes#RopeBuffer#rpos (var_228) on <var_228:RopeBuffer> */
2727 var231 = var_228->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <var_228:RopeBuffer> */
2728 var229 = var231;
2729 RET_LABEL230:(void)0;
2730 }
2731 }
2732 {
2733 { /* Inline kernel#Int#+ (var229,var_slen) on <var229:Int> */
2734 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
2735 /* <var_slen:Int> isa OTHER */
2736 var234 = 1; /* easy <var_slen:Int> isa OTHER*/
2737 if (unlikely(!var234)) {
2738 var_class_name237 = type_standard__Int.name;
2739 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name237);
2740 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2741 fatal_exit(1);
2742 }
2743 var238 = var229 + var_slen;
2744 var232 = var238;
2745 goto RET_LABEL233;
2746 RET_LABEL233:(void)0;
2747 }
2748 }
2749 {
2750 { /* Inline ropes#RopeBuffer#rpos= (var_228,var232) on <var_228:RopeBuffer> */
2751 var_228->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = var232; /* _rpos on <var_228:RopeBuffer> */
2752 RET_LABEL239:(void)0;
2753 }
2754 }
2755 }
2756 } else {
2757 {
2758 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2759 var242 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2760 var240 = var242;
2761 RET_LABEL241:(void)0;
2762 }
2763 }
2764 {
2765 { /* Inline string#NativeString#copy_to (var_sits,var240,var_remsp,var_begin,var_rp) on <var_sits:NativeString> */
2766 memmove(var240+var_rp,var_sits+var_begin,var_remsp);
2767 RET_LABEL243:(void)0;
2768 }
2769 }
2770 {
2771 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
2772 var246 = self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
2773 var244 = var246;
2774 RET_LABEL245:(void)0;
2775 }
2776 }
2777 {
2778 { /* Inline ropes#RopeBuffer#rpos= (self,var244) on <self:RopeBuffer> */
2779 self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = var244; /* _rpos on <self:RopeBuffer> */
2780 RET_LABEL247:(void)0;
2781 }
2782 }
2783 {
2784 standard___standard__RopeBuffer___dump_buffer(self); /* Direct call ropes#RopeBuffer#dump_buffer on <self:RopeBuffer>*/
2785 }
2786 {
2787 { /* Inline kernel#Int#- (var_slen,var_remsp) on <var_slen:Int> */
2788 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
2789 /* <var_remsp:Int> isa OTHER */
2790 var250 = 1; /* easy <var_remsp:Int> isa OTHER*/
2791 if (unlikely(!var250)) {
2792 var_class_name253 = type_standard__Int.name;
2793 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name253);
2794 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
2795 fatal_exit(1);
2796 }
2797 var254 = var_slen - var_remsp;
2798 var248 = var254;
2799 goto RET_LABEL249;
2800 RET_LABEL249:(void)0;
2801 }
2802 }
2803 var_nlen = var248;
2804 {
2805 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2806 var257 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2807 var255 = var257;
2808 RET_LABEL256:(void)0;
2809 }
2810 }
2811 {
2812 { /* Inline kernel#Int#+ (var_begin,var_remsp) on <var_begin:Int> */
2813 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
2814 /* <var_remsp:Int> isa OTHER */
2815 var260 = 1; /* easy <var_remsp:Int> isa OTHER*/
2816 if (unlikely(!var260)) {
2817 var_class_name263 = type_standard__Int.name;
2818 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name263);
2819 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2820 fatal_exit(1);
2821 }
2822 var264 = var_begin + var_remsp;
2823 var258 = var264;
2824 goto RET_LABEL259;
2825 RET_LABEL259:(void)0;
2826 }
2827 }
2828 {
2829 { /* Inline string#NativeString#copy_to (var_sits,var255,var_nlen,var258,0l) on <var_sits:NativeString> */
2830 memmove(var255+0l,var_sits+var258,var_nlen);
2831 RET_LABEL265:(void)0;
2832 }
2833 }
2834 {
2835 { /* Inline ropes#RopeBuffer#rpos= (self,var_nlen) on <self:RopeBuffer> */
2836 self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = var_nlen; /* _rpos on <self:RopeBuffer> */
2837 RET_LABEL266:(void)0;
2838 }
2839 }
2840 }
2841 RET_LABEL:;
2842 }
2843 /* method ropes#RopeBuffer#add for (self: RopeBuffer, Char) */
2844 void standard___standard__RopeBuffer___standard__string__Buffer__add(val* self, uint32_t p0) {
2845 uint32_t var_c /* var c: Char */;
2846 long var /* : Int */;
2847 long var2 /* : Int */;
2848 long var_rp /* var rp: Int */;
2849 long var3 /* : Int */;
2850 long var5 /* : Int */;
2851 short int var6 /* : Bool */;
2852 short int var8 /* : Bool */;
2853 int cltype;
2854 int idtype;
2855 const char* var_class_name;
2856 short int var9 /* : Bool */;
2857 char* var10 /* : NativeString */;
2858 char* var12 /* : NativeString */;
2859 long var14 /* : Int */;
2860 short int var16 /* : Bool */;
2861 int cltype17;
2862 int idtype18;
2863 const char* var_class_name19;
2864 long var20 /* : Int */;
2865 val* var_ /* var : RopeBuffer */;
2866 long var21 /* : Int */;
2867 long var23 /* : Int */;
2868 long var24 /* : Int */;
2869 short int var26 /* : Bool */;
2870 int cltype27;
2871 int idtype28;
2872 const char* var_class_name29;
2873 long var30 /* : Int */;
2874 var_c = p0;
2875 {
2876 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
2877 var2 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
2878 var = var2;
2879 RET_LABEL1:(void)0;
2880 }
2881 }
2882 var_rp = var;
2883 {
2884 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
2885 var5 = self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
2886 var3 = var5;
2887 RET_LABEL4:(void)0;
2888 }
2889 }
2890 {
2891 { /* Inline kernel#Int#>= (var_rp,var3) on <var_rp:Int> */
2892 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
2893 /* <var3:Int> isa OTHER */
2894 var8 = 1; /* easy <var3:Int> isa OTHER*/
2895 if (unlikely(!var8)) {
2896 var_class_name = type_standard__Int.name;
2897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2898 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
2899 fatal_exit(1);
2900 }
2901 var9 = var_rp >= var3;
2902 var6 = var9;
2903 goto RET_LABEL7;
2904 RET_LABEL7:(void)0;
2905 }
2906 }
2907 if (var6){
2908 {
2909 standard___standard__RopeBuffer___dump_buffer(self); /* Direct call ropes#RopeBuffer#dump_buffer on <self:RopeBuffer>*/
2910 }
2911 var_rp = 0l;
2912 } else {
2913 }
2914 {
2915 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
2916 var12 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
2917 var10 = var12;
2918 RET_LABEL11:(void)0;
2919 }
2920 }
2921 {
2922 { /* Inline string#NativeString#[]= (var10,var_rp,var_c) on <var10:NativeString> */
2923 var10[var_rp]=(unsigned char)var_c;
2924 RET_LABEL13:(void)0;
2925 }
2926 }
2927 {
2928 { /* Inline kernel#Int#+ (var_rp,1l) on <var_rp:Int> */
2929 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2930 /* <1l:Int> isa OTHER */
2931 var16 = 1; /* easy <1l:Int> isa OTHER*/
2932 if (unlikely(!var16)) {
2933 var_class_name19 = type_standard__Int.name;
2934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
2935 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2936 fatal_exit(1);
2937 }
2938 var20 = var_rp + 1l;
2939 var14 = var20;
2940 goto RET_LABEL15;
2941 RET_LABEL15:(void)0;
2942 }
2943 }
2944 var_rp = var14;
2945 var_ = self;
2946 {
2947 { /* Inline ropes#RopeBuffer#length (var_) on <var_:RopeBuffer> */
2948 var23 = var_->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <var_:RopeBuffer> */
2949 var21 = var23;
2950 RET_LABEL22:(void)0;
2951 }
2952 }
2953 {
2954 { /* Inline kernel#Int#+ (var21,1l) on <var21:Int> */
2955 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2956 /* <1l:Int> isa OTHER */
2957 var26 = 1; /* easy <1l:Int> isa OTHER*/
2958 if (unlikely(!var26)) {
2959 var_class_name29 = type_standard__Int.name;
2960 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
2961 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2962 fatal_exit(1);
2963 }
2964 var30 = var21 + 1l;
2965 var24 = var30;
2966 goto RET_LABEL25;
2967 RET_LABEL25:(void)0;
2968 }
2969 }
2970 {
2971 { /* Inline ropes#RopeBuffer#length= (var_,var24) on <var_:RopeBuffer> */
2972 var_->attrs[COLOR_standard__ropes__RopeBuffer___length].l = var24; /* _length on <var_:RopeBuffer> */
2973 RET_LABEL31:(void)0;
2974 }
2975 }
2976 {
2977 { /* Inline ropes#RopeBuffer#rpos= (self,var_rp) on <self:RopeBuffer> */
2978 self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l = var_rp; /* _rpos on <self:RopeBuffer> */
2979 RET_LABEL32:(void)0;
2980 }
2981 }
2982 RET_LABEL:;
2983 }
2984 /* method ropes#RopeBuffer#dump_buffer for (self: RopeBuffer) */
2985 void standard___standard__RopeBuffer___dump_buffer(val* self) {
2986 val* var /* : FlatString */;
2987 char* var2 /* : NativeString */;
2988 char* var4 /* : NativeString */;
2989 long var5 /* : Int */;
2990 long var7 /* : Int */;
2991 long var8 /* : Int */;
2992 long var10 /* : Int */;
2993 long var11 /* : Int */;
2994 short int var13 /* : Bool */;
2995 int cltype;
2996 int idtype;
2997 const char* var_class_name;
2998 long var14 /* : Int */;
2999 long var15 /* : Int */;
3000 long var17 /* : Int */;
3001 long var18 /* : Int */;
3002 long var20 /* : Int */;
3003 long var21 /* : Int */;
3004 short int var23 /* : Bool */;
3005 int cltype24;
3006 int idtype25;
3007 const char* var_class_name26;
3008 long var27 /* : Int */;
3009 val* var_nstr /* var nstr: FlatString */;
3010 val* var_ /* var : RopeBuffer */;
3011 val* var28 /* : String */;
3012 val* var30 /* : String */;
3013 val* var31 /* : String */;
3014 long var33 /* : Int */;
3015 long var35 /* : Int */;
3016 long var_bs /* var bs: Int */;
3017 long var36 /* : Int */;
3018 short int var38 /* : Bool */;
3019 int cltype39;
3020 int idtype40;
3021 const char* var_class_name41;
3022 long var42 /* : Int */;
3023 char* var43 /* : NativeString */;
3024 char* var44 /* : NativeString */;
3025 char* var46 /* : NativeString */;
3026 {
3027 { /* Inline string#Buffer#written= (self,0) on <self:RopeBuffer> */
3028 self->attrs[COLOR_standard__string__Buffer___written].s = 0; /* _written on <self:RopeBuffer> */
3029 RET_LABEL1:(void)0;
3030 }
3031 }
3032 var = NEW_standard__FlatString(&type_standard__FlatString);
3033 {
3034 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3035 var4 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3036 var2 = var4;
3037 RET_LABEL3:(void)0;
3038 }
3039 }
3040 {
3041 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3042 var7 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3043 var5 = var7;
3044 RET_LABEL6:(void)0;
3045 }
3046 }
3047 {
3048 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3049 var10 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3050 var8 = var10;
3051 RET_LABEL9:(void)0;
3052 }
3053 }
3054 {
3055 { /* Inline kernel#Int#- (var5,var8) on <var5:Int> */
3056 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
3057 /* <var8:Int> isa OTHER */
3058 var13 = 1; /* easy <var8:Int> isa OTHER*/
3059 if (unlikely(!var13)) {
3060 var_class_name = type_standard__Int.name;
3061 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3062 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
3063 fatal_exit(1);
3064 }
3065 var14 = var5 - var8;
3066 var11 = var14;
3067 goto RET_LABEL12;
3068 RET_LABEL12:(void)0;
3069 }
3070 }
3071 {
3072 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3073 var17 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3074 var15 = var17;
3075 RET_LABEL16:(void)0;
3076 }
3077 }
3078 {
3079 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3080 var20 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3081 var18 = var20;
3082 RET_LABEL19:(void)0;
3083 }
3084 }
3085 {
3086 { /* Inline kernel#Int#- (var18,1l) on <var18:Int> */
3087 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3088 /* <1l:Int> isa OTHER */
3089 var23 = 1; /* easy <1l:Int> isa OTHER*/
3090 if (unlikely(!var23)) {
3091 var_class_name26 = type_standard__Int.name;
3092 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
3093 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
3094 fatal_exit(1);
3095 }
3096 var27 = var18 - 1l;
3097 var21 = var27;
3098 goto RET_LABEL22;
3099 RET_LABEL22:(void)0;
3100 }
3101 }
3102 {
3103 standard___standard__FlatString___with_infos(var, var2, var11, var15, var21); /* Direct call string#FlatString#with_infos on <var:FlatString>*/
3104 }
3105 var_nstr = var;
3106 var_ = self;
3107 {
3108 { /* Inline ropes#RopeBuffer#str (var_) on <var_:RopeBuffer> */
3109 var30 = var_->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var_:RopeBuffer> */
3110 if (unlikely(var30 == NULL)) {
3111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3112 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
3113 fatal_exit(1);
3114 }
3115 var28 = var30;
3116 RET_LABEL29:(void)0;
3117 }
3118 }
3119 {
3120 var31 = ((val*(*)(val* self, val* p0))(var28->class->vft[COLOR_standard__string__String___43d]))(var28, var_nstr); /* + on <var28:String>*/
3121 }
3122 {
3123 { /* Inline ropes#RopeBuffer#str= (var_,var31) on <var_:RopeBuffer> */
3124 var_->attrs[COLOR_standard__ropes__RopeBuffer___str].val = var31; /* _str on <var_:RopeBuffer> */
3125 RET_LABEL32:(void)0;
3126 }
3127 }
3128 {
3129 { /* Inline ropes#RopeBuffer#buf_size (self) on <self:RopeBuffer> */
3130 var35 = self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l; /* _buf_size on <self:RopeBuffer> */
3131 var33 = var35;
3132 RET_LABEL34:(void)0;
3133 }
3134 }
3135 var_bs = var33;
3136 {
3137 { /* Inline kernel#Int#* (var_bs,2l) on <var_bs:Int> */
3138 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
3139 /* <2l:Int> isa OTHER */
3140 var38 = 1; /* easy <2l:Int> isa OTHER*/
3141 if (unlikely(!var38)) {
3142 var_class_name41 = type_standard__Int.name;
3143 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
3144 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 541);
3145 fatal_exit(1);
3146 }
3147 var42 = var_bs * 2l;
3148 var36 = var42;
3149 goto RET_LABEL37;
3150 RET_LABEL37:(void)0;
3151 }
3152 }
3153 var_bs = var36;
3154 var43 = NULL/*special!*/;
3155 {
3156 { /* Inline string#NativeString#new (var43,var_bs) on <var43:NativeString> */
3157 var46 = (char*)nit_alloc(var_bs);
3158 var44 = var46;
3159 goto RET_LABEL45;
3160 RET_LABEL45:(void)0;
3161 }
3162 }
3163 {
3164 { /* Inline ropes#RopeBuffer#ns= (self,var44) on <self:RopeBuffer> */
3165 self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str = var44; /* _ns on <self:RopeBuffer> */
3166 RET_LABEL47:(void)0;
3167 }
3168 }
3169 {
3170 { /* Inline ropes#RopeBuffer#buf_size= (self,var_bs) on <self:RopeBuffer> */
3171 self->attrs[COLOR_standard__ropes__RopeBuffer___buf_size].l = var_bs; /* _buf_size on <self:RopeBuffer> */
3172 RET_LABEL48:(void)0;
3173 }
3174 }
3175 {
3176 { /* Inline ropes#RopeBuffer#dumped= (self,0l) on <self:RopeBuffer> */
3177 self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l = 0l; /* _dumped on <self:RopeBuffer> */
3178 RET_LABEL49:(void)0;
3179 }
3180 }
3181 RET_LABEL:;
3182 }
3183 /* method ropes#RopeBuffer#enlarge for (self: RopeBuffer, Int) */
3184 void standard___standard__RopeBuffer___standard__string__Buffer__enlarge(val* self, long p0) {
3185 long var_i /* var i: Int */;
3186 var_i = p0;
3187 RET_LABEL:;
3188 }
3189 /* method ropes#RopeBuffer#to_s for (self: RopeBuffer): String */
3190 val* standard___standard__RopeBuffer___standard__string__Object__to_s(val* self) {
3191 val* var /* : String */;
3192 long var2 /* : Int */;
3193 long var4 /* : Int */;
3194 long var5 /* : Int */;
3195 long var7 /* : Int */;
3196 long var8 /* : Int */;
3197 short int var10 /* : Bool */;
3198 int cltype;
3199 int idtype;
3200 const char* var_class_name;
3201 long var11 /* : Int */;
3202 long var_nnslen /* var nnslen: Int */;
3203 short int var12 /* : Bool */;
3204 short int var14 /* : Bool */;
3205 val* var15 /* : String */;
3206 val* var17 /* : String */;
3207 val* var18 /* : String */;
3208 val* var20 /* : String */;
3209 val* var21 /* : FlatString */;
3210 char* var22 /* : NativeString */;
3211 char* var24 /* : NativeString */;
3212 long var25 /* : Int */;
3213 long var27 /* : Int */;
3214 long var28 /* : Int */;
3215 long var30 /* : Int */;
3216 long var31 /* : Int */;
3217 short int var33 /* : Bool */;
3218 int cltype34;
3219 int idtype35;
3220 const char* var_class_name36;
3221 long var37 /* : Int */;
3222 long var38 /* : Int */;
3223 long var40 /* : Int */;
3224 long var41 /* : Int */;
3225 long var43 /* : Int */;
3226 long var44 /* : Int */;
3227 short int var46 /* : Bool */;
3228 int cltype47;
3229 int idtype48;
3230 const char* var_class_name49;
3231 long var50 /* : Int */;
3232 val* var51 /* : String */;
3233 {
3234 { /* Inline string#Buffer#written= (self,1) on <self:RopeBuffer> */
3235 self->attrs[COLOR_standard__string__Buffer___written].s = 1; /* _written on <self:RopeBuffer> */
3236 RET_LABEL1:(void)0;
3237 }
3238 }
3239 {
3240 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3241 var4 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3242 var2 = var4;
3243 RET_LABEL3:(void)0;
3244 }
3245 }
3246 {
3247 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3248 var7 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3249 var5 = var7;
3250 RET_LABEL6:(void)0;
3251 }
3252 }
3253 {
3254 { /* Inline kernel#Int#- (var2,var5) on <var2:Int> */
3255 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
3256 /* <var5:Int> isa OTHER */
3257 var10 = 1; /* easy <var5:Int> isa OTHER*/
3258 if (unlikely(!var10)) {
3259 var_class_name = type_standard__Int.name;
3260 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3261 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
3262 fatal_exit(1);
3263 }
3264 var11 = var2 - var5;
3265 var8 = var11;
3266 goto RET_LABEL9;
3267 RET_LABEL9:(void)0;
3268 }
3269 }
3270 var_nnslen = var8;
3271 {
3272 { /* Inline kernel#Int#== (var_nnslen,0l) on <var_nnslen:Int> */
3273 var14 = var_nnslen == 0l;
3274 var12 = var14;
3275 goto RET_LABEL13;
3276 RET_LABEL13:(void)0;
3277 }
3278 }
3279 if (var12){
3280 {
3281 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
3282 var17 = self->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
3283 if (unlikely(var17 == NULL)) {
3284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3285 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
3286 fatal_exit(1);
3287 }
3288 var15 = var17;
3289 RET_LABEL16:(void)0;
3290 }
3291 }
3292 var = var15;
3293 goto RET_LABEL;
3294 } else {
3295 }
3296 {
3297 { /* Inline ropes#RopeBuffer#str (self) on <self:RopeBuffer> */
3298 var20 = self->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <self:RopeBuffer> */
3299 if (unlikely(var20 == NULL)) {
3300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3301 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
3302 fatal_exit(1);
3303 }
3304 var18 = var20;
3305 RET_LABEL19:(void)0;
3306 }
3307 }
3308 var21 = NEW_standard__FlatString(&type_standard__FlatString);
3309 {
3310 { /* Inline ropes#RopeBuffer#ns (self) on <self:RopeBuffer> */
3311 var24 = self->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <self:RopeBuffer> */
3312 var22 = var24;
3313 RET_LABEL23:(void)0;
3314 }
3315 }
3316 {
3317 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3318 var27 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3319 var25 = var27;
3320 RET_LABEL26:(void)0;
3321 }
3322 }
3323 {
3324 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3325 var30 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3326 var28 = var30;
3327 RET_LABEL29:(void)0;
3328 }
3329 }
3330 {
3331 { /* Inline kernel#Int#- (var25,var28) on <var25:Int> */
3332 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
3333 /* <var28:Int> isa OTHER */
3334 var33 = 1; /* easy <var28:Int> isa OTHER*/
3335 if (unlikely(!var33)) {
3336 var_class_name36 = type_standard__Int.name;
3337 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
3338 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
3339 fatal_exit(1);
3340 }
3341 var37 = var25 - var28;
3342 var31 = var37;
3343 goto RET_LABEL32;
3344 RET_LABEL32:(void)0;
3345 }
3346 }
3347 {
3348 { /* Inline ropes#RopeBuffer#dumped (self) on <self:RopeBuffer> */
3349 var40 = self->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <self:RopeBuffer> */
3350 var38 = var40;
3351 RET_LABEL39:(void)0;
3352 }
3353 }
3354 {
3355 { /* Inline ropes#RopeBuffer#rpos (self) on <self:RopeBuffer> */
3356 var43 = self->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <self:RopeBuffer> */
3357 var41 = var43;
3358 RET_LABEL42:(void)0;
3359 }
3360 }
3361 {
3362 { /* Inline kernel#Int#- (var41,1l) on <var41:Int> */
3363 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3364 /* <1l:Int> isa OTHER */
3365 var46 = 1; /* easy <1l:Int> isa OTHER*/
3366 if (unlikely(!var46)) {
3367 var_class_name49 = type_standard__Int.name;
3368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
3369 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
3370 fatal_exit(1);
3371 }
3372 var50 = var41 - 1l;
3373 var44 = var50;
3374 goto RET_LABEL45;
3375 RET_LABEL45:(void)0;
3376 }
3377 }
3378 {
3379 standard___standard__FlatString___with_infos(var21, var22, var31, var38, var44); /* Direct call string#FlatString#with_infos on <var21:FlatString>*/
3380 }
3381 {
3382 var51 = ((val*(*)(val* self, val* p0))(var18->class->vft[COLOR_standard__string__String___43d]))(var18, var21); /* + on <var18:String>*/
3383 }
3384 var = var51;
3385 goto RET_LABEL;
3386 RET_LABEL:;
3387 return var;
3388 }
3389 /* method ropes#FlatString#+ for (self: FlatString, Text): String */
3390 val* standard__ropes___FlatString___standard__string__String___43d(val* self, val* p0) {
3391 val* var /* : String */;
3392 val* var_o /* var o: Text */;
3393 val* var1 /* : String */;
3394 val* var_s /* var s: String */;
3395 long var2 /* : Int */;
3396 long var_slen /* var slen: Int */;
3397 long var3 /* : Int */;
3398 long var5 /* : Int */;
3399 long var_mlen /* var mlen: Int */;
3400 short int var6 /* : Bool */;
3401 short int var8 /* : Bool */;
3402 short int var9 /* : Bool */;
3403 short int var11 /* : Bool */;
3404 long var12 /* : Int */;
3405 short int var14 /* : Bool */;
3406 int cltype;
3407 int idtype;
3408 const char* var_class_name;
3409 long var15 /* : Int */;
3410 long var_nlen /* var nlen: Int */;
3411 short int var16 /* : Bool */;
3412 int cltype17;
3413 int idtype18;
3414 val* var19 /* : Sys */;
3415 long var20 /* : Int */;
3416 short int var21 /* : Bool */;
3417 short int var23 /* : Bool */;
3418 int cltype24;
3419 int idtype25;
3420 const char* var_class_name26;
3421 short int var27 /* : Bool */;
3422 val* var28 /* : Concat */;
3423 char* var29 /* : NativeString */;
3424 char* var31 /* : NativeString */;
3425 char* var_mits /* var mits: NativeString */;
3426 long var32 /* : Int */;
3427 long var34 /* : Int */;
3428 long var_sifrom /* var sifrom: Int */;
3429 long var35 /* : Int */;
3430 long var37 /* : Int */;
3431 long var_mifrom /* var mifrom: Int */;
3432 char* var38 /* : NativeString */;
3433 char* var40 /* : NativeString */;
3434 char* var_sits /* var sits: NativeString */;
3435 char* var41 /* : NativeString */;
3436 long var42 /* : Int */;
3437 short int var44 /* : Bool */;
3438 int cltype45;
3439 int idtype46;
3440 const char* var_class_name47;
3441 long var48 /* : Int */;
3442 char* var49 /* : NativeString */;
3443 char* var51 /* : NativeString */;
3444 char* var_ns /* var ns: NativeString */;
3445 val* var54 /* : FlatString */;
3446 short int var55 /* : Bool */;
3447 int cltype56;
3448 int idtype57;
3449 val* var58 /* : String */;
3450 val* var60 /* : String */;
3451 val* var_sl /* var sl: String */;
3452 long var61 /* : Int */;
3453 long var_sllen /* var sllen: Int */;
3454 long var62 /* : Int */;
3455 short int var64 /* : Bool */;
3456 int cltype65;
3457 int idtype66;
3458 const char* var_class_name67;
3459 long var68 /* : Int */;
3460 val* var69 /* : Sys */;
3461 long var70 /* : Int */;
3462 short int var71 /* : Bool */;
3463 short int var73 /* : Bool */;
3464 int cltype74;
3465 int idtype75;
3466 const char* var_class_name76;
3467 short int var77 /* : Bool */;
3468 val* var78 /* : Concat */;
3469 val* var79 /* : Concat */;
3470 val* var80 /* : String */;
3471 val* var81 /* : String */;
3472 val* var83 /* : String */;
3473 var_o = p0;
3474 {
3475 var1 = ((val*(*)(val* self))(var_o->class->vft[COLOR_standard__string__Object__to_s]))(var_o); /* to_s on <var_o:Text>*/
3476 }
3477 var_s = var1;
3478 {
3479 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s); /* length on <var_s:String>*/
3480 }
3481 var_slen = var2;
3482 {
3483 { /* Inline string#FlatText#length (self) on <self:FlatString> */
3484 var5 = self->attrs[COLOR_standard__string__FlatText___length].l; /* _length on <self:FlatString> */
3485 var3 = var5;
3486 RET_LABEL4:(void)0;
3487 }
3488 }
3489 var_mlen = var3;
3490 {
3491 { /* Inline kernel#Int#== (var_slen,0l) on <var_slen:Int> */
3492 var8 = var_slen == 0l;
3493 var6 = var8;
3494 goto RET_LABEL7;
3495 RET_LABEL7:(void)0;
3496 }
3497 }
3498 if (var6){
3499 var = self;
3500 goto RET_LABEL;
3501 } else {
3502 }
3503 {
3504 { /* Inline kernel#Int#== (var_mlen,0l) on <var_mlen:Int> */
3505 var11 = var_mlen == 0l;
3506 var9 = var11;
3507 goto RET_LABEL10;
3508 RET_LABEL10:(void)0;
3509 }
3510 }
3511 if (var9){
3512 var = var_s;
3513 goto RET_LABEL;
3514 } else {
3515 }
3516 {
3517 { /* Inline kernel#Int#+ (var_slen,var_mlen) on <var_slen:Int> */
3518 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
3519 /* <var_mlen:Int> isa OTHER */
3520 var14 = 1; /* easy <var_mlen:Int> isa OTHER*/
3521 if (unlikely(!var14)) {
3522 var_class_name = type_standard__Int.name;
3523 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3524 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
3525 fatal_exit(1);
3526 }
3527 var15 = var_slen + var_mlen;
3528 var12 = var15;
3529 goto RET_LABEL13;
3530 RET_LABEL13:(void)0;
3531 }
3532 }
3533 var_nlen = var12;
3534 /* <var_s:String> isa FlatString */
3535 cltype17 = type_standard__FlatString.color;
3536 idtype18 = type_standard__FlatString.id;
3537 if(cltype17 >= var_s->type->table_size) {
3538 var16 = 0;
3539 } else {
3540 var16 = var_s->type->type_table[cltype17] == idtype18;
3541 }
3542 if (var16){
3543 var19 = glob_sys;
3544 {
3545 var20 = standard__ropes___Sys___maxlen(var19);
3546 }
3547 {
3548 { /* Inline kernel#Int#> (var_nlen,var20) on <var_nlen:Int> */
3549 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
3550 /* <var20:Int> isa OTHER */
3551 var23 = 1; /* easy <var20:Int> isa OTHER*/
3552 if (unlikely(!var23)) {
3553 var_class_name26 = type_standard__Int.name;
3554 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
3555 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
3556 fatal_exit(1);
3557 }
3558 var27 = var_nlen > var20;
3559 var21 = var27;
3560 goto RET_LABEL22;
3561 RET_LABEL22:(void)0;
3562 }
3563 }
3564 if (var21){
3565 var28 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
3566 {
3567 ((void(*)(val* self, val* p0))(var28->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var28, self); /* left= on <var28:Concat>*/
3568 }
3569 {
3570 ((void(*)(val* self, val* p0))(var28->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var28, var_s); /* right= on <var28:Concat>*/
3571 }
3572 {
3573 ((void(*)(val* self))(var28->class->vft[COLOR_standard__kernel__Object__init]))(var28); /* init on <var28:Concat>*/
3574 }
3575 var = var28;
3576 goto RET_LABEL;
3577 } else {
3578 }
3579 {
3580 { /* Inline string#FlatText#items (self) on <self:FlatString> */
3581 var31 = self->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <self:FlatString> */
3582 var29 = var31;
3583 RET_LABEL30:(void)0;
3584 }
3585 }
3586 var_mits = var29;
3587 {
3588 { /* Inline string#FlatString#index_from (var_s) on <var_s:String(FlatString)> */
3589 var34 = var_s->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <var_s:String(FlatString)> */
3590 var32 = var34;
3591 RET_LABEL33:(void)0;
3592 }
3593 }
3594 var_sifrom = var32;
3595 {
3596 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
3597 var37 = self->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
3598 var35 = var37;
3599 RET_LABEL36:(void)0;
3600 }
3601 }
3602 var_mifrom = var35;
3603 {
3604 { /* Inline string#FlatText#items (var_s) on <var_s:String(FlatString)> */
3605 var40 = var_s->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_s:String(FlatString)> */
3606 var38 = var40;
3607 RET_LABEL39:(void)0;
3608 }
3609 }
3610 var_sits = var38;
3611 var41 = NULL/*special!*/;
3612 {
3613 { /* Inline kernel#Int#+ (var_nlen,1l) on <var_nlen:Int> */
3614 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3615 /* <1l:Int> isa OTHER */
3616 var44 = 1; /* easy <1l:Int> isa OTHER*/
3617 if (unlikely(!var44)) {
3618 var_class_name47 = type_standard__Int.name;
3619 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
3620 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
3621 fatal_exit(1);
3622 }
3623 var48 = var_nlen + 1l;
3624 var42 = var48;
3625 goto RET_LABEL43;
3626 RET_LABEL43:(void)0;
3627 }
3628 }
3629 {
3630 { /* Inline string#NativeString#new (var41,var42) on <var41:NativeString> */
3631 var51 = (char*)nit_alloc(var42);
3632 var49 = var51;
3633 goto RET_LABEL50;
3634 RET_LABEL50:(void)0;
3635 }
3636 }
3637 var_ns = var49;
3638 {
3639 { /* Inline string#NativeString#copy_to (var_mits,var_ns,var_mlen,var_mifrom,0l) on <var_mits:NativeString> */
3640 memmove(var_ns+0l,var_mits+var_mifrom,var_mlen);
3641 RET_LABEL52:(void)0;
3642 }
3643 }
3644 {
3645 { /* Inline string#NativeString#copy_to (var_sits,var_ns,var_slen,var_sifrom,var_mlen) on <var_sits:NativeString> */
3646 memmove(var_ns+var_mlen,var_sits+var_sifrom,var_slen);
3647 RET_LABEL53:(void)0;
3648 }
3649 }
3650 {
3651 var54 = standard___standard__NativeString___to_s_with_length(var_ns, var_nlen);
3652 }
3653 var = var54;
3654 goto RET_LABEL;
3655 } else {
3656 /* <var_s:String> isa Concat */
3657 cltype56 = type_standard__ropes__Concat.color;
3658 idtype57 = type_standard__ropes__Concat.id;
3659 if(cltype56 >= var_s->type->table_size) {
3660 var55 = 0;
3661 } else {
3662 var55 = var_s->type->type_table[cltype56] == idtype57;
3663 }
3664 if (var55){
3665 {
3666 { /* Inline ropes#Concat#left (var_s) on <var_s:String(Concat)> */
3667 var60 = var_s->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_s:String(Concat)> */
3668 if (unlikely(var60 == NULL)) {
3669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
3670 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
3671 fatal_exit(1);
3672 }
3673 var58 = var60;
3674 RET_LABEL59:(void)0;
3675 }
3676 }
3677 var_sl = var58;
3678 {
3679 var61 = ((long(*)(val* self))(var_sl->class->vft[COLOR_standard__string__Text__length]))(var_sl); /* length on <var_sl:String>*/
3680 }
3681 var_sllen = var61;
3682 {
3683 { /* Inline kernel#Int#+ (var_sllen,var_mlen) on <var_sllen:Int> */
3684 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
3685 /* <var_mlen:Int> isa OTHER */
3686 var64 = 1; /* easy <var_mlen:Int> isa OTHER*/
3687 if (unlikely(!var64)) {
3688 var_class_name67 = type_standard__Int.name;
3689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
3690 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
3691 fatal_exit(1);
3692 }
3693 var68 = var_sllen + var_mlen;
3694 var62 = var68;
3695 goto RET_LABEL63;
3696 RET_LABEL63:(void)0;
3697 }
3698 }
3699 var69 = glob_sys;
3700 {
3701 var70 = standard__ropes___Sys___maxlen(var69);
3702 }
3703 {
3704 { /* Inline kernel#Int#> (var62,var70) on <var62:Int> */
3705 /* Covariant cast for argument 0 (i) <var70:Int> isa OTHER */
3706 /* <var70:Int> isa OTHER */
3707 var73 = 1; /* easy <var70:Int> isa OTHER*/
3708 if (unlikely(!var73)) {
3709 var_class_name76 = type_standard__Int.name;
3710 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76);
3711 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
3712 fatal_exit(1);
3713 }
3714 var77 = var62 > var70;
3715 var71 = var77;
3716 goto RET_LABEL72;
3717 RET_LABEL72:(void)0;
3718 }
3719 }
3720 if (var71){
3721 var78 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
3722 {
3723 ((void(*)(val* self, val* p0))(var78->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var78, self); /* left= on <var78:Concat>*/
3724 }
3725 {
3726 ((void(*)(val* self, val* p0))(var78->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var78, var_s); /* right= on <var78:Concat>*/
3727 }
3728 {
3729 ((void(*)(val* self))(var78->class->vft[COLOR_standard__kernel__Object__init]))(var78); /* init on <var78:Concat>*/
3730 }
3731 var = var78;
3732 goto RET_LABEL;
3733 } else {
3734 }
3735 var79 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
3736 {
3737 var80 = standard__ropes___FlatString___standard__string__String___43d(self, var_sl);
3738 }
3739 {
3740 { /* Inline ropes#Concat#right (var_s) on <var_s:String(Concat)> */
3741 var83 = var_s->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <var_s:String(Concat)> */
3742 if (unlikely(var83 == NULL)) {
3743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
3744 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
3745 fatal_exit(1);
3746 }
3747 var81 = var83;
3748 RET_LABEL82:(void)0;
3749 }
3750 }
3751 {
3752 ((void(*)(val* self, val* p0))(var79->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var79, var80); /* left= on <var79:Concat>*/
3753 }
3754 {
3755 ((void(*)(val* self, val* p0))(var79->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var79, var81); /* right= on <var79:Concat>*/
3756 }
3757 {
3758 ((void(*)(val* self))(var79->class->vft[COLOR_standard__kernel__Object__init]))(var79); /* init on <var79:Concat>*/
3759 }
3760 var = var79;
3761 goto RET_LABEL;
3762 } else {
3763 PRINT_ERROR("Runtime error: %s", "Aborted");
3764 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 471);
3765 fatal_exit(1);
3766 }
3767 }
3768 RET_LABEL:;
3769 return var;
3770 }
3771 /* method ropes#RopeIterPiece#node for (self: RopeIterPiece): String */
3772 val* standard__ropes___standard__ropes__RopeIterPiece___node(val* self) {
3773 val* var /* : String */;
3774 val* var1 /* : String */;
3775 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___node].val; /* _node on <self:RopeIterPiece> */
3776 if (unlikely(var1 == NULL)) {
3777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
3778 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 478);
3779 fatal_exit(1);
3780 }
3781 var = var1;
3782 RET_LABEL:;
3783 return var;
3784 }
3785 /* method ropes#RopeIterPiece#node= for (self: RopeIterPiece, String) */
3786 void standard__ropes___standard__ropes__RopeIterPiece___node_61d(val* self, val* p0) {
3787 self->attrs[COLOR_standard__ropes__RopeIterPiece___node].val = p0; /* _node on <self:RopeIterPiece> */
3788 RET_LABEL:;
3789 }
3790 /* method ropes#RopeIterPiece#ldone for (self: RopeIterPiece): Bool */
3791 short int standard__ropes___standard__ropes__RopeIterPiece___ldone(val* self) {
3792 short int var /* : Bool */;
3793 short int var1 /* : Bool */;
3794 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s; /* _ldone on <self:RopeIterPiece> */
3795 var = var1;
3796 RET_LABEL:;
3797 return var;
3798 }
3799 /* method ropes#RopeIterPiece#ldone= for (self: RopeIterPiece, Bool) */
3800 void standard__ropes___standard__ropes__RopeIterPiece___ldone_61d(val* self, short int p0) {
3801 self->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s = p0; /* _ldone on <self:RopeIterPiece> */
3802 RET_LABEL:;
3803 }
3804 /* method ropes#RopeIterPiece#rdone for (self: RopeIterPiece): Bool */
3805 short int standard__ropes___standard__ropes__RopeIterPiece___rdone(val* self) {
3806 short int var /* : Bool */;
3807 short int var1 /* : Bool */;
3808 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s; /* _rdone on <self:RopeIterPiece> */
3809 var = var1;
3810 RET_LABEL:;
3811 return var;
3812 }
3813 /* method ropes#RopeIterPiece#rdone= for (self: RopeIterPiece, Bool) */
3814 void standard__ropes___standard__ropes__RopeIterPiece___rdone_61d(val* self, short int p0) {
3815 self->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = p0; /* _rdone on <self:RopeIterPiece> */
3816 RET_LABEL:;
3817 }
3818 /* method ropes#RopeIterPiece#prev for (self: RopeIterPiece): nullable RopeIterPiece */
3819 val* standard__ropes___standard__ropes__RopeIterPiece___prev(val* self) {
3820 val* var /* : nullable RopeIterPiece */;
3821 val* var1 /* : nullable RopeIterPiece */;
3822 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val; /* _prev on <self:RopeIterPiece> */
3823 var = var1;
3824 RET_LABEL:;
3825 return var;
3826 }
3827 /* method ropes#RopeIterPiece#prev= for (self: RopeIterPiece, nullable RopeIterPiece) */
3828 void standard__ropes___standard__ropes__RopeIterPiece___prev_61d(val* self, val* p0) {
3829 self->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val = p0; /* _prev on <self:RopeIterPiece> */
3830 RET_LABEL:;
3831 }
3832 /* method ropes#RopeIterPiece#init for (self: RopeIterPiece) */
3833 void standard__ropes___standard__ropes__RopeIterPiece___standard__kernel__Object__init(val* self) {
3834 {
3835 ((void(*)(val* self))(self->class->vft[COLOR_standard__ropes___standard__ropes__RopeIterPiece___standard__kernel__Object__init]))(self); /* init on <self:RopeIterPiece>*/
3836 }
3837 RET_LABEL:;
3838 }
3839 /* method ropes#RopeIter#pns for (self: RopeIter): Int */
3840 long standard__ropes___standard__ropes__RopeIter___pns(val* self) {
3841 long var /* : Int */;
3842 long var1 /* : Int */;
3843 var1 = self->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <self:RopeIter> */
3844 var = var1;
3845 RET_LABEL:;
3846 return var;
3847 }
3848 /* method ropes#RopeIter#pns= for (self: RopeIter, Int) */
3849 void standard__ropes___standard__ropes__RopeIter___pns_61d(val* self, long p0) {
3850 self->attrs[COLOR_standard__ropes__RopeIter___pns].l = p0; /* _pns on <self:RopeIter> */
3851 RET_LABEL:;
3852 }
3853 /* method ropes#RopeIter#str for (self: RopeIter): String */
3854 val* standard__ropes___standard__ropes__RopeIter___str(val* self) {
3855 val* var /* : String */;
3856 val* var1 /* : String */;
3857 var1 = self->attrs[COLOR_standard__ropes__RopeIter___str].val; /* _str on <self:RopeIter> */
3858 if (unlikely(var1 == NULL)) {
3859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3860 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 540);
3861 fatal_exit(1);
3862 }
3863 var = var1;
3864 RET_LABEL:;
3865 return var;
3866 }
3867 /* method ropes#RopeIter#str= for (self: RopeIter, String) */
3868 void standard__ropes___standard__ropes__RopeIter___str_61d(val* self, val* p0) {
3869 self->attrs[COLOR_standard__ropes__RopeIter___str].val = p0; /* _str on <self:RopeIter> */
3870 RET_LABEL:;
3871 }
3872 /* method ropes#RopeIter#subs for (self: RopeIter): IndexedIterator[String] */
3873 val* standard__ropes___standard__ropes__RopeIter___subs(val* self) {
3874 val* var /* : IndexedIterator[String] */;
3875 val* var1 /* : IndexedIterator[String] */;
3876 var1 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
3877 if (unlikely(var1 == NULL)) {
3878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3879 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
3880 fatal_exit(1);
3881 }
3882 var = var1;
3883 RET_LABEL:;
3884 return var;
3885 }
3886 /* method ropes#RopeIter#subs= for (self: RopeIter, IndexedIterator[String]) */
3887 void standard__ropes___standard__ropes__RopeIter___subs_61d(val* self, val* p0) {
3888 self->attrs[COLOR_standard__ropes__RopeIter___subs].val = p0; /* _subs on <self:RopeIter> */
3889 RET_LABEL:;
3890 }
3891 /* method ropes#RopeIter#max for (self: RopeIter): Int */
3892 long standard__ropes___standard__ropes__RopeIter___max(val* self) {
3893 long var /* : Int */;
3894 long var1 /* : Int */;
3895 var1 = self->attrs[COLOR_standard__ropes__RopeIter___max].l; /* _max on <self:RopeIter> */
3896 var = var1;
3897 RET_LABEL:;
3898 return var;
3899 }
3900 /* method ropes#RopeIter#max= for (self: RopeIter, Int) */
3901 void standard__ropes___standard__ropes__RopeIter___max_61d(val* self, long p0) {
3902 self->attrs[COLOR_standard__ropes__RopeIter___max].l = p0; /* _max on <self:RopeIter> */
3903 RET_LABEL:;
3904 }
3905 /* method ropes#RopeIter#pos for (self: RopeIter): Int */
3906 long standard__ropes___standard__ropes__RopeIter___pos(val* self) {
3907 long var /* : Int */;
3908 long var1 /* : Int */;
3909 var1 = self->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <self:RopeIter> */
3910 var = var1;
3911 RET_LABEL:;
3912 return var;
3913 }
3914 /* method ropes#RopeIter#pos= for (self: RopeIter, Int) */
3915 void standard__ropes___standard__ropes__RopeIter___pos_61d(val* self, long p0) {
3916 self->attrs[COLOR_standard__ropes__RopeIter___pos].l = p0; /* _pos on <self:RopeIter> */
3917 RET_LABEL:;
3918 }
3919 /* method ropes#RopeIter#from for (self: RopeIter, RopeString, Int) */
3920 void standard__ropes___standard__ropes__RopeIter___from(val* self, val* p0, long p1) {
3921 val* var_root /* var root: RopeString */;
3922 long var_pos /* var pos: Int */;
3923 val* var /* : RopeSubstrings */;
3924 val* var2 /* : IndexedIterator[String] */;
3925 val* var4 /* : IndexedIterator[String] */;
3926 long var5 /* : Int */;
3927 long var6 /* : Int */;
3928 short int var8 /* : Bool */;
3929 int cltype;
3930 int idtype;
3931 const char* var_class_name;
3932 long var9 /* : Int */;
3933 val* var12 /* : IndexedIterator[String] */;
3934 val* var14 /* : IndexedIterator[String] */;
3935 val* var15 /* : nullable Object */;
3936 long var17 /* : Int */;
3937 long var19 /* : Int */;
3938 long var20 /* : Int */;
3939 short int var22 /* : Bool */;
3940 int cltype23;
3941 int idtype24;
3942 const char* var_class_name25;
3943 long var26 /* : Int */;
3944 var_root = p0;
3945 var_pos = p1;
3946 var = NEW_standard__ropes__RopeSubstrings(&type_standard__ropes__RopeSubstrings);
3947 {
3948 standard__ropes___standard__ropes__RopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes#RopeSubstrings#from on <var:RopeSubstrings>*/
3949 }
3950 {
3951 { /* Inline ropes#RopeIter#subs= (self,var) on <self:RopeIter> */
3952 self->attrs[COLOR_standard__ropes__RopeIter___subs].val = var; /* _subs on <self:RopeIter> */
3953 RET_LABEL1:(void)0;
3954 }
3955 }
3956 {
3957 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
3958 var4 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
3959 if (unlikely(var4 == NULL)) {
3960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3961 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
3962 fatal_exit(1);
3963 }
3964 var2 = var4;
3965 RET_LABEL3:(void)0;
3966 }
3967 }
3968 {
3969 var5 = ((long(*)(val* self))((((long)var2&3)?class_info[((long)var2&3)]:var2->class)->vft[COLOR_standard__abstract_collection__IndexedIterator__index]))(var2); /* index on <var2:IndexedIterator[String]>*/
3970 }
3971 {
3972 { /* Inline kernel#Int#- (var_pos,var5) on <var_pos:Int> */
3973 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
3974 /* <var5:Int> isa OTHER */
3975 var8 = 1; /* easy <var5:Int> isa OTHER*/
3976 if (unlikely(!var8)) {
3977 var_class_name = type_standard__Int.name;
3978 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3979 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
3980 fatal_exit(1);
3981 }
3982 var9 = var_pos - var5;
3983 var6 = var9;
3984 goto RET_LABEL7;
3985 RET_LABEL7:(void)0;
3986 }
3987 }
3988 {
3989 { /* Inline ropes#RopeIter#pns= (self,var6) on <self:RopeIter> */
3990 self->attrs[COLOR_standard__ropes__RopeIter___pns].l = var6; /* _pns on <self:RopeIter> */
3991 RET_LABEL10:(void)0;
3992 }
3993 }
3994 {
3995 { /* Inline ropes#RopeIter#pos= (self,var_pos) on <self:RopeIter> */
3996 self->attrs[COLOR_standard__ropes__RopeIter___pos].l = var_pos; /* _pos on <self:RopeIter> */
3997 RET_LABEL11:(void)0;
3998 }
3999 }
4000 {
4001 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
4002 var14 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
4003 if (unlikely(var14 == NULL)) {
4004 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
4005 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
4006 fatal_exit(1);
4007 }
4008 var12 = var14;
4009 RET_LABEL13:(void)0;
4010 }
4011 }
4012 {
4013 var15 = ((val*(*)(val* self))((((long)var12&3)?class_info[((long)var12&3)]:var12->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var12); /* item on <var12:IndexedIterator[String]>*/
4014 }
4015 {
4016 { /* Inline ropes#RopeIter#str= (self,var15) on <self:RopeIter> */
4017 self->attrs[COLOR_standard__ropes__RopeIter___str].val = var15; /* _str on <self:RopeIter> */
4018 RET_LABEL16:(void)0;
4019 }
4020 }
4021 {
4022 { /* Inline ropes#Concat#length (var_root) on <var_root:RopeString> */
4023 var19 = var_root->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <var_root:RopeString> */
4024 var17 = var19;
4025 RET_LABEL18:(void)0;
4026 }
4027 }
4028 {
4029 { /* Inline kernel#Int#- (var17,1l) on <var17:Int> */
4030 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4031 /* <1l:Int> isa OTHER */
4032 var22 = 1; /* easy <1l:Int> isa OTHER*/
4033 if (unlikely(!var22)) {
4034 var_class_name25 = type_standard__Int.name;
4035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
4036 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
4037 fatal_exit(1);
4038 }
4039 var26 = var17 - 1l;
4040 var20 = var26;
4041 goto RET_LABEL21;
4042 RET_LABEL21:(void)0;
4043 }
4044 }
4045 {
4046 { /* Inline ropes#RopeIter#max= (self,var20) on <self:RopeIter> */
4047 self->attrs[COLOR_standard__ropes__RopeIter___max].l = var20; /* _max on <self:RopeIter> */
4048 RET_LABEL27:(void)0;
4049 }
4050 }
4051 RET_LABEL:;
4052 }
4053 /* method ropes#RopeIter#item for (self: RopeIter): Char */
4054 uint32_t standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__item(val* self) {
4055 uint32_t var /* : Char */;
4056 val* var1 /* : String */;
4057 val* var3 /* : String */;
4058 long var4 /* : Int */;
4059 long var6 /* : Int */;
4060 uint32_t var7 /* : Char */;
4061 {
4062 { /* Inline ropes#RopeIter#str (self) on <self:RopeIter> */
4063 var3 = self->attrs[COLOR_standard__ropes__RopeIter___str].val; /* _str on <self:RopeIter> */
4064 if (unlikely(var3 == NULL)) {
4065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4066 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 540);
4067 fatal_exit(1);
4068 }
4069 var1 = var3;
4070 RET_LABEL2:(void)0;
4071 }
4072 }
4073 {
4074 { /* Inline ropes#RopeIter#pns (self) on <self:RopeIter> */
4075 var6 = self->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <self:RopeIter> */
4076 var4 = var6;
4077 RET_LABEL5:(void)0;
4078 }
4079 }
4080 {
4081 var7 = ((uint32_t(*)(val* self, long p0))(var1->class->vft[COLOR_standard__string__Text___91d_93d]))(var1, var4); /* [] on <var1:String>*/
4082 }
4083 var = var7;
4084 goto RET_LABEL;
4085 RET_LABEL:;
4086 return var;
4087 }
4088 /* method ropes#RopeIter#item for (self: Iterator[nullable Object]): nullable Object */
4089 val* VIRTUAL_standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__item(val* self) {
4090 val* var /* : nullable Object */;
4091 uint32_t var1 /* : Char */;
4092 val* var2 /* : nullable Object */;
4093 var1 = standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__item(self);
4094 var2 = (val*)((long)(var1)<<2|2);
4095 var = var2;
4096 RET_LABEL:;
4097 return var;
4098 }
4099 /* method ropes#RopeIter#is_ok for (self: RopeIter): Bool */
4100 short int standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__is_ok(val* self) {
4101 short int var /* : Bool */;
4102 long var1 /* : Int */;
4103 long var3 /* : Int */;
4104 long var4 /* : Int */;
4105 long var6 /* : Int */;
4106 short int var7 /* : Bool */;
4107 short int var9 /* : Bool */;
4108 int cltype;
4109 int idtype;
4110 const char* var_class_name;
4111 short int var10 /* : Bool */;
4112 {
4113 { /* Inline ropes#RopeIter#pos (self) on <self:RopeIter> */
4114 var3 = self->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <self:RopeIter> */
4115 var1 = var3;
4116 RET_LABEL2:(void)0;
4117 }
4118 }
4119 {
4120 { /* Inline ropes#RopeIter#max (self) on <self:RopeIter> */
4121 var6 = self->attrs[COLOR_standard__ropes__RopeIter___max].l; /* _max on <self:RopeIter> */
4122 var4 = var6;
4123 RET_LABEL5:(void)0;
4124 }
4125 }
4126 {
4127 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
4128 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
4129 /* <var4:Int> isa OTHER */
4130 var9 = 1; /* easy <var4:Int> isa OTHER*/
4131 if (unlikely(!var9)) {
4132 var_class_name = type_standard__Int.name;
4133 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4134 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
4135 fatal_exit(1);
4136 }
4137 var10 = var1 <= var4;
4138 var7 = var10;
4139 goto RET_LABEL8;
4140 RET_LABEL8:(void)0;
4141 }
4142 }
4143 var = var7;
4144 goto RET_LABEL;
4145 RET_LABEL:;
4146 return var;
4147 }
4148 /* method ropes#RopeIter#index for (self: RopeIter): Int */
4149 long standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__IndexedIterator__index(val* self) {
4150 long var /* : Int */;
4151 long var1 /* : Int */;
4152 long var3 /* : Int */;
4153 {
4154 { /* Inline ropes#RopeIter#pos (self) on <self:RopeIter> */
4155 var3 = self->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <self:RopeIter> */
4156 var1 = var3;
4157 RET_LABEL2:(void)0;
4158 }
4159 }
4160 var = var1;
4161 goto RET_LABEL;
4162 RET_LABEL:;
4163 return var;
4164 }
4165 /* method ropes#RopeIter#next for (self: RopeIter) */
4166 void standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__next(val* self) {
4167 val* var_ /* var : RopeIter */;
4168 long var /* : Int */;
4169 long var2 /* : Int */;
4170 long var3 /* : Int */;
4171 short int var5 /* : Bool */;
4172 int cltype;
4173 int idtype;
4174 const char* var_class_name;
4175 long var6 /* : Int */;
4176 val* var_8 /* var : RopeIter */;
4177 long var9 /* : Int */;
4178 long var11 /* : Int */;
4179 long var12 /* : Int */;
4180 short int var14 /* : Bool */;
4181 int cltype15;
4182 int idtype16;
4183 const char* var_class_name17;
4184 long var18 /* : Int */;
4185 long var20 /* : Int */;
4186 long var22 /* : Int */;
4187 val* var23 /* : IndexedIterator[String] */;
4188 val* var25 /* : IndexedIterator[String] */;
4189 val* var26 /* : nullable Object */;
4190 long var27 /* : Int */;
4191 short int var28 /* : Bool */;
4192 short int var30 /* : Bool */;
4193 int cltype31;
4194 int idtype32;
4195 const char* var_class_name33;
4196 short int var34 /* : Bool */;
4197 val* var35 /* : IndexedIterator[String] */;
4198 val* var37 /* : IndexedIterator[String] */;
4199 short int var38 /* : Bool */;
4200 short int var39 /* : Bool */;
4201 val* var40 /* : IndexedIterator[String] */;
4202 val* var42 /* : IndexedIterator[String] */;
4203 val* var43 /* : IndexedIterator[String] */;
4204 val* var45 /* : IndexedIterator[String] */;
4205 short int var46 /* : Bool */;
4206 short int var47 /* : Bool */;
4207 val* var48 /* : IndexedIterator[String] */;
4208 val* var50 /* : IndexedIterator[String] */;
4209 val* var51 /* : nullable Object */;
4210 var_ = self;
4211 {
4212 { /* Inline ropes#RopeIter#pns (var_) on <var_:RopeIter> */
4213 var2 = var_->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <var_:RopeIter> */
4214 var = var2;
4215 RET_LABEL1:(void)0;
4216 }
4217 }
4218 {
4219 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
4220 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4221 /* <1l:Int> isa OTHER */
4222 var5 = 1; /* easy <1l:Int> isa OTHER*/
4223 if (unlikely(!var5)) {
4224 var_class_name = type_standard__Int.name;
4225 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4226 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
4227 fatal_exit(1);
4228 }
4229 var6 = var + 1l;
4230 var3 = var6;
4231 goto RET_LABEL4;
4232 RET_LABEL4:(void)0;
4233 }
4234 }
4235 {
4236 { /* Inline ropes#RopeIter#pns= (var_,var3) on <var_:RopeIter> */
4237 var_->attrs[COLOR_standard__ropes__RopeIter___pns].l = var3; /* _pns on <var_:RopeIter> */
4238 RET_LABEL7:(void)0;
4239 }
4240 }
4241 var_8 = self;
4242 {
4243 { /* Inline ropes#RopeIter#pos (var_8) on <var_8:RopeIter> */
4244 var11 = var_8->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <var_8:RopeIter> */
4245 var9 = var11;
4246 RET_LABEL10:(void)0;
4247 }
4248 }
4249 {
4250 { /* Inline kernel#Int#+ (var9,1l) on <var9:Int> */
4251 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4252 /* <1l:Int> isa OTHER */
4253 var14 = 1; /* easy <1l:Int> isa OTHER*/
4254 if (unlikely(!var14)) {
4255 var_class_name17 = type_standard__Int.name;
4256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
4257 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
4258 fatal_exit(1);
4259 }
4260 var18 = var9 + 1l;
4261 var12 = var18;
4262 goto RET_LABEL13;
4263 RET_LABEL13:(void)0;
4264 }
4265 }
4266 {
4267 { /* Inline ropes#RopeIter#pos= (var_8,var12) on <var_8:RopeIter> */
4268 var_8->attrs[COLOR_standard__ropes__RopeIter___pos].l = var12; /* _pos on <var_8:RopeIter> */
4269 RET_LABEL19:(void)0;
4270 }
4271 }
4272 {
4273 { /* Inline ropes#RopeIter#pns (self) on <self:RopeIter> */
4274 var22 = self->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <self:RopeIter> */
4275 var20 = var22;
4276 RET_LABEL21:(void)0;
4277 }
4278 }
4279 {
4280 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
4281 var25 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
4282 if (unlikely(var25 == NULL)) {
4283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
4284 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
4285 fatal_exit(1);
4286 }
4287 var23 = var25;
4288 RET_LABEL24:(void)0;
4289 }
4290 }
4291 {
4292 var26 = ((val*(*)(val* self))((((long)var23&3)?class_info[((long)var23&3)]:var23->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var23); /* item on <var23:IndexedIterator[String]>*/
4293 }
4294 {
4295 var27 = ((long(*)(val* self))(var26->class->vft[COLOR_standard__string__Text__length]))(var26); /* length on <var26:nullable Object(String)>*/
4296 }
4297 {
4298 { /* Inline kernel#Int#< (var20,var27) on <var20:Int> */
4299 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
4300 /* <var27:Int> isa OTHER */
4301 var30 = 1; /* easy <var27:Int> isa OTHER*/
4302 if (unlikely(!var30)) {
4303 var_class_name33 = type_standard__Int.name;
4304 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
4305 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
4306 fatal_exit(1);
4307 }
4308 var34 = var20 < var27;
4309 var28 = var34;
4310 goto RET_LABEL29;
4311 RET_LABEL29:(void)0;
4312 }
4313 }
4314 if (var28){
4315 goto RET_LABEL;
4316 } else {
4317 }
4318 {
4319 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
4320 var37 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
4321 if (unlikely(var37 == NULL)) {
4322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
4323 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
4324 fatal_exit(1);
4325 }
4326 var35 = var37;
4327 RET_LABEL36:(void)0;
4328 }
4329 }
4330 {
4331 var38 = ((short int(*)(val* self))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var35); /* is_ok on <var35:IndexedIterator[String]>*/
4332 }
4333 var39 = !var38;
4334 if (var39){
4335 goto RET_LABEL;
4336 } else {
4337 }
4338 {
4339 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
4340 var42 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
4341 if (unlikely(var42 == NULL)) {
4342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
4343 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
4344 fatal_exit(1);
4345 }
4346 var40 = var42;
4347 RET_LABEL41:(void)0;
4348 }
4349 }
4350 {
4351 ((void(*)(val* self))((((long)var40&3)?class_info[((long)var40&3)]:var40->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var40); /* next on <var40:IndexedIterator[String]>*/
4352 }
4353 {
4354 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
4355 var45 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
4356 if (unlikely(var45 == NULL)) {
4357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
4358 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
4359 fatal_exit(1);
4360 }
4361 var43 = var45;
4362 RET_LABEL44:(void)0;
4363 }
4364 }
4365 {
4366 var46 = ((short int(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var43); /* is_ok on <var43:IndexedIterator[String]>*/
4367 }
4368 var47 = !var46;
4369 if (var47){
4370 goto RET_LABEL;
4371 } else {
4372 }
4373 {
4374 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
4375 var50 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
4376 if (unlikely(var50 == NULL)) {
4377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
4378 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 542);
4379 fatal_exit(1);
4380 }
4381 var48 = var50;
4382 RET_LABEL49:(void)0;
4383 }
4384 }
4385 {
4386 var51 = ((val*(*)(val* self))((((long)var48&3)?class_info[((long)var48&3)]:var48->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var48); /* item on <var48:IndexedIterator[String]>*/
4387 }
4388 {
4389 { /* Inline ropes#RopeIter#str= (self,var51) on <self:RopeIter> */
4390 self->attrs[COLOR_standard__ropes__RopeIter___str].val = var51; /* _str on <self:RopeIter> */
4391 RET_LABEL52:(void)0;
4392 }
4393 }
4394 {
4395 { /* Inline ropes#RopeIter#pns= (self,0l) on <self:RopeIter> */
4396 self->attrs[COLOR_standard__ropes__RopeIter___pns].l = 0l; /* _pns on <self:RopeIter> */
4397 RET_LABEL53:(void)0;
4398 }
4399 }
4400 RET_LABEL:;
4401 }
4402 /* method ropes#RopeBufSubstringIterator#iter for (self: RopeBufSubstringIterator): Iterator[FlatText] */
4403 val* standard__ropes___standard__ropes__RopeBufSubstringIterator___iter(val* self) {
4404 val* var /* : Iterator[FlatText] */;
4405 val* var1 /* : Iterator[FlatText] */;
4406 var1 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
4407 if (unlikely(var1 == NULL)) {
4408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4409 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 673);
4410 fatal_exit(1);
4411 }
4412 var = var1;
4413 RET_LABEL:;
4414 return var;
4415 }
4416 /* method ropes#RopeBufSubstringIterator#iter= for (self: RopeBufSubstringIterator, Iterator[FlatText]) */
4417 void standard__ropes___standard__ropes__RopeBufSubstringIterator___iter_61d(val* self, val* p0) {
4418 self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val = p0; /* _iter on <self:RopeBufSubstringIterator> */
4419 RET_LABEL:;
4420 }
4421 /* method ropes#RopeBufSubstringIterator#nsstr for (self: RopeBufSubstringIterator): FlatString */
4422 val* standard__ropes___standard__ropes__RopeBufSubstringIterator___nsstr(val* self) {
4423 val* var /* : FlatString */;
4424 val* var1 /* : FlatString */;
4425 var1 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr].val; /* _nsstr on <self:RopeBufSubstringIterator> */
4426 if (unlikely(var1 == NULL)) {
4427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nsstr");
4428 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 675);
4429 fatal_exit(1);
4430 }
4431 var = var1;
4432 RET_LABEL:;
4433 return var;
4434 }
4435 /* method ropes#RopeBufSubstringIterator#nsstr= for (self: RopeBufSubstringIterator, FlatString) */
4436 void standard__ropes___standard__ropes__RopeBufSubstringIterator___nsstr_61d(val* self, val* p0) {
4437 self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr].val = p0; /* _nsstr on <self:RopeBufSubstringIterator> */
4438 RET_LABEL:;
4439 }
4440 /* method ropes#RopeBufSubstringIterator#nsstr_done for (self: RopeBufSubstringIterator): Bool */
4441 short int standard__ropes___standard__ropes__RopeBufSubstringIterator___nsstr_done(val* self) {
4442 short int var /* : Bool */;
4443 short int var1 /* : Bool */;
4444 var1 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr_done].s; /* _nsstr_done on <self:RopeBufSubstringIterator> */
4445 var = var1;
4446 RET_LABEL:;
4447 return var;
4448 }
4449 /* method ropes#RopeBufSubstringIterator#nsstr_done= for (self: RopeBufSubstringIterator, Bool) */
4450 void standard__ropes___standard__ropes__RopeBufSubstringIterator___nsstr_done_61d(val* self, short int p0) {
4451 self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr_done].s = p0; /* _nsstr_done on <self:RopeBufSubstringIterator> */
4452 RET_LABEL:;
4453 }
4454 /* method ropes#RopeBufSubstringIterator#init for (self: RopeBufSubstringIterator, RopeBuffer) */
4455 void standard__ropes___standard__ropes__RopeBufSubstringIterator___init(val* self, val* p0) {
4456 val* var_str /* var str: RopeBuffer */;
4457 val* var /* : String */;
4458 val* var2 /* : String */;
4459 val* var3 /* : Iterator[FlatText] */;
4460 val* var5 /* : FlatString */;
4461 char* var6 /* : NativeString */;
4462 char* var8 /* : NativeString */;
4463 long var9 /* : Int */;
4464 long var11 /* : Int */;
4465 long var12 /* : Int */;
4466 long var14 /* : Int */;
4467 long var15 /* : Int */;
4468 short int var17 /* : Bool */;
4469 int cltype;
4470 int idtype;
4471 const char* var_class_name;
4472 long var18 /* : Int */;
4473 long var19 /* : Int */;
4474 long var21 /* : Int */;
4475 long var22 /* : Int */;
4476 long var24 /* : Int */;
4477 long var25 /* : Int */;
4478 short int var27 /* : Bool */;
4479 int cltype28;
4480 int idtype29;
4481 const char* var_class_name30;
4482 long var31 /* : Int */;
4483 long var33 /* : Int */;
4484 long var35 /* : Int */;
4485 short int var36 /* : Bool */;
4486 short int var38 /* : Bool */;
4487 var_str = p0;
4488 {
4489 { /* Inline ropes#RopeBuffer#str (var_str) on <var_str:RopeBuffer> */
4490 var2 = var_str->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var_str:RopeBuffer> */
4491 if (unlikely(var2 == NULL)) {
4492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4493 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
4494 fatal_exit(1);
4495 }
4496 var = var2;
4497 RET_LABEL1:(void)0;
4498 }
4499 }
4500 {
4501 var3 = ((val*(*)(val* self))(var->class->vft[COLOR_standard__string__Text__substrings]))(var); /* substrings on <var:String>*/
4502 }
4503 {
4504 { /* Inline ropes#RopeBufSubstringIterator#iter= (self,var3) on <self:RopeBufSubstringIterator> */
4505 self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val = var3; /* _iter on <self:RopeBufSubstringIterator> */
4506 RET_LABEL4:(void)0;
4507 }
4508 }
4509 var5 = NEW_standard__FlatString(&type_standard__FlatString);
4510 {
4511 { /* Inline ropes#RopeBuffer#ns (var_str) on <var_str:RopeBuffer> */
4512 var8 = var_str->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <var_str:RopeBuffer> */
4513 var6 = var8;
4514 RET_LABEL7:(void)0;
4515 }
4516 }
4517 {
4518 { /* Inline ropes#RopeBuffer#rpos (var_str) on <var_str:RopeBuffer> */
4519 var11 = var_str->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <var_str:RopeBuffer> */
4520 var9 = var11;
4521 RET_LABEL10:(void)0;
4522 }
4523 }
4524 {
4525 { /* Inline ropes#RopeBuffer#dumped (var_str) on <var_str:RopeBuffer> */
4526 var14 = var_str->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <var_str:RopeBuffer> */
4527 var12 = var14;
4528 RET_LABEL13:(void)0;
4529 }
4530 }
4531 {
4532 { /* Inline kernel#Int#- (var9,var12) on <var9:Int> */
4533 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
4534 /* <var12:Int> isa OTHER */
4535 var17 = 1; /* easy <var12:Int> isa OTHER*/
4536 if (unlikely(!var17)) {
4537 var_class_name = type_standard__Int.name;
4538 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4539 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
4540 fatal_exit(1);
4541 }
4542 var18 = var9 - var12;
4543 var15 = var18;
4544 goto RET_LABEL16;
4545 RET_LABEL16:(void)0;
4546 }
4547 }
4548 {
4549 { /* Inline ropes#RopeBuffer#dumped (var_str) on <var_str:RopeBuffer> */
4550 var21 = var_str->attrs[COLOR_standard__ropes__RopeBuffer___dumped].l; /* _dumped on <var_str:RopeBuffer> */
4551 var19 = var21;
4552 RET_LABEL20:(void)0;
4553 }
4554 }
4555 {
4556 { /* Inline ropes#RopeBuffer#rpos (var_str) on <var_str:RopeBuffer> */
4557 var24 = var_str->attrs[COLOR_standard__ropes__RopeBuffer___rpos].l; /* _rpos on <var_str:RopeBuffer> */
4558 var22 = var24;
4559 RET_LABEL23:(void)0;
4560 }
4561 }
4562 {
4563 { /* Inline kernel#Int#- (var22,1l) on <var22:Int> */
4564 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4565 /* <1l:Int> isa OTHER */
4566 var27 = 1; /* easy <1l:Int> isa OTHER*/
4567 if (unlikely(!var27)) {
4568 var_class_name30 = type_standard__Int.name;
4569 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
4570 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
4571 fatal_exit(1);
4572 }
4573 var31 = var22 - 1l;
4574 var25 = var31;
4575 goto RET_LABEL26;
4576 RET_LABEL26:(void)0;
4577 }
4578 }
4579 {
4580 standard___standard__FlatString___with_infos(var5, var6, var15, var19, var25); /* Direct call string#FlatString#with_infos on <var5:FlatString>*/
4581 }
4582 {
4583 { /* Inline ropes#RopeBufSubstringIterator#nsstr= (self,var5) on <self:RopeBufSubstringIterator> */
4584 self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr].val = var5; /* _nsstr on <self:RopeBufSubstringIterator> */
4585 RET_LABEL32:(void)0;
4586 }
4587 }
4588 {
4589 { /* Inline ropes#RopeBuffer#length (var_str) on <var_str:RopeBuffer> */
4590 var35 = var_str->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <var_str:RopeBuffer> */
4591 var33 = var35;
4592 RET_LABEL34:(void)0;
4593 }
4594 }
4595 {
4596 { /* Inline kernel#Int#== (var33,0l) on <var33:Int> */
4597 var38 = var33 == 0l;
4598 var36 = var38;
4599 goto RET_LABEL37;
4600 RET_LABEL37:(void)0;
4601 }
4602 }
4603 if (var36){
4604 {
4605 { /* Inline ropes#RopeBufSubstringIterator#nsstr_done= (self,1) on <self:RopeBufSubstringIterator> */
4606 self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr_done].s = 1; /* _nsstr_done on <self:RopeBufSubstringIterator> */
4607 RET_LABEL39:(void)0;
4608 }
4609 }
4610 } else {
4611 }
4612 RET_LABEL:;
4613 }
4614 /* method ropes#RopeBufSubstringIterator#is_ok for (self: RopeBufSubstringIterator): Bool */
4615 short int standard__ropes___standard__ropes__RopeBufSubstringIterator___standard__abstract_collection__Iterator__is_ok(val* self) {
4616 short int var /* : Bool */;
4617 short int var1 /* : Bool */;
4618 val* var2 /* : Iterator[FlatText] */;
4619 val* var4 /* : Iterator[FlatText] */;
4620 short int var5 /* : Bool */;
4621 short int var_ /* var : Bool */;
4622 short int var6 /* : Bool */;
4623 short int var8 /* : Bool */;
4624 short int var9 /* : Bool */;
4625 {
4626 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
4627 var4 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
4628 if (unlikely(var4 == NULL)) {
4629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4630 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 673);
4631 fatal_exit(1);
4632 }
4633 var2 = var4;
4634 RET_LABEL3:(void)0;
4635 }
4636 }
4637 {
4638 var5 = ((short int(*)(val* self))((((long)var2&3)?class_info[((long)var2&3)]:var2->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var2); /* is_ok on <var2:Iterator[FlatText]>*/
4639 }
4640 var_ = var5;
4641 if (var5){
4642 var1 = var_;
4643 } else {
4644 {
4645 { /* Inline ropes#RopeBufSubstringIterator#nsstr_done (self) on <self:RopeBufSubstringIterator> */
4646 var8 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr_done].s; /* _nsstr_done on <self:RopeBufSubstringIterator> */
4647 var6 = var8;
4648 RET_LABEL7:(void)0;
4649 }
4650 }
4651 var9 = !var6;
4652 var1 = var9;
4653 }
4654 var = var1;
4655 goto RET_LABEL;
4656 RET_LABEL:;
4657 return var;
4658 }
4659 /* method ropes#RopeBufSubstringIterator#item for (self: RopeBufSubstringIterator): FlatText */
4660 val* standard__ropes___standard__ropes__RopeBufSubstringIterator___standard__abstract_collection__Iterator__item(val* self) {
4661 val* var /* : FlatText */;
4662 short int var1 /* : Bool */;
4663 val* var2 /* : Iterator[FlatText] */;
4664 val* var4 /* : Iterator[FlatText] */;
4665 short int var5 /* : Bool */;
4666 val* var6 /* : Iterator[FlatText] */;
4667 val* var8 /* : Iterator[FlatText] */;
4668 val* var9 /* : nullable Object */;
4669 val* var10 /* : FlatString */;
4670 val* var12 /* : FlatString */;
4671 {
4672 var1 = standard__ropes___standard__ropes__RopeBufSubstringIterator___standard__abstract_collection__Iterator__is_ok(self);
4673 }
4674 if (unlikely(!var1)) {
4675 PRINT_ERROR("Runtime error: %s", "Assert failed");
4676 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 689);
4677 fatal_exit(1);
4678 }
4679 {
4680 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
4681 var4 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
4682 if (unlikely(var4 == NULL)) {
4683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4684 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 673);
4685 fatal_exit(1);
4686 }
4687 var2 = var4;
4688 RET_LABEL3:(void)0;
4689 }
4690 }
4691 {
4692 var5 = ((short int(*)(val* self))((((long)var2&3)?class_info[((long)var2&3)]:var2->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var2); /* is_ok on <var2:Iterator[FlatText]>*/
4693 }
4694 if (var5){
4695 {
4696 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
4697 var8 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
4698 if (unlikely(var8 == NULL)) {
4699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4700 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 673);
4701 fatal_exit(1);
4702 }
4703 var6 = var8;
4704 RET_LABEL7:(void)0;
4705 }
4706 }
4707 {
4708 var9 = ((val*(*)(val* self))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var6); /* item on <var6:Iterator[FlatText]>*/
4709 }
4710 var = var9;
4711 goto RET_LABEL;
4712 } else {
4713 }
4714 {
4715 { /* Inline ropes#RopeBufSubstringIterator#nsstr (self) on <self:RopeBufSubstringIterator> */
4716 var12 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr].val; /* _nsstr on <self:RopeBufSubstringIterator> */
4717 if (unlikely(var12 == NULL)) {
4718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nsstr");
4719 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 675);
4720 fatal_exit(1);
4721 }
4722 var10 = var12;
4723 RET_LABEL11:(void)0;
4724 }
4725 }
4726 var = var10;
4727 goto RET_LABEL;
4728 RET_LABEL:;
4729 return var;
4730 }
4731 /* method ropes#RopeBufSubstringIterator#next for (self: RopeBufSubstringIterator) */
4732 void standard__ropes___standard__ropes__RopeBufSubstringIterator___standard__abstract_collection__Iterator__next(val* self) {
4733 val* var /* : Iterator[FlatText] */;
4734 val* var2 /* : Iterator[FlatText] */;
4735 short int var3 /* : Bool */;
4736 val* var4 /* : Iterator[FlatText] */;
4737 val* var6 /* : Iterator[FlatText] */;
4738 {
4739 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
4740 var2 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
4741 if (unlikely(var2 == NULL)) {
4742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4743 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 673);
4744 fatal_exit(1);
4745 }
4746 var = var2;
4747 RET_LABEL1:(void)0;
4748 }
4749 }
4750 {
4751 var3 = ((short int(*)(val* self))((((long)var&3)?class_info[((long)var&3)]:var->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var); /* is_ok on <var:Iterator[FlatText]>*/
4752 }
4753 if (var3){
4754 {
4755 { /* Inline ropes#RopeBufSubstringIterator#iter (self) on <self:RopeBufSubstringIterator> */
4756 var6 = self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___iter].val; /* _iter on <self:RopeBufSubstringIterator> */
4757 if (unlikely(var6 == NULL)) {
4758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4759 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 673);
4760 fatal_exit(1);
4761 }
4762 var4 = var6;
4763 RET_LABEL5:(void)0;
4764 }
4765 }
4766 {
4767 ((void(*)(val* self))((((long)var4&3)?class_info[((long)var4&3)]:var4->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var4); /* next on <var4:Iterator[FlatText]>*/
4768 }
4769 goto RET_LABEL;
4770 } else {
4771 }
4772 {
4773 { /* Inline ropes#RopeBufSubstringIterator#nsstr_done= (self,1) on <self:RopeBufSubstringIterator> */
4774 self->attrs[COLOR_standard__ropes__RopeBufSubstringIterator___nsstr_done].s = 1; /* _nsstr_done on <self:RopeBufSubstringIterator> */
4775 RET_LABEL7:(void)0;
4776 }
4777 }
4778 RET_LABEL:;
4779 }
4780 /* method ropes#RopeSubstrings#iter for (self: RopeSubstrings): RopeIterPiece */
4781 val* standard__ropes___standard__ropes__RopeSubstrings___iter(val* self) {
4782 val* var /* : RopeIterPiece */;
4783 val* var1 /* : RopeIterPiece */;
4784 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
4785 if (unlikely(var1 == NULL)) {
4786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4787 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 707);
4788 fatal_exit(1);
4789 }
4790 var = var1;
4791 RET_LABEL:;
4792 return var;
4793 }
4794 /* method ropes#RopeSubstrings#iter= for (self: RopeSubstrings, RopeIterPiece) */
4795 void standard__ropes___standard__ropes__RopeSubstrings___iter_61d(val* self, val* p0) {
4796 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = p0; /* _iter on <self:RopeSubstrings> */
4797 RET_LABEL:;
4798 }
4799 /* method ropes#RopeSubstrings#pos for (self: RopeSubstrings): Int */
4800 long standard__ropes___standard__ropes__RopeSubstrings___pos(val* self) {
4801 long var /* : Int */;
4802 long var1 /* : Int */;
4803 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
4804 var = var1;
4805 RET_LABEL:;
4806 return var;
4807 }
4808 /* method ropes#RopeSubstrings#pos= for (self: RopeSubstrings, Int) */
4809 void standard__ropes___standard__ropes__RopeSubstrings___pos_61d(val* self, long p0) {
4810 self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = p0; /* _pos on <self:RopeSubstrings> */
4811 RET_LABEL:;
4812 }
4813 /* method ropes#RopeSubstrings#max for (self: RopeSubstrings): Int */
4814 long standard__ropes___standard__ropes__RopeSubstrings___max(val* self) {
4815 long var /* : Int */;
4816 long var1 /* : Int */;
4817 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
4818 var = var1;
4819 RET_LABEL:;
4820 return var;
4821 }
4822 /* method ropes#RopeSubstrings#max= for (self: RopeSubstrings, Int) */
4823 void standard__ropes___standard__ropes__RopeSubstrings___max_61d(val* self, long p0) {
4824 self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l = p0; /* _max on <self:RopeSubstrings> */
4825 RET_LABEL:;
4826 }
4827 /* method ropes#RopeSubstrings#str for (self: RopeSubstrings): FlatString */
4828 val* standard__ropes___standard__ropes__RopeSubstrings___str(val* self) {
4829 val* var /* : FlatString */;
4830 val* var1 /* : FlatString */;
4831 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
4832 if (unlikely(var1 == NULL)) {
4833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4834 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 714);
4835 fatal_exit(1);
4836 }
4837 var = var1;
4838 RET_LABEL:;
4839 return var;
4840 }
4841 /* method ropes#RopeSubstrings#str= for (self: RopeSubstrings, FlatString) */
4842 void standard__ropes___standard__ropes__RopeSubstrings___str_61d(val* self, val* p0) {
4843 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = p0; /* _str on <self:RopeSubstrings> */
4844 RET_LABEL:;
4845 }
4846 /* method ropes#RopeSubstrings#init for (self: RopeSubstrings, RopeString) */
4847 void standard__ropes___standard__ropes__RopeSubstrings___init(val* self, val* p0) {
4848 val* var_root /* var root: RopeString */;
4849 val* var /* : RopeIterPiece */;
4850 val* var_r /* var r: RopeIterPiece */;
4851 long var2 /* : Int */;
4852 long var4 /* : Int */;
4853 long var5 /* : Int */;
4854 short int var7 /* : Bool */;
4855 int cltype;
4856 int idtype;
4857 const char* var_class_name;
4858 long var8 /* : Int */;
4859 val* var_rnod /* var rnod: String */;
4860 short int var10 /* : Bool */;
4861 int cltype11;
4862 int idtype12;
4863 val* var13 /* : String */;
4864 val* var15 /* : String */;
4865 val* var16 /* : RopeIterPiece */;
4866 short int var17 /* : Bool */;
4867 int cltype18;
4868 int idtype19;
4869 const char* var_class_name20;
4870 var_root = p0;
4871 var = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
4872 {
4873 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var, var_root); /* node= on <var:RopeIterPiece>*/
4874 }
4875 {
4876 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var, 1); /* ldone= on <var:RopeIterPiece>*/
4877 }
4878 {
4879 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var, 0); /* rdone= on <var:RopeIterPiece>*/
4880 }
4881 {
4882 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var, ((val*)NULL)); /* prev= on <var:RopeIterPiece>*/
4883 }
4884 {
4885 ((void(*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var); /* init on <var:RopeIterPiece>*/
4886 }
4887 var_r = var;
4888 {
4889 { /* Inline ropes#RopeSubstrings#pos= (self,0l) on <self:RopeSubstrings> */
4890 self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = 0l; /* _pos on <self:RopeSubstrings> */
4891 RET_LABEL1:(void)0;
4892 }
4893 }
4894 {
4895 { /* Inline ropes#Concat#length (var_root) on <var_root:RopeString> */
4896 var4 = var_root->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <var_root:RopeString> */
4897 var2 = var4;
4898 RET_LABEL3:(void)0;
4899 }
4900 }
4901 {
4902 { /* Inline kernel#Int#- (var2,1l) on <var2:Int> */
4903 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4904 /* <1l:Int> isa OTHER */
4905 var7 = 1; /* easy <1l:Int> isa OTHER*/
4906 if (unlikely(!var7)) {
4907 var_class_name = type_standard__Int.name;
4908 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4909 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
4910 fatal_exit(1);
4911 }
4912 var8 = var2 - 1l;
4913 var5 = var8;
4914 goto RET_LABEL6;
4915 RET_LABEL6:(void)0;
4916 }
4917 }
4918 {
4919 { /* Inline ropes#RopeSubstrings#max= (self,var5) on <self:RopeSubstrings> */
4920 self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l = var5; /* _max on <self:RopeSubstrings> */
4921 RET_LABEL9:(void)0;
4922 }
4923 }
4924 var_rnod = var_root;
4925 for(;;) {
4926 /* <var_rnod:String> isa Concat */
4927 cltype11 = type_standard__ropes__Concat.color;
4928 idtype12 = type_standard__ropes__Concat.id;
4929 if(cltype11 >= var_rnod->type->table_size) {
4930 var10 = 0;
4931 } else {
4932 var10 = var_rnod->type->type_table[cltype11] == idtype12;
4933 }
4934 if (var10){
4935 {
4936 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
4937 var15 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
4938 if (unlikely(var15 == NULL)) {
4939 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4940 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
4941 fatal_exit(1);
4942 }
4943 var13 = var15;
4944 RET_LABEL14:(void)0;
4945 }
4946 }
4947 var_rnod = var13;
4948 var16 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
4949 {
4950 ((void(*)(val* self, val* p0))(var16->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var16, var_rnod); /* node= on <var16:RopeIterPiece>*/
4951 }
4952 {
4953 ((void(*)(val* self, short int p0))(var16->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var16, 1); /* ldone= on <var16:RopeIterPiece>*/
4954 }
4955 {
4956 ((void(*)(val* self, short int p0))(var16->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var16, 0); /* rdone= on <var16:RopeIterPiece>*/
4957 }
4958 {
4959 ((void(*)(val* self, val* p0))(var16->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var16, var_r); /* prev= on <var16:RopeIterPiece>*/
4960 }
4961 {
4962 ((void(*)(val* self))(var16->class->vft[COLOR_standard__kernel__Object__init]))(var16); /* init on <var16:RopeIterPiece>*/
4963 }
4964 var_r = var16;
4965 } else {
4966 /* <var_rnod:String> isa FlatString */
4967 cltype18 = type_standard__FlatString.color;
4968 idtype19 = type_standard__FlatString.id;
4969 if(cltype18 >= var_rnod->type->table_size) {
4970 var17 = 0;
4971 } else {
4972 var17 = var_rnod->type->type_table[cltype18] == idtype19;
4973 }
4974 if (unlikely(!var17)) {
4975 var_class_name20 = var_rnod == NULL ? "null" : var_rnod->type->name;
4976 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name20);
4977 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 727);
4978 fatal_exit(1);
4979 }
4980 {
4981 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
4982 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
4983 RET_LABEL21:(void)0;
4984 }
4985 }
4986 {
4987 { /* Inline ropes#RopeIterPiece#rdone= (var_r,1) on <var_r:RopeIterPiece> */
4988 var_r->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = 1; /* _rdone on <var_r:RopeIterPiece> */
4989 RET_LABEL22:(void)0;
4990 }
4991 }
4992 {
4993 { /* Inline ropes#RopeSubstrings#iter= (self,var_r) on <self:RopeSubstrings> */
4994 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = var_r; /* _iter on <self:RopeSubstrings> */
4995 RET_LABEL23:(void)0;
4996 }
4997 }
4998 goto BREAK_label;
4999 }
5000 }
5001 BREAK_label: (void)0;
5002 RET_LABEL:;
5003 }
5004 /* method ropes#RopeSubstrings#from for (self: RopeSubstrings, RopeString, Int) */
5005 void standard__ropes___standard__ropes__RopeSubstrings___from(val* self, val* p0, long p1) {
5006 val* var_root /* var root: RopeString */;
5007 long var_pos /* var pos: Int */;
5008 val* var /* : RopeIterPiece */;
5009 val* var_r /* var r: RopeIterPiece */;
5010 long var1 /* : Int */;
5011 long var3 /* : Int */;
5012 long var4 /* : Int */;
5013 short int var6 /* : Bool */;
5014 int cltype;
5015 int idtype;
5016 const char* var_class_name;
5017 long var7 /* : Int */;
5018 val* var_rnod /* var rnod: String */;
5019 long var_off /* var off: Int */;
5020 short int var9 /* : Bool */;
5021 int cltype10;
5022 int idtype11;
5023 val* var12 /* : String */;
5024 val* var14 /* : String */;
5025 long var15 /* : Int */;
5026 short int var16 /* : Bool */;
5027 short int var18 /* : Bool */;
5028 int cltype19;
5029 int idtype20;
5030 const char* var_class_name21;
5031 short int var22 /* : Bool */;
5032 val* var24 /* : String */;
5033 val* var26 /* : String */;
5034 long var27 /* : Int */;
5035 long var28 /* : Int */;
5036 short int var30 /* : Bool */;
5037 int cltype31;
5038 int idtype32;
5039 const char* var_class_name33;
5040 long var34 /* : Int */;
5041 val* var35 /* : String */;
5042 val* var37 /* : String */;
5043 val* var38 /* : RopeIterPiece */;
5044 val* var39 /* : String */;
5045 val* var41 /* : String */;
5046 val* var42 /* : RopeIterPiece */;
5047 short int var43 /* : Bool */;
5048 int cltype44;
5049 int idtype45;
5050 const char* var_class_name46;
5051 long var50 /* : Int */;
5052 short int var52 /* : Bool */;
5053 int cltype53;
5054 int idtype54;
5055 const char* var_class_name55;
5056 long var56 /* : Int */;
5057 var_root = p0;
5058 var_pos = p1;
5059 var = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
5060 {
5061 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var, var_root); /* node= on <var:RopeIterPiece>*/
5062 }
5063 {
5064 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var, 1); /* ldone= on <var:RopeIterPiece>*/
5065 }
5066 {
5067 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var, 0); /* rdone= on <var:RopeIterPiece>*/
5068 }
5069 {
5070 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var, ((val*)NULL)); /* prev= on <var:RopeIterPiece>*/
5071 }
5072 {
5073 ((void(*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var); /* init on <var:RopeIterPiece>*/
5074 }
5075 var_r = var;
5076 {
5077 { /* Inline ropes#Concat#length (var_root) on <var_root:RopeString> */
5078 var3 = var_root->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <var_root:RopeString> */
5079 var1 = var3;
5080 RET_LABEL2:(void)0;
5081 }
5082 }
5083 {
5084 { /* Inline kernel#Int#- (var1,1l) on <var1:Int> */
5085 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5086 /* <1l:Int> isa OTHER */
5087 var6 = 1; /* easy <1l:Int> isa OTHER*/
5088 if (unlikely(!var6)) {
5089 var_class_name = type_standard__Int.name;
5090 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5091 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
5092 fatal_exit(1);
5093 }
5094 var7 = var1 - 1l;
5095 var4 = var7;
5096 goto RET_LABEL5;
5097 RET_LABEL5:(void)0;
5098 }
5099 }
5100 {
5101 { /* Inline ropes#RopeSubstrings#max= (self,var4) on <self:RopeSubstrings> */
5102 self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l = var4; /* _max on <self:RopeSubstrings> */
5103 RET_LABEL8:(void)0;
5104 }
5105 }
5106 var_rnod = var_root;
5107 var_off = var_pos;
5108 for(;;) {
5109 /* <var_rnod:String> isa Concat */
5110 cltype10 = type_standard__ropes__Concat.color;
5111 idtype11 = type_standard__ropes__Concat.id;
5112 if(cltype10 >= var_rnod->type->table_size) {
5113 var9 = 0;
5114 } else {
5115 var9 = var_rnod->type->type_table[cltype10] == idtype11;
5116 }
5117 if (var9){
5118 {
5119 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
5120 var14 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
5121 if (unlikely(var14 == NULL)) {
5122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
5123 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
5124 fatal_exit(1);
5125 }
5126 var12 = var14;
5127 RET_LABEL13:(void)0;
5128 }
5129 }
5130 {
5131 var15 = ((long(*)(val* self))(var12->class->vft[COLOR_standard__string__Text__length]))(var12); /* length on <var12:String>*/
5132 }
5133 {
5134 { /* Inline kernel#Int#>= (var_off,var15) on <var_off:Int> */
5135 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
5136 /* <var15:Int> isa OTHER */
5137 var18 = 1; /* easy <var15:Int> isa OTHER*/
5138 if (unlikely(!var18)) {
5139 var_class_name21 = type_standard__Int.name;
5140 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
5141 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
5142 fatal_exit(1);
5143 }
5144 var22 = var_off >= var15;
5145 var16 = var22;
5146 goto RET_LABEL17;
5147 RET_LABEL17:(void)0;
5148 }
5149 }
5150 if (var16){
5151 {
5152 { /* Inline ropes#RopeIterPiece#rdone= (var_r,1) on <var_r:RopeIterPiece> */
5153 var_r->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = 1; /* _rdone on <var_r:RopeIterPiece> */
5154 RET_LABEL23:(void)0;
5155 }
5156 }
5157 {
5158 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
5159 var26 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
5160 if (unlikely(var26 == NULL)) {
5161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
5162 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
5163 fatal_exit(1);
5164 }
5165 var24 = var26;
5166 RET_LABEL25:(void)0;
5167 }
5168 }
5169 {
5170 var27 = ((long(*)(val* self))(var24->class->vft[COLOR_standard__string__Text__length]))(var24); /* length on <var24:String>*/
5171 }
5172 {
5173 { /* Inline kernel#Int#- (var_off,var27) on <var_off:Int> */
5174 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
5175 /* <var27:Int> isa OTHER */
5176 var30 = 1; /* easy <var27:Int> isa OTHER*/
5177 if (unlikely(!var30)) {
5178 var_class_name33 = type_standard__Int.name;
5179 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
5180 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
5181 fatal_exit(1);
5182 }
5183 var34 = var_off - var27;
5184 var28 = var34;
5185 goto RET_LABEL29;
5186 RET_LABEL29:(void)0;
5187 }
5188 }
5189 var_off = var28;
5190 {
5191 { /* Inline ropes#Concat#right (var_rnod) on <var_rnod:String(Concat)> */
5192 var37 = var_rnod->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
5193 if (unlikely(var37 == NULL)) {
5194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
5195 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
5196 fatal_exit(1);
5197 }
5198 var35 = var37;
5199 RET_LABEL36:(void)0;
5200 }
5201 }
5202 var_rnod = var35;
5203 var38 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
5204 {
5205 ((void(*)(val* self, val* p0))(var38->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var38, var_rnod); /* node= on <var38:RopeIterPiece>*/
5206 }
5207 {
5208 ((void(*)(val* self, short int p0))(var38->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var38, 1); /* ldone= on <var38:RopeIterPiece>*/
5209 }
5210 {
5211 ((void(*)(val* self, short int p0))(var38->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var38, 0); /* rdone= on <var38:RopeIterPiece>*/
5212 }
5213 {
5214 ((void(*)(val* self, val* p0))(var38->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var38, var_r); /* prev= on <var38:RopeIterPiece>*/
5215 }
5216 {
5217 ((void(*)(val* self))(var38->class->vft[COLOR_standard__kernel__Object__init]))(var38); /* init on <var38:RopeIterPiece>*/
5218 }
5219 var_r = var38;
5220 } else {
5221 {
5222 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
5223 var41 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
5224 if (unlikely(var41 == NULL)) {
5225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
5226 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
5227 fatal_exit(1);
5228 }
5229 var39 = var41;
5230 RET_LABEL40:(void)0;
5231 }
5232 }
5233 var_rnod = var39;
5234 var42 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
5235 {
5236 ((void(*)(val* self, val* p0))(var42->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var42, var_rnod); /* node= on <var42:RopeIterPiece>*/
5237 }
5238 {
5239 ((void(*)(val* self, short int p0))(var42->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var42, 1); /* ldone= on <var42:RopeIterPiece>*/
5240 }
5241 {
5242 ((void(*)(val* self, short int p0))(var42->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var42, 0); /* rdone= on <var42:RopeIterPiece>*/
5243 }
5244 {
5245 ((void(*)(val* self, val* p0))(var42->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var42, var_r); /* prev= on <var42:RopeIterPiece>*/
5246 }
5247 {
5248 ((void(*)(val* self))(var42->class->vft[COLOR_standard__kernel__Object__init]))(var42); /* init on <var42:RopeIterPiece>*/
5249 }
5250 var_r = var42;
5251 }
5252 } else {
5253 /* <var_rnod:String> isa FlatString */
5254 cltype44 = type_standard__FlatString.color;
5255 idtype45 = type_standard__FlatString.id;
5256 if(cltype44 >= var_rnod->type->table_size) {
5257 var43 = 0;
5258 } else {
5259 var43 = var_rnod->type->type_table[cltype44] == idtype45;
5260 }
5261 if (unlikely(!var43)) {
5262 var_class_name46 = var_rnod == NULL ? "null" : var_rnod->type->name;
5263 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name46);
5264 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 752);
5265 fatal_exit(1);
5266 }
5267 {
5268 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
5269 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
5270 RET_LABEL47:(void)0;
5271 }
5272 }
5273 {
5274 { /* Inline ropes#RopeIterPiece#rdone= (var_r,1) on <var_r:RopeIterPiece> */
5275 var_r->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = 1; /* _rdone on <var_r:RopeIterPiece> */
5276 RET_LABEL48:(void)0;
5277 }
5278 }
5279 {
5280 { /* Inline ropes#RopeSubstrings#iter= (self,var_r) on <self:RopeSubstrings> */
5281 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = var_r; /* _iter on <self:RopeSubstrings> */
5282 RET_LABEL49:(void)0;
5283 }
5284 }
5285 {
5286 { /* Inline kernel#Int#- (var_pos,var_off) on <var_pos:Int> */
5287 /* Covariant cast for argument 0 (i) <var_off:Int> isa OTHER */
5288 /* <var_off:Int> isa OTHER */
5289 var52 = 1; /* easy <var_off:Int> isa OTHER*/
5290 if (unlikely(!var52)) {
5291 var_class_name55 = type_standard__Int.name;
5292 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
5293 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
5294 fatal_exit(1);
5295 }
5296 var56 = var_pos - var_off;
5297 var50 = var56;
5298 goto RET_LABEL51;
5299 RET_LABEL51:(void)0;
5300 }
5301 }
5302 {
5303 { /* Inline ropes#RopeSubstrings#pos= (self,var50) on <self:RopeSubstrings> */
5304 self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = var50; /* _pos on <self:RopeSubstrings> */
5305 RET_LABEL57:(void)0;
5306 }
5307 }
5308 goto BREAK_label;
5309 }
5310 }
5311 BREAK_label: (void)0;
5312 RET_LABEL:;
5313 }
5314 /* method ropes#RopeSubstrings#item for (self: RopeSubstrings): FlatString */
5315 val* standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__Iterator__item(val* self) {
5316 val* var /* : FlatString */;
5317 val* var1 /* : FlatString */;
5318 val* var3 /* : FlatString */;
5319 {
5320 { /* Inline ropes#RopeSubstrings#str (self) on <self:RopeSubstrings> */
5321 var3 = self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
5322 if (unlikely(var3 == NULL)) {
5323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
5324 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 714);
5325 fatal_exit(1);
5326 }
5327 var1 = var3;
5328 RET_LABEL2:(void)0;
5329 }
5330 }
5331 var = var1;
5332 goto RET_LABEL;
5333 RET_LABEL:;
5334 return var;
5335 }
5336 /* method ropes#RopeSubstrings#is_ok for (self: RopeSubstrings): Bool */
5337 short int standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__Iterator__is_ok(val* self) {
5338 short int var /* : Bool */;
5339 long var1 /* : Int */;
5340 long var3 /* : Int */;
5341 long var4 /* : Int */;
5342 long var6 /* : Int */;
5343 short int var7 /* : Bool */;
5344 short int var9 /* : Bool */;
5345 int cltype;
5346 int idtype;
5347 const char* var_class_name;
5348 short int var10 /* : Bool */;
5349 {
5350 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
5351 var3 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
5352 var1 = var3;
5353 RET_LABEL2:(void)0;
5354 }
5355 }
5356 {
5357 { /* Inline ropes#RopeSubstrings#max (self) on <self:RopeSubstrings> */
5358 var6 = self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
5359 var4 = var6;
5360 RET_LABEL5:(void)0;
5361 }
5362 }
5363 {
5364 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
5365 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
5366 /* <var4:Int> isa OTHER */
5367 var9 = 1; /* easy <var4:Int> isa OTHER*/
5368 if (unlikely(!var9)) {
5369 var_class_name = type_standard__Int.name;
5370 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5371 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
5372 fatal_exit(1);
5373 }
5374 var10 = var1 <= var4;
5375 var7 = var10;
5376 goto RET_LABEL8;
5377 RET_LABEL8:(void)0;
5378 }
5379 }
5380 var = var7;
5381 goto RET_LABEL;
5382 RET_LABEL:;
5383 return var;
5384 }
5385 /* method ropes#RopeSubstrings#index for (self: RopeSubstrings): Int */
5386 long standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__IndexedIterator__index(val* self) {
5387 long var /* : Int */;
5388 long var1 /* : Int */;
5389 long var3 /* : Int */;
5390 {
5391 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
5392 var3 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
5393 var1 = var3;
5394 RET_LABEL2:(void)0;
5395 }
5396 }
5397 var = var1;
5398 goto RET_LABEL;
5399 RET_LABEL:;
5400 return var;
5401 }
5402 /* method ropes#RopeSubstrings#next for (self: RopeSubstrings) */
5403 void standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__Iterator__next(val* self) {
5404 val* var_ /* var : RopeSubstrings */;
5405 long var /* : Int */;
5406 long var2 /* : Int */;
5407 val* var3 /* : FlatString */;
5408 val* var5 /* : FlatString */;
5409 long var6 /* : Int */;
5410 long var8 /* : Int */;
5411 long var9 /* : Int */;
5412 short int var11 /* : Bool */;
5413 int cltype;
5414 int idtype;
5415 const char* var_class_name;
5416 long var12 /* : Int */;
5417 long var14 /* : Int */;
5418 long var16 /* : Int */;
5419 long var17 /* : Int */;
5420 long var19 /* : Int */;
5421 short int var20 /* : Bool */;
5422 short int var22 /* : Bool */;
5423 int cltype23;
5424 int idtype24;
5425 const char* var_class_name25;
5426 short int var26 /* : Bool */;
5427 val* var27 /* : RopeIterPiece */;
5428 val* var29 /* : RopeIterPiece */;
5429 val* var30 /* : nullable RopeIterPiece */;
5430 val* var32 /* : nullable RopeIterPiece */;
5431 val* var_it /* var it: nullable RopeIterPiece */;
5432 val* var33 /* : String */;
5433 val* var35 /* : String */;
5434 val* var_rnod /* var rnod: String */;
5435 short int var36 /* : Bool */;
5436 int cltype37;
5437 int idtype38;
5438 short int var39 /* : Bool */;
5439 short int var42 /* : Bool */;
5440 int cltype43;
5441 int idtype44;
5442 const char* var_class_name45;
5443 short int var48 /* : Bool */;
5444 short int var50 /* : Bool */;
5445 short int var51 /* : Bool */;
5446 val* var52 /* : String */;
5447 val* var54 /* : String */;
5448 val* var56 /* : RopeIterPiece */;
5449 short int var57 /* : Bool */;
5450 short int var59 /* : Bool */;
5451 short int var60 /* : Bool */;
5452 val* var62 /* : String */;
5453 val* var64 /* : String */;
5454 val* var65 /* : RopeIterPiece */;
5455 val* var66 /* : nullable RopeIterPiece */;
5456 val* var68 /* : nullable RopeIterPiece */;
5457 val* var69 /* : String */;
5458 val* var71 /* : String */;
5459 var_ = self;
5460 {
5461 { /* Inline ropes#RopeSubstrings#pos (var_) on <var_:RopeSubstrings> */
5462 var2 = var_->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <var_:RopeSubstrings> */
5463 var = var2;
5464 RET_LABEL1:(void)0;
5465 }
5466 }
5467 {
5468 { /* Inline ropes#RopeSubstrings#str (self) on <self:RopeSubstrings> */
5469 var5 = self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
5470 if (unlikely(var5 == NULL)) {
5471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
5472 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 714);
5473 fatal_exit(1);
5474 }
5475 var3 = var5;
5476 RET_LABEL4:(void)0;
5477 }
5478 }
5479 {
5480 { /* Inline string#FlatText#length (var3) on <var3:FlatString> */
5481 var8 = var3->attrs[COLOR_standard__string__FlatText___length].l; /* _length on <var3:FlatString> */
5482 var6 = var8;
5483 RET_LABEL7:(void)0;
5484 }
5485 }
5486 {
5487 { /* Inline kernel#Int#+ (var,var6) on <var:Int> */
5488 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
5489 /* <var6:Int> isa OTHER */
5490 var11 = 1; /* easy <var6:Int> isa OTHER*/
5491 if (unlikely(!var11)) {
5492 var_class_name = type_standard__Int.name;
5493 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5494 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
5495 fatal_exit(1);
5496 }
5497 var12 = var + var6;
5498 var9 = var12;
5499 goto RET_LABEL10;
5500 RET_LABEL10:(void)0;
5501 }
5502 }
5503 {
5504 { /* Inline ropes#RopeSubstrings#pos= (var_,var9) on <var_:RopeSubstrings> */
5505 var_->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = var9; /* _pos on <var_:RopeSubstrings> */
5506 RET_LABEL13:(void)0;
5507 }
5508 }
5509 {
5510 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
5511 var16 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
5512 var14 = var16;
5513 RET_LABEL15:(void)0;
5514 }
5515 }
5516 {
5517 { /* Inline ropes#RopeSubstrings#max (self) on <self:RopeSubstrings> */
5518 var19 = self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
5519 var17 = var19;
5520 RET_LABEL18:(void)0;
5521 }
5522 }
5523 {
5524 { /* Inline kernel#Int#> (var14,var17) on <var14:Int> */
5525 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
5526 /* <var17:Int> isa OTHER */
5527 var22 = 1; /* easy <var17:Int> isa OTHER*/
5528 if (unlikely(!var22)) {
5529 var_class_name25 = type_standard__Int.name;
5530 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
5531 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
5532 fatal_exit(1);
5533 }
5534 var26 = var14 > var17;
5535 var20 = var26;
5536 goto RET_LABEL21;
5537 RET_LABEL21:(void)0;
5538 }
5539 }
5540 if (var20){
5541 goto RET_LABEL;
5542 } else {
5543 }
5544 {
5545 { /* Inline ropes#RopeSubstrings#iter (self) on <self:RopeSubstrings> */
5546 var29 = self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
5547 if (unlikely(var29 == NULL)) {
5548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
5549 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 707);
5550 fatal_exit(1);
5551 }
5552 var27 = var29;
5553 RET_LABEL28:(void)0;
5554 }
5555 }
5556 {
5557 { /* Inline ropes#RopeIterPiece#prev (var27) on <var27:RopeIterPiece> */
5558 var32 = var27->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val; /* _prev on <var27:RopeIterPiece> */
5559 var30 = var32;
5560 RET_LABEL31:(void)0;
5561 }
5562 }
5563 var_it = var30;
5564 if (var_it == NULL) {
5565 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5566 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 771);
5567 fatal_exit(1);
5568 } else {
5569 { /* Inline ropes#RopeIterPiece#node (var_it) on <var_it:nullable RopeIterPiece> */
5570 if (unlikely(var_it == NULL)) {
5571 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5572 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 478);
5573 fatal_exit(1);
5574 }
5575 var35 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___node].val; /* _node on <var_it:nullable RopeIterPiece> */
5576 if (unlikely(var35 == NULL)) {
5577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5578 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 478);
5579 fatal_exit(1);
5580 }
5581 var33 = var35;
5582 RET_LABEL34:(void)0;
5583 }
5584 }
5585 var_rnod = var33;
5586 for(;;) {
5587 /* <var_rnod:String> isa Concat */
5588 cltype37 = type_standard__ropes__Concat.color;
5589 idtype38 = type_standard__ropes__Concat.id;
5590 if(cltype37 >= var_rnod->type->table_size) {
5591 var36 = 0;
5592 } else {
5593 var36 = var_rnod->type->type_table[cltype37] == idtype38;
5594 }
5595 var39 = !var36;
5596 if (var39){
5597 if (var_it == NULL) {
5598 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5599 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 774);
5600 fatal_exit(1);
5601 } else {
5602 { /* Inline ropes#RopeIterPiece#ldone= (var_it,1) on <var_it:nullable RopeIterPiece> */
5603 if (unlikely(var_it == NULL)) {
5604 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5605 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 480);
5606 fatal_exit(1);
5607 }
5608 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s = 1; /* _ldone on <var_it:nullable RopeIterPiece> */
5609 RET_LABEL40:(void)0;
5610 }
5611 }
5612 if (var_it == NULL) {
5613 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5614 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 775);
5615 fatal_exit(1);
5616 } else {
5617 { /* Inline ropes#RopeIterPiece#rdone= (var_it,1) on <var_it:nullable RopeIterPiece> */
5618 if (unlikely(var_it == NULL)) {
5619 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5620 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 482);
5621 fatal_exit(1);
5622 }
5623 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = 1; /* _rdone on <var_it:nullable RopeIterPiece> */
5624 RET_LABEL41:(void)0;
5625 }
5626 }
5627 /* <var_rnod:String> isa FlatString */
5628 cltype43 = type_standard__FlatString.color;
5629 idtype44 = type_standard__FlatString.id;
5630 if(cltype43 >= var_rnod->type->table_size) {
5631 var42 = 0;
5632 } else {
5633 var42 = var_rnod->type->type_table[cltype43] == idtype44;
5634 }
5635 if (unlikely(!var42)) {
5636 var_class_name45 = var_rnod == NULL ? "null" : var_rnod->type->name;
5637 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name45);
5638 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 776);
5639 fatal_exit(1);
5640 }
5641 {
5642 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
5643 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
5644 RET_LABEL46:(void)0;
5645 }
5646 }
5647 if (unlikely(var_it == NULL)) {
5648 PRINT_ERROR("Runtime error: %s", "Cast failed");
5649 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 777);
5650 fatal_exit(1);
5651 }
5652 {
5653 { /* Inline ropes#RopeSubstrings#iter= (self,var_it) on <self:RopeSubstrings> */
5654 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = var_it; /* _iter on <self:RopeSubstrings> */
5655 RET_LABEL47:(void)0;
5656 }
5657 }
5658 goto BREAK_label;
5659 } else {
5660 }
5661 if (var_it == NULL) {
5662 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5663 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 780);
5664 fatal_exit(1);
5665 } else {
5666 { /* Inline ropes#RopeIterPiece#ldone (var_it) on <var_it:nullable RopeIterPiece> */
5667 if (unlikely(var_it == NULL)) {
5668 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5669 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 480);
5670 fatal_exit(1);
5671 }
5672 var50 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s; /* _ldone on <var_it:nullable RopeIterPiece> */
5673 var48 = var50;
5674 RET_LABEL49:(void)0;
5675 }
5676 }
5677 var51 = !var48;
5678 if (var51){
5679 {
5680 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
5681 var54 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
5682 if (unlikely(var54 == NULL)) {
5683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
5684 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
5685 fatal_exit(1);
5686 }
5687 var52 = var54;
5688 RET_LABEL53:(void)0;
5689 }
5690 }
5691 var_rnod = var52;
5692 if (var_it == NULL) {
5693 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5694 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 782);
5695 fatal_exit(1);
5696 } else {
5697 { /* Inline ropes#RopeIterPiece#ldone= (var_it,1) on <var_it:nullable RopeIterPiece> */
5698 if (unlikely(var_it == NULL)) {
5699 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5700 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 480);
5701 fatal_exit(1);
5702 }
5703 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s = 1; /* _ldone on <var_it:nullable RopeIterPiece> */
5704 RET_LABEL55:(void)0;
5705 }
5706 }
5707 var56 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
5708 {
5709 ((void(*)(val* self, val* p0))(var56->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var56, var_rnod); /* node= on <var56:RopeIterPiece>*/
5710 }
5711 {
5712 ((void(*)(val* self, short int p0))(var56->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var56, 0); /* ldone= on <var56:RopeIterPiece>*/
5713 }
5714 {
5715 ((void(*)(val* self, short int p0))(var56->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var56, 0); /* rdone= on <var56:RopeIterPiece>*/
5716 }
5717 {
5718 ((void(*)(val* self, val* p0))(var56->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var56, var_it); /* prev= on <var56:RopeIterPiece>*/
5719 }
5720 {
5721 ((void(*)(val* self))(var56->class->vft[COLOR_standard__kernel__Object__init]))(var56); /* init on <var56:RopeIterPiece>*/
5722 }
5723 var_it = var56;
5724 } else {
5725 if (var_it == NULL) {
5726 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5727 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 784);
5728 fatal_exit(1);
5729 } else {
5730 { /* Inline ropes#RopeIterPiece#rdone (var_it) on <var_it:nullable RopeIterPiece> */
5731 if (unlikely(var_it == NULL)) {
5732 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5733 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 482);
5734 fatal_exit(1);
5735 }
5736 var59 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s; /* _rdone on <var_it:nullable RopeIterPiece> */
5737 var57 = var59;
5738 RET_LABEL58:(void)0;
5739 }
5740 }
5741 var60 = !var57;
5742 if (var60){
5743 if (var_it == NULL) {
5744 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5745 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 785);
5746 fatal_exit(1);
5747 } else {
5748 { /* Inline ropes#RopeIterPiece#rdone= (var_it,1) on <var_it:nullable RopeIterPiece> */
5749 if (unlikely(var_it == NULL)) {
5750 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5751 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 482);
5752 fatal_exit(1);
5753 }
5754 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = 1; /* _rdone on <var_it:nullable RopeIterPiece> */
5755 RET_LABEL61:(void)0;
5756 }
5757 }
5758 {
5759 { /* Inline ropes#Concat#right (var_rnod) on <var_rnod:String(Concat)> */
5760 var64 = var_rnod->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
5761 if (unlikely(var64 == NULL)) {
5762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
5763 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
5764 fatal_exit(1);
5765 }
5766 var62 = var64;
5767 RET_LABEL63:(void)0;
5768 }
5769 }
5770 var_rnod = var62;
5771 var65 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
5772 {
5773 ((void(*)(val* self, val* p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var65, var_rnod); /* node= on <var65:RopeIterPiece>*/
5774 }
5775 {
5776 ((void(*)(val* self, short int p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var65, 0); /* ldone= on <var65:RopeIterPiece>*/
5777 }
5778 {
5779 ((void(*)(val* self, short int p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var65, 0); /* rdone= on <var65:RopeIterPiece>*/
5780 }
5781 {
5782 ((void(*)(val* self, val* p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var65, var_it); /* prev= on <var65:RopeIterPiece>*/
5783 }
5784 {
5785 ((void(*)(val* self))(var65->class->vft[COLOR_standard__kernel__Object__init]))(var65); /* init on <var65:RopeIterPiece>*/
5786 }
5787 var_it = var65;
5788 } else {
5789 if (var_it == NULL) {
5790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5791 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 789);
5792 fatal_exit(1);
5793 } else {
5794 { /* Inline ropes#RopeIterPiece#prev (var_it) on <var_it:nullable RopeIterPiece> */
5795 if (unlikely(var_it == NULL)) {
5796 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5797 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 484);
5798 fatal_exit(1);
5799 }
5800 var68 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val; /* _prev on <var_it:nullable RopeIterPiece> */
5801 var66 = var68;
5802 RET_LABEL67:(void)0;
5803 }
5804 }
5805 var_it = var66;
5806 if (var_it == NULL) {
5807 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5808 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 790);
5809 fatal_exit(1);
5810 } else {
5811 { /* Inline ropes#RopeIterPiece#node (var_it) on <var_it:nullable RopeIterPiece> */
5812 if (unlikely(var_it == NULL)) {
5813 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5814 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 478);
5815 fatal_exit(1);
5816 }
5817 var71 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___node].val; /* _node on <var_it:nullable RopeIterPiece> */
5818 if (unlikely(var71 == NULL)) {
5819 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5820 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 478);
5821 fatal_exit(1);
5822 }
5823 var69 = var71;
5824 RET_LABEL70:(void)0;
5825 }
5826 }
5827 var_rnod = var69;
5828 goto BREAK_label72;
5829 }
5830 }
5831 BREAK_label72: (void)0;
5832 }
5833 BREAK_label: (void)0;
5834 RET_LABEL:;
5835 }
5836 /* method ropes#RopeChars#[] for (self: RopeChars, Int): Char */
5837 uint32_t standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
5838 uint32_t var /* : Char */;
5839 long var_i /* var i: Int */;
5840 val* var1 /* : Text */;
5841 val* var3 /* : Text */;
5842 uint32_t var4 /* : Char */;
5843 var_i = p0;
5844 {
5845 { /* Inline string#StringCharView#target (self) on <self:RopeChars> */
5846 var3 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeChars> */
5847 if (unlikely(var3 == NULL)) {
5848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5849 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
5850 fatal_exit(1);
5851 }
5852 var1 = var3;
5853 RET_LABEL2:(void)0;
5854 }
5855 }
5856 {
5857 var4 = standard__ropes___standard__ropes__Concat___standard__string__Text___91d_93d(var1, var_i);
5858 }
5859 var = var4;
5860 goto RET_LABEL;
5861 RET_LABEL:;
5862 return var;
5863 }
5864 /* method ropes#RopeChars#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
5865 val* VIRTUAL_standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
5866 val* var /* : nullable Object */;
5867 uint32_t var1 /* : Char */;
5868 val* var2 /* : nullable Object */;
5869 var1 = standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead___91d_93d(self, p0);
5870 var2 = (val*)((long)(var1)<<2|2);
5871 var = var2;
5872 RET_LABEL:;
5873 return var;
5874 }
5875 /* method ropes#RopeChars#iterator_from for (self: RopeChars, Int): IndexedIterator[Char] */
5876 val* standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
5877 val* var /* : IndexedIterator[Char] */;
5878 long var_i /* var i: Int */;
5879 val* var1 /* : RopeIter */;
5880 val* var2 /* : Text */;
5881 val* var4 /* : Text */;
5882 var_i = p0;
5883 var1 = NEW_standard__ropes__RopeIter(&type_standard__ropes__RopeIter);
5884 {
5885 { /* Inline string#StringCharView#target (self) on <self:RopeChars> */
5886 var4 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeChars> */
5887 if (unlikely(var4 == NULL)) {
5888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5889 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
5890 fatal_exit(1);
5891 }
5892 var2 = var4;
5893 RET_LABEL3:(void)0;
5894 }
5895 }
5896 {
5897 standard__ropes___standard__ropes__RopeIter___from(var1, var2, var_i); /* Direct call ropes#RopeIter#from on <var1:RopeIter>*/
5898 }
5899 var = var1;
5900 goto RET_LABEL;
5901 RET_LABEL:;
5902 return var;
5903 }
5904 /* method ropes#RopeBufferIter#sit for (self: RopeBufferIter): IndexedIterator[Char] */
5905 val* standard___standard__RopeBufferIter___sit(val* self) {
5906 val* var /* : IndexedIterator[Char] */;
5907 val* var1 /* : IndexedIterator[Char] */;
5908 var1 = self->attrs[COLOR_standard__ropes__RopeBufferIter___sit].val; /* _sit on <self:RopeBufferIter> */
5909 if (unlikely(var1 == NULL)) {
5910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _sit");
5911 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 817);
5912 fatal_exit(1);
5913 }
5914 var = var1;
5915 RET_LABEL:;
5916 return var;
5917 }
5918 /* method ropes#RopeBufferIter#sit= for (self: RopeBufferIter, IndexedIterator[Char]) */
5919 void standard___standard__RopeBufferIter___sit_61d(val* self, val* p0) {
5920 self->attrs[COLOR_standard__ropes__RopeBufferIter___sit].val = p0; /* _sit on <self:RopeBufferIter> */
5921 RET_LABEL:;
5922 }
5923 /* method ropes#RopeBufferIter#ns for (self: RopeBufferIter): NativeString */
5924 char* standard___standard__RopeBufferIter___ns(val* self) {
5925 char* var /* : NativeString */;
5926 char* var1 /* : NativeString */;
5927 var1 = self->attrs[COLOR_standard__ropes__RopeBufferIter___ns].str; /* _ns on <self:RopeBufferIter> */
5928 var = var1;
5929 RET_LABEL:;
5930 return var;
5931 }
5932 /* method ropes#RopeBufferIter#ns= for (self: RopeBufferIter, NativeString) */
5933 void standard___standard__RopeBufferIter___ns_61d(val* self, char* p0) {
5934 self->attrs[COLOR_standard__ropes__RopeBufferIter___ns].str = p0; /* _ns on <self:RopeBufferIter> */
5935 RET_LABEL:;
5936 }
5937 /* method ropes#RopeBufferIter#pns for (self: RopeBufferIter): Int */
5938 long standard___standard__RopeBufferIter___pns(val* self) {
5939 long var /* : Int */;
5940 long var1 /* : Int */;
5941 var1 = self->attrs[COLOR_standard__ropes__RopeBufferIter___pns].l; /* _pns on <self:RopeBufferIter> */
5942 var = var1;
5943 RET_LABEL:;
5944 return var;
5945 }
5946 /* method ropes#RopeBufferIter#pns= for (self: RopeBufferIter, Int) */
5947 void standard___standard__RopeBufferIter___pns_61d(val* self, long p0) {
5948 self->attrs[COLOR_standard__ropes__RopeBufferIter___pns].l = p0; /* _pns on <self:RopeBufferIter> */
5949 RET_LABEL:;
5950 }
5951 /* method ropes#RopeBufferIter#maxpos for (self: RopeBufferIter): Int */
5952 long standard___standard__RopeBufferIter___maxpos(val* self) {
5953 long var /* : Int */;
5954 long var1 /* : Int */;
5955 var1 = self->attrs[COLOR_standard__ropes__RopeBufferIter___maxpos].l; /* _maxpos on <self:RopeBufferIter> */
5956 var = var1;
5957 RET_LABEL:;
5958 return var;
5959 }
5960 /* method ropes#RopeBufferIter#maxpos= for (self: RopeBufferIter, Int) */
5961 void standard___standard__RopeBufferIter___maxpos_61d(val* self, long p0) {
5962 self->attrs[COLOR_standard__ropes__RopeBufferIter___maxpos].l = p0; /* _maxpos on <self:RopeBufferIter> */
5963 RET_LABEL:;
5964 }
5965 /* method ropes#RopeBufferIter#index for (self: RopeBufferIter): Int */
5966 long standard___standard__RopeBufferIter___standard__abstract_collection__IndexedIterator__index(val* self) {
5967 long var /* : Int */;
5968 long var1 /* : Int */;
5969 var1 = self->attrs[COLOR_standard__ropes__RopeBufferIter___index].l; /* _index on <self:RopeBufferIter> */
5970 var = var1;
5971 RET_LABEL:;
5972 return var;
5973 }
5974 /* method ropes#RopeBufferIter#index= for (self: RopeBufferIter, Int) */
5975 void standard___standard__RopeBufferIter___index_61d(val* self, long p0) {
5976 self->attrs[COLOR_standard__ropes__RopeBufferIter___index].l = p0; /* _index on <self:RopeBufferIter> */
5977 RET_LABEL:;
5978 }
5979 /* method ropes#RopeBufferIter#from for (self: RopeBufferIter, RopeBuffer, Int) */
5980 void standard___standard__RopeBufferIter___from(val* self, val* p0, long p1) {
5981 val* var_t /* var t: RopeBuffer */;
5982 long var_pos /* var pos: Int */;
5983 char* var /* : NativeString */;
5984 char* var2 /* : NativeString */;
5985 long var4 /* : Int */;
5986 long var6 /* : Int */;
5987 val* var8 /* : String */;
5988 val* var10 /* : String */;
5989 val* var11 /* : SequenceRead[Char] */;
5990 val* var12 /* : IndexedIterator[nullable Object] */;
5991 val* var14 /* : String */;
5992 val* var16 /* : String */;
5993 long var17 /* : Int */;
5994 long var18 /* : Int */;
5995 short int var20 /* : Bool */;
5996 int cltype;
5997 int idtype;
5998 const char* var_class_name;
5999 long var21 /* : Int */;
6000 var_t = p0;
6001 var_pos = p1;
6002 {
6003 { /* Inline ropes#RopeBuffer#ns (var_t) on <var_t:RopeBuffer> */
6004 var2 = var_t->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <var_t:RopeBuffer> */
6005 var = var2;
6006 RET_LABEL1:(void)0;
6007 }
6008 }
6009 {
6010 { /* Inline ropes#RopeBufferIter#ns= (self,var) on <self:RopeBufferIter> */
6011 self->attrs[COLOR_standard__ropes__RopeBufferIter___ns].str = var; /* _ns on <self:RopeBufferIter> */
6012 RET_LABEL3:(void)0;
6013 }
6014 }
6015 {
6016 { /* Inline ropes#RopeBuffer#length (var_t) on <var_t:RopeBuffer> */
6017 var6 = var_t->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <var_t:RopeBuffer> */
6018 var4 = var6;
6019 RET_LABEL5:(void)0;
6020 }
6021 }
6022 {
6023 { /* Inline ropes#RopeBufferIter#maxpos= (self,var4) on <self:RopeBufferIter> */
6024 self->attrs[COLOR_standard__ropes__RopeBufferIter___maxpos].l = var4; /* _maxpos on <self:RopeBufferIter> */
6025 RET_LABEL7:(void)0;
6026 }
6027 }
6028 {
6029 { /* Inline ropes#RopeBuffer#str (var_t) on <var_t:RopeBuffer> */
6030 var10 = var_t->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var_t:RopeBuffer> */
6031 if (unlikely(var10 == NULL)) {
6032 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6033 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6034 fatal_exit(1);
6035 }
6036 var8 = var10;
6037 RET_LABEL9:(void)0;
6038 }
6039 }
6040 {
6041 var11 = ((val*(*)(val* self))(var8->class->vft[COLOR_standard__string__Text__chars]))(var8); /* chars on <var8:String>*/
6042 }
6043 {
6044 var12 = ((val*(*)(val* self, long p0))((((long)var11&3)?class_info[((long)var11&3)]:var11->class)->vft[COLOR_standard__abstract_collection__SequenceRead__iterator_from]))(var11, var_pos); /* iterator_from on <var11:SequenceRead[Char]>*/
6045 }
6046 {
6047 { /* Inline ropes#RopeBufferIter#sit= (self,var12) on <self:RopeBufferIter> */
6048 self->attrs[COLOR_standard__ropes__RopeBufferIter___sit].val = var12; /* _sit on <self:RopeBufferIter> */
6049 RET_LABEL13:(void)0;
6050 }
6051 }
6052 {
6053 { /* Inline ropes#RopeBuffer#str (var_t) on <var_t:RopeBuffer> */
6054 var16 = var_t->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var_t:RopeBuffer> */
6055 if (unlikely(var16 == NULL)) {
6056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6057 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6058 fatal_exit(1);
6059 }
6060 var14 = var16;
6061 RET_LABEL15:(void)0;
6062 }
6063 }
6064 {
6065 var17 = ((long(*)(val* self))(var14->class->vft[COLOR_standard__string__Text__length]))(var14); /* length on <var14:String>*/
6066 }
6067 {
6068 { /* Inline kernel#Int#- (var_pos,var17) on <var_pos:Int> */
6069 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
6070 /* <var17:Int> isa OTHER */
6071 var20 = 1; /* easy <var17:Int> isa OTHER*/
6072 if (unlikely(!var20)) {
6073 var_class_name = type_standard__Int.name;
6074 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6075 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
6076 fatal_exit(1);
6077 }
6078 var21 = var_pos - var17;
6079 var18 = var21;
6080 goto RET_LABEL19;
6081 RET_LABEL19:(void)0;
6082 }
6083 }
6084 {
6085 { /* Inline ropes#RopeBufferIter#pns= (self,var18) on <self:RopeBufferIter> */
6086 self->attrs[COLOR_standard__ropes__RopeBufferIter___pns].l = var18; /* _pns on <self:RopeBufferIter> */
6087 RET_LABEL22:(void)0;
6088 }
6089 }
6090 {
6091 { /* Inline ropes#RopeBufferIter#index= (self,var_pos) on <self:RopeBufferIter> */
6092 self->attrs[COLOR_standard__ropes__RopeBufferIter___index].l = var_pos; /* _index on <self:RopeBufferIter> */
6093 RET_LABEL23:(void)0;
6094 }
6095 }
6096 RET_LABEL:;
6097 }
6098 /* method ropes#RopeBufferIter#is_ok for (self: RopeBufferIter): Bool */
6099 short int standard___standard__RopeBufferIter___standard__abstract_collection__Iterator__is_ok(val* self) {
6100 short int var /* : Bool */;
6101 long var1 /* : Int */;
6102 long var3 /* : Int */;
6103 long var4 /* : Int */;
6104 long var6 /* : Int */;
6105 short int var7 /* : Bool */;
6106 short int var9 /* : Bool */;
6107 int cltype;
6108 int idtype;
6109 const char* var_class_name;
6110 short int var10 /* : Bool */;
6111 {
6112 { /* Inline ropes#RopeBufferIter#index (self) on <self:RopeBufferIter> */
6113 var3 = self->attrs[COLOR_standard__ropes__RopeBufferIter___index].l; /* _index on <self:RopeBufferIter> */
6114 var1 = var3;
6115 RET_LABEL2:(void)0;
6116 }
6117 }
6118 {
6119 { /* Inline ropes#RopeBufferIter#maxpos (self) on <self:RopeBufferIter> */
6120 var6 = self->attrs[COLOR_standard__ropes__RopeBufferIter___maxpos].l; /* _maxpos on <self:RopeBufferIter> */
6121 var4 = var6;
6122 RET_LABEL5:(void)0;
6123 }
6124 }
6125 {
6126 { /* Inline kernel#Int#< (var1,var4) on <var1:Int> */
6127 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
6128 /* <var4:Int> isa OTHER */
6129 var9 = 1; /* easy <var4:Int> isa OTHER*/
6130 if (unlikely(!var9)) {
6131 var_class_name = type_standard__Int.name;
6132 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6133 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
6134 fatal_exit(1);
6135 }
6136 var10 = var1 < var4;
6137 var7 = var10;
6138 goto RET_LABEL8;
6139 RET_LABEL8:(void)0;
6140 }
6141 }
6142 var = var7;
6143 goto RET_LABEL;
6144 RET_LABEL:;
6145 return var;
6146 }
6147 /* method ropes#RopeBufferIter#item for (self: RopeBufferIter): Char */
6148 uint32_t standard___standard__RopeBufferIter___standard__abstract_collection__Iterator__item(val* self) {
6149 uint32_t var /* : Char */;
6150 val* var1 /* : IndexedIterator[Char] */;
6151 val* var3 /* : IndexedIterator[Char] */;
6152 short int var4 /* : Bool */;
6153 val* var5 /* : IndexedIterator[Char] */;
6154 val* var7 /* : IndexedIterator[Char] */;
6155 val* var8 /* : nullable Object */;
6156 uint32_t var9 /* : Char */;
6157 char* var10 /* : NativeString */;
6158 char* var12 /* : NativeString */;
6159 long var13 /* : Int */;
6160 long var15 /* : Int */;
6161 uint32_t var16 /* : Char */;
6162 uint32_t var18 /* : Char */;
6163 {
6164 { /* Inline ropes#RopeBufferIter#sit (self) on <self:RopeBufferIter> */
6165 var3 = self->attrs[COLOR_standard__ropes__RopeBufferIter___sit].val; /* _sit on <self:RopeBufferIter> */
6166 if (unlikely(var3 == NULL)) {
6167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _sit");
6168 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 817);
6169 fatal_exit(1);
6170 }
6171 var1 = var3;
6172 RET_LABEL2:(void)0;
6173 }
6174 }
6175 {
6176 var4 = ((short int(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var1); /* is_ok on <var1:IndexedIterator[Char]>*/
6177 }
6178 if (var4){
6179 {
6180 { /* Inline ropes#RopeBufferIter#sit (self) on <self:RopeBufferIter> */
6181 var7 = self->attrs[COLOR_standard__ropes__RopeBufferIter___sit].val; /* _sit on <self:RopeBufferIter> */
6182 if (unlikely(var7 == NULL)) {
6183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _sit");
6184 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 817);
6185 fatal_exit(1);
6186 }
6187 var5 = var7;
6188 RET_LABEL6:(void)0;
6189 }
6190 }
6191 {
6192 var8 = ((val*(*)(val* self))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var5); /* item on <var5:IndexedIterator[Char]>*/
6193 }
6194 var9 = (uint32_t)((long)(var8)>>2);
6195 var = var9;
6196 goto RET_LABEL;
6197 } else {
6198 }
6199 {
6200 { /* Inline ropes#RopeBufferIter#ns (self) on <self:RopeBufferIter> */
6201 var12 = self->attrs[COLOR_standard__ropes__RopeBufferIter___ns].str; /* _ns on <self:RopeBufferIter> */
6202 var10 = var12;
6203 RET_LABEL11:(void)0;
6204 }
6205 }
6206 {
6207 { /* Inline ropes#RopeBufferIter#pns (self) on <self:RopeBufferIter> */
6208 var15 = self->attrs[COLOR_standard__ropes__RopeBufferIter___pns].l; /* _pns on <self:RopeBufferIter> */
6209 var13 = var15;
6210 RET_LABEL14:(void)0;
6211 }
6212 }
6213 {
6214 { /* Inline string#NativeString#[] (var10,var13) on <var10:NativeString> */
6215 var18 = (uint32_t)(unsigned char)var10[var13];
6216 var16 = var18;
6217 goto RET_LABEL17;
6218 RET_LABEL17:(void)0;
6219 }
6220 }
6221 var = var16;
6222 goto RET_LABEL;
6223 RET_LABEL:;
6224 return var;
6225 }
6226 /* method ropes#RopeBufferIter#item for (self: Iterator[nullable Object]): nullable Object */
6227 val* VIRTUAL_standard___standard__RopeBufferIter___standard__abstract_collection__Iterator__item(val* self) {
6228 val* var /* : nullable Object */;
6229 uint32_t var1 /* : Char */;
6230 val* var2 /* : nullable Object */;
6231 var1 = standard___standard__RopeBufferIter___standard__abstract_collection__Iterator__item(self);
6232 var2 = (val*)((long)(var1)<<2|2);
6233 var = var2;
6234 RET_LABEL:;
6235 return var;
6236 }
6237 /* method ropes#RopeBufferIter#next for (self: RopeBufferIter) */
6238 void standard___standard__RopeBufferIter___standard__abstract_collection__Iterator__next(val* self) {
6239 val* var_ /* var : RopeBufferIter */;
6240 long var /* : Int */;
6241 long var2 /* : Int */;
6242 long var3 /* : Int */;
6243 short int var5 /* : Bool */;
6244 int cltype;
6245 int idtype;
6246 const char* var_class_name;
6247 long var6 /* : Int */;
6248 val* var8 /* : IndexedIterator[Char] */;
6249 val* var10 /* : IndexedIterator[Char] */;
6250 short int var11 /* : Bool */;
6251 val* var12 /* : IndexedIterator[Char] */;
6252 val* var14 /* : IndexedIterator[Char] */;
6253 val* var_15 /* var : RopeBufferIter */;
6254 long var16 /* : Int */;
6255 long var18 /* : Int */;
6256 long var19 /* : Int */;
6257 short int var21 /* : Bool */;
6258 int cltype22;
6259 int idtype23;
6260 const char* var_class_name24;
6261 long var25 /* : Int */;
6262 var_ = self;
6263 {
6264 { /* Inline ropes#RopeBufferIter#index (var_) on <var_:RopeBufferIter> */
6265 var2 = var_->attrs[COLOR_standard__ropes__RopeBufferIter___index].l; /* _index on <var_:RopeBufferIter> */
6266 var = var2;
6267 RET_LABEL1:(void)0;
6268 }
6269 }
6270 {
6271 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
6272 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6273 /* <1l:Int> isa OTHER */
6274 var5 = 1; /* easy <1l:Int> isa OTHER*/
6275 if (unlikely(!var5)) {
6276 var_class_name = type_standard__Int.name;
6277 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6278 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
6279 fatal_exit(1);
6280 }
6281 var6 = var + 1l;
6282 var3 = var6;
6283 goto RET_LABEL4;
6284 RET_LABEL4:(void)0;
6285 }
6286 }
6287 {
6288 { /* Inline ropes#RopeBufferIter#index= (var_,var3) on <var_:RopeBufferIter> */
6289 var_->attrs[COLOR_standard__ropes__RopeBufferIter___index].l = var3; /* _index on <var_:RopeBufferIter> */
6290 RET_LABEL7:(void)0;
6291 }
6292 }
6293 {
6294 { /* Inline ropes#RopeBufferIter#sit (self) on <self:RopeBufferIter> */
6295 var10 = self->attrs[COLOR_standard__ropes__RopeBufferIter___sit].val; /* _sit on <self:RopeBufferIter> */
6296 if (unlikely(var10 == NULL)) {
6297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _sit");
6298 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 817);
6299 fatal_exit(1);
6300 }
6301 var8 = var10;
6302 RET_LABEL9:(void)0;
6303 }
6304 }
6305 {
6306 var11 = ((short int(*)(val* self))((((long)var8&3)?class_info[((long)var8&3)]:var8->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var8); /* is_ok on <var8:IndexedIterator[Char]>*/
6307 }
6308 if (var11){
6309 {
6310 { /* Inline ropes#RopeBufferIter#sit (self) on <self:RopeBufferIter> */
6311 var14 = self->attrs[COLOR_standard__ropes__RopeBufferIter___sit].val; /* _sit on <self:RopeBufferIter> */
6312 if (unlikely(var14 == NULL)) {
6313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _sit");
6314 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 817);
6315 fatal_exit(1);
6316 }
6317 var12 = var14;
6318 RET_LABEL13:(void)0;
6319 }
6320 }
6321 {
6322 ((void(*)(val* self))((((long)var12&3)?class_info[((long)var12&3)]:var12->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var12); /* next on <var12:IndexedIterator[Char]>*/
6323 }
6324 } else {
6325 var_15 = self;
6326 {
6327 { /* Inline ropes#RopeBufferIter#pns (var_15) on <var_15:RopeBufferIter> */
6328 var18 = var_15->attrs[COLOR_standard__ropes__RopeBufferIter___pns].l; /* _pns on <var_15:RopeBufferIter> */
6329 var16 = var18;
6330 RET_LABEL17:(void)0;
6331 }
6332 }
6333 {
6334 { /* Inline kernel#Int#+ (var16,1l) on <var16:Int> */
6335 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6336 /* <1l:Int> isa OTHER */
6337 var21 = 1; /* easy <1l:Int> isa OTHER*/
6338 if (unlikely(!var21)) {
6339 var_class_name24 = type_standard__Int.name;
6340 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
6341 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
6342 fatal_exit(1);
6343 }
6344 var25 = var16 + 1l;
6345 var19 = var25;
6346 goto RET_LABEL20;
6347 RET_LABEL20:(void)0;
6348 }
6349 }
6350 {
6351 { /* Inline ropes#RopeBufferIter#pns= (var_15,var19) on <var_15:RopeBufferIter> */
6352 var_15->attrs[COLOR_standard__ropes__RopeBufferIter___pns].l = var19; /* _pns on <var_15:RopeBufferIter> */
6353 RET_LABEL26:(void)0;
6354 }
6355 }
6356 }
6357 RET_LABEL:;
6358 }
6359 /* method ropes#RopeBufferChars#[] for (self: RopeBufferChars, Int): Char */
6360 uint32_t standard___standard__RopeBufferChars___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
6361 uint32_t var /* : Char */;
6362 long var_i /* var i: Int */;
6363 val* var1 /* : Text */;
6364 val* var3 /* : Text */;
6365 val* var4 /* : String */;
6366 val* var6 /* : String */;
6367 long var7 /* : Int */;
6368 short int var8 /* : Bool */;
6369 short int var10 /* : Bool */;
6370 int cltype;
6371 int idtype;
6372 const char* var_class_name;
6373 short int var11 /* : Bool */;
6374 val* var12 /* : Text */;
6375 val* var14 /* : Text */;
6376 val* var15 /* : String */;
6377 val* var17 /* : String */;
6378 uint32_t var18 /* : Char */;
6379 val* var19 /* : Text */;
6380 val* var21 /* : Text */;
6381 char* var22 /* : NativeString */;
6382 char* var24 /* : NativeString */;
6383 val* var25 /* : Text */;
6384 val* var27 /* : Text */;
6385 val* var28 /* : String */;
6386 val* var30 /* : String */;
6387 long var31 /* : Int */;
6388 long var32 /* : Int */;
6389 short int var34 /* : Bool */;
6390 int cltype35;
6391 int idtype36;
6392 const char* var_class_name37;
6393 long var38 /* : Int */;
6394 uint32_t var39 /* : Char */;
6395 uint32_t var41 /* : Char */;
6396 var_i = p0;
6397 {
6398 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6399 var3 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6400 if (unlikely(var3 == NULL)) {
6401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6402 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6403 fatal_exit(1);
6404 }
6405 var1 = var3;
6406 RET_LABEL2:(void)0;
6407 }
6408 }
6409 {
6410 { /* Inline ropes#RopeBuffer#str (var1) on <var1:Text(RopeBuffer)> */
6411 var6 = var1->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var1:Text(RopeBuffer)> */
6412 if (unlikely(var6 == NULL)) {
6413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6414 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6415 fatal_exit(1);
6416 }
6417 var4 = var6;
6418 RET_LABEL5:(void)0;
6419 }
6420 }
6421 {
6422 var7 = ((long(*)(val* self))(var4->class->vft[COLOR_standard__string__Text__length]))(var4); /* length on <var4:String>*/
6423 }
6424 {
6425 { /* Inline kernel#Int#< (var_i,var7) on <var_i:Int> */
6426 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
6427 /* <var7:Int> isa OTHER */
6428 var10 = 1; /* easy <var7:Int> isa OTHER*/
6429 if (unlikely(!var10)) {
6430 var_class_name = type_standard__Int.name;
6431 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6432 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
6433 fatal_exit(1);
6434 }
6435 var11 = var_i < var7;
6436 var8 = var11;
6437 goto RET_LABEL9;
6438 RET_LABEL9:(void)0;
6439 }
6440 }
6441 if (var8){
6442 {
6443 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6444 var14 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6445 if (unlikely(var14 == NULL)) {
6446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6447 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6448 fatal_exit(1);
6449 }
6450 var12 = var14;
6451 RET_LABEL13:(void)0;
6452 }
6453 }
6454 {
6455 { /* Inline ropes#RopeBuffer#str (var12) on <var12:Text(RopeBuffer)> */
6456 var17 = var12->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var12:Text(RopeBuffer)> */
6457 if (unlikely(var17 == NULL)) {
6458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6459 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6460 fatal_exit(1);
6461 }
6462 var15 = var17;
6463 RET_LABEL16:(void)0;
6464 }
6465 }
6466 {
6467 var18 = ((uint32_t(*)(val* self, long p0))(var15->class->vft[COLOR_standard__string__Text___91d_93d]))(var15, var_i); /* [] on <var15:String>*/
6468 }
6469 var = var18;
6470 goto RET_LABEL;
6471 } else {
6472 {
6473 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6474 var21 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6475 if (unlikely(var21 == NULL)) {
6476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6477 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6478 fatal_exit(1);
6479 }
6480 var19 = var21;
6481 RET_LABEL20:(void)0;
6482 }
6483 }
6484 {
6485 { /* Inline ropes#RopeBuffer#ns (var19) on <var19:Text(RopeBuffer)> */
6486 var24 = var19->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <var19:Text(RopeBuffer)> */
6487 var22 = var24;
6488 RET_LABEL23:(void)0;
6489 }
6490 }
6491 {
6492 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6493 var27 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6494 if (unlikely(var27 == NULL)) {
6495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6496 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6497 fatal_exit(1);
6498 }
6499 var25 = var27;
6500 RET_LABEL26:(void)0;
6501 }
6502 }
6503 {
6504 { /* Inline ropes#RopeBuffer#str (var25) on <var25:Text(RopeBuffer)> */
6505 var30 = var25->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var25:Text(RopeBuffer)> */
6506 if (unlikely(var30 == NULL)) {
6507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6508 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6509 fatal_exit(1);
6510 }
6511 var28 = var30;
6512 RET_LABEL29:(void)0;
6513 }
6514 }
6515 {
6516 var31 = ((long(*)(val* self))(var28->class->vft[COLOR_standard__string__Text__length]))(var28); /* length on <var28:String>*/
6517 }
6518 {
6519 { /* Inline kernel#Int#- (var_i,var31) on <var_i:Int> */
6520 /* Covariant cast for argument 0 (i) <var31:Int> isa OTHER */
6521 /* <var31:Int> isa OTHER */
6522 var34 = 1; /* easy <var31:Int> isa OTHER*/
6523 if (unlikely(!var34)) {
6524 var_class_name37 = type_standard__Int.name;
6525 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
6526 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
6527 fatal_exit(1);
6528 }
6529 var38 = var_i - var31;
6530 var32 = var38;
6531 goto RET_LABEL33;
6532 RET_LABEL33:(void)0;
6533 }
6534 }
6535 {
6536 { /* Inline string#NativeString#[] (var22,var32) on <var22:NativeString> */
6537 var41 = (uint32_t)(unsigned char)var22[var32];
6538 var39 = var41;
6539 goto RET_LABEL40;
6540 RET_LABEL40:(void)0;
6541 }
6542 }
6543 var = var39;
6544 goto RET_LABEL;
6545 }
6546 RET_LABEL:;
6547 return var;
6548 }
6549 /* method ropes#RopeBufferChars#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
6550 val* VIRTUAL_standard___standard__RopeBufferChars___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
6551 val* var /* : nullable Object */;
6552 uint32_t var1 /* : Char */;
6553 val* var2 /* : nullable Object */;
6554 var1 = standard___standard__RopeBufferChars___standard__abstract_collection__SequenceRead___91d_93d(self, p0);
6555 var2 = (val*)((long)(var1)<<2|2);
6556 var = var2;
6557 RET_LABEL:;
6558 return var;
6559 }
6560 /* method ropes#RopeBufferChars#[]= for (self: RopeBufferChars, Int, Char) */
6561 void standard___standard__RopeBufferChars___standard__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, uint32_t p1) {
6562 short int var /* : Bool */;
6563 int cltype;
6564 int idtype;
6565 const char* var_class_name;
6566 long var_i /* var i: Int */;
6567 uint32_t var_c /* var c: Char */;
6568 val* var1 /* : Text */;
6569 val* var3 /* : Text */;
6570 long var4 /* : Int */;
6571 long var6 /* : Int */;
6572 short int var7 /* : Bool */;
6573 short int var9 /* : Bool */;
6574 val* var10 /* : Text */;
6575 val* var12 /* : Text */;
6576 val* var13 /* : Text */;
6577 val* var15 /* : Text */;
6578 val* var16 /* : String */;
6579 val* var18 /* : String */;
6580 long var19 /* : Int */;
6581 short int var20 /* : Bool */;
6582 short int var22 /* : Bool */;
6583 int cltype23;
6584 int idtype24;
6585 const char* var_class_name25;
6586 short int var26 /* : Bool */;
6587 val* var27 /* : Text */;
6588 val* var29 /* : Text */;
6589 val* var30 /* : String */;
6590 val* var32 /* : String */;
6591 val* var_s /* var s: String */;
6592 val* var33 /* : Text */;
6593 val* var_l /* var l: String */;
6594 long var34 /* : Int */;
6595 short int var36 /* : Bool */;
6596 int cltype37;
6597 int idtype38;
6598 const char* var_class_name39;
6599 long var40 /* : Int */;
6600 val* var41 /* : Text */;
6601 val* var_r /* var r: String */;
6602 val* var42 /* : Text */;
6603 val* var44 /* : Text */;
6604 val* var45 /* : String */;
6605 val* var46 /* : String */;
6606 val* var47 /* : String */;
6607 val* var49 /* : Text */;
6608 val* var51 /* : Text */;
6609 char* var52 /* : NativeString */;
6610 char* var54 /* : NativeString */;
6611 val* var55 /* : Text */;
6612 val* var57 /* : Text */;
6613 val* var58 /* : String */;
6614 val* var60 /* : String */;
6615 long var61 /* : Int */;
6616 long var62 /* : Int */;
6617 short int var64 /* : Bool */;
6618 int cltype65;
6619 int idtype66;
6620 const char* var_class_name67;
6621 long var68 /* : Int */;
6622 /* Covariant cast for argument 1 (c) <p1:Char> isa Char */
6623 /* <p1:Char> isa Char */
6624 var = 1; /* easy <p1:Char> isa Char*/
6625 if (unlikely(!var)) {
6626 var_class_name = type_standard__Char.name;
6627 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Char", var_class_name);
6628 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 928);
6629 fatal_exit(1);
6630 }
6631 var_i = p0;
6632 var_c = p1;
6633 {
6634 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6635 var3 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6636 if (unlikely(var3 == NULL)) {
6637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6638 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6639 fatal_exit(1);
6640 }
6641 var1 = var3;
6642 RET_LABEL2:(void)0;
6643 }
6644 }
6645 {
6646 { /* Inline ropes#RopeBuffer#length (var1) on <var1:Text(RopeBuffer)> */
6647 var6 = var1->attrs[COLOR_standard__ropes__RopeBuffer___length].l; /* _length on <var1:Text(RopeBuffer)> */
6648 var4 = var6;
6649 RET_LABEL5:(void)0;
6650 }
6651 }
6652 {
6653 { /* Inline kernel#Int#== (var_i,var4) on <var_i:Int> */
6654 var9 = var_i == var4;
6655 var7 = var9;
6656 goto RET_LABEL8;
6657 RET_LABEL8:(void)0;
6658 }
6659 }
6660 if (var7){
6661 {
6662 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6663 var12 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6664 if (unlikely(var12 == NULL)) {
6665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6666 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6667 fatal_exit(1);
6668 }
6669 var10 = var12;
6670 RET_LABEL11:(void)0;
6671 }
6672 }
6673 {
6674 standard___standard__RopeBuffer___standard__string__Buffer__add(var10, var_c); /* Direct call ropes#RopeBuffer#add on <var10:Text(RopeBuffer)>*/
6675 }
6676 } else {
6677 }
6678 {
6679 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6680 var15 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6681 if (unlikely(var15 == NULL)) {
6682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6683 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6684 fatal_exit(1);
6685 }
6686 var13 = var15;
6687 RET_LABEL14:(void)0;
6688 }
6689 }
6690 {
6691 { /* Inline ropes#RopeBuffer#str (var13) on <var13:Text(RopeBuffer)> */
6692 var18 = var13->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var13:Text(RopeBuffer)> */
6693 if (unlikely(var18 == NULL)) {
6694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6695 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6696 fatal_exit(1);
6697 }
6698 var16 = var18;
6699 RET_LABEL17:(void)0;
6700 }
6701 }
6702 {
6703 var19 = ((long(*)(val* self))(var16->class->vft[COLOR_standard__string__Text__length]))(var16); /* length on <var16:String>*/
6704 }
6705 {
6706 { /* Inline kernel#Int#< (var_i,var19) on <var_i:Int> */
6707 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
6708 /* <var19:Int> isa OTHER */
6709 var22 = 1; /* easy <var19:Int> isa OTHER*/
6710 if (unlikely(!var22)) {
6711 var_class_name25 = type_standard__Int.name;
6712 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
6713 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
6714 fatal_exit(1);
6715 }
6716 var26 = var_i < var19;
6717 var20 = var26;
6718 goto RET_LABEL21;
6719 RET_LABEL21:(void)0;
6720 }
6721 }
6722 if (var20){
6723 {
6724 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6725 var29 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6726 if (unlikely(var29 == NULL)) {
6727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6728 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6729 fatal_exit(1);
6730 }
6731 var27 = var29;
6732 RET_LABEL28:(void)0;
6733 }
6734 }
6735 {
6736 { /* Inline ropes#RopeBuffer#str (var27) on <var27:Text(RopeBuffer)> */
6737 var32 = var27->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var27:Text(RopeBuffer)> */
6738 if (unlikely(var32 == NULL)) {
6739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6740 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6741 fatal_exit(1);
6742 }
6743 var30 = var32;
6744 RET_LABEL31:(void)0;
6745 }
6746 }
6747 var_s = var30;
6748 {
6749 var33 = ((val*(*)(val* self, long p0, long p1))(var_s->class->vft[COLOR_standard__string__Text__substring]))(var_s, 0l, var_i); /* substring on <var_s:String>*/
6750 }
6751 var_l = var33;
6752 {
6753 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
6754 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6755 /* <1l:Int> isa OTHER */
6756 var36 = 1; /* easy <1l:Int> isa OTHER*/
6757 if (unlikely(!var36)) {
6758 var_class_name39 = type_standard__Int.name;
6759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
6760 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
6761 fatal_exit(1);
6762 }
6763 var40 = var_i + 1l;
6764 var34 = var40;
6765 goto RET_LABEL35;
6766 RET_LABEL35:(void)0;
6767 }
6768 }
6769 {
6770 var41 = standard___standard__Text___substring_from(var_s, var34);
6771 }
6772 var_r = var41;
6773 {
6774 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6775 var44 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6776 if (unlikely(var44 == NULL)) {
6777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6778 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6779 fatal_exit(1);
6780 }
6781 var42 = var44;
6782 RET_LABEL43:(void)0;
6783 }
6784 }
6785 {
6786 var45 = standard__string___Char___Object__to_s(var_c);
6787 }
6788 {
6789 var46 = ((val*(*)(val* self, val* p0))(var_l->class->vft[COLOR_standard__string__String___43d]))(var_l, var45); /* + on <var_l:String>*/
6790 }
6791 {
6792 var47 = ((val*(*)(val* self, val* p0))(var46->class->vft[COLOR_standard__string__String___43d]))(var46, var_r); /* + on <var46:String>*/
6793 }
6794 {
6795 { /* Inline ropes#RopeBuffer#str= (var42,var47) on <var42:Text(RopeBuffer)> */
6796 var42->attrs[COLOR_standard__ropes__RopeBuffer___str].val = var47; /* _str on <var42:Text(RopeBuffer)> */
6797 RET_LABEL48:(void)0;
6798 }
6799 }
6800 } else {
6801 {
6802 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6803 var51 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6804 if (unlikely(var51 == NULL)) {
6805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6806 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6807 fatal_exit(1);
6808 }
6809 var49 = var51;
6810 RET_LABEL50:(void)0;
6811 }
6812 }
6813 {
6814 { /* Inline ropes#RopeBuffer#ns (var49) on <var49:Text(RopeBuffer)> */
6815 var54 = var49->attrs[COLOR_standard__ropes__RopeBuffer___ns].str; /* _ns on <var49:Text(RopeBuffer)> */
6816 var52 = var54;
6817 RET_LABEL53:(void)0;
6818 }
6819 }
6820 {
6821 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6822 var57 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6823 if (unlikely(var57 == NULL)) {
6824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6825 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6826 fatal_exit(1);
6827 }
6828 var55 = var57;
6829 RET_LABEL56:(void)0;
6830 }
6831 }
6832 {
6833 { /* Inline ropes#RopeBuffer#str (var55) on <var55:Text(RopeBuffer)> */
6834 var60 = var55->attrs[COLOR_standard__ropes__RopeBuffer___str].val; /* _str on <var55:Text(RopeBuffer)> */
6835 if (unlikely(var60 == NULL)) {
6836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
6837 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 202);
6838 fatal_exit(1);
6839 }
6840 var58 = var60;
6841 RET_LABEL59:(void)0;
6842 }
6843 }
6844 {
6845 var61 = ((long(*)(val* self))(var58->class->vft[COLOR_standard__string__Text__length]))(var58); /* length on <var58:String>*/
6846 }
6847 {
6848 { /* Inline kernel#Int#- (var_i,var61) on <var_i:Int> */
6849 /* Covariant cast for argument 0 (i) <var61:Int> isa OTHER */
6850 /* <var61:Int> isa OTHER */
6851 var64 = 1; /* easy <var61:Int> isa OTHER*/
6852 if (unlikely(!var64)) {
6853 var_class_name67 = type_standard__Int.name;
6854 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
6855 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
6856 fatal_exit(1);
6857 }
6858 var68 = var_i - var61;
6859 var62 = var68;
6860 goto RET_LABEL63;
6861 RET_LABEL63:(void)0;
6862 }
6863 }
6864 {
6865 { /* Inline string#NativeString#[]= (var52,var62,var_c) on <var52:NativeString> */
6866 var52[var62]=(unsigned char)var_c;
6867 RET_LABEL69:(void)0;
6868 }
6869 }
6870 }
6871 RET_LABEL:;
6872 }
6873 /* method ropes#RopeBufferChars#[]= for (self: Sequence[nullable Object], Int, nullable Object) */
6874 void VIRTUAL_standard___standard__RopeBufferChars___standard__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, val* p1) {
6875 uint32_t var /* : Char */;
6876 var = (uint32_t)((long)(p1)>>2);
6877 standard___standard__RopeBufferChars___standard__abstract_collection__Sequence___91d_93d_61d(self, p0, var); /* Direct call ropes#RopeBufferChars#[]= on <self:Sequence[nullable Object](RopeBufferChars)>*/
6878 RET_LABEL:;
6879 }
6880 /* method ropes#RopeBufferChars#add for (self: RopeBufferChars, Char) */
6881 void standard___standard__RopeBufferChars___standard__abstract_collection__SimpleCollection__add(val* self, uint32_t p0) {
6882 short int var /* : Bool */;
6883 int cltype;
6884 int idtype;
6885 const char* var_class_name;
6886 uint32_t var_c /* var c: Char */;
6887 val* var1 /* : Text */;
6888 val* var3 /* : Text */;
6889 /* Covariant cast for argument 0 (c) <p0:Char> isa Char */
6890 /* <p0:Char> isa Char */
6891 var = 1; /* easy <p0:Char> isa Char*/
6892 if (unlikely(!var)) {
6893 var_class_name = type_standard__Char.name;
6894 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Char", var_class_name);
6895 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 940);
6896 fatal_exit(1);
6897 }
6898 var_c = p0;
6899 {
6900 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6901 var3 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6902 if (unlikely(var3 == NULL)) {
6903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6904 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6905 fatal_exit(1);
6906 }
6907 var1 = var3;
6908 RET_LABEL2:(void)0;
6909 }
6910 }
6911 {
6912 standard___standard__RopeBuffer___standard__string__Buffer__add(var1, var_c); /* Direct call ropes#RopeBuffer#add on <var1:Text(RopeBuffer)>*/
6913 }
6914 RET_LABEL:;
6915 }
6916 /* method ropes#RopeBufferChars#add for (self: SimpleCollection[nullable Object], nullable Object) */
6917 void VIRTUAL_standard___standard__RopeBufferChars___standard__abstract_collection__SimpleCollection__add(val* self, val* p0) {
6918 uint32_t var /* : Char */;
6919 var = (uint32_t)((long)(p0)>>2);
6920 standard___standard__RopeBufferChars___standard__abstract_collection__SimpleCollection__add(self, var); /* Direct call ropes#RopeBufferChars#add on <self:SimpleCollection[nullable Object](RopeBufferChars)>*/
6921 RET_LABEL:;
6922 }
6923 /* method ropes#RopeBufferChars#push for (self: RopeBufferChars, Char) */
6924 void standard___standard__RopeBufferChars___standard__abstract_collection__Sequence__push(val* self, uint32_t p0) {
6925 short int var /* : Bool */;
6926 int cltype;
6927 int idtype;
6928 const char* var_class_name;
6929 uint32_t var_c /* var c: Char */;
6930 val* var1 /* : Text */;
6931 val* var3 /* : Text */;
6932 /* Covariant cast for argument 0 (c) <p0:Char> isa Char */
6933 /* <p0:Char> isa Char */
6934 var = 1; /* easy <p0:Char> isa Char*/
6935 if (unlikely(!var)) {
6936 var_class_name = type_standard__Char.name;
6937 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Char", var_class_name);
6938 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 942);
6939 fatal_exit(1);
6940 }
6941 var_c = p0;
6942 {
6943 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6944 var3 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6945 if (unlikely(var3 == NULL)) {
6946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6947 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6948 fatal_exit(1);
6949 }
6950 var1 = var3;
6951 RET_LABEL2:(void)0;
6952 }
6953 }
6954 {
6955 standard___standard__RopeBuffer___standard__string__Buffer__add(var1, var_c); /* Direct call ropes#RopeBuffer#add on <var1:Text(RopeBuffer)>*/
6956 }
6957 RET_LABEL:;
6958 }
6959 /* method ropes#RopeBufferChars#push for (self: Sequence[nullable Object], nullable Object) */
6960 void VIRTUAL_standard___standard__RopeBufferChars___standard__abstract_collection__Sequence__push(val* self, val* p0) {
6961 uint32_t var /* : Char */;
6962 var = (uint32_t)((long)(p0)>>2);
6963 standard___standard__RopeBufferChars___standard__abstract_collection__Sequence__push(self, var); /* Direct call ropes#RopeBufferChars#push on <self:Sequence[nullable Object](RopeBufferChars)>*/
6964 RET_LABEL:;
6965 }
6966 /* method ropes#RopeBufferChars#iterator_from for (self: RopeBufferChars, Int): IndexedIterator[Char] */
6967 val* standard___standard__RopeBufferChars___standard__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
6968 val* var /* : IndexedIterator[Char] */;
6969 long var_i /* var i: Int */;
6970 val* var1 /* : RopeBufferIter */;
6971 val* var2 /* : Text */;
6972 val* var4 /* : Text */;
6973 var_i = p0;
6974 var1 = NEW_standard__RopeBufferIter(&type_standard__RopeBufferIter);
6975 {
6976 { /* Inline string#StringCharView#target (self) on <self:RopeBufferChars> */
6977 var4 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeBufferChars> */
6978 if (unlikely(var4 == NULL)) {
6979 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
6980 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 968);
6981 fatal_exit(1);
6982 }
6983 var2 = var4;
6984 RET_LABEL3:(void)0;
6985 }
6986 }
6987 {
6988 standard___standard__RopeBufferIter___from(var1, var2, var_i); /* Direct call ropes#RopeBufferIter#from on <var1:RopeBufferIter>*/
6989 }
6990 var = var1;
6991 goto RET_LABEL;
6992 RET_LABEL:;
6993 return var;
6994 }
6995 /* method ropes#Sys#maxlen for (self: Sys): Int */
6996 long standard__ropes___Sys___maxlen(val* self) {
6997 long var /* : Int */;
6998 var = 64l;
6999 goto RET_LABEL;
7000 RET_LABEL:;
7001 return var;
7002 }