Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / core__ropes.sep.1.c
1 #include "core__ropes.sep.0.h"
2 /* method ropes$Concat$chars for (self: Concat): SequenceRead[Char] */
3 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__chars(val* self) {
4 val* var /* : SequenceRead[Char] */;
5 val* var1 /* : RopeChars */;
6 var1 = NEW_core__ropes__RopeChars(&type_core__ropes__RopeChars);
7 {
8 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__abstract_text__StringCharView__target_61d]))(var1, self); /* target= on <var1:RopeChars>*/
9 }
10 {
11 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:RopeChars>*/
12 }
13 var = var1;
14 goto RET_LABEL;
15 RET_LABEL:;
16 return var;
17 }
18 /* method ropes$Concat$length for (self: Concat): Int */
19 long core__ropes___core__ropes__Concat___core__abstract_text__Text__length(val* self) {
20 long var /* : Int */;
21 long var1 /* : Int */;
22 var1 = self->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <self:Concat> */
23 var = var1;
24 RET_LABEL:;
25 return var;
26 }
27 /* method ropes$Concat$byte_length for (self: Concat): Int */
28 long core__ropes___core__ropes__Concat___core__abstract_text__Text__byte_length(val* self) {
29 long var /* : Int */;
30 long var1 /* : Int */;
31 var1 = self->attrs[COLOR_core__ropes__Concat___byte_length].l; /* _byte_length on <self:Concat> */
32 var = var1;
33 RET_LABEL:;
34 return var;
35 }
36 /* method ropes$Concat$substrings for (self: Concat): Iterator[FlatText] */
37 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__substrings(val* self) {
38 val* var /* : Iterator[FlatText] */;
39 val* var1 /* : RopeSubstrings */;
40 var1 = NEW_core__ropes__RopeSubstrings(&type_core__ropes__RopeSubstrings);
41 {
42 core__ropes___core__ropes__RopeSubstrings___from(var1, self, 0l); /* Direct call ropes$RopeSubstrings$from on <var1:RopeSubstrings>*/
43 }
44 var = var1;
45 goto RET_LABEL;
46 RET_LABEL:;
47 return var;
48 }
49 /* method ropes$Concat$empty for (self: Concat): String */
50 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__empty(val* self) {
51 val* var /* : String */;
52 static val* varonce;
53 val* var1 /* : String */;
54 char* var2 /* : CString */;
55 val* var3 /* : String */;
56 val* var4 /* : nullable Int */;
57 val* var5 /* : nullable Int */;
58 val* var6 /* : nullable Bool */;
59 val* var7 /* : nullable Bool */;
60 if (likely(varonce!=NULL)) {
61 var1 = varonce;
62 } else {
63 var2 = "";
64 var4 = (val*)(0l<<2|1);
65 var5 = (val*)(0l<<2|1);
66 var6 = (val*)((long)(0)<<2|3);
67 var7 = (val*)((long)(0)<<2|3);
68 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
69 var1 = var3;
70 varonce = var1;
71 }
72 var = var1;
73 goto RET_LABEL;
74 RET_LABEL:;
75 return var;
76 }
77 /* method ropes$Concat$to_cstring for (self: Concat): CString */
78 char* core__ropes___core__ropes__Concat___core__abstract_text__Text__to_cstring(val* self) {
79 char* var /* : CString */;
80 long var1 /* : Int */;
81 long var_len /* var len: Int */;
82 static char* varoncenew;
83 static int varoncenew_guard;
84 char* var2 /* : CString */;
85 char* var3 /* : CString */;
86 long var4 /* : Int */;
87 short int var6 /* : Bool */;
88 int cltype;
89 int idtype;
90 const char* var_class_name;
91 long var7 /* : Int */;
92 char* var8 /* : CString */;
93 char* var10 /* : CString */;
94 char* var_ns /* var ns: CString */;
95 long var_off /* var off: Int */;
96 val* var12 /* : Iterator[FlatText] */;
97 val* var_ /* var : Iterator[FlatText] */;
98 val* var13 /* : Iterator[nullable Object] */;
99 val* var_14 /* var : Iterator[FlatText] */;
100 short int var15 /* : Bool */;
101 val* var16 /* : nullable Object */;
102 val* var_i /* var i: FlatText */;
103 long var17 /* : Int */;
104 long var_ilen /* var ilen: Int */;
105 short int var18 /* : Bool */;
106 int cltype19;
107 int idtype20;
108 const char* var_class_name21;
109 char* var22 /* : CString */;
110 short int var23 /* : Bool */;
111 int cltype24;
112 int idtype25;
113 const char* var_class_name26;
114 long var27 /* : Int */;
115 long var29 /* : Int */;
116 short int var31 /* : Bool */;
117 int cltype32;
118 int idtype33;
119 const char* var_class_name34;
120 long var35 /* : Int */;
121 var1 = self->attrs[COLOR_core__ropes__Concat___byte_length].l; /* _byte_length on <self:Concat> */
122 var_len = var1;
123 if (likely(varoncenew_guard)) {
124 var2 = varoncenew;
125 } else {
126 var3 = NULL/*special!*/;
127 var2 = var3;
128 varoncenew = var2;
129 varoncenew_guard = 1;
130 }
131 {
132 { /* Inline kernel$Int$+ (var_len,1l) on <var_len:Int> */
133 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
134 /* <1l:Int> isa OTHER */
135 var6 = 1; /* easy <1l:Int> isa OTHER*/
136 if (unlikely(!var6)) {
137 var_class_name = type_core__Int.name;
138 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
139 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
140 fatal_exit(1);
141 }
142 var7 = var_len + 1l;
143 var4 = var7;
144 goto RET_LABEL5;
145 RET_LABEL5:(void)0;
146 }
147 }
148 {
149 { /* Inline native$CString$new (var2,var4) on <var2:CString> */
150 var10 = (char*)nit_alloc(var4);
151 var8 = var10;
152 goto RET_LABEL9;
153 RET_LABEL9:(void)0;
154 }
155 }
156 var_ns = var8;
157 {
158 { /* Inline native$CString$[]= (var_ns,var_len,((unsigned char)0x00)) on <var_ns:CString> */
159 var_ns[var_len]=(unsigned char)((unsigned char)0x00);
160 RET_LABEL11:(void)0;
161 }
162 }
163 var_off = 0l;
164 {
165 var12 = core__ropes___core__ropes__Concat___core__abstract_text__Text__substrings(self);
166 }
167 var_ = var12;
168 {
169 var13 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Iterator__iterator]))(var_); /* iterator on <var_:Iterator[FlatText]>*/
170 }
171 var_14 = var13;
172 for(;;) {
173 {
174 var15 = ((short int(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_14); /* is_ok on <var_14:Iterator[FlatText]>*/
175 }
176 if (var15){
177 } else {
178 goto BREAK_label;
179 }
180 {
181 var16 = ((val*(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_14); /* item on <var_14:Iterator[FlatText]>*/
182 }
183 var_i = var16;
184 var17 = var_i->attrs[COLOR_core__abstract_text__FlatText___byte_length].l; /* _byte_length on <var_i:FlatText> */
185 var_ilen = var17;
186 /* <var_i:FlatText> isa FlatString */
187 cltype19 = type_core__FlatString.color;
188 idtype20 = type_core__FlatString.id;
189 if(cltype19 >= var_i->type->table_size) {
190 var18 = 0;
191 } else {
192 var18 = var_i->type->type_table[cltype19] == idtype20;
193 }
194 if (unlikely(!var18)) {
195 var_class_name21 = var_i == NULL ? "null" : var_i->type->name;
196 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name21);
197 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 98);
198 fatal_exit(1);
199 }
200 var22 = var_i->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_i:FlatText(FlatString)> */
201 /* <var_i:FlatText> isa FlatString */
202 cltype24 = type_core__FlatString.color;
203 idtype25 = type_core__FlatString.id;
204 if(cltype24 >= var_i->type->table_size) {
205 var23 = 0;
206 } else {
207 var23 = var_i->type->type_table[cltype24] == idtype25;
208 }
209 if (unlikely(!var23)) {
210 var_class_name26 = var_i == NULL ? "null" : var_i->type->name;
211 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name26);
212 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 98);
213 fatal_exit(1);
214 }
215 var27 = var_i->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_i:FlatText(FlatString)> */
216 {
217 { /* Inline native$CString$copy_to (var22,var_ns,var_ilen,var27,var_off) on <var22:CString> */
218 memmove(var_ns+var_off,var22+var27,var_ilen);
219 RET_LABEL28:(void)0;
220 }
221 }
222 {
223 { /* Inline kernel$Int$+ (var_off,var_ilen) on <var_off:Int> */
224 /* Covariant cast for argument 0 (i) <var_ilen:Int> isa OTHER */
225 /* <var_ilen:Int> isa OTHER */
226 var31 = 1; /* easy <var_ilen:Int> isa OTHER*/
227 if (unlikely(!var31)) {
228 var_class_name34 = type_core__Int.name;
229 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
230 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
231 fatal_exit(1);
232 }
233 var35 = var_off + var_ilen;
234 var29 = var35;
235 goto RET_LABEL30;
236 RET_LABEL30:(void)0;
237 }
238 }
239 var_off = var29;
240 {
241 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_14); /* next on <var_14:Iterator[FlatText]>*/
242 }
243 }
244 BREAK_label: (void)0;
245 {
246 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_14); /* finish on <var_14:Iterator[FlatText]>*/
247 }
248 var = var_ns;
249 goto RET_LABEL;
250 RET_LABEL:;
251 return var;
252 }
253 /* method ropes$Concat$left= for (self: Concat, String) */
254 void core__ropes___core__ropes__Concat___left_61d(val* self, val* p0) {
255 self->attrs[COLOR_core__ropes__Concat___left].val = p0; /* _left on <self:Concat> */
256 RET_LABEL:;
257 }
258 /* method ropes$Concat$right= for (self: Concat, String) */
259 void core__ropes___core__ropes__Concat___right_61d(val* self, val* p0) {
260 self->attrs[COLOR_core__ropes__Concat___right].val = p0; /* _right on <self:Concat> */
261 RET_LABEL:;
262 }
263 /* method ropes$Concat$init for (self: Concat) */
264 void core__ropes___core__ropes__Concat___core__kernel__Object__init(val* self) {
265 val* var /* : String */;
266 val* var_l /* var l: String */;
267 val* var1 /* : String */;
268 val* var_r /* var r: String */;
269 long var2 /* : Int */;
270 long var3 /* : Int */;
271 long var4 /* : Int */;
272 short int var6 /* : Bool */;
273 int cltype;
274 int idtype;
275 const char* var_class_name;
276 long var7 /* : Int */;
277 long var8 /* : Int */;
278 long var9 /* : Int */;
279 long var10 /* : Int */;
280 short int var12 /* : Bool */;
281 int cltype13;
282 int idtype14;
283 const char* var_class_name15;
284 long var16 /* : Int */;
285 long var17 /* : Int */;
286 {
287 ((void(*)(val* self))(self->class->vft[COLOR_core__ropes___core__ropes__Concat___core__kernel__Object__init]))(self); /* init on <self:Concat>*/
288 }
289 var = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
290 if (unlikely(var == NULL)) {
291 if(catchStack.cursor >= 0){
292 longjmp(catchStack.envs[catchStack.cursor], 1);
293 }
294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
295 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 110);
296 fatal_exit(1);
297 }
298 var_l = var;
299 var1 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
300 if (unlikely(var1 == NULL)) {
301 if(catchStack.cursor >= 0){
302 longjmp(catchStack.envs[catchStack.cursor], 1);
303 }
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
305 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 111);
306 fatal_exit(1);
307 }
308 var_r = var1;
309 {
310 var2 = ((long(*)(val* self))(var_l->class->vft[COLOR_core__abstract_text__Text__length]))(var_l); /* length on <var_l:String>*/
311 }
312 {
313 var3 = ((long(*)(val* self))(var_r->class->vft[COLOR_core__abstract_text__Text__length]))(var_r); /* length on <var_r:String>*/
314 }
315 {
316 { /* Inline kernel$Int$+ (var2,var3) on <var2:Int> */
317 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
318 /* <var3:Int> isa OTHER */
319 var6 = 1; /* easy <var3:Int> isa OTHER*/
320 if (unlikely(!var6)) {
321 var_class_name = type_core__Int.name;
322 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
323 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
324 fatal_exit(1);
325 }
326 var7 = var2 + var3;
327 var4 = var7;
328 goto RET_LABEL5;
329 RET_LABEL5:(void)0;
330 }
331 }
332 self->attrs[COLOR_core__ropes__Concat___length].l = var4; /* _length on <self:Concat> */
333 {
334 var8 = ((long(*)(val* self))(var_l->class->vft[COLOR_core__abstract_text__Text__byte_length]))(var_l); /* byte_length on <var_l:String>*/
335 }
336 {
337 var9 = ((long(*)(val* self))(var_r->class->vft[COLOR_core__abstract_text__Text__byte_length]))(var_r); /* byte_length on <var_r:String>*/
338 }
339 {
340 { /* Inline kernel$Int$+ (var8,var9) on <var8:Int> */
341 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
342 /* <var9:Int> isa OTHER */
343 var12 = 1; /* easy <var9:Int> isa OTHER*/
344 if (unlikely(!var12)) {
345 var_class_name15 = type_core__Int.name;
346 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
347 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
348 fatal_exit(1);
349 }
350 var16 = var8 + var9;
351 var10 = var16;
352 goto RET_LABEL11;
353 RET_LABEL11:(void)0;
354 }
355 }
356 self->attrs[COLOR_core__ropes__Concat___byte_length].l = var10; /* _byte_length on <self:Concat> */
357 var17 = self->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <self:Concat> */
358 self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l = var17; /* _flat_last_pos_start on <self:Concat> */
359 RET_LABEL:;
360 }
361 /* method ropes$Concat$is_empty for (self: Concat): Bool */
362 short int core__ropes___core__ropes__Concat___core__abstract_text__Text__is_empty(val* self) {
363 short int var /* : Bool */;
364 long var1 /* : Int */;
365 short int var2 /* : Bool */;
366 short int var4 /* : Bool */;
367 var1 = self->attrs[COLOR_core__ropes__Concat___byte_length].l; /* _byte_length on <self:Concat> */
368 {
369 { /* Inline kernel$Int$== (var1,0l) on <var1:Int> */
370 var4 = var1 == 0l;
371 var2 = var4;
372 goto RET_LABEL3;
373 RET_LABEL3:(void)0;
374 }
375 }
376 var = var2;
377 goto RET_LABEL;
378 RET_LABEL:;
379 return var;
380 }
381 /* method ropes$Concat$* for (self: Concat, Int): String */
382 val* core__ropes___core__ropes__Concat___core__abstract_text__Text___42d(val* self, long p0) {
383 val* var /* : String */;
384 long var_i /* var i: Int */;
385 val* var_x /* var x: String */;
386 long var_j /* var j: Int */;
387 long var_ /* var : Int */;
388 short int var1 /* : Bool */;
389 short int var3 /* : Bool */;
390 int cltype;
391 int idtype;
392 const char* var_class_name;
393 short int var4 /* : Bool */;
394 val* var5 /* : Text */;
395 long var6 /* : Int */;
396 var_i = p0;
397 var_x = self;
398 var_j = 1l;
399 var_ = var_i;
400 for(;;) {
401 {
402 { /* Inline kernel$Int$< (var_j,var_) on <var_j:Int> */
403 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
404 /* <var_:Int> isa OTHER */
405 var3 = 1; /* easy <var_:Int> isa OTHER*/
406 if (unlikely(!var3)) {
407 var_class_name = type_core__Int.name;
408 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
409 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
410 fatal_exit(1);
411 }
412 var4 = var_j < var_;
413 var1 = var4;
414 goto RET_LABEL2;
415 RET_LABEL2:(void)0;
416 }
417 }
418 if (var1){
419 } else {
420 goto BREAK_label;
421 }
422 {
423 var5 = ((val*(*)(val* self, val* p0))(var_x->class->vft[COLOR_core__abstract_text__Text___43d]))(var_x, self); /* + on <var_x:String>*/
424 }
425 var_x = var5;
426 {
427 var6 = core___core__Int___Discrete__successor(var_j, 1l);
428 }
429 var_j = var6;
430 }
431 BREAK_label: (void)0;
432 var = var_x;
433 goto RET_LABEL;
434 RET_LABEL:;
435 return var;
436 }
437 /* method ropes$Concat$[] for (self: Concat, Int): Char */
438 uint32_t core__ropes___core__ropes__Concat___core__abstract_text__Text___91d_93d(val* self, long p0) {
439 uint32_t var /* : Char */;
440 long var_i /* var i: Int */;
441 short int var1 /* : Bool */;
442 short int var2 /* : Bool */;
443 short int var4 /* : Bool */;
444 int cltype;
445 int idtype;
446 const char* var_class_name;
447 short int var5 /* : Bool */;
448 short int var_ /* var : Bool */;
449 long var6 /* : Int */;
450 short int var7 /* : Bool */;
451 short int var9 /* : Bool */;
452 int cltype10;
453 int idtype11;
454 const char* var_class_name12;
455 short int var13 /* : Bool */;
456 long var14 /* : Int */;
457 long var_flps /* var flps: Int */;
458 short int var15 /* : Bool */;
459 short int var17 /* : Bool */;
460 int cltype18;
461 int idtype19;
462 const char* var_class_name20;
463 short int var21 /* : Bool */;
464 val* var22 /* : FlatString */;
465 val* var_fc /* var fc: FlatString */;
466 long var23 /* : Int */;
467 long var24 /* : Int */;
468 short int var26 /* : Bool */;
469 int cltype27;
470 int idtype28;
471 const char* var_class_name29;
472 long var30 /* : Int */;
473 short int var31 /* : Bool */;
474 short int var33 /* : Bool */;
475 int cltype34;
476 int idtype35;
477 const char* var_class_name36;
478 short int var37 /* : Bool */;
479 long var38 /* : Int */;
480 short int var40 /* : Bool */;
481 int cltype41;
482 int idtype42;
483 const char* var_class_name43;
484 long var44 /* : Int */;
485 uint32_t var45 /* : Char */;
486 val* var46 /* : FlatString */;
487 val* var_lf /* var lf: FlatString */;
488 long var47 /* : Int */;
489 long var48 /* : Int */;
490 short int var50 /* : Bool */;
491 int cltype51;
492 int idtype52;
493 const char* var_class_name53;
494 long var54 /* : Int */;
495 uint32_t var55 /* : Char */;
496 var_i = p0;
497 {
498 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
499 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
500 /* <0l:Int> isa OTHER */
501 var4 = 1; /* easy <0l:Int> isa OTHER*/
502 if (unlikely(!var4)) {
503 var_class_name = type_core__Int.name;
504 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
505 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
506 fatal_exit(1);
507 }
508 var5 = var_i >= 0l;
509 var2 = var5;
510 goto RET_LABEL3;
511 RET_LABEL3:(void)0;
512 }
513 }
514 var_ = var2;
515 if (var2){
516 var6 = self->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <self:Concat> */
517 {
518 { /* Inline kernel$Int$< (var_i,var6) on <var_i:Int> */
519 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
520 /* <var6:Int> isa OTHER */
521 var9 = 1; /* easy <var6:Int> isa OTHER*/
522 if (unlikely(!var9)) {
523 var_class_name12 = type_core__Int.name;
524 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
525 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
526 fatal_exit(1);
527 }
528 var13 = var_i < var6;
529 var7 = var13;
530 goto RET_LABEL8;
531 RET_LABEL8:(void)0;
532 }
533 }
534 var1 = var7;
535 } else {
536 var1 = var_;
537 }
538 if (unlikely(!var1)) {
539 if(catchStack.cursor >= 0){
540 longjmp(catchStack.envs[catchStack.cursor], 1);
541 }
542 PRINT_ERROR("Runtime error: %s", "Assert failed");
543 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 133);
544 fatal_exit(1);
545 }
546 var14 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
547 var_flps = var14;
548 {
549 { /* Inline kernel$Int$>= (var_i,var_flps) on <var_i:Int> */
550 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
551 /* <var_flps:Int> isa OTHER */
552 var17 = 1; /* easy <var_flps:Int> isa OTHER*/
553 if (unlikely(!var17)) {
554 var_class_name20 = type_core__Int.name;
555 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
556 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
557 fatal_exit(1);
558 }
559 var21 = var_i >= var_flps;
560 var15 = var21;
561 goto RET_LABEL16;
562 RET_LABEL16:(void)0;
563 }
564 }
565 if (var15){
566 var22 = self->attrs[COLOR_core__ropes__Concat___flat_cache].val; /* _flat_cache on <self:Concat> */
567 if (unlikely(var22 == NULL)) {
568 if(catchStack.cursor >= 0){
569 longjmp(catchStack.envs[catchStack.cursor], 1);
570 }
571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flat_cache");
572 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 136);
573 fatal_exit(1);
574 }
575 var_fc = var22;
576 var23 = var_fc->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_fc:FlatString> */
577 {
578 { /* Inline kernel$Int$+ (var_flps,var23) on <var_flps:Int> */
579 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
580 /* <var23:Int> isa OTHER */
581 var26 = 1; /* easy <var23:Int> isa OTHER*/
582 if (unlikely(!var26)) {
583 var_class_name29 = type_core__Int.name;
584 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
585 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
586 fatal_exit(1);
587 }
588 var30 = var_flps + var23;
589 var24 = var30;
590 goto RET_LABEL25;
591 RET_LABEL25:(void)0;
592 }
593 }
594 {
595 { /* Inline kernel$Int$< (var_i,var24) on <var_i:Int> */
596 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
597 /* <var24:Int> isa OTHER */
598 var33 = 1; /* easy <var24:Int> isa OTHER*/
599 if (unlikely(!var33)) {
600 var_class_name36 = type_core__Int.name;
601 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
602 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
603 fatal_exit(1);
604 }
605 var37 = var_i < var24;
606 var31 = var37;
607 goto RET_LABEL32;
608 RET_LABEL32:(void)0;
609 }
610 }
611 if (var31){
612 {
613 { /* Inline kernel$Int$- (var_i,var_flps) on <var_i:Int> */
614 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
615 /* <var_flps:Int> isa OTHER */
616 var40 = 1; /* easy <var_flps:Int> isa OTHER*/
617 if (unlikely(!var40)) {
618 var_class_name43 = type_core__Int.name;
619 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
620 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
621 fatal_exit(1);
622 }
623 var44 = var_i - var_flps;
624 var38 = var44;
625 goto RET_LABEL39;
626 RET_LABEL39:(void)0;
627 }
628 }
629 {
630 var45 = ((uint32_t(*)(val* self, long p0))(var_fc->class->vft[COLOR_core__flat__FlatText__fetch_char_at]))(var_fc, var38); /* fetch_char_at on <var_fc:FlatString>*/
631 }
632 var = var45;
633 goto RET_LABEL;
634 } else {
635 }
636 } else {
637 }
638 {
639 var46 = core__ropes___core__ropes__Concat___get_leaf_at(self, var_i);
640 }
641 var_lf = var46;
642 var47 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
643 {
644 { /* Inline kernel$Int$- (var_i,var47) on <var_i:Int> */
645 /* Covariant cast for argument 0 (i) <var47:Int> isa OTHER */
646 /* <var47:Int> isa OTHER */
647 var50 = 1; /* easy <var47:Int> isa OTHER*/
648 if (unlikely(!var50)) {
649 var_class_name53 = type_core__Int.name;
650 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
651 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
652 fatal_exit(1);
653 }
654 var54 = var_i - var47;
655 var48 = var54;
656 goto RET_LABEL49;
657 RET_LABEL49:(void)0;
658 }
659 }
660 {
661 var55 = ((uint32_t(*)(val* self, long p0))(var_lf->class->vft[COLOR_core__flat__FlatText__fetch_char_at]))(var_lf, var48); /* fetch_char_at on <var_lf:FlatString>*/
662 }
663 var = var55;
664 goto RET_LABEL;
665 RET_LABEL:;
666 return var;
667 }
668 /* method ropes$Concat$get_leaf_at for (self: Concat, Int): FlatString */
669 val* core__ropes___core__ropes__Concat___get_leaf_at(val* self, long p0) {
670 val* var /* : FlatString */;
671 long var_pos /* var pos: Int */;
672 long var1 /* : Int */;
673 long var_flps /* var flps: Int */;
674 short int var2 /* : Bool */;
675 short int var4 /* : Bool */;
676 int cltype;
677 int idtype;
678 const char* var_class_name;
679 short int var5 /* : Bool */;
680 val* var6 /* : FlatString */;
681 val* var_fc /* var fc: FlatString */;
682 long var7 /* : Int */;
683 long var8 /* : Int */;
684 short int var10 /* : Bool */;
685 int cltype11;
686 int idtype12;
687 const char* var_class_name13;
688 long var14 /* : Int */;
689 short int var15 /* : Bool */;
690 short int var17 /* : Bool */;
691 int cltype18;
692 int idtype19;
693 const char* var_class_name20;
694 short int var21 /* : Bool */;
695 val* var_s /* var s: String */;
696 long var_st /* var st: Int */;
697 short int var22 /* : Bool */;
698 int cltype23;
699 int idtype24;
700 short int var25 /* : Bool */;
701 int cltype26;
702 int idtype27;
703 const char* var_class_name28;
704 val* var29 /* : String */;
705 val* var_lft /* var lft: String */;
706 long var30 /* : Int */;
707 long var_llen /* var llen: Int */;
708 short int var31 /* : Bool */;
709 short int var33 /* : Bool */;
710 int cltype34;
711 int idtype35;
712 const char* var_class_name36;
713 short int var37 /* : Bool */;
714 val* var38 /* : String */;
715 long var39 /* : Int */;
716 short int var41 /* : Bool */;
717 int cltype42;
718 int idtype43;
719 const char* var_class_name44;
720 long var45 /* : Int */;
721 long var46 /* : Int */;
722 short int var48 /* : Bool */;
723 int cltype49;
724 int idtype50;
725 const char* var_class_name51;
726 long var52 /* : Int */;
727 var_pos = p0;
728 var1 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
729 var_flps = var1;
730 {
731 { /* Inline kernel$Int$>= (var_pos,var_flps) on <var_pos:Int> */
732 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
733 /* <var_flps:Int> isa OTHER */
734 var4 = 1; /* easy <var_flps:Int> isa OTHER*/
735 if (unlikely(!var4)) {
736 var_class_name = type_core__Int.name;
737 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
738 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
739 fatal_exit(1);
740 }
741 var5 = var_pos >= var_flps;
742 var2 = var5;
743 goto RET_LABEL3;
744 RET_LABEL3:(void)0;
745 }
746 }
747 if (var2){
748 var6 = self->attrs[COLOR_core__ropes__Concat___flat_cache].val; /* _flat_cache on <self:Concat> */
749 if (unlikely(var6 == NULL)) {
750 if(catchStack.cursor >= 0){
751 longjmp(catchStack.envs[catchStack.cursor], 1);
752 }
753 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flat_cache");
754 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 146);
755 fatal_exit(1);
756 }
757 var_fc = var6;
758 var7 = var_fc->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_fc:FlatString> */
759 {
760 { /* Inline kernel$Int$+ (var_flps,var7) on <var_flps:Int> */
761 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
762 /* <var7:Int> isa OTHER */
763 var10 = 1; /* easy <var7:Int> isa OTHER*/
764 if (unlikely(!var10)) {
765 var_class_name13 = type_core__Int.name;
766 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
767 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
768 fatal_exit(1);
769 }
770 var14 = var_flps + var7;
771 var8 = var14;
772 goto RET_LABEL9;
773 RET_LABEL9:(void)0;
774 }
775 }
776 {
777 { /* Inline kernel$Int$< (var_pos,var8) on <var_pos:Int> */
778 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
779 /* <var8:Int> isa OTHER */
780 var17 = 1; /* easy <var8:Int> isa OTHER*/
781 if (unlikely(!var17)) {
782 var_class_name20 = type_core__Int.name;
783 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
784 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
785 fatal_exit(1);
786 }
787 var21 = var_pos < var8;
788 var15 = var21;
789 goto RET_LABEL16;
790 RET_LABEL16:(void)0;
791 }
792 }
793 if (var15){
794 var = var_fc;
795 goto RET_LABEL;
796 } else {
797 }
798 } else {
799 }
800 var_s = self;
801 var_st = var_pos;
802 for(;;) {
803 /* <var_s:String> isa FlatString */
804 cltype23 = type_core__FlatString.color;
805 idtype24 = type_core__FlatString.id;
806 if(cltype23 >= var_s->type->table_size) {
807 var22 = 0;
808 } else {
809 var22 = var_s->type->type_table[cltype23] == idtype24;
810 }
811 if (var22){
812 goto BREAK_label;
813 } else {
814 }
815 /* <var_s:String> isa Concat */
816 cltype26 = type_core__ropes__Concat.color;
817 idtype27 = type_core__ropes__Concat.id;
818 if(cltype26 >= var_s->type->table_size) {
819 var25 = 0;
820 } else {
821 var25 = var_s->type->type_table[cltype26] == idtype27;
822 }
823 if (unlikely(!var25)) {
824 var_class_name28 = var_s == NULL ? "null" : var_s->type->name;
825 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Concat", var_class_name28);
826 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 153);
827 fatal_exit(1);
828 }
829 var_s = var_s;
830 var29 = var_s->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_s:String(Concat)> */
831 if (unlikely(var29 == NULL)) {
832 if(catchStack.cursor >= 0){
833 longjmp(catchStack.envs[catchStack.cursor], 1);
834 }
835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
836 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 154);
837 fatal_exit(1);
838 }
839 var_lft = var29;
840 {
841 var30 = ((long(*)(val* self))(var_lft->class->vft[COLOR_core__abstract_text__Text__length]))(var_lft); /* length on <var_lft:String>*/
842 }
843 var_llen = var30;
844 {
845 { /* Inline kernel$Int$>= (var_pos,var_llen) on <var_pos:Int> */
846 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
847 /* <var_llen:Int> isa OTHER */
848 var33 = 1; /* easy <var_llen:Int> isa OTHER*/
849 if (unlikely(!var33)) {
850 var_class_name36 = type_core__Int.name;
851 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
852 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
853 fatal_exit(1);
854 }
855 var37 = var_pos >= var_llen;
856 var31 = var37;
857 goto RET_LABEL32;
858 RET_LABEL32:(void)0;
859 }
860 }
861 if (var31){
862 var38 = var_s->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_s:String(Concat)> */
863 if (unlikely(var38 == NULL)) {
864 if(catchStack.cursor >= 0){
865 longjmp(catchStack.envs[catchStack.cursor], 1);
866 }
867 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
868 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 157);
869 fatal_exit(1);
870 }
871 var_s = var38;
872 {
873 { /* Inline kernel$Int$- (var_pos,var_llen) on <var_pos:Int> */
874 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
875 /* <var_llen:Int> isa OTHER */
876 var41 = 1; /* easy <var_llen:Int> isa OTHER*/
877 if (unlikely(!var41)) {
878 var_class_name44 = type_core__Int.name;
879 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
880 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
881 fatal_exit(1);
882 }
883 var45 = var_pos - var_llen;
884 var39 = var45;
885 goto RET_LABEL40;
886 RET_LABEL40:(void)0;
887 }
888 }
889 var_pos = var39;
890 } else {
891 var_s = var_lft;
892 }
893 }
894 BREAK_label: (void)0;
895 {
896 { /* Inline kernel$Int$- (var_st,var_pos) on <var_st:Int> */
897 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
898 /* <var_pos:Int> isa OTHER */
899 var48 = 1; /* easy <var_pos:Int> isa OTHER*/
900 if (unlikely(!var48)) {
901 var_class_name51 = type_core__Int.name;
902 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51);
903 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
904 fatal_exit(1);
905 }
906 var52 = var_st - var_pos;
907 var46 = var52;
908 goto RET_LABEL47;
909 RET_LABEL47:(void)0;
910 }
911 }
912 self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l = var46; /* _flat_last_pos_start on <self:Concat> */
913 self->attrs[COLOR_core__ropes__Concat___flat_cache].val = var_s; /* _flat_cache on <self:Concat> */
914 var = var_s;
915 goto RET_LABEL;
916 RET_LABEL:;
917 return var;
918 }
919 /* method ropes$Concat$substring for (self: Concat, Int, Int): String */
920 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__substring(val* self, long p0, long p1) {
921 val* var /* : String */;
922 long var_from /* var from: Int */;
923 long var_count /* var count: Int */;
924 short int var1 /* : Bool */;
925 short int var3 /* : Bool */;
926 int cltype;
927 int idtype;
928 const char* var_class_name;
929 short int var4 /* : Bool */;
930 long var5 /* : Int */;
931 short int var7 /* : Bool */;
932 int cltype8;
933 int idtype9;
934 const char* var_class_name10;
935 long var11 /* : Int */;
936 short int var12 /* : Bool */;
937 short int var14 /* : Bool */;
938 int cltype15;
939 int idtype16;
940 const char* var_class_name17;
941 short int var18 /* : Bool */;
942 static val* varonce;
943 val* var19 /* : String */;
944 char* var20 /* : CString */;
945 val* var21 /* : String */;
946 val* var22 /* : nullable Int */;
947 val* var23 /* : nullable Int */;
948 val* var24 /* : nullable Bool */;
949 val* var25 /* : nullable Bool */;
950 long var26 /* : Int */;
951 long var_ln /* var ln: Int */;
952 long var27 /* : Int */;
953 short int var29 /* : Bool */;
954 int cltype30;
955 int idtype31;
956 const char* var_class_name32;
957 long var33 /* : Int */;
958 short int var34 /* : Bool */;
959 short int var36 /* : Bool */;
960 int cltype37;
961 int idtype38;
962 const char* var_class_name39;
963 short int var40 /* : Bool */;
964 long var41 /* : Int */;
965 short int var43 /* : Bool */;
966 int cltype44;
967 int idtype45;
968 const char* var_class_name46;
969 long var47 /* : Int */;
970 short int var48 /* : Bool */;
971 short int var50 /* : Bool */;
972 int cltype51;
973 int idtype52;
974 const char* var_class_name53;
975 short int var54 /* : Bool */;
976 static val* varonce55;
977 val* var56 /* : String */;
978 char* var57 /* : CString */;
979 val* var58 /* : String */;
980 val* var59 /* : nullable Int */;
981 val* var60 /* : nullable Int */;
982 val* var61 /* : nullable Bool */;
983 val* var62 /* : nullable Bool */;
984 long var63 /* : Int */;
985 short int var65 /* : Bool */;
986 int cltype66;
987 int idtype67;
988 const char* var_class_name68;
989 long var69 /* : Int */;
990 long var70 /* : Int */;
991 short int var72 /* : Bool */;
992 int cltype73;
993 int idtype74;
994 const char* var_class_name75;
995 long var76 /* : Int */;
996 long var_end_index /* var end_index: Int */;
997 long var77 /* : Int */;
998 long var_flps /* var flps: Int */;
999 short int var78 /* : Bool */;
1000 short int var80 /* : Bool */;
1001 int cltype81;
1002 int idtype82;
1003 const char* var_class_name83;
1004 short int var84 /* : Bool */;
1005 val* var85 /* : FlatString */;
1006 val* var_fc /* var fc: FlatString */;
1007 long var86 /* : Int */;
1008 long var87 /* : Int */;
1009 short int var89 /* : Bool */;
1010 int cltype90;
1011 int idtype91;
1012 const char* var_class_name92;
1013 long var93 /* : Int */;
1014 short int var94 /* : Bool */;
1015 short int var96 /* : Bool */;
1016 int cltype97;
1017 int idtype98;
1018 const char* var_class_name99;
1019 short int var100 /* : Bool */;
1020 long var101 /* : Int */;
1021 short int var103 /* : Bool */;
1022 int cltype104;
1023 int idtype105;
1024 const char* var_class_name106;
1025 long var107 /* : Int */;
1026 long var108 /* : Int */;
1027 short int var110 /* : Bool */;
1028 int cltype111;
1029 int idtype112;
1030 const char* var_class_name113;
1031 long var114 /* : Int */;
1032 val* var115 /* : String */;
1033 val* var116 /* : String */;
1034 val* var_lft /* var lft: String */;
1035 long var117 /* : Int */;
1036 long var_llen /* var llen: Int */;
1037 short int var118 /* : Bool */;
1038 short int var120 /* : Bool */;
1039 int cltype121;
1040 int idtype122;
1041 const char* var_class_name123;
1042 short int var124 /* : Bool */;
1043 long var125 /* : Int */;
1044 short int var127 /* : Bool */;
1045 int cltype128;
1046 int idtype129;
1047 const char* var_class_name130;
1048 long var131 /* : Int */;
1049 short int var132 /* : Bool */;
1050 short int var134 /* : Bool */;
1051 int cltype135;
1052 int idtype136;
1053 const char* var_class_name137;
1054 short int var138 /* : Bool */;
1055 val* var139 /* : Text */;
1056 long var140 /* : Int */;
1057 short int var142 /* : Bool */;
1058 int cltype143;
1059 int idtype144;
1060 const char* var_class_name145;
1061 long var146 /* : Int */;
1062 long var_lsublen /* var lsublen: Int */;
1063 val* var147 /* : Text */;
1064 val* var148 /* : String */;
1065 long var149 /* : Int */;
1066 short int var151 /* : Bool */;
1067 int cltype152;
1068 int idtype153;
1069 const char* var_class_name154;
1070 long var155 /* : Int */;
1071 val* var156 /* : Text */;
1072 val* var157 /* : Text */;
1073 val* var158 /* : String */;
1074 long var159 /* : Int */;
1075 short int var161 /* : Bool */;
1076 int cltype162;
1077 int idtype163;
1078 const char* var_class_name164;
1079 long var165 /* : Int */;
1080 val* var166 /* : Text */;
1081 var_from = p0;
1082 var_count = p1;
1083 {
1084 { /* Inline kernel$Int$< (var_from,0l) on <var_from:Int> */
1085 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1086 /* <0l:Int> isa OTHER */
1087 var3 = 1; /* easy <0l:Int> isa OTHER*/
1088 if (unlikely(!var3)) {
1089 var_class_name = type_core__Int.name;
1090 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1091 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1092 fatal_exit(1);
1093 }
1094 var4 = var_from < 0l;
1095 var1 = var4;
1096 goto RET_LABEL2;
1097 RET_LABEL2:(void)0;
1098 }
1099 }
1100 if (var1){
1101 {
1102 { /* Inline kernel$Int$+ (var_count,var_from) on <var_count:Int> */
1103 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1104 /* <var_from:Int> isa OTHER */
1105 var7 = 1; /* easy <var_from:Int> isa OTHER*/
1106 if (unlikely(!var7)) {
1107 var_class_name10 = type_core__Int.name;
1108 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
1109 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1110 fatal_exit(1);
1111 }
1112 var11 = var_count + var_from;
1113 var5 = var11;
1114 goto RET_LABEL6;
1115 RET_LABEL6:(void)0;
1116 }
1117 }
1118 var_count = var5;
1119 {
1120 { /* Inline kernel$Int$< (var_count,0l) on <var_count:Int> */
1121 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1122 /* <0l:Int> isa OTHER */
1123 var14 = 1; /* easy <0l:Int> isa OTHER*/
1124 if (unlikely(!var14)) {
1125 var_class_name17 = type_core__Int.name;
1126 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1127 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1128 fatal_exit(1);
1129 }
1130 var18 = var_count < 0l;
1131 var12 = var18;
1132 goto RET_LABEL13;
1133 RET_LABEL13:(void)0;
1134 }
1135 }
1136 if (var12){
1137 if (likely(varonce!=NULL)) {
1138 var19 = varonce;
1139 } else {
1140 var20 = "";
1141 var22 = (val*)(0l<<2|1);
1142 var23 = (val*)(0l<<2|1);
1143 var24 = (val*)((long)(0)<<2|3);
1144 var25 = (val*)((long)(0)<<2|3);
1145 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
1146 var19 = var21;
1147 varonce = var19;
1148 }
1149 var = var19;
1150 goto RET_LABEL;
1151 } else {
1152 }
1153 var_from = 0l;
1154 } else {
1155 }
1156 var26 = self->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <self:Concat> */
1157 var_ln = var26;
1158 {
1159 { /* Inline kernel$Int$+ (var_count,var_from) on <var_count:Int> */
1160 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1161 /* <var_from:Int> isa OTHER */
1162 var29 = 1; /* easy <var_from:Int> isa OTHER*/
1163 if (unlikely(!var29)) {
1164 var_class_name32 = type_core__Int.name;
1165 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
1166 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1167 fatal_exit(1);
1168 }
1169 var33 = var_count + var_from;
1170 var27 = var33;
1171 goto RET_LABEL28;
1172 RET_LABEL28:(void)0;
1173 }
1174 }
1175 {
1176 { /* Inline kernel$Int$> (var27,var_ln) on <var27:Int> */
1177 /* Covariant cast for argument 0 (i) <var_ln:Int> isa OTHER */
1178 /* <var_ln:Int> isa OTHER */
1179 var36 = 1; /* easy <var_ln:Int> isa OTHER*/
1180 if (unlikely(!var36)) {
1181 var_class_name39 = type_core__Int.name;
1182 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
1183 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1184 fatal_exit(1);
1185 }
1186 var40 = var27 > var_ln;
1187 var34 = var40;
1188 goto RET_LABEL35;
1189 RET_LABEL35:(void)0;
1190 }
1191 }
1192 if (var34){
1193 {
1194 { /* Inline kernel$Int$- (var_ln,var_from) on <var_ln:Int> */
1195 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1196 /* <var_from:Int> isa OTHER */
1197 var43 = 1; /* easy <var_from:Int> isa OTHER*/
1198 if (unlikely(!var43)) {
1199 var_class_name46 = type_core__Int.name;
1200 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
1201 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1202 fatal_exit(1);
1203 }
1204 var47 = var_ln - var_from;
1205 var41 = var47;
1206 goto RET_LABEL42;
1207 RET_LABEL42:(void)0;
1208 }
1209 }
1210 var_count = var41;
1211 } else {
1212 }
1213 {
1214 { /* Inline kernel$Int$<= (var_count,0l) on <var_count:Int> */
1215 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1216 /* <0l:Int> isa OTHER */
1217 var50 = 1; /* easy <0l:Int> isa OTHER*/
1218 if (unlikely(!var50)) {
1219 var_class_name53 = type_core__Int.name;
1220 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
1221 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
1222 fatal_exit(1);
1223 }
1224 var54 = var_count <= 0l;
1225 var48 = var54;
1226 goto RET_LABEL49;
1227 RET_LABEL49:(void)0;
1228 }
1229 }
1230 if (var48){
1231 if (likely(varonce55!=NULL)) {
1232 var56 = varonce55;
1233 } else {
1234 var57 = "";
1235 var59 = (val*)(0l<<2|1);
1236 var60 = (val*)(0l<<2|1);
1237 var61 = (val*)((long)(0)<<2|3);
1238 var62 = (val*)((long)(0)<<2|3);
1239 var58 = core__flat___CString___to_s_unsafe(var57, var59, var60, var61, var62);
1240 var56 = var58;
1241 varonce55 = var56;
1242 }
1243 var = var56;
1244 goto RET_LABEL;
1245 } else {
1246 }
1247 {
1248 { /* Inline kernel$Int$+ (var_from,var_count) on <var_from:Int> */
1249 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
1250 /* <var_count:Int> isa OTHER */
1251 var65 = 1; /* easy <var_count:Int> isa OTHER*/
1252 if (unlikely(!var65)) {
1253 var_class_name68 = type_core__Int.name;
1254 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
1255 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1256 fatal_exit(1);
1257 }
1258 var69 = var_from + var_count;
1259 var63 = var69;
1260 goto RET_LABEL64;
1261 RET_LABEL64:(void)0;
1262 }
1263 }
1264 {
1265 { /* Inline kernel$Int$- (var63,1l) on <var63:Int> */
1266 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1267 /* <1l:Int> isa OTHER */
1268 var72 = 1; /* easy <1l:Int> isa OTHER*/
1269 if (unlikely(!var72)) {
1270 var_class_name75 = type_core__Int.name;
1271 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
1272 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1273 fatal_exit(1);
1274 }
1275 var76 = var63 - 1l;
1276 var70 = var76;
1277 goto RET_LABEL71;
1278 RET_LABEL71:(void)0;
1279 }
1280 }
1281 var_end_index = var70;
1282 var77 = self->attrs[COLOR_core__ropes__Concat___flat_last_pos_start].l; /* _flat_last_pos_start on <self:Concat> */
1283 var_flps = var77;
1284 {
1285 { /* Inline kernel$Int$>= (var_from,var_flps) on <var_from:Int> */
1286 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
1287 /* <var_flps:Int> isa OTHER */
1288 var80 = 1; /* easy <var_flps:Int> isa OTHER*/
1289 if (unlikely(!var80)) {
1290 var_class_name83 = type_core__Int.name;
1291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83);
1292 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
1293 fatal_exit(1);
1294 }
1295 var84 = var_from >= var_flps;
1296 var78 = var84;
1297 goto RET_LABEL79;
1298 RET_LABEL79:(void)0;
1299 }
1300 }
1301 if (var78){
1302 var85 = self->attrs[COLOR_core__ropes__Concat___flat_cache].val; /* _flat_cache on <self:Concat> */
1303 if (unlikely(var85 == NULL)) {
1304 if(catchStack.cursor >= 0){
1305 longjmp(catchStack.envs[catchStack.cursor], 1);
1306 }
1307 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flat_cache");
1308 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 182);
1309 fatal_exit(1);
1310 }
1311 var_fc = var85;
1312 var86 = var_fc->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_fc:FlatString> */
1313 {
1314 { /* Inline kernel$Int$+ (var_flps,var86) on <var_flps:Int> */
1315 /* Covariant cast for argument 0 (i) <var86:Int> isa OTHER */
1316 /* <var86:Int> isa OTHER */
1317 var89 = 1; /* easy <var86:Int> isa OTHER*/
1318 if (unlikely(!var89)) {
1319 var_class_name92 = type_core__Int.name;
1320 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name92);
1321 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1322 fatal_exit(1);
1323 }
1324 var93 = var_flps + var86;
1325 var87 = var93;
1326 goto RET_LABEL88;
1327 RET_LABEL88:(void)0;
1328 }
1329 }
1330 {
1331 { /* Inline kernel$Int$< (var_end_index,var87) on <var_end_index:Int> */
1332 /* Covariant cast for argument 0 (i) <var87:Int> isa OTHER */
1333 /* <var87:Int> isa OTHER */
1334 var96 = 1; /* easy <var87:Int> isa OTHER*/
1335 if (unlikely(!var96)) {
1336 var_class_name99 = type_core__Int.name;
1337 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name99);
1338 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1339 fatal_exit(1);
1340 }
1341 var100 = var_end_index < var87;
1342 var94 = var100;
1343 goto RET_LABEL95;
1344 RET_LABEL95:(void)0;
1345 }
1346 }
1347 if (var94){
1348 {
1349 { /* Inline kernel$Int$- (var_from,var_flps) on <var_from:Int> */
1350 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
1351 /* <var_flps:Int> isa OTHER */
1352 var103 = 1; /* easy <var_flps:Int> isa OTHER*/
1353 if (unlikely(!var103)) {
1354 var_class_name106 = type_core__Int.name;
1355 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name106);
1356 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1357 fatal_exit(1);
1358 }
1359 var107 = var_from - var_flps;
1360 var101 = var107;
1361 goto RET_LABEL102;
1362 RET_LABEL102:(void)0;
1363 }
1364 }
1365 {
1366 { /* Inline kernel$Int$- (var_end_index,var_flps) on <var_end_index:Int> */
1367 /* Covariant cast for argument 0 (i) <var_flps:Int> isa OTHER */
1368 /* <var_flps:Int> isa OTHER */
1369 var110 = 1; /* easy <var_flps:Int> isa OTHER*/
1370 if (unlikely(!var110)) {
1371 var_class_name113 = type_core__Int.name;
1372 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name113);
1373 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1374 fatal_exit(1);
1375 }
1376 var114 = var_end_index - var_flps;
1377 var108 = var114;
1378 goto RET_LABEL109;
1379 RET_LABEL109:(void)0;
1380 }
1381 }
1382 {
1383 var115 = ((val*(*)(val* self, long p0, long p1, long p2))(var_fc->class->vft[COLOR_core__flat__FlatString__substring_impl]))(var_fc, var101, var_count, var108); /* substring_impl on <var_fc:FlatString>*/
1384 }
1385 var = var115;
1386 goto RET_LABEL;
1387 } else {
1388 }
1389 } else {
1390 }
1391 var116 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1392 if (unlikely(var116 == NULL)) {
1393 if(catchStack.cursor >= 0){
1394 longjmp(catchStack.envs[catchStack.cursor], 1);
1395 }
1396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1397 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 188);
1398 fatal_exit(1);
1399 }
1400 var_lft = var116;
1401 {
1402 var117 = ((long(*)(val* self))(var_lft->class->vft[COLOR_core__abstract_text__Text__length]))(var_lft); /* length on <var_lft:String>*/
1403 }
1404 var_llen = var117;
1405 {
1406 { /* Inline kernel$Int$< (var_from,var_llen) on <var_from:Int> */
1407 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
1408 /* <var_llen:Int> isa OTHER */
1409 var120 = 1; /* easy <var_llen:Int> isa OTHER*/
1410 if (unlikely(!var120)) {
1411 var_class_name123 = type_core__Int.name;
1412 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name123);
1413 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1414 fatal_exit(1);
1415 }
1416 var124 = var_from < var_llen;
1417 var118 = var124;
1418 goto RET_LABEL119;
1419 RET_LABEL119:(void)0;
1420 }
1421 }
1422 if (var118){
1423 {
1424 { /* Inline kernel$Int$+ (var_from,var_count) on <var_from:Int> */
1425 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
1426 /* <var_count:Int> isa OTHER */
1427 var127 = 1; /* easy <var_count:Int> isa OTHER*/
1428 if (unlikely(!var127)) {
1429 var_class_name130 = type_core__Int.name;
1430 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name130);
1431 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1432 fatal_exit(1);
1433 }
1434 var131 = var_from + var_count;
1435 var125 = var131;
1436 goto RET_LABEL126;
1437 RET_LABEL126:(void)0;
1438 }
1439 }
1440 {
1441 { /* Inline kernel$Int$< (var125,var_llen) on <var125:Int> */
1442 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
1443 /* <var_llen:Int> isa OTHER */
1444 var134 = 1; /* easy <var_llen:Int> isa OTHER*/
1445 if (unlikely(!var134)) {
1446 var_class_name137 = type_core__Int.name;
1447 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name137);
1448 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1449 fatal_exit(1);
1450 }
1451 var138 = var125 < var_llen;
1452 var132 = var138;
1453 goto RET_LABEL133;
1454 RET_LABEL133:(void)0;
1455 }
1456 }
1457 if (var132){
1458 {
1459 var139 = ((val*(*)(val* self, long p0, long p1))(var_lft->class->vft[COLOR_core__abstract_text__Text__substring]))(var_lft, var_from, var_count); /* substring on <var_lft:String>*/
1460 }
1461 var = var139;
1462 goto RET_LABEL;
1463 } else {
1464 }
1465 {
1466 { /* Inline kernel$Int$- (var_llen,var_from) on <var_llen:Int> */
1467 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1468 /* <var_from:Int> isa OTHER */
1469 var142 = 1; /* easy <var_from:Int> isa OTHER*/
1470 if (unlikely(!var142)) {
1471 var_class_name145 = type_core__Int.name;
1472 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name145);
1473 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1474 fatal_exit(1);
1475 }
1476 var146 = var_llen - var_from;
1477 var140 = var146;
1478 goto RET_LABEL141;
1479 RET_LABEL141:(void)0;
1480 }
1481 }
1482 var_lsublen = var140;
1483 {
1484 var147 = ((val*(*)(val* self, long p0))(var_lft->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var_lft, var_from); /* substring_from on <var_lft:String>*/
1485 }
1486 var148 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1487 if (unlikely(var148 == NULL)) {
1488 if(catchStack.cursor >= 0){
1489 longjmp(catchStack.envs[catchStack.cursor], 1);
1490 }
1491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1492 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 193);
1493 fatal_exit(1);
1494 }
1495 {
1496 { /* Inline kernel$Int$- (var_count,var_lsublen) on <var_count:Int> */
1497 /* Covariant cast for argument 0 (i) <var_lsublen:Int> isa OTHER */
1498 /* <var_lsublen:Int> isa OTHER */
1499 var151 = 1; /* easy <var_lsublen:Int> isa OTHER*/
1500 if (unlikely(!var151)) {
1501 var_class_name154 = type_core__Int.name;
1502 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name154);
1503 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1504 fatal_exit(1);
1505 }
1506 var155 = var_count - var_lsublen;
1507 var149 = var155;
1508 goto RET_LABEL150;
1509 RET_LABEL150:(void)0;
1510 }
1511 }
1512 {
1513 var156 = ((val*(*)(val* self, long p0, long p1))(var148->class->vft[COLOR_core__abstract_text__Text__substring]))(var148, 0l, var149); /* substring on <var148:String>*/
1514 }
1515 {
1516 var157 = ((val*(*)(val* self, val* p0))(var147->class->vft[COLOR_core__abstract_text__Text___43d]))(var147, var156); /* + on <var147:Text(String)>*/
1517 }
1518 var = var157;
1519 goto RET_LABEL;
1520 } else {
1521 var158 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1522 if (unlikely(var158 == NULL)) {
1523 if(catchStack.cursor >= 0){
1524 longjmp(catchStack.envs[catchStack.cursor], 1);
1525 }
1526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1527 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 195);
1528 fatal_exit(1);
1529 }
1530 {
1531 { /* Inline kernel$Int$- (var_from,var_llen) on <var_from:Int> */
1532 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
1533 /* <var_llen:Int> isa OTHER */
1534 var161 = 1; /* easy <var_llen:Int> isa OTHER*/
1535 if (unlikely(!var161)) {
1536 var_class_name164 = type_core__Int.name;
1537 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name164);
1538 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1539 fatal_exit(1);
1540 }
1541 var165 = var_from - var_llen;
1542 var159 = var165;
1543 goto RET_LABEL160;
1544 RET_LABEL160:(void)0;
1545 }
1546 }
1547 {
1548 var166 = ((val*(*)(val* self, long p0, long p1))(var158->class->vft[COLOR_core__abstract_text__Text__substring]))(var158, var159, var_count); /* substring on <var158:String>*/
1549 }
1550 var = var166;
1551 goto RET_LABEL;
1552 }
1553 RET_LABEL:;
1554 return var;
1555 }
1556 /* method ropes$Concat$to_upper for (self: Concat): String */
1557 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__to_upper(val* self) {
1558 val* var /* : String */;
1559 val* var1 /* : Concat */;
1560 val* var2 /* : String */;
1561 val* var3 /* : Text */;
1562 val* var4 /* : String */;
1563 val* var5 /* : Text */;
1564 var1 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1565 var2 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1566 if (unlikely(var2 == NULL)) {
1567 if(catchStack.cursor >= 0){
1568 longjmp(catchStack.envs[catchStack.cursor], 1);
1569 }
1570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1571 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 209);
1572 fatal_exit(1);
1573 }
1574 {
1575 var3 = ((val*(*)(val* self))(var2->class->vft[COLOR_core__abstract_text__Text__to_upper]))(var2); /* to_upper on <var2:String>*/
1576 }
1577 var4 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1578 if (unlikely(var4 == NULL)) {
1579 if(catchStack.cursor >= 0){
1580 longjmp(catchStack.envs[catchStack.cursor], 1);
1581 }
1582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1583 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 209);
1584 fatal_exit(1);
1585 }
1586 {
1587 var5 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__Text__to_upper]))(var4); /* to_upper on <var4:String>*/
1588 }
1589 {
1590 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__left_61d]))(var1, var3); /* left= on <var1:Concat>*/
1591 }
1592 {
1593 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__right_61d]))(var1, var5); /* right= on <var1:Concat>*/
1594 }
1595 {
1596 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:Concat>*/
1597 }
1598 var = var1;
1599 goto RET_LABEL;
1600 RET_LABEL:;
1601 return var;
1602 }
1603 /* method ropes$Concat$to_lower for (self: Concat): String */
1604 val* core__ropes___core__ropes__Concat___core__abstract_text__Text__to_lower(val* self) {
1605 val* var /* : String */;
1606 val* var1 /* : Concat */;
1607 val* var2 /* : String */;
1608 val* var3 /* : Text */;
1609 val* var4 /* : String */;
1610 val* var5 /* : Text */;
1611 var1 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1612 var2 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1613 if (unlikely(var2 == NULL)) {
1614 if(catchStack.cursor >= 0){
1615 longjmp(catchStack.envs[catchStack.cursor], 1);
1616 }
1617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1618 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 211);
1619 fatal_exit(1);
1620 }
1621 {
1622 var3 = ((val*(*)(val* self))(var2->class->vft[COLOR_core__abstract_text__Text__to_lower]))(var2); /* to_lower on <var2:String>*/
1623 }
1624 var4 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1625 if (unlikely(var4 == NULL)) {
1626 if(catchStack.cursor >= 0){
1627 longjmp(catchStack.envs[catchStack.cursor], 1);
1628 }
1629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1630 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 211);
1631 fatal_exit(1);
1632 }
1633 {
1634 var5 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__Text__to_lower]))(var4); /* to_lower on <var4:String>*/
1635 }
1636 {
1637 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__left_61d]))(var1, var3); /* left= on <var1:Concat>*/
1638 }
1639 {
1640 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__ropes__Concat__right_61d]))(var1, var5); /* right= on <var1:Concat>*/
1641 }
1642 {
1643 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:Concat>*/
1644 }
1645 var = var1;
1646 goto RET_LABEL;
1647 RET_LABEL:;
1648 return var;
1649 }
1650 /* method ropes$Concat$+ for (self: Concat, Text): String */
1651 val* core__ropes___core__ropes__Concat___core__abstract_text__Text___43d(val* self, val* p0) {
1652 val* var /* : String */;
1653 val* var_o /* var o: Text */;
1654 val* var1 /* : String */;
1655 val* var_s /* var s: String */;
1656 long var2 /* : Int */;
1657 long var_slen /* var slen: Int */;
1658 short int var3 /* : Bool */;
1659 int cltype;
1660 int idtype;
1661 val* var4 /* : Concat */;
1662 val* var5 /* : String */;
1663 val* var_r /* var r: String */;
1664 long var6 /* : Int */;
1665 long var_rlen /* var rlen: Int */;
1666 long var7 /* : Int */;
1667 short int var9 /* : Bool */;
1668 int cltype10;
1669 int idtype11;
1670 const char* var_class_name;
1671 long var12 /* : Int */;
1672 val* var13 /* : Sys */;
1673 long var14 /* : Int */;
1674 short int var15 /* : Bool */;
1675 short int var17 /* : Bool */;
1676 int cltype18;
1677 int idtype19;
1678 const char* var_class_name20;
1679 short int var21 /* : Bool */;
1680 val* var22 /* : Concat */;
1681 val* var23 /* : Concat */;
1682 val* var24 /* : String */;
1683 val* var25 /* : Text */;
1684 var_o = p0;
1685 {
1686 var1 = ((val*(*)(val* self))(var_o->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_o); /* to_s on <var_o:Text>*/
1687 }
1688 var_s = var1;
1689 {
1690 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__byte_length]))(var_s); /* byte_length on <var_s:String>*/
1691 }
1692 var_slen = var2;
1693 /* <var_s:String> isa Concat */
1694 cltype = type_core__ropes__Concat.color;
1695 idtype = type_core__ropes__Concat.id;
1696 if(cltype >= var_s->type->table_size) {
1697 var3 = 0;
1698 } else {
1699 var3 = var_s->type->type_table[cltype] == idtype;
1700 }
1701 if (var3){
1702 var4 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1703 {
1704 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_core__ropes__Concat__left_61d]))(var4, self); /* left= on <var4:Concat>*/
1705 }
1706 {
1707 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_core__ropes__Concat__right_61d]))(var4, var_s); /* right= on <var4:Concat>*/
1708 }
1709 {
1710 ((void(*)(val* self))(var4->class->vft[COLOR_core__kernel__Object__init]))(var4); /* init on <var4:Concat>*/
1711 }
1712 var = var4;
1713 goto RET_LABEL;
1714 } else {
1715 var5 = self->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <self:Concat> */
1716 if (unlikely(var5 == NULL)) {
1717 if(catchStack.cursor >= 0){
1718 longjmp(catchStack.envs[catchStack.cursor], 1);
1719 }
1720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1721 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 219);
1722 fatal_exit(1);
1723 }
1724 var_r = var5;
1725 {
1726 var6 = ((long(*)(val* self))(var_r->class->vft[COLOR_core__abstract_text__Text__byte_length]))(var_r); /* byte_length on <var_r:String>*/
1727 }
1728 var_rlen = var6;
1729 {
1730 { /* Inline kernel$Int$+ (var_rlen,var_slen) on <var_rlen:Int> */
1731 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
1732 /* <var_slen:Int> isa OTHER */
1733 var9 = 1; /* easy <var_slen:Int> isa OTHER*/
1734 if (unlikely(!var9)) {
1735 var_class_name = type_core__Int.name;
1736 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1737 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1738 fatal_exit(1);
1739 }
1740 var12 = var_rlen + var_slen;
1741 var7 = var12;
1742 goto RET_LABEL8;
1743 RET_LABEL8:(void)0;
1744 }
1745 }
1746 var13 = glob_sys;
1747 {
1748 var14 = core__ropes___Sys___maxlen(var13);
1749 }
1750 {
1751 { /* Inline kernel$Int$> (var7,var14) on <var7:Int> */
1752 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
1753 /* <var14:Int> isa OTHER */
1754 var17 = 1; /* easy <var14:Int> isa OTHER*/
1755 if (unlikely(!var17)) {
1756 var_class_name20 = type_core__Int.name;
1757 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
1758 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1759 fatal_exit(1);
1760 }
1761 var21 = var7 > var14;
1762 var15 = var21;
1763 goto RET_LABEL16;
1764 RET_LABEL16:(void)0;
1765 }
1766 }
1767 if (var15){
1768 var22 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1769 {
1770 ((void(*)(val* self, val* p0))(var22->class->vft[COLOR_core__ropes__Concat__left_61d]))(var22, self); /* left= on <var22:Concat>*/
1771 }
1772 {
1773 ((void(*)(val* self, val* p0))(var22->class->vft[COLOR_core__ropes__Concat__right_61d]))(var22, var_s); /* right= on <var22:Concat>*/
1774 }
1775 {
1776 ((void(*)(val* self))(var22->class->vft[COLOR_core__kernel__Object__init]))(var22); /* init on <var22:Concat>*/
1777 }
1778 var = var22;
1779 goto RET_LABEL;
1780 } else {
1781 }
1782 var23 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
1783 var24 = self->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <self:Concat> */
1784 if (unlikely(var24 == NULL)) {
1785 if(catchStack.cursor >= 0){
1786 longjmp(catchStack.envs[catchStack.cursor], 1);
1787 }
1788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1789 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 222);
1790 fatal_exit(1);
1791 }
1792 {
1793 var25 = ((val*(*)(val* self, val* p0))(var_r->class->vft[COLOR_core__abstract_text__Text___43d]))(var_r, var_s); /* + on <var_r:String>*/
1794 }
1795 {
1796 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__Concat__left_61d]))(var23, var24); /* left= on <var23:Concat>*/
1797 }
1798 {
1799 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__Concat__right_61d]))(var23, var25); /* right= on <var23:Concat>*/
1800 }
1801 {
1802 ((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on <var23:Concat>*/
1803 }
1804 var = var23;
1805 goto RET_LABEL;
1806 }
1807 RET_LABEL:;
1808 return var;
1809 }
1810 /* method ropes$Concat$balance for (self: Concat): String */
1811 val* core__ropes___core__ropes__Concat___balance(val* self) {
1812 val* var /* : String */;
1813 val* var1 /* : Array[String] */;
1814 val* var_children /* var children: Array[String] */;
1815 val* var2 /* : RopeCharIteratorPiece */;
1816 val* var_iter /* var iter: nullable RopeCharIteratorPiece */;
1817 short int var3 /* : Bool */;
1818 short int var4 /* : Bool */;
1819 val* var_other /* var other: nullable Object */;
1820 short int var6 /* : Bool */;
1821 short int var8 /* : Bool */;
1822 val* var9 /* : String */;
1823 val* var11 /* : String */;
1824 val* var_rnod /* var rnod: String */;
1825 short int var12 /* : Bool */;
1826 int cltype;
1827 int idtype;
1828 short int var13 /* : Bool */;
1829 val* var14 /* : nullable RopeCharIteratorPiece */;
1830 val* var16 /* : nullable RopeCharIteratorPiece */;
1831 short int var18 /* : Bool */;
1832 short int var20 /* : Bool */;
1833 short int var21 /* : Bool */;
1834 val* var23 /* : RopeCharIteratorPiece */;
1835 val* var24 /* : String */;
1836 short int var25 /* : Bool */;
1837 short int var27 /* : Bool */;
1838 short int var28 /* : Bool */;
1839 val* var30 /* : RopeCharIteratorPiece */;
1840 val* var31 /* : String */;
1841 val* var32 /* : nullable RopeCharIteratorPiece */;
1842 val* var34 /* : nullable RopeCharIteratorPiece */;
1843 long var35 /* : Int */;
1844 long var37 /* : Int */;
1845 val* var38 /* : String */;
1846 var1 = NEW_core__Array(&type_core__Array__core__String);
1847 {
1848 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[String]>*/
1849 }
1850 var_children = var1;
1851 var2 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
1852 {
1853 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var2, self); /* node= on <var2:RopeCharIteratorPiece>*/
1854 }
1855 {
1856 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var2, 0); /* ldone= on <var2:RopeCharIteratorPiece>*/
1857 }
1858 {
1859 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var2, 0); /* rdone= on <var2:RopeCharIteratorPiece>*/
1860 }
1861 {
1862 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var2, ((val*)NULL)); /* prev= on <var2:RopeCharIteratorPiece>*/
1863 }
1864 {
1865 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:RopeCharIteratorPiece>*/
1866 }
1867 var_iter = var2;
1868 for(;;) {
1869 if (var_iter == NULL) {
1870 var3 = 1; /* is null */
1871 } else {
1872 var3 = 0; /* arg is null but recv is not */
1873 }
1874 if (0) {
1875 { /* Inline kernel$Object$== (var_iter,((val*)NULL)) on <var_iter:nullable RopeCharIteratorPiece> */
1876 var_other = ((val*)NULL);
1877 {
1878 { /* Inline kernel$Object$is_same_instance (var_iter,var_other) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1879 var8 = var_iter == var_other;
1880 var6 = var8;
1881 goto RET_LABEL7;
1882 RET_LABEL7:(void)0;
1883 }
1884 }
1885 var4 = var6;
1886 goto RET_LABEL5;
1887 RET_LABEL5:(void)0;
1888 }
1889 var3 = var4;
1890 }
1891 if (var3){
1892 goto BREAK_label;
1893 } else {
1894 }
1895 {
1896 { /* Inline ropes$RopeCharIteratorPiece$node (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1897 var11 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1898 if (unlikely(var11 == NULL)) {
1899 if(catchStack.cursor >= 0){
1900 longjmp(catchStack.envs[catchStack.cursor], 1);
1901 }
1902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
1903 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 322);
1904 fatal_exit(1);
1905 }
1906 var9 = var11;
1907 RET_LABEL10:(void)0;
1908 }
1909 }
1910 var_rnod = var9;
1911 /* <var_rnod:String> isa Concat */
1912 cltype = type_core__ropes__Concat.color;
1913 idtype = type_core__ropes__Concat.id;
1914 if(cltype >= var_rnod->type->table_size) {
1915 var12 = 0;
1916 } else {
1917 var12 = var_rnod->type->type_table[cltype] == idtype;
1918 }
1919 var13 = !var12;
1920 if (var13){
1921 {
1922 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_children, var_rnod); /* Direct call array$AbstractArray$push on <var_children:Array[String]>*/
1923 }
1924 {
1925 { /* Inline ropes$RopeCharIteratorPiece$prev (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1926 var16 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1927 var14 = var16;
1928 RET_LABEL15:(void)0;
1929 }
1930 }
1931 var_iter = var14;
1932 goto BREAK_label17;
1933 } else {
1934 }
1935 {
1936 { /* Inline ropes$RopeCharIteratorPiece$ldone (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1937 var20 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1938 var18 = var20;
1939 RET_LABEL19:(void)0;
1940 }
1941 }
1942 var21 = !var18;
1943 if (var21){
1944 {
1945 { /* Inline ropes$RopeCharIteratorPiece$ldone= (var_iter,1) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1946 var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1947 RET_LABEL22:(void)0;
1948 }
1949 }
1950 var23 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
1951 var24 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
1952 if (unlikely(var24 == NULL)) {
1953 if(catchStack.cursor >= 0){
1954 longjmp(catchStack.envs[catchStack.cursor], 1);
1955 }
1956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1957 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 254);
1958 fatal_exit(1);
1959 }
1960 {
1961 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var23, var24); /* node= on <var23:RopeCharIteratorPiece>*/
1962 }
1963 {
1964 ((void(*)(val* self, short int p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var23, 0); /* ldone= on <var23:RopeCharIteratorPiece>*/
1965 }
1966 {
1967 ((void(*)(val* self, short int p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var23, 0); /* rdone= on <var23:RopeCharIteratorPiece>*/
1968 }
1969 {
1970 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var23, var_iter); /* prev= on <var23:RopeCharIteratorPiece>*/
1971 }
1972 {
1973 ((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on <var23:RopeCharIteratorPiece>*/
1974 }
1975 var_iter = var23;
1976 } else {
1977 {
1978 { /* Inline ropes$RopeCharIteratorPiece$rdone (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1979 var27 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1980 var25 = var27;
1981 RET_LABEL26:(void)0;
1982 }
1983 }
1984 var28 = !var25;
1985 if (var28){
1986 {
1987 { /* Inline ropes$RopeCharIteratorPiece$rdone= (var_iter,1) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1988 var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
1989 RET_LABEL29:(void)0;
1990 }
1991 }
1992 var30 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
1993 var31 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
1994 if (unlikely(var31 == NULL)) {
1995 if(catchStack.cursor >= 0){
1996 longjmp(catchStack.envs[catchStack.cursor], 1);
1997 }
1998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1999 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 257);
2000 fatal_exit(1);
2001 }
2002 {
2003 ((void(*)(val* self, val* p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var30, var31); /* node= on <var30:RopeCharIteratorPiece>*/
2004 }
2005 {
2006 ((void(*)(val* self, short int p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var30, 0); /* ldone= on <var30:RopeCharIteratorPiece>*/
2007 }
2008 {
2009 ((void(*)(val* self, short int p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var30, 0); /* rdone= on <var30:RopeCharIteratorPiece>*/
2010 }
2011 {
2012 ((void(*)(val* self, val* p0))(var30->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var30, var_iter); /* prev= on <var30:RopeCharIteratorPiece>*/
2013 }
2014 {
2015 ((void(*)(val* self))(var30->class->vft[COLOR_core__kernel__Object__init]))(var30); /* init on <var30:RopeCharIteratorPiece>*/
2016 }
2017 var_iter = var30;
2018 } else {
2019 {
2020 { /* Inline ropes$RopeCharIteratorPiece$prev (var_iter) on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2021 var34 = var_iter->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_iter:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
2022 var32 = var34;
2023 RET_LABEL33:(void)0;
2024 }
2025 }
2026 var_iter = var32;
2027 }
2028 }
2029 BREAK_label17: (void)0;
2030 }
2031 BREAK_label: (void)0;
2032 {
2033 { /* Inline array$AbstractArrayRead$length (var_children) on <var_children:Array[String]> */
2034 var37 = var_children->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_children:Array[String]> */
2035 var35 = var37;
2036 RET_LABEL36:(void)0;
2037 }
2038 }
2039 {
2040 var38 = core__ropes___core__ropes__Concat___recurse_balance(self, var_children, var35);
2041 }
2042 var = var38;
2043 goto RET_LABEL;
2044 RET_LABEL:;
2045 return var;
2046 }
2047 /* method ropes$Concat$recurse_balance for (self: Concat, Array[String], Int): String */
2048 val* core__ropes___core__ropes__Concat___recurse_balance(val* self, val* p0, long p1) {
2049 val* var /* : String */;
2050 val* var_nodes /* var nodes: Array[String] */;
2051 long var_len /* var len: Int */;
2052 long var_finpos /* var finpos: Int */;
2053 long var_stpos /* var stpos: Int */;
2054 short int var1 /* : Bool */;
2055 short int var3 /* : Bool */;
2056 int cltype;
2057 int idtype;
2058 const char* var_class_name;
2059 short int var4 /* : Bool */;
2060 long var5 /* : Int */;
2061 short int var7 /* : Bool */;
2062 int cltype8;
2063 int idtype9;
2064 const char* var_class_name10;
2065 long var11 /* : Int */;
2066 short int var12 /* : Bool */;
2067 short int var14 /* : Bool */;
2068 int cltype15;
2069 int idtype16;
2070 const char* var_class_name17;
2071 short int var18 /* : Bool */;
2072 val* var19 /* : Concat */;
2073 val* var20 /* : nullable Object */;
2074 long var21 /* : Int */;
2075 short int var23 /* : Bool */;
2076 int cltype24;
2077 int idtype25;
2078 const char* var_class_name26;
2079 long var27 /* : Int */;
2080 val* var28 /* : nullable Object */;
2081 long var29 /* : Int */;
2082 short int var31 /* : Bool */;
2083 int cltype32;
2084 int idtype33;
2085 const char* var_class_name34;
2086 long var35 /* : Int */;
2087 val* var36 /* : nullable Object */;
2088 long var37 /* : Int */;
2089 short int var39 /* : Bool */;
2090 int cltype40;
2091 int idtype41;
2092 const char* var_class_name42;
2093 long var43 /* : Int */;
2094 long var44 /* : Int */;
2095 short int var46 /* : Bool */;
2096 int cltype47;
2097 int idtype48;
2098 const char* var_class_name49;
2099 long var50 /* : Int */;
2100 short int var51 /* : Bool */;
2101 short int var53 /* : Bool */;
2102 val* var54 /* : nullable Object */;
2103 val* var55 /* : String */;
2104 var_nodes = p0;
2105 var_len = p1;
2106 var_finpos = 0l;
2107 var_stpos = 0l;
2108 for(;;) {
2109 {
2110 { /* Inline kernel$Int$< (var_stpos,var_len) on <var_stpos:Int> */
2111 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
2112 /* <var_len:Int> isa OTHER */
2113 var3 = 1; /* easy <var_len:Int> isa OTHER*/
2114 if (unlikely(!var3)) {
2115 var_class_name = type_core__Int.name;
2116 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2117 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2118 fatal_exit(1);
2119 }
2120 var4 = var_stpos < var_len;
2121 var1 = var4;
2122 goto RET_LABEL2;
2123 RET_LABEL2:(void)0;
2124 }
2125 }
2126 if (var1){
2127 {
2128 { /* Inline kernel$Int$- (var_len,var_stpos) on <var_len:Int> */
2129 /* Covariant cast for argument 0 (i) <var_stpos:Int> isa OTHER */
2130 /* <var_stpos:Int> isa OTHER */
2131 var7 = 1; /* easy <var_stpos:Int> isa OTHER*/
2132 if (unlikely(!var7)) {
2133 var_class_name10 = type_core__Int.name;
2134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
2135 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2136 fatal_exit(1);
2137 }
2138 var11 = var_len - var_stpos;
2139 var5 = var11;
2140 goto RET_LABEL6;
2141 RET_LABEL6:(void)0;
2142 }
2143 }
2144 {
2145 { /* Inline kernel$Int$> (var5,1l) on <var5:Int> */
2146 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2147 /* <1l:Int> isa OTHER */
2148 var14 = 1; /* easy <1l:Int> isa OTHER*/
2149 if (unlikely(!var14)) {
2150 var_class_name17 = type_core__Int.name;
2151 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2152 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2153 fatal_exit(1);
2154 }
2155 var18 = var5 > 1l;
2156 var12 = var18;
2157 goto RET_LABEL13;
2158 RET_LABEL13:(void)0;
2159 }
2160 }
2161 if (var12){
2162 var19 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
2163 {
2164 var20 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, var_stpos);
2165 }
2166 {
2167 { /* Inline kernel$Int$+ (var_stpos,1l) on <var_stpos:Int> */
2168 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2169 /* <1l:Int> isa OTHER */
2170 var23 = 1; /* easy <1l:Int> isa OTHER*/
2171 if (unlikely(!var23)) {
2172 var_class_name26 = type_core__Int.name;
2173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
2174 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2175 fatal_exit(1);
2176 }
2177 var27 = var_stpos + 1l;
2178 var21 = var27;
2179 goto RET_LABEL22;
2180 RET_LABEL22:(void)0;
2181 }
2182 }
2183 {
2184 var28 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, var21);
2185 }
2186 {
2187 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_core__ropes__Concat__left_61d]))(var19, var20); /* left= on <var19:Concat>*/
2188 }
2189 {
2190 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_core__ropes__Concat__right_61d]))(var19, var28); /* right= on <var19:Concat>*/
2191 }
2192 {
2193 ((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:Concat>*/
2194 }
2195 {
2196 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_nodes, var_finpos, var19); /* Direct call array$Array$[]= on <var_nodes:Array[String]>*/
2197 }
2198 {
2199 { /* Inline kernel$Int$+ (var_stpos,2l) on <var_stpos:Int> */
2200 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
2201 /* <2l:Int> isa OTHER */
2202 var31 = 1; /* easy <2l:Int> isa OTHER*/
2203 if (unlikely(!var31)) {
2204 var_class_name34 = type_core__Int.name;
2205 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
2206 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2207 fatal_exit(1);
2208 }
2209 var35 = var_stpos + 2l;
2210 var29 = var35;
2211 goto RET_LABEL30;
2212 RET_LABEL30:(void)0;
2213 }
2214 }
2215 var_stpos = var29;
2216 } else {
2217 {
2218 var36 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, var_stpos);
2219 }
2220 {
2221 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_nodes, var_finpos, var36); /* Direct call array$Array$[]= on <var_nodes:Array[String]>*/
2222 }
2223 {
2224 { /* Inline kernel$Int$+ (var_stpos,1l) on <var_stpos:Int> */
2225 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2226 /* <1l:Int> isa OTHER */
2227 var39 = 1; /* easy <1l:Int> isa OTHER*/
2228 if (unlikely(!var39)) {
2229 var_class_name42 = type_core__Int.name;
2230 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
2231 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2232 fatal_exit(1);
2233 }
2234 var43 = var_stpos + 1l;
2235 var37 = var43;
2236 goto RET_LABEL38;
2237 RET_LABEL38:(void)0;
2238 }
2239 }
2240 var_stpos = var37;
2241 }
2242 {
2243 { /* Inline kernel$Int$+ (var_finpos,1l) on <var_finpos:Int> */
2244 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2245 /* <1l:Int> isa OTHER */
2246 var46 = 1; /* easy <1l:Int> isa OTHER*/
2247 if (unlikely(!var46)) {
2248 var_class_name49 = type_core__Int.name;
2249 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
2250 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2251 fatal_exit(1);
2252 }
2253 var50 = var_finpos + 1l;
2254 var44 = var50;
2255 goto RET_LABEL45;
2256 RET_LABEL45:(void)0;
2257 }
2258 }
2259 var_finpos = var44;
2260 } else {
2261 goto BREAK_label;
2262 }
2263 }
2264 BREAK_label: (void)0;
2265 {
2266 { /* Inline kernel$Int$== (var_finpos,1l) on <var_finpos:Int> */
2267 var53 = var_finpos == 1l;
2268 var51 = var53;
2269 goto RET_LABEL52;
2270 RET_LABEL52:(void)0;
2271 }
2272 }
2273 if (var51){
2274 {
2275 var54 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_nodes, 0l);
2276 }
2277 var = var54;
2278 goto RET_LABEL;
2279 } else {
2280 }
2281 {
2282 var55 = core__ropes___core__ropes__Concat___recurse_balance(self, var_nodes, var_finpos);
2283 }
2284 var = var55;
2285 goto RET_LABEL;
2286 RET_LABEL:;
2287 return var;
2288 }
2289 /* method ropes$FlatString$+ for (self: FlatString, Text): String */
2290 val* core__ropes___FlatString___core__abstract_text__Text___43d(val* self, val* p0) {
2291 val* var /* : String */;
2292 val* var_o /* var o: Text */;
2293 val* var1 /* : String */;
2294 val* var_s /* var s: String */;
2295 long var2 /* : Int */;
2296 long var_slen /* var slen: Int */;
2297 long var3 /* : Int */;
2298 long var_mlen /* var mlen: Int */;
2299 short int var4 /* : Bool */;
2300 short int var6 /* : Bool */;
2301 short int var7 /* : Bool */;
2302 short int var9 /* : Bool */;
2303 long var10 /* : Int */;
2304 short int var12 /* : Bool */;
2305 int cltype;
2306 int idtype;
2307 const char* var_class_name;
2308 long var13 /* : Int */;
2309 long var_nlen /* var nlen: Int */;
2310 short int var14 /* : Bool */;
2311 int cltype15;
2312 int idtype16;
2313 val* var17 /* : Sys */;
2314 long var18 /* : Int */;
2315 short int var19 /* : Bool */;
2316 short int var21 /* : Bool */;
2317 int cltype22;
2318 int idtype23;
2319 const char* var_class_name24;
2320 short int var25 /* : Bool */;
2321 val* var26 /* : Concat */;
2322 char* var27 /* : CString */;
2323 char* var_mits /* var mits: CString */;
2324 long var28 /* : Int */;
2325 long var_sifrom /* var sifrom: Int */;
2326 long var29 /* : Int */;
2327 long var_mifrom /* var mifrom: Int */;
2328 char* var30 /* : CString */;
2329 char* var_sits /* var sits: CString */;
2330 static char* varoncenew;
2331 static int varoncenew_guard;
2332 char* var31 /* : CString */;
2333 char* var32 /* : CString */;
2334 long var33 /* : Int */;
2335 short int var35 /* : Bool */;
2336 int cltype36;
2337 int idtype37;
2338 const char* var_class_name38;
2339 long var39 /* : Int */;
2340 char* var40 /* : CString */;
2341 char* var42 /* : CString */;
2342 char* var_ns /* var ns: CString */;
2343 static val* varoncenew45;
2344 static int varoncenew45_guard;
2345 val* var46 /* : FlatString */;
2346 val* var47 /* : FlatString */;
2347 long var48 /* : Int */;
2348 long var50 /* : Int */;
2349 long var51 /* : Int */;
2350 long var53 /* : Int */;
2351 long var54 /* : Int */;
2352 short int var56 /* : Bool */;
2353 int cltype57;
2354 int idtype58;
2355 const char* var_class_name59;
2356 long var60 /* : Int */;
2357 val* var61 /* : FlatString */;
2358 short int var62 /* : Bool */;
2359 int cltype63;
2360 int idtype64;
2361 val* var65 /* : String */;
2362 val* var_sl /* var sl: String */;
2363 long var66 /* : Int */;
2364 long var_sllen /* var sllen: Int */;
2365 long var67 /* : Int */;
2366 short int var69 /* : Bool */;
2367 int cltype70;
2368 int idtype71;
2369 const char* var_class_name72;
2370 long var73 /* : Int */;
2371 val* var74 /* : Sys */;
2372 long var75 /* : Int */;
2373 short int var76 /* : Bool */;
2374 short int var78 /* : Bool */;
2375 int cltype79;
2376 int idtype80;
2377 const char* var_class_name81;
2378 short int var82 /* : Bool */;
2379 val* var83 /* : Concat */;
2380 val* var84 /* : Concat */;
2381 val* var85 /* : String */;
2382 val* var86 /* : String */;
2383 var_o = p0;
2384 {
2385 var1 = ((val*(*)(val* self))(var_o->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_o); /* to_s on <var_o:Text>*/
2386 }
2387 var_s = var1;
2388 {
2389 var2 = ((long(*)(val* self))(var_s->class->vft[COLOR_core__abstract_text__Text__byte_length]))(var_s); /* byte_length on <var_s:String>*/
2390 }
2391 var_slen = var2;
2392 var3 = self->attrs[COLOR_core__abstract_text__FlatText___byte_length].l; /* _byte_length on <self:FlatString> */
2393 var_mlen = var3;
2394 {
2395 { /* Inline kernel$Int$== (var_slen,0l) on <var_slen:Int> */
2396 var6 = var_slen == 0l;
2397 var4 = var6;
2398 goto RET_LABEL5;
2399 RET_LABEL5:(void)0;
2400 }
2401 }
2402 if (var4){
2403 var = self;
2404 goto RET_LABEL;
2405 } else {
2406 }
2407 {
2408 { /* Inline kernel$Int$== (var_mlen,0l) on <var_mlen:Int> */
2409 var9 = var_mlen == 0l;
2410 var7 = var9;
2411 goto RET_LABEL8;
2412 RET_LABEL8:(void)0;
2413 }
2414 }
2415 if (var7){
2416 var = var_s;
2417 goto RET_LABEL;
2418 } else {
2419 }
2420 {
2421 { /* Inline kernel$Int$+ (var_slen,var_mlen) on <var_slen:Int> */
2422 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
2423 /* <var_mlen:Int> isa OTHER */
2424 var12 = 1; /* easy <var_mlen:Int> isa OTHER*/
2425 if (unlikely(!var12)) {
2426 var_class_name = type_core__Int.name;
2427 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2428 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2429 fatal_exit(1);
2430 }
2431 var13 = var_slen + var_mlen;
2432 var10 = var13;
2433 goto RET_LABEL11;
2434 RET_LABEL11:(void)0;
2435 }
2436 }
2437 var_nlen = var10;
2438 /* <var_s:String> isa FlatString */
2439 cltype15 = type_core__FlatString.color;
2440 idtype16 = type_core__FlatString.id;
2441 if(cltype15 >= var_s->type->table_size) {
2442 var14 = 0;
2443 } else {
2444 var14 = var_s->type->type_table[cltype15] == idtype16;
2445 }
2446 if (var14){
2447 var17 = glob_sys;
2448 {
2449 var18 = core__ropes___Sys___maxlen(var17);
2450 }
2451 {
2452 { /* Inline kernel$Int$> (var_nlen,var18) on <var_nlen:Int> */
2453 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
2454 /* <var18:Int> isa OTHER */
2455 var21 = 1; /* easy <var18:Int> isa OTHER*/
2456 if (unlikely(!var21)) {
2457 var_class_name24 = type_core__Int.name;
2458 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
2459 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2460 fatal_exit(1);
2461 }
2462 var25 = var_nlen > var18;
2463 var19 = var25;
2464 goto RET_LABEL20;
2465 RET_LABEL20:(void)0;
2466 }
2467 }
2468 if (var19){
2469 var26 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
2470 {
2471 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_core__ropes__Concat__left_61d]))(var26, self); /* left= on <var26:Concat>*/
2472 }
2473 {
2474 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_core__ropes__Concat__right_61d]))(var26, var_s); /* right= on <var26:Concat>*/
2475 }
2476 {
2477 ((void(*)(val* self))(var26->class->vft[COLOR_core__kernel__Object__init]))(var26); /* init on <var26:Concat>*/
2478 }
2479 var = var26;
2480 goto RET_LABEL;
2481 } else {
2482 }
2483 var27 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
2484 var_mits = var27;
2485 var28 = var_s->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <var_s:String(FlatString)> */
2486 var_sifrom = var28;
2487 var29 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
2488 var_mifrom = var29;
2489 var30 = var_s->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_s:String(FlatString)> */
2490 var_sits = var30;
2491 if (likely(varoncenew_guard)) {
2492 var31 = varoncenew;
2493 } else {
2494 var32 = NULL/*special!*/;
2495 var31 = var32;
2496 varoncenew = var31;
2497 varoncenew_guard = 1;
2498 }
2499 {
2500 { /* Inline kernel$Int$+ (var_nlen,1l) on <var_nlen:Int> */
2501 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2502 /* <1l:Int> isa OTHER */
2503 var35 = 1; /* easy <1l:Int> isa OTHER*/
2504 if (unlikely(!var35)) {
2505 var_class_name38 = type_core__Int.name;
2506 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
2507 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2508 fatal_exit(1);
2509 }
2510 var39 = var_nlen + 1l;
2511 var33 = var39;
2512 goto RET_LABEL34;
2513 RET_LABEL34:(void)0;
2514 }
2515 }
2516 {
2517 { /* Inline native$CString$new (var31,var33) on <var31:CString> */
2518 var42 = (char*)nit_alloc(var33);
2519 var40 = var42;
2520 goto RET_LABEL41;
2521 RET_LABEL41:(void)0;
2522 }
2523 }
2524 var_ns = var40;
2525 {
2526 { /* Inline native$CString$copy_to (var_mits,var_ns,var_mlen,var_mifrom,0l) on <var_mits:CString> */
2527 memmove(var_ns+0l,var_mits+var_mifrom,var_mlen);
2528 RET_LABEL43:(void)0;
2529 }
2530 }
2531 {
2532 { /* Inline native$CString$copy_to (var_sits,var_ns,var_slen,var_sifrom,var_mlen) on <var_sits:CString> */
2533 memmove(var_ns+var_mlen,var_sits+var_sifrom,var_slen);
2534 RET_LABEL44:(void)0;
2535 }
2536 }
2537 if (likely(varoncenew45_guard)) {
2538 var46 = varoncenew45;
2539 } else {
2540 var47 = NEW_core__FlatString(&type_core__FlatString);
2541 var46 = var47;
2542 varoncenew45 = var46;
2543 varoncenew45_guard = 1;
2544 }
2545 {
2546 { /* Inline abstract_text$FlatText$length (self) on <self:FlatString> */
2547 var50 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatString> */
2548 var48 = var50;
2549 RET_LABEL49:(void)0;
2550 }
2551 }
2552 {
2553 { /* Inline abstract_text$FlatText$length (var_s) on <var_s:String(FlatString)> */
2554 var53 = var_s->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var_s:String(FlatString)> */
2555 var51 = var53;
2556 RET_LABEL52:(void)0;
2557 }
2558 }
2559 {
2560 { /* Inline kernel$Int$+ (var48,var51) on <var48:Int> */
2561 /* Covariant cast for argument 0 (i) <var51:Int> isa OTHER */
2562 /* <var51:Int> isa OTHER */
2563 var56 = 1; /* easy <var51:Int> isa OTHER*/
2564 if (unlikely(!var56)) {
2565 var_class_name59 = type_core__Int.name;
2566 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
2567 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2568 fatal_exit(1);
2569 }
2570 var60 = var48 + var51;
2571 var54 = var60;
2572 goto RET_LABEL55;
2573 RET_LABEL55:(void)0;
2574 }
2575 }
2576 {
2577 var61 = core___core__FlatString___full(var46, var_ns, var_nlen, 0l, var54);
2578 }
2579 var = var61;
2580 goto RET_LABEL;
2581 } else {
2582 /* <var_s:String> isa Concat */
2583 cltype63 = type_core__ropes__Concat.color;
2584 idtype64 = type_core__ropes__Concat.id;
2585 if(cltype63 >= var_s->type->table_size) {
2586 var62 = 0;
2587 } else {
2588 var62 = var_s->type->type_table[cltype63] == idtype64;
2589 }
2590 if (var62){
2591 var65 = var_s->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_s:String(Concat)> */
2592 if (unlikely(var65 == NULL)) {
2593 if(catchStack.cursor >= 0){
2594 longjmp(catchStack.envs[catchStack.cursor], 1);
2595 }
2596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
2597 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 310);
2598 fatal_exit(1);
2599 }
2600 var_sl = var65;
2601 {
2602 var66 = ((long(*)(val* self))(var_sl->class->vft[COLOR_core__abstract_text__Text__byte_length]))(var_sl); /* byte_length on <var_sl:String>*/
2603 }
2604 var_sllen = var66;
2605 {
2606 { /* Inline kernel$Int$+ (var_sllen,var_mlen) on <var_sllen:Int> */
2607 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
2608 /* <var_mlen:Int> isa OTHER */
2609 var69 = 1; /* easy <var_mlen:Int> isa OTHER*/
2610 if (unlikely(!var69)) {
2611 var_class_name72 = type_core__Int.name;
2612 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
2613 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2614 fatal_exit(1);
2615 }
2616 var73 = var_sllen + var_mlen;
2617 var67 = var73;
2618 goto RET_LABEL68;
2619 RET_LABEL68:(void)0;
2620 }
2621 }
2622 var74 = glob_sys;
2623 {
2624 var75 = core__ropes___Sys___maxlen(var74);
2625 }
2626 {
2627 { /* Inline kernel$Int$> (var67,var75) on <var67:Int> */
2628 /* Covariant cast for argument 0 (i) <var75:Int> isa OTHER */
2629 /* <var75:Int> isa OTHER */
2630 var78 = 1; /* easy <var75:Int> isa OTHER*/
2631 if (unlikely(!var78)) {
2632 var_class_name81 = type_core__Int.name;
2633 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81);
2634 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2635 fatal_exit(1);
2636 }
2637 var82 = var67 > var75;
2638 var76 = var82;
2639 goto RET_LABEL77;
2640 RET_LABEL77:(void)0;
2641 }
2642 }
2643 if (var76){
2644 var83 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
2645 {
2646 ((void(*)(val* self, val* p0))(var83->class->vft[COLOR_core__ropes__Concat__left_61d]))(var83, self); /* left= on <var83:Concat>*/
2647 }
2648 {
2649 ((void(*)(val* self, val* p0))(var83->class->vft[COLOR_core__ropes__Concat__right_61d]))(var83, var_s); /* right= on <var83:Concat>*/
2650 }
2651 {
2652 ((void(*)(val* self))(var83->class->vft[COLOR_core__kernel__Object__init]))(var83); /* init on <var83:Concat>*/
2653 }
2654 var = var83;
2655 goto RET_LABEL;
2656 } else {
2657 }
2658 var84 = NEW_core__ropes__Concat(&type_core__ropes__Concat);
2659 {
2660 var85 = core__ropes___FlatString___core__abstract_text__Text___43d(self, var_sl);
2661 }
2662 var86 = var_s->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_s:String(Concat)> */
2663 if (unlikely(var86 == NULL)) {
2664 if(catchStack.cursor >= 0){
2665 longjmp(catchStack.envs[catchStack.cursor], 1);
2666 }
2667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
2668 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 313);
2669 fatal_exit(1);
2670 }
2671 {
2672 ((void(*)(val* self, val* p0))(var84->class->vft[COLOR_core__ropes__Concat__left_61d]))(var84, var85); /* left= on <var84:Concat>*/
2673 }
2674 {
2675 ((void(*)(val* self, val* p0))(var84->class->vft[COLOR_core__ropes__Concat__right_61d]))(var84, var86); /* right= on <var84:Concat>*/
2676 }
2677 {
2678 ((void(*)(val* self))(var84->class->vft[COLOR_core__kernel__Object__init]))(var84); /* init on <var84:Concat>*/
2679 }
2680 var = var84;
2681 goto RET_LABEL;
2682 } else {
2683 if(catchStack.cursor >= 0){
2684 longjmp(catchStack.envs[catchStack.cursor], 1);
2685 }
2686 PRINT_ERROR("Runtime error: %s", "Aborted");
2687 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 315);
2688 fatal_exit(1);
2689 }
2690 }
2691 RET_LABEL:;
2692 return var;
2693 }
2694 /* method ropes$RopeCharIteratorPiece$node for (self: RopeCharIteratorPiece): String */
2695 val* core__ropes___core__ropes__RopeCharIteratorPiece___node(val* self) {
2696 val* var /* : String */;
2697 val* var1 /* : String */;
2698 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <self:RopeCharIteratorPiece> */
2699 if (unlikely(var1 == NULL)) {
2700 if(catchStack.cursor >= 0){
2701 longjmp(catchStack.envs[catchStack.cursor], 1);
2702 }
2703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
2704 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 322);
2705 fatal_exit(1);
2706 }
2707 var = var1;
2708 RET_LABEL:;
2709 return var;
2710 }
2711 /* method ropes$RopeCharIteratorPiece$node= for (self: RopeCharIteratorPiece, String) */
2712 void core__ropes___core__ropes__RopeCharIteratorPiece___node_61d(val* self, val* p0) {
2713 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val = p0; /* _node on <self:RopeCharIteratorPiece> */
2714 RET_LABEL:;
2715 }
2716 /* method ropes$RopeCharIteratorPiece$ldone for (self: RopeCharIteratorPiece): Bool */
2717 short int core__ropes___core__ropes__RopeCharIteratorPiece___ldone(val* self) {
2718 short int var /* : Bool */;
2719 short int var1 /* : Bool */;
2720 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <self:RopeCharIteratorPiece> */
2721 var = var1;
2722 RET_LABEL:;
2723 return var;
2724 }
2725 /* method ropes$RopeCharIteratorPiece$ldone= for (self: RopeCharIteratorPiece, Bool) */
2726 void core__ropes___core__ropes__RopeCharIteratorPiece___ldone_61d(val* self, short int p0) {
2727 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = p0; /* _ldone on <self:RopeCharIteratorPiece> */
2728 RET_LABEL:;
2729 }
2730 /* method ropes$RopeCharIteratorPiece$rdone for (self: RopeCharIteratorPiece): Bool */
2731 short int core__ropes___core__ropes__RopeCharIteratorPiece___rdone(val* self) {
2732 short int var /* : Bool */;
2733 short int var1 /* : Bool */;
2734 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <self:RopeCharIteratorPiece> */
2735 var = var1;
2736 RET_LABEL:;
2737 return var;
2738 }
2739 /* method ropes$RopeCharIteratorPiece$rdone= for (self: RopeCharIteratorPiece, Bool) */
2740 void core__ropes___core__ropes__RopeCharIteratorPiece___rdone_61d(val* self, short int p0) {
2741 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = p0; /* _rdone on <self:RopeCharIteratorPiece> */
2742 RET_LABEL:;
2743 }
2744 /* method ropes$RopeCharIteratorPiece$prev for (self: RopeCharIteratorPiece): nullable RopeCharIteratorPiece */
2745 val* core__ropes___core__ropes__RopeCharIteratorPiece___prev(val* self) {
2746 val* var /* : nullable RopeCharIteratorPiece */;
2747 val* var1 /* : nullable RopeCharIteratorPiece */;
2748 var1 = self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <self:RopeCharIteratorPiece> */
2749 var = var1;
2750 RET_LABEL:;
2751 return var;
2752 }
2753 /* method ropes$RopeCharIteratorPiece$prev= for (self: RopeCharIteratorPiece, nullable RopeCharIteratorPiece) */
2754 void core__ropes___core__ropes__RopeCharIteratorPiece___prev_61d(val* self, val* p0) {
2755 self->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val = p0; /* _prev on <self:RopeCharIteratorPiece> */
2756 RET_LABEL:;
2757 }
2758 /* method ropes$RopeCharIteratorPiece$init for (self: RopeCharIteratorPiece) */
2759 void core__ropes___core__ropes__RopeCharIteratorPiece___core__kernel__Object__init(val* self) {
2760 {
2761 ((void(*)(val* self))(self->class->vft[COLOR_core__ropes___core__ropes__RopeCharIteratorPiece___core__kernel__Object__init]))(self); /* init on <self:RopeCharIteratorPiece>*/
2762 }
2763 RET_LABEL:;
2764 }
2765 /* method ropes$RopeCharReverseIterator$ns for (self: RopeCharReverseIterator): String */
2766 val* core__ropes___core__ropes__RopeCharReverseIterator___ns(val* self) {
2767 val* var /* : String */;
2768 val* var1 /* : String */;
2769 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val; /* _ns on <self:RopeCharReverseIterator> */
2770 if (unlikely(var1 == NULL)) {
2771 if(catchStack.cursor >= 0){
2772 longjmp(catchStack.envs[catchStack.cursor], 1);
2773 }
2774 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ns");
2775 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 419);
2776 fatal_exit(1);
2777 }
2778 var = var1;
2779 RET_LABEL:;
2780 return var;
2781 }
2782 /* method ropes$RopeCharReverseIterator$ns= for (self: RopeCharReverseIterator, String) */
2783 void core__ropes___core__ropes__RopeCharReverseIterator___ns_61d(val* self, val* p0) {
2784 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val = p0; /* _ns on <self:RopeCharReverseIterator> */
2785 RET_LABEL:;
2786 }
2787 /* method ropes$RopeCharReverseIterator$pns for (self: RopeCharReverseIterator): Int */
2788 long core__ropes___core__ropes__RopeCharReverseIterator___pns(val* self) {
2789 long var /* : Int */;
2790 long var1 /* : Int */;
2791 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <self:RopeCharReverseIterator> */
2792 var = var1;
2793 RET_LABEL:;
2794 return var;
2795 }
2796 /* method ropes$RopeCharReverseIterator$pns= for (self: RopeCharReverseIterator, Int) */
2797 void core__ropes___core__ropes__RopeCharReverseIterator___pns_61d(val* self, long p0) {
2798 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = p0; /* _pns on <self:RopeCharReverseIterator> */
2799 RET_LABEL:;
2800 }
2801 /* method ropes$RopeCharReverseIterator$pos for (self: RopeCharReverseIterator): Int */
2802 long core__ropes___core__ropes__RopeCharReverseIterator___pos(val* self) {
2803 long var /* : Int */;
2804 long var1 /* : Int */;
2805 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <self:RopeCharReverseIterator> */
2806 var = var1;
2807 RET_LABEL:;
2808 return var;
2809 }
2810 /* method ropes$RopeCharReverseIterator$pos= for (self: RopeCharReverseIterator, Int) */
2811 void core__ropes___core__ropes__RopeCharReverseIterator___pos_61d(val* self, long p0) {
2812 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l = p0; /* _pos on <self:RopeCharReverseIterator> */
2813 RET_LABEL:;
2814 }
2815 /* method ropes$RopeCharReverseIterator$subs for (self: RopeCharReverseIterator): IndexedIterator[String] */
2816 val* core__ropes___core__ropes__RopeCharReverseIterator___subs(val* self) {
2817 val* var /* : IndexedIterator[String] */;
2818 val* var1 /* : IndexedIterator[String] */;
2819 var1 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
2820 if (unlikely(var1 == NULL)) {
2821 if(catchStack.cursor >= 0){
2822 longjmp(catchStack.envs[catchStack.cursor], 1);
2823 }
2824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2825 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 425);
2826 fatal_exit(1);
2827 }
2828 var = var1;
2829 RET_LABEL:;
2830 return var;
2831 }
2832 /* method ropes$RopeCharReverseIterator$subs= for (self: RopeCharReverseIterator, IndexedIterator[String]) */
2833 void core__ropes___core__ropes__RopeCharReverseIterator___subs_61d(val* self, val* p0) {
2834 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val = p0; /* _subs on <self:RopeCharReverseIterator> */
2835 RET_LABEL:;
2836 }
2837 /* method ropes$RopeCharReverseIterator$from for (self: RopeCharReverseIterator, Concat, Int) */
2838 void core__ropes___core__ropes__RopeCharReverseIterator___from(val* self, val* p0, long p1) {
2839 val* var_root /* var root: Concat */;
2840 long var_pos /* var pos: Int */;
2841 val* var /* : ReverseRopeSubstrings */;
2842 val* var4 /* : IndexedIterator[String] */;
2843 val* var6 /* : IndexedIterator[String] */;
2844 val* var7 /* : nullable Object */;
2845 val* var9 /* : IndexedIterator[String] */;
2846 val* var11 /* : IndexedIterator[String] */;
2847 long var12 /* : Int */;
2848 long var13 /* : Int */;
2849 short int var15 /* : Bool */;
2850 int cltype;
2851 int idtype;
2852 const char* var_class_name;
2853 long var16 /* : Int */;
2854 {
2855 { /* Inline kernel$Object$init (self) on <self:RopeCharReverseIterator> */
2856 RET_LABEL1:(void)0;
2857 }
2858 }
2859 var_root = p0;
2860 var_pos = p1;
2861 {
2862 { /* Inline ropes$RopeCharReverseIterator$pos= (self,var_pos) on <self:RopeCharReverseIterator> */
2863 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l = var_pos; /* _pos on <self:RopeCharReverseIterator> */
2864 RET_LABEL2:(void)0;
2865 }
2866 }
2867 var = NEW_core__ropes__ReverseRopeSubstrings(&type_core__ropes__ReverseRopeSubstrings);
2868 {
2869 core__ropes___core__ropes__ReverseRopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes$ReverseRopeSubstrings$from on <var:ReverseRopeSubstrings>*/
2870 }
2871 {
2872 { /* Inline ropes$RopeCharReverseIterator$subs= (self,var) on <self:RopeCharReverseIterator> */
2873 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val = var; /* _subs on <self:RopeCharReverseIterator> */
2874 RET_LABEL3:(void)0;
2875 }
2876 }
2877 {
2878 { /* Inline ropes$RopeCharReverseIterator$subs (self) on <self:RopeCharReverseIterator> */
2879 var6 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
2880 if (unlikely(var6 == NULL)) {
2881 if(catchStack.cursor >= 0){
2882 longjmp(catchStack.envs[catchStack.cursor], 1);
2883 }
2884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2885 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 425);
2886 fatal_exit(1);
2887 }
2888 var4 = var6;
2889 RET_LABEL5:(void)0;
2890 }
2891 }
2892 {
2893 var7 = ((val*(*)(val* self))((((long)var4&3)?class_info[((long)var4&3)]:var4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var4); /* item on <var4:IndexedIterator[String]>*/
2894 }
2895 {
2896 { /* Inline ropes$RopeCharReverseIterator$ns= (self,var7) on <self:RopeCharReverseIterator> */
2897 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val = var7; /* _ns on <self:RopeCharReverseIterator> */
2898 RET_LABEL8:(void)0;
2899 }
2900 }
2901 {
2902 { /* Inline ropes$RopeCharReverseIterator$subs (self) on <self:RopeCharReverseIterator> */
2903 var11 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
2904 if (unlikely(var11 == NULL)) {
2905 if(catchStack.cursor >= 0){
2906 longjmp(catchStack.envs[catchStack.cursor], 1);
2907 }
2908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2909 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 425);
2910 fatal_exit(1);
2911 }
2912 var9 = var11;
2913 RET_LABEL10:(void)0;
2914 }
2915 }
2916 {
2917 var12 = ((long(*)(val* self))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var9); /* index on <var9:IndexedIterator[String]>*/
2918 }
2919 {
2920 { /* Inline kernel$Int$- (var_pos,var12) on <var_pos:Int> */
2921 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
2922 /* <var12:Int> isa OTHER */
2923 var15 = 1; /* easy <var12:Int> isa OTHER*/
2924 if (unlikely(!var15)) {
2925 var_class_name = type_core__Int.name;
2926 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2927 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2928 fatal_exit(1);
2929 }
2930 var16 = var_pos - var12;
2931 var13 = var16;
2932 goto RET_LABEL14;
2933 RET_LABEL14:(void)0;
2934 }
2935 }
2936 {
2937 { /* Inline ropes$RopeCharReverseIterator$pns= (self,var13) on <self:RopeCharReverseIterator> */
2938 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = var13; /* _pns on <self:RopeCharReverseIterator> */
2939 RET_LABEL17:(void)0;
2940 }
2941 }
2942 RET_LABEL:;
2943 }
2944 /* method ropes$RopeCharReverseIterator$index for (self: RopeCharReverseIterator): Int */
2945 long core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__IndexedIterator__index(val* self) {
2946 long var /* : Int */;
2947 long var1 /* : Int */;
2948 long var3 /* : Int */;
2949 {
2950 { /* Inline ropes$RopeCharReverseIterator$pos (self) on <self:RopeCharReverseIterator> */
2951 var3 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <self:RopeCharReverseIterator> */
2952 var1 = var3;
2953 RET_LABEL2:(void)0;
2954 }
2955 }
2956 var = var1;
2957 goto RET_LABEL;
2958 RET_LABEL:;
2959 return var;
2960 }
2961 /* method ropes$RopeCharReverseIterator$is_ok for (self: RopeCharReverseIterator): Bool */
2962 short int core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
2963 short int var /* : Bool */;
2964 long var1 /* : Int */;
2965 long var3 /* : Int */;
2966 short int var4 /* : Bool */;
2967 short int var6 /* : Bool */;
2968 int cltype;
2969 int idtype;
2970 const char* var_class_name;
2971 short int var7 /* : Bool */;
2972 {
2973 { /* Inline ropes$RopeCharReverseIterator$pos (self) on <self:RopeCharReverseIterator> */
2974 var3 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <self:RopeCharReverseIterator> */
2975 var1 = var3;
2976 RET_LABEL2:(void)0;
2977 }
2978 }
2979 {
2980 { /* Inline kernel$Int$>= (var1,0l) on <var1:Int> */
2981 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2982 /* <0l:Int> isa OTHER */
2983 var6 = 1; /* easy <0l:Int> isa OTHER*/
2984 if (unlikely(!var6)) {
2985 var_class_name = type_core__Int.name;
2986 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2987 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
2988 fatal_exit(1);
2989 }
2990 var7 = var1 >= 0l;
2991 var4 = var7;
2992 goto RET_LABEL5;
2993 RET_LABEL5:(void)0;
2994 }
2995 }
2996 var = var4;
2997 goto RET_LABEL;
2998 RET_LABEL:;
2999 return var;
3000 }
3001 /* method ropes$RopeCharReverseIterator$item for (self: RopeCharReverseIterator): Char */
3002 uint32_t core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
3003 uint32_t var /* : Char */;
3004 val* var1 /* : String */;
3005 val* var3 /* : String */;
3006 long var4 /* : Int */;
3007 long var6 /* : Int */;
3008 uint32_t var7 /* : Char */;
3009 {
3010 { /* Inline ropes$RopeCharReverseIterator$ns (self) on <self:RopeCharReverseIterator> */
3011 var3 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val; /* _ns on <self:RopeCharReverseIterator> */
3012 if (unlikely(var3 == NULL)) {
3013 if(catchStack.cursor >= 0){
3014 longjmp(catchStack.envs[catchStack.cursor], 1);
3015 }
3016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ns");
3017 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 419);
3018 fatal_exit(1);
3019 }
3020 var1 = var3;
3021 RET_LABEL2:(void)0;
3022 }
3023 }
3024 {
3025 { /* Inline ropes$RopeCharReverseIterator$pns (self) on <self:RopeCharReverseIterator> */
3026 var6 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <self:RopeCharReverseIterator> */
3027 var4 = var6;
3028 RET_LABEL5:(void)0;
3029 }
3030 }
3031 {
3032 var7 = ((uint32_t(*)(val* self, long p0))(var1->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var1, var4); /* [] on <var1:String>*/
3033 }
3034 var = var7;
3035 goto RET_LABEL;
3036 RET_LABEL:;
3037 return var;
3038 }
3039 /* method ropes$RopeCharReverseIterator$item for (self: Iterator[nullable Object]): nullable Object */
3040 val* VIRTUAL_core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__item(val* self) {
3041 val* var /* : nullable Object */;
3042 uint32_t var1 /* : Char */;
3043 val* var2 /* : nullable Object */;
3044 var1 = core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__item(self);
3045 var2 = (val*)((long)(var1)<<2|2);
3046 var = var2;
3047 RET_LABEL:;
3048 return var;
3049 }
3050 /* method ropes$RopeCharReverseIterator$next for (self: RopeCharReverseIterator) */
3051 void core__ropes___core__ropes__RopeCharReverseIterator___core__abstract_collection__Iterator__next(val* self) {
3052 val* var_ /* var : RopeCharReverseIterator */;
3053 long var /* : Int */;
3054 long var2 /* : Int */;
3055 long var3 /* : Int */;
3056 short int var5 /* : Bool */;
3057 int cltype;
3058 int idtype;
3059 const char* var_class_name;
3060 long var6 /* : Int */;
3061 val* var_8 /* var : RopeCharReverseIterator */;
3062 long var9 /* : Int */;
3063 long var11 /* : Int */;
3064 long var12 /* : Int */;
3065 short int var14 /* : Bool */;
3066 int cltype15;
3067 int idtype16;
3068 const char* var_class_name17;
3069 long var18 /* : Int */;
3070 long var20 /* : Int */;
3071 long var22 /* : Int */;
3072 short int var23 /* : Bool */;
3073 short int var25 /* : Bool */;
3074 int cltype26;
3075 int idtype27;
3076 const char* var_class_name28;
3077 short int var29 /* : Bool */;
3078 val* var30 /* : IndexedIterator[String] */;
3079 val* var32 /* : IndexedIterator[String] */;
3080 short int var33 /* : Bool */;
3081 short int var34 /* : Bool */;
3082 val* var35 /* : IndexedIterator[String] */;
3083 val* var37 /* : IndexedIterator[String] */;
3084 val* var38 /* : IndexedIterator[String] */;
3085 val* var40 /* : IndexedIterator[String] */;
3086 short int var41 /* : Bool */;
3087 short int var42 /* : Bool */;
3088 val* var43 /* : IndexedIterator[String] */;
3089 val* var45 /* : IndexedIterator[String] */;
3090 val* var46 /* : nullable Object */;
3091 val* var48 /* : String */;
3092 val* var50 /* : String */;
3093 long var51 /* : Int */;
3094 long var52 /* : Int */;
3095 short int var54 /* : Bool */;
3096 int cltype55;
3097 int idtype56;
3098 const char* var_class_name57;
3099 long var58 /* : Int */;
3100 var_ = self;
3101 {
3102 { /* Inline ropes$RopeCharReverseIterator$pns (var_) on <var_:RopeCharReverseIterator> */
3103 var2 = var_->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <var_:RopeCharReverseIterator> */
3104 var = var2;
3105 RET_LABEL1:(void)0;
3106 }
3107 }
3108 {
3109 { /* Inline kernel$Int$- (var,1l) on <var:Int> */
3110 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3111 /* <1l:Int> isa OTHER */
3112 var5 = 1; /* easy <1l:Int> isa OTHER*/
3113 if (unlikely(!var5)) {
3114 var_class_name = type_core__Int.name;
3115 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3116 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3117 fatal_exit(1);
3118 }
3119 var6 = var - 1l;
3120 var3 = var6;
3121 goto RET_LABEL4;
3122 RET_LABEL4:(void)0;
3123 }
3124 }
3125 {
3126 { /* Inline ropes$RopeCharReverseIterator$pns= (var_,var3) on <var_:RopeCharReverseIterator> */
3127 var_->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = var3; /* _pns on <var_:RopeCharReverseIterator> */
3128 RET_LABEL7:(void)0;
3129 }
3130 }
3131 var_8 = self;
3132 {
3133 { /* Inline ropes$RopeCharReverseIterator$pos (var_8) on <var_8:RopeCharReverseIterator> */
3134 var11 = var_8->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l; /* _pos on <var_8:RopeCharReverseIterator> */
3135 var9 = var11;
3136 RET_LABEL10:(void)0;
3137 }
3138 }
3139 {
3140 { /* Inline kernel$Int$- (var9,1l) on <var9:Int> */
3141 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3142 /* <1l:Int> isa OTHER */
3143 var14 = 1; /* easy <1l:Int> isa OTHER*/
3144 if (unlikely(!var14)) {
3145 var_class_name17 = type_core__Int.name;
3146 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
3147 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3148 fatal_exit(1);
3149 }
3150 var18 = var9 - 1l;
3151 var12 = var18;
3152 goto RET_LABEL13;
3153 RET_LABEL13:(void)0;
3154 }
3155 }
3156 {
3157 { /* Inline ropes$RopeCharReverseIterator$pos= (var_8,var12) on <var_8:RopeCharReverseIterator> */
3158 var_8->attrs[COLOR_core__ropes__RopeCharReverseIterator___pos].l = var12; /* _pos on <var_8:RopeCharReverseIterator> */
3159 RET_LABEL19:(void)0;
3160 }
3161 }
3162 {
3163 { /* Inline ropes$RopeCharReverseIterator$pns (self) on <self:RopeCharReverseIterator> */
3164 var22 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l; /* _pns on <self:RopeCharReverseIterator> */
3165 var20 = var22;
3166 RET_LABEL21:(void)0;
3167 }
3168 }
3169 {
3170 { /* Inline kernel$Int$>= (var20,0l) on <var20:Int> */
3171 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3172 /* <0l:Int> isa OTHER */
3173 var25 = 1; /* easy <0l:Int> isa OTHER*/
3174 if (unlikely(!var25)) {
3175 var_class_name28 = type_core__Int.name;
3176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
3177 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
3178 fatal_exit(1);
3179 }
3180 var29 = var20 >= 0l;
3181 var23 = var29;
3182 goto RET_LABEL24;
3183 RET_LABEL24:(void)0;
3184 }
3185 }
3186 if (var23){
3187 goto RET_LABEL;
3188 } else {
3189 }
3190 {
3191 { /* Inline ropes$RopeCharReverseIterator$subs (self) on <self:RopeCharReverseIterator> */
3192 var32 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
3193 if (unlikely(var32 == NULL)) {
3194 if(catchStack.cursor >= 0){
3195 longjmp(catchStack.envs[catchStack.cursor], 1);
3196 }
3197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3198 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 425);
3199 fatal_exit(1);
3200 }
3201 var30 = var32;
3202 RET_LABEL31:(void)0;
3203 }
3204 }
3205 {
3206 var33 = ((short int(*)(val* self))((((long)var30&3)?class_info[((long)var30&3)]:var30->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var30); /* is_ok on <var30:IndexedIterator[String]>*/
3207 }
3208 var34 = !var33;
3209 if (var34){
3210 goto RET_LABEL;
3211 } else {
3212 }
3213 {
3214 { /* Inline ropes$RopeCharReverseIterator$subs (self) on <self:RopeCharReverseIterator> */
3215 var37 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
3216 if (unlikely(var37 == NULL)) {
3217 if(catchStack.cursor >= 0){
3218 longjmp(catchStack.envs[catchStack.cursor], 1);
3219 }
3220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3221 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 425);
3222 fatal_exit(1);
3223 }
3224 var35 = var37;
3225 RET_LABEL36:(void)0;
3226 }
3227 }
3228 {
3229 ((void(*)(val* self))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var35); /* next on <var35:IndexedIterator[String]>*/
3230 }
3231 {
3232 { /* Inline ropes$RopeCharReverseIterator$subs (self) on <self:RopeCharReverseIterator> */
3233 var40 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
3234 if (unlikely(var40 == NULL)) {
3235 if(catchStack.cursor >= 0){
3236 longjmp(catchStack.envs[catchStack.cursor], 1);
3237 }
3238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3239 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 425);
3240 fatal_exit(1);
3241 }
3242 var38 = var40;
3243 RET_LABEL39:(void)0;
3244 }
3245 }
3246 {
3247 var41 = ((short int(*)(val* self))((((long)var38&3)?class_info[((long)var38&3)]:var38->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var38); /* is_ok on <var38:IndexedIterator[String]>*/
3248 }
3249 var42 = !var41;
3250 if (var42){
3251 goto RET_LABEL;
3252 } else {
3253 }
3254 {
3255 { /* Inline ropes$RopeCharReverseIterator$subs (self) on <self:RopeCharReverseIterator> */
3256 var45 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___subs].val; /* _subs on <self:RopeCharReverseIterator> */
3257 if (unlikely(var45 == NULL)) {
3258 if(catchStack.cursor >= 0){
3259 longjmp(catchStack.envs[catchStack.cursor], 1);
3260 }
3261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3262 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 425);
3263 fatal_exit(1);
3264 }
3265 var43 = var45;
3266 RET_LABEL44:(void)0;
3267 }
3268 }
3269 {
3270 var46 = ((val*(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var43); /* item on <var43:IndexedIterator[String]>*/
3271 }
3272 {
3273 { /* Inline ropes$RopeCharReverseIterator$ns= (self,var46) on <self:RopeCharReverseIterator> */
3274 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val = var46; /* _ns on <self:RopeCharReverseIterator> */
3275 RET_LABEL47:(void)0;
3276 }
3277 }
3278 {
3279 { /* Inline ropes$RopeCharReverseIterator$ns (self) on <self:RopeCharReverseIterator> */
3280 var50 = self->attrs[COLOR_core__ropes__RopeCharReverseIterator___ns].val; /* _ns on <self:RopeCharReverseIterator> */
3281 if (unlikely(var50 == NULL)) {
3282 if(catchStack.cursor >= 0){
3283 longjmp(catchStack.envs[catchStack.cursor], 1);
3284 }
3285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ns");
3286 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 419);
3287 fatal_exit(1);
3288 }
3289 var48 = var50;
3290 RET_LABEL49:(void)0;
3291 }
3292 }
3293 {
3294 var51 = ((long(*)(val* self))(var48->class->vft[COLOR_core__abstract_text__Text__length]))(var48); /* length on <var48:String>*/
3295 }
3296 {
3297 { /* Inline kernel$Int$- (var51,1l) on <var51:Int> */
3298 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3299 /* <1l:Int> isa OTHER */
3300 var54 = 1; /* easy <1l:Int> isa OTHER*/
3301 if (unlikely(!var54)) {
3302 var_class_name57 = type_core__Int.name;
3303 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
3304 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3305 fatal_exit(1);
3306 }
3307 var58 = var51 - 1l;
3308 var52 = var58;
3309 goto RET_LABEL53;
3310 RET_LABEL53:(void)0;
3311 }
3312 }
3313 {
3314 { /* Inline ropes$RopeCharReverseIterator$pns= (self,var52) on <self:RopeCharReverseIterator> */
3315 self->attrs[COLOR_core__ropes__RopeCharReverseIterator___pns].l = var52; /* _pns on <self:RopeCharReverseIterator> */
3316 RET_LABEL59:(void)0;
3317 }
3318 }
3319 RET_LABEL:;
3320 }
3321 /* method ropes$RopeCharIterator$pns for (self: RopeCharIterator): Int */
3322 long core__ropes___core__ropes__RopeCharIterator___pns(val* self) {
3323 long var /* : Int */;
3324 long var1 /* : Int */;
3325 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <self:RopeCharIterator> */
3326 var = var1;
3327 RET_LABEL:;
3328 return var;
3329 }
3330 /* method ropes$RopeCharIterator$pns= for (self: RopeCharIterator, Int) */
3331 void core__ropes___core__ropes__RopeCharIterator___pns_61d(val* self, long p0) {
3332 self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = p0; /* _pns on <self:RopeCharIterator> */
3333 RET_LABEL:;
3334 }
3335 /* method ropes$RopeCharIterator$str for (self: RopeCharIterator): String */
3336 val* core__ropes___core__ropes__RopeCharIterator___str(val* self) {
3337 val* var /* : String */;
3338 val* var1 /* : String */;
3339 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___str].val; /* _str on <self:RopeCharIterator> */
3340 if (unlikely(var1 == NULL)) {
3341 if(catchStack.cursor >= 0){
3342 longjmp(catchStack.envs[catchStack.cursor], 1);
3343 }
3344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3345 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 460);
3346 fatal_exit(1);
3347 }
3348 var = var1;
3349 RET_LABEL:;
3350 return var;
3351 }
3352 /* method ropes$RopeCharIterator$str= for (self: RopeCharIterator, String) */
3353 void core__ropes___core__ropes__RopeCharIterator___str_61d(val* self, val* p0) {
3354 self->attrs[COLOR_core__ropes__RopeCharIterator___str].val = p0; /* _str on <self:RopeCharIterator> */
3355 RET_LABEL:;
3356 }
3357 /* method ropes$RopeCharIterator$subs for (self: RopeCharIterator): IndexedIterator[String] */
3358 val* core__ropes___core__ropes__RopeCharIterator___subs(val* self) {
3359 val* var /* : IndexedIterator[String] */;
3360 val* var1 /* : IndexedIterator[String] */;
3361 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3362 if (unlikely(var1 == NULL)) {
3363 if(catchStack.cursor >= 0){
3364 longjmp(catchStack.envs[catchStack.cursor], 1);
3365 }
3366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3367 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3368 fatal_exit(1);
3369 }
3370 var = var1;
3371 RET_LABEL:;
3372 return var;
3373 }
3374 /* method ropes$RopeCharIterator$subs= for (self: RopeCharIterator, IndexedIterator[String]) */
3375 void core__ropes___core__ropes__RopeCharIterator___subs_61d(val* self, val* p0) {
3376 self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val = p0; /* _subs on <self:RopeCharIterator> */
3377 RET_LABEL:;
3378 }
3379 /* method ropes$RopeCharIterator$max for (self: RopeCharIterator): Int */
3380 long core__ropes___core__ropes__RopeCharIterator___max(val* self) {
3381 long var /* : Int */;
3382 long var1 /* : Int */;
3383 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___max].l; /* _max on <self:RopeCharIterator> */
3384 var = var1;
3385 RET_LABEL:;
3386 return var;
3387 }
3388 /* method ropes$RopeCharIterator$max= for (self: RopeCharIterator, Int) */
3389 void core__ropes___core__ropes__RopeCharIterator___max_61d(val* self, long p0) {
3390 self->attrs[COLOR_core__ropes__RopeCharIterator___max].l = p0; /* _max on <self:RopeCharIterator> */
3391 RET_LABEL:;
3392 }
3393 /* method ropes$RopeCharIterator$pos for (self: RopeCharIterator): Int */
3394 long core__ropes___core__ropes__RopeCharIterator___pos(val* self) {
3395 long var /* : Int */;
3396 long var1 /* : Int */;
3397 var1 = self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <self:RopeCharIterator> */
3398 var = var1;
3399 RET_LABEL:;
3400 return var;
3401 }
3402 /* method ropes$RopeCharIterator$pos= for (self: RopeCharIterator, Int) */
3403 void core__ropes___core__ropes__RopeCharIterator___pos_61d(val* self, long p0) {
3404 self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l = p0; /* _pos on <self:RopeCharIterator> */
3405 RET_LABEL:;
3406 }
3407 /* method ropes$RopeCharIterator$from for (self: RopeCharIterator, Concat, Int) */
3408 void core__ropes___core__ropes__RopeCharIterator___from(val* self, val* p0, long p1) {
3409 val* var_root /* var root: Concat */;
3410 long var_pos /* var pos: Int */;
3411 val* var /* : RopeSubstrings */;
3412 val* var3 /* : IndexedIterator[String] */;
3413 val* var5 /* : IndexedIterator[String] */;
3414 long var6 /* : Int */;
3415 long var7 /* : Int */;
3416 short int var9 /* : Bool */;
3417 int cltype;
3418 int idtype;
3419 const char* var_class_name;
3420 long var10 /* : Int */;
3421 val* var13 /* : IndexedIterator[String] */;
3422 val* var15 /* : IndexedIterator[String] */;
3423 val* var16 /* : nullable Object */;
3424 long var18 /* : Int */;
3425 long var20 /* : Int */;
3426 long var21 /* : Int */;
3427 short int var23 /* : Bool */;
3428 int cltype24;
3429 int idtype25;
3430 const char* var_class_name26;
3431 long var27 /* : Int */;
3432 {
3433 { /* Inline kernel$Object$init (self) on <self:RopeCharIterator> */
3434 RET_LABEL1:(void)0;
3435 }
3436 }
3437 var_root = p0;
3438 var_pos = p1;
3439 var = NEW_core__ropes__RopeSubstrings(&type_core__ropes__RopeSubstrings);
3440 {
3441 core__ropes___core__ropes__RopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes$RopeSubstrings$from on <var:RopeSubstrings>*/
3442 }
3443 {
3444 { /* Inline ropes$RopeCharIterator$subs= (self,var) on <self:RopeCharIterator> */
3445 self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val = var; /* _subs on <self:RopeCharIterator> */
3446 RET_LABEL2:(void)0;
3447 }
3448 }
3449 {
3450 { /* Inline ropes$RopeCharIterator$subs (self) on <self:RopeCharIterator> */
3451 var5 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3452 if (unlikely(var5 == NULL)) {
3453 if(catchStack.cursor >= 0){
3454 longjmp(catchStack.envs[catchStack.cursor], 1);
3455 }
3456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3457 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3458 fatal_exit(1);
3459 }
3460 var3 = var5;
3461 RET_LABEL4:(void)0;
3462 }
3463 }
3464 {
3465 var6 = ((long(*)(val* self))((((long)var3&3)?class_info[((long)var3&3)]:var3->class)->vft[COLOR_core__abstract_collection__IndexedIterator__index]))(var3); /* index on <var3:IndexedIterator[String]>*/
3466 }
3467 {
3468 { /* Inline kernel$Int$- (var_pos,var6) on <var_pos:Int> */
3469 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
3470 /* <var6:Int> isa OTHER */
3471 var9 = 1; /* easy <var6:Int> isa OTHER*/
3472 if (unlikely(!var9)) {
3473 var_class_name = type_core__Int.name;
3474 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3475 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3476 fatal_exit(1);
3477 }
3478 var10 = var_pos - var6;
3479 var7 = var10;
3480 goto RET_LABEL8;
3481 RET_LABEL8:(void)0;
3482 }
3483 }
3484 {
3485 { /* Inline ropes$RopeCharIterator$pns= (self,var7) on <self:RopeCharIterator> */
3486 self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = var7; /* _pns on <self:RopeCharIterator> */
3487 RET_LABEL11:(void)0;
3488 }
3489 }
3490 {
3491 { /* Inline ropes$RopeCharIterator$pos= (self,var_pos) on <self:RopeCharIterator> */
3492 self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l = var_pos; /* _pos on <self:RopeCharIterator> */
3493 RET_LABEL12:(void)0;
3494 }
3495 }
3496 {
3497 { /* Inline ropes$RopeCharIterator$subs (self) on <self:RopeCharIterator> */
3498 var15 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3499 if (unlikely(var15 == NULL)) {
3500 if(catchStack.cursor >= 0){
3501 longjmp(catchStack.envs[catchStack.cursor], 1);
3502 }
3503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3504 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3505 fatal_exit(1);
3506 }
3507 var13 = var15;
3508 RET_LABEL14:(void)0;
3509 }
3510 }
3511 {
3512 var16 = ((val*(*)(val* self))((((long)var13&3)?class_info[((long)var13&3)]:var13->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var13); /* item on <var13:IndexedIterator[String]>*/
3513 }
3514 {
3515 { /* Inline ropes$RopeCharIterator$str= (self,var16) on <self:RopeCharIterator> */
3516 self->attrs[COLOR_core__ropes__RopeCharIterator___str].val = var16; /* _str on <self:RopeCharIterator> */
3517 RET_LABEL17:(void)0;
3518 }
3519 }
3520 {
3521 { /* Inline ropes$Concat$length (var_root) on <var_root:Concat> */
3522 var20 = var_root->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <var_root:Concat> */
3523 var18 = var20;
3524 RET_LABEL19:(void)0;
3525 }
3526 }
3527 {
3528 { /* Inline kernel$Int$- (var18,1l) on <var18:Int> */
3529 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3530 /* <1l:Int> isa OTHER */
3531 var23 = 1; /* easy <1l:Int> isa OTHER*/
3532 if (unlikely(!var23)) {
3533 var_class_name26 = type_core__Int.name;
3534 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
3535 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3536 fatal_exit(1);
3537 }
3538 var27 = var18 - 1l;
3539 var21 = var27;
3540 goto RET_LABEL22;
3541 RET_LABEL22:(void)0;
3542 }
3543 }
3544 {
3545 { /* Inline ropes$RopeCharIterator$max= (self,var21) on <self:RopeCharIterator> */
3546 self->attrs[COLOR_core__ropes__RopeCharIterator___max].l = var21; /* _max on <self:RopeCharIterator> */
3547 RET_LABEL28:(void)0;
3548 }
3549 }
3550 RET_LABEL:;
3551 }
3552 /* method ropes$RopeCharIterator$item for (self: RopeCharIterator): Char */
3553 uint32_t core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__item(val* self) {
3554 uint32_t var /* : Char */;
3555 val* var1 /* : String */;
3556 val* var3 /* : String */;
3557 long var4 /* : Int */;
3558 long var6 /* : Int */;
3559 uint32_t var7 /* : Char */;
3560 {
3561 { /* Inline ropes$RopeCharIterator$str (self) on <self:RopeCharIterator> */
3562 var3 = self->attrs[COLOR_core__ropes__RopeCharIterator___str].val; /* _str on <self:RopeCharIterator> */
3563 if (unlikely(var3 == NULL)) {
3564 if(catchStack.cursor >= 0){
3565 longjmp(catchStack.envs[catchStack.cursor], 1);
3566 }
3567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3568 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 460);
3569 fatal_exit(1);
3570 }
3571 var1 = var3;
3572 RET_LABEL2:(void)0;
3573 }
3574 }
3575 {
3576 { /* Inline ropes$RopeCharIterator$pns (self) on <self:RopeCharIterator> */
3577 var6 = self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <self:RopeCharIterator> */
3578 var4 = var6;
3579 RET_LABEL5:(void)0;
3580 }
3581 }
3582 {
3583 var7 = ((uint32_t(*)(val* self, long p0))(var1->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var1, var4); /* [] on <var1:String>*/
3584 }
3585 var = var7;
3586 goto RET_LABEL;
3587 RET_LABEL:;
3588 return var;
3589 }
3590 /* method ropes$RopeCharIterator$item for (self: Iterator[nullable Object]): nullable Object */
3591 val* VIRTUAL_core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__item(val* self) {
3592 val* var /* : nullable Object */;
3593 uint32_t var1 /* : Char */;
3594 val* var2 /* : nullable Object */;
3595 var1 = core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__item(self);
3596 var2 = (val*)((long)(var1)<<2|2);
3597 var = var2;
3598 RET_LABEL:;
3599 return var;
3600 }
3601 /* method ropes$RopeCharIterator$is_ok for (self: RopeCharIterator): Bool */
3602 short int core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__is_ok(val* self) {
3603 short int var /* : Bool */;
3604 long var1 /* : Int */;
3605 long var3 /* : Int */;
3606 long var4 /* : Int */;
3607 long var6 /* : Int */;
3608 short int var7 /* : Bool */;
3609 short int var9 /* : Bool */;
3610 int cltype;
3611 int idtype;
3612 const char* var_class_name;
3613 short int var10 /* : Bool */;
3614 {
3615 { /* Inline ropes$RopeCharIterator$pos (self) on <self:RopeCharIterator> */
3616 var3 = self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <self:RopeCharIterator> */
3617 var1 = var3;
3618 RET_LABEL2:(void)0;
3619 }
3620 }
3621 {
3622 { /* Inline ropes$RopeCharIterator$max (self) on <self:RopeCharIterator> */
3623 var6 = self->attrs[COLOR_core__ropes__RopeCharIterator___max].l; /* _max on <self:RopeCharIterator> */
3624 var4 = var6;
3625 RET_LABEL5:(void)0;
3626 }
3627 }
3628 {
3629 { /* Inline kernel$Int$<= (var1,var4) on <var1:Int> */
3630 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
3631 /* <var4:Int> isa OTHER */
3632 var9 = 1; /* easy <var4:Int> isa OTHER*/
3633 if (unlikely(!var9)) {
3634 var_class_name = type_core__Int.name;
3635 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3636 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
3637 fatal_exit(1);
3638 }
3639 var10 = var1 <= var4;
3640 var7 = var10;
3641 goto RET_LABEL8;
3642 RET_LABEL8:(void)0;
3643 }
3644 }
3645 var = var7;
3646 goto RET_LABEL;
3647 RET_LABEL:;
3648 return var;
3649 }
3650 /* method ropes$RopeCharIterator$index for (self: RopeCharIterator): Int */
3651 long core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__IndexedIterator__index(val* self) {
3652 long var /* : Int */;
3653 long var1 /* : Int */;
3654 long var3 /* : Int */;
3655 {
3656 { /* Inline ropes$RopeCharIterator$pos (self) on <self:RopeCharIterator> */
3657 var3 = self->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <self:RopeCharIterator> */
3658 var1 = var3;
3659 RET_LABEL2:(void)0;
3660 }
3661 }
3662 var = var1;
3663 goto RET_LABEL;
3664 RET_LABEL:;
3665 return var;
3666 }
3667 /* method ropes$RopeCharIterator$next for (self: RopeCharIterator) */
3668 void core__ropes___core__ropes__RopeCharIterator___core__abstract_collection__Iterator__next(val* self) {
3669 val* var_ /* var : RopeCharIterator */;
3670 long var /* : Int */;
3671 long var2 /* : Int */;
3672 long var3 /* : Int */;
3673 short int var5 /* : Bool */;
3674 int cltype;
3675 int idtype;
3676 const char* var_class_name;
3677 long var6 /* : Int */;
3678 val* var_8 /* var : RopeCharIterator */;
3679 long var9 /* : Int */;
3680 long var11 /* : Int */;
3681 long var12 /* : Int */;
3682 short int var14 /* : Bool */;
3683 int cltype15;
3684 int idtype16;
3685 const char* var_class_name17;
3686 long var18 /* : Int */;
3687 long var20 /* : Int */;
3688 long var22 /* : Int */;
3689 val* var23 /* : IndexedIterator[String] */;
3690 val* var25 /* : IndexedIterator[String] */;
3691 val* var26 /* : nullable Object */;
3692 long var27 /* : Int */;
3693 short int var28 /* : Bool */;
3694 short int var30 /* : Bool */;
3695 int cltype31;
3696 int idtype32;
3697 const char* var_class_name33;
3698 short int var34 /* : Bool */;
3699 val* var35 /* : IndexedIterator[String] */;
3700 val* var37 /* : IndexedIterator[String] */;
3701 short int var38 /* : Bool */;
3702 short int var39 /* : Bool */;
3703 val* var40 /* : IndexedIterator[String] */;
3704 val* var42 /* : IndexedIterator[String] */;
3705 val* var43 /* : IndexedIterator[String] */;
3706 val* var45 /* : IndexedIterator[String] */;
3707 short int var46 /* : Bool */;
3708 short int var47 /* : Bool */;
3709 val* var48 /* : IndexedIterator[String] */;
3710 val* var50 /* : IndexedIterator[String] */;
3711 val* var51 /* : nullable Object */;
3712 var_ = self;
3713 {
3714 { /* Inline ropes$RopeCharIterator$pns (var_) on <var_:RopeCharIterator> */
3715 var2 = var_->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <var_:RopeCharIterator> */
3716 var = var2;
3717 RET_LABEL1:(void)0;
3718 }
3719 }
3720 {
3721 { /* Inline kernel$Int$+ (var,1l) on <var:Int> */
3722 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3723 /* <1l:Int> isa OTHER */
3724 var5 = 1; /* easy <1l:Int> isa OTHER*/
3725 if (unlikely(!var5)) {
3726 var_class_name = type_core__Int.name;
3727 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3728 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3729 fatal_exit(1);
3730 }
3731 var6 = var + 1l;
3732 var3 = var6;
3733 goto RET_LABEL4;
3734 RET_LABEL4:(void)0;
3735 }
3736 }
3737 {
3738 { /* Inline ropes$RopeCharIterator$pns= (var_,var3) on <var_:RopeCharIterator> */
3739 var_->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = var3; /* _pns on <var_:RopeCharIterator> */
3740 RET_LABEL7:(void)0;
3741 }
3742 }
3743 var_8 = self;
3744 {
3745 { /* Inline ropes$RopeCharIterator$pos (var_8) on <var_8:RopeCharIterator> */
3746 var11 = var_8->attrs[COLOR_core__ropes__RopeCharIterator___pos].l; /* _pos on <var_8:RopeCharIterator> */
3747 var9 = var11;
3748 RET_LABEL10:(void)0;
3749 }
3750 }
3751 {
3752 { /* Inline kernel$Int$+ (var9,1l) on <var9:Int> */
3753 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3754 /* <1l:Int> isa OTHER */
3755 var14 = 1; /* easy <1l:Int> isa OTHER*/
3756 if (unlikely(!var14)) {
3757 var_class_name17 = type_core__Int.name;
3758 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
3759 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3760 fatal_exit(1);
3761 }
3762 var18 = var9 + 1l;
3763 var12 = var18;
3764 goto RET_LABEL13;
3765 RET_LABEL13:(void)0;
3766 }
3767 }
3768 {
3769 { /* Inline ropes$RopeCharIterator$pos= (var_8,var12) on <var_8:RopeCharIterator> */
3770 var_8->attrs[COLOR_core__ropes__RopeCharIterator___pos].l = var12; /* _pos on <var_8:RopeCharIterator> */
3771 RET_LABEL19:(void)0;
3772 }
3773 }
3774 {
3775 { /* Inline ropes$RopeCharIterator$pns (self) on <self:RopeCharIterator> */
3776 var22 = self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l; /* _pns on <self:RopeCharIterator> */
3777 var20 = var22;
3778 RET_LABEL21:(void)0;
3779 }
3780 }
3781 {
3782 { /* Inline ropes$RopeCharIterator$subs (self) on <self:RopeCharIterator> */
3783 var25 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3784 if (unlikely(var25 == NULL)) {
3785 if(catchStack.cursor >= 0){
3786 longjmp(catchStack.envs[catchStack.cursor], 1);
3787 }
3788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3789 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3790 fatal_exit(1);
3791 }
3792 var23 = var25;
3793 RET_LABEL24:(void)0;
3794 }
3795 }
3796 {
3797 var26 = ((val*(*)(val* self))((((long)var23&3)?class_info[((long)var23&3)]:var23->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var23); /* item on <var23:IndexedIterator[String]>*/
3798 }
3799 {
3800 var27 = ((long(*)(val* self))(var26->class->vft[COLOR_core__abstract_text__Text__length]))(var26); /* length on <var26:nullable Object(String)>*/
3801 }
3802 {
3803 { /* Inline kernel$Int$< (var20,var27) on <var20:Int> */
3804 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
3805 /* <var27:Int> isa OTHER */
3806 var30 = 1; /* easy <var27:Int> isa OTHER*/
3807 if (unlikely(!var30)) {
3808 var_class_name33 = type_core__Int.name;
3809 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
3810 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3811 fatal_exit(1);
3812 }
3813 var34 = var20 < var27;
3814 var28 = var34;
3815 goto RET_LABEL29;
3816 RET_LABEL29:(void)0;
3817 }
3818 }
3819 if (var28){
3820 goto RET_LABEL;
3821 } else {
3822 }
3823 {
3824 { /* Inline ropes$RopeCharIterator$subs (self) on <self:RopeCharIterator> */
3825 var37 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3826 if (unlikely(var37 == NULL)) {
3827 if(catchStack.cursor >= 0){
3828 longjmp(catchStack.envs[catchStack.cursor], 1);
3829 }
3830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3831 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3832 fatal_exit(1);
3833 }
3834 var35 = var37;
3835 RET_LABEL36:(void)0;
3836 }
3837 }
3838 {
3839 var38 = ((short int(*)(val* self))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var35); /* is_ok on <var35:IndexedIterator[String]>*/
3840 }
3841 var39 = !var38;
3842 if (var39){
3843 goto RET_LABEL;
3844 } else {
3845 }
3846 {
3847 { /* Inline ropes$RopeCharIterator$subs (self) on <self:RopeCharIterator> */
3848 var42 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3849 if (unlikely(var42 == NULL)) {
3850 if(catchStack.cursor >= 0){
3851 longjmp(catchStack.envs[catchStack.cursor], 1);
3852 }
3853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3854 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3855 fatal_exit(1);
3856 }
3857 var40 = var42;
3858 RET_LABEL41:(void)0;
3859 }
3860 }
3861 {
3862 ((void(*)(val* self))((((long)var40&3)?class_info[((long)var40&3)]:var40->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var40); /* next on <var40:IndexedIterator[String]>*/
3863 }
3864 {
3865 { /* Inline ropes$RopeCharIterator$subs (self) on <self:RopeCharIterator> */
3866 var45 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3867 if (unlikely(var45 == NULL)) {
3868 if(catchStack.cursor >= 0){
3869 longjmp(catchStack.envs[catchStack.cursor], 1);
3870 }
3871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3872 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3873 fatal_exit(1);
3874 }
3875 var43 = var45;
3876 RET_LABEL44:(void)0;
3877 }
3878 }
3879 {
3880 var46 = ((short int(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var43); /* is_ok on <var43:IndexedIterator[String]>*/
3881 }
3882 var47 = !var46;
3883 if (var47){
3884 goto RET_LABEL;
3885 } else {
3886 }
3887 {
3888 { /* Inline ropes$RopeCharIterator$subs (self) on <self:RopeCharIterator> */
3889 var50 = self->attrs[COLOR_core__ropes__RopeCharIterator___subs].val; /* _subs on <self:RopeCharIterator> */
3890 if (unlikely(var50 == NULL)) {
3891 if(catchStack.cursor >= 0){
3892 longjmp(catchStack.envs[catchStack.cursor], 1);
3893 }
3894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
3895 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 462);
3896 fatal_exit(1);
3897 }
3898 var48 = var50;
3899 RET_LABEL49:(void)0;
3900 }
3901 }
3902 {
3903 var51 = ((val*(*)(val* self))((((long)var48&3)?class_info[((long)var48&3)]:var48->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var48); /* item on <var48:IndexedIterator[String]>*/
3904 }
3905 {
3906 { /* Inline ropes$RopeCharIterator$str= (self,var51) on <self:RopeCharIterator> */
3907 self->attrs[COLOR_core__ropes__RopeCharIterator___str].val = var51; /* _str on <self:RopeCharIterator> */
3908 RET_LABEL52:(void)0;
3909 }
3910 }
3911 {
3912 { /* Inline ropes$RopeCharIterator$pns= (self,0l) on <self:RopeCharIterator> */
3913 self->attrs[COLOR_core__ropes__RopeCharIterator___pns].l = 0l; /* _pns on <self:RopeCharIterator> */
3914 RET_LABEL53:(void)0;
3915 }
3916 }
3917 RET_LABEL:;
3918 }
3919 /* method ropes$ReverseRopeSubstrings$iter for (self: ReverseRopeSubstrings): RopeCharIteratorPiece */
3920 val* core__ropes___core__ropes__ReverseRopeSubstrings___iter(val* self) {
3921 val* var /* : RopeCharIteratorPiece */;
3922 val* var1 /* : RopeCharIteratorPiece */;
3923 var1 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val; /* _iter on <self:ReverseRopeSubstrings> */
3924 if (unlikely(var1 == NULL)) {
3925 if(catchStack.cursor >= 0){
3926 longjmp(catchStack.envs[catchStack.cursor], 1);
3927 }
3928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
3929 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 499);
3930 fatal_exit(1);
3931 }
3932 var = var1;
3933 RET_LABEL:;
3934 return var;
3935 }
3936 /* method ropes$ReverseRopeSubstrings$iter= for (self: ReverseRopeSubstrings, RopeCharIteratorPiece) */
3937 void core__ropes___core__ropes__ReverseRopeSubstrings___iter_61d(val* self, val* p0) {
3938 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val = p0; /* _iter on <self:ReverseRopeSubstrings> */
3939 RET_LABEL:;
3940 }
3941 /* method ropes$ReverseRopeSubstrings$pos for (self: ReverseRopeSubstrings): Int */
3942 long core__ropes___core__ropes__ReverseRopeSubstrings___pos(val* self) {
3943 long var /* : Int */;
3944 long var1 /* : Int */;
3945 var1 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
3946 var = var1;
3947 RET_LABEL:;
3948 return var;
3949 }
3950 /* method ropes$ReverseRopeSubstrings$pos= for (self: ReverseRopeSubstrings, Int) */
3951 void core__ropes___core__ropes__ReverseRopeSubstrings___pos_61d(val* self, long p0) {
3952 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = p0; /* _pos on <self:ReverseRopeSubstrings> */
3953 RET_LABEL:;
3954 }
3955 /* method ropes$ReverseRopeSubstrings$str for (self: ReverseRopeSubstrings): FlatString */
3956 val* core__ropes___core__ropes__ReverseRopeSubstrings___str(val* self) {
3957 val* var /* : FlatString */;
3958 val* var1 /* : FlatString */;
3959 var1 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val; /* _str on <self:ReverseRopeSubstrings> */
3960 if (unlikely(var1 == NULL)) {
3961 if(catchStack.cursor >= 0){
3962 longjmp(catchStack.envs[catchStack.cursor], 1);
3963 }
3964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
3965 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 504);
3966 fatal_exit(1);
3967 }
3968 var = var1;
3969 RET_LABEL:;
3970 return var;
3971 }
3972 /* method ropes$ReverseRopeSubstrings$str= for (self: ReverseRopeSubstrings, FlatString) */
3973 void core__ropes___core__ropes__ReverseRopeSubstrings___str_61d(val* self, val* p0) {
3974 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val = p0; /* _str on <self:ReverseRopeSubstrings> */
3975 RET_LABEL:;
3976 }
3977 /* method ropes$ReverseRopeSubstrings$from for (self: ReverseRopeSubstrings, Concat, Int) */
3978 void core__ropes___core__ropes__ReverseRopeSubstrings___from(val* self, val* p0, long p1) {
3979 val* var_root /* var root: Concat */;
3980 long var_pos /* var pos: Int */;
3981 val* var /* : RopeCharIteratorPiece */;
3982 val* var_r /* var r: RopeCharIteratorPiece */;
3983 val* var_rnod /* var rnod: String */;
3984 long var_off /* var off: Int */;
3985 short int var2 /* : Bool */;
3986 int cltype;
3987 int idtype;
3988 val* var3 /* : String */;
3989 long var4 /* : Int */;
3990 short int var5 /* : Bool */;
3991 short int var7 /* : Bool */;
3992 int cltype8;
3993 int idtype9;
3994 const char* var_class_name;
3995 short int var10 /* : Bool */;
3996 val* var11 /* : String */;
3997 long var12 /* : Int */;
3998 long var13 /* : Int */;
3999 short int var15 /* : Bool */;
4000 int cltype16;
4001 int idtype17;
4002 const char* var_class_name18;
4003 long var19 /* : Int */;
4004 val* var20 /* : String */;
4005 val* var21 /* : RopeCharIteratorPiece */;
4006 val* var23 /* : String */;
4007 val* var24 /* : RopeCharIteratorPiece */;
4008 short int var25 /* : Bool */;
4009 int cltype26;
4010 int idtype27;
4011 const char* var_class_name28;
4012 long var32 /* : Int */;
4013 short int var34 /* : Bool */;
4014 int cltype35;
4015 int idtype36;
4016 const char* var_class_name37;
4017 long var38 /* : Int */;
4018 {
4019 { /* Inline kernel$Object$init (self) on <self:ReverseRopeSubstrings> */
4020 RET_LABEL1:(void)0;
4021 }
4022 }
4023 var_root = p0;
4024 var_pos = p1;
4025 var = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4026 {
4027 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var, var_root); /* node= on <var:RopeCharIteratorPiece>*/
4028 }
4029 {
4030 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var, 0); /* ldone= on <var:RopeCharIteratorPiece>*/
4031 }
4032 {
4033 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var, 1); /* rdone= on <var:RopeCharIteratorPiece>*/
4034 }
4035 {
4036 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var, ((val*)NULL)); /* prev= on <var:RopeCharIteratorPiece>*/
4037 }
4038 {
4039 ((void(*)(val* self))(var->class->vft[COLOR_core__kernel__Object__init]))(var); /* init on <var:RopeCharIteratorPiece>*/
4040 }
4041 var_r = var;
4042 var_rnod = var_root;
4043 var_off = var_pos;
4044 for(;;) {
4045 /* <var_rnod:String> isa Concat */
4046 cltype = type_core__ropes__Concat.color;
4047 idtype = type_core__ropes__Concat.id;
4048 if(cltype >= var_rnod->type->table_size) {
4049 var2 = 0;
4050 } else {
4051 var2 = var_rnod->type->type_table[cltype] == idtype;
4052 }
4053 if (var2){
4054 var3 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
4055 if (unlikely(var3 == NULL)) {
4056 if(catchStack.cursor >= 0){
4057 longjmp(catchStack.envs[catchStack.cursor], 1);
4058 }
4059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4060 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 513);
4061 fatal_exit(1);
4062 }
4063 {
4064 var4 = ((long(*)(val* self))(var3->class->vft[COLOR_core__abstract_text__Text__length]))(var3); /* length on <var3:String>*/
4065 }
4066 {
4067 { /* Inline kernel$Int$>= (var_off,var4) on <var_off:Int> */
4068 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
4069 /* <var4:Int> isa OTHER */
4070 var7 = 1; /* easy <var4:Int> isa OTHER*/
4071 if (unlikely(!var7)) {
4072 var_class_name = type_core__Int.name;
4073 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4074 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4075 fatal_exit(1);
4076 }
4077 var10 = var_off >= var4;
4078 var5 = var10;
4079 goto RET_LABEL6;
4080 RET_LABEL6:(void)0;
4081 }
4082 }
4083 if (var5){
4084 var11 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
4085 if (unlikely(var11 == NULL)) {
4086 if(catchStack.cursor >= 0){
4087 longjmp(catchStack.envs[catchStack.cursor], 1);
4088 }
4089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4090 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 514);
4091 fatal_exit(1);
4092 }
4093 {
4094 var12 = ((long(*)(val* self))(var11->class->vft[COLOR_core__abstract_text__Text__length]))(var11); /* length on <var11:String>*/
4095 }
4096 {
4097 { /* Inline kernel$Int$- (var_off,var12) on <var_off:Int> */
4098 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
4099 /* <var12:Int> isa OTHER */
4100 var15 = 1; /* easy <var12:Int> isa OTHER*/
4101 if (unlikely(!var15)) {
4102 var_class_name18 = type_core__Int.name;
4103 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
4104 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4105 fatal_exit(1);
4106 }
4107 var19 = var_off - var12;
4108 var13 = var19;
4109 goto RET_LABEL14;
4110 RET_LABEL14:(void)0;
4111 }
4112 }
4113 var_off = var13;
4114 var20 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
4115 if (unlikely(var20 == NULL)) {
4116 if(catchStack.cursor >= 0){
4117 longjmp(catchStack.envs[catchStack.cursor], 1);
4118 }
4119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
4120 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 515);
4121 fatal_exit(1);
4122 }
4123 var_rnod = var20;
4124 var21 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4125 {
4126 ((void(*)(val* self, val* p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var21, var_rnod); /* node= on <var21:RopeCharIteratorPiece>*/
4127 }
4128 {
4129 ((void(*)(val* self, short int p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var21, 0); /* ldone= on <var21:RopeCharIteratorPiece>*/
4130 }
4131 {
4132 ((void(*)(val* self, short int p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var21, 1); /* rdone= on <var21:RopeCharIteratorPiece>*/
4133 }
4134 {
4135 ((void(*)(val* self, val* p0))(var21->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var21, var_r); /* prev= on <var21:RopeCharIteratorPiece>*/
4136 }
4137 {
4138 ((void(*)(val* self))(var21->class->vft[COLOR_core__kernel__Object__init]))(var21); /* init on <var21:RopeCharIteratorPiece>*/
4139 }
4140 var_r = var21;
4141 } else {
4142 {
4143 { /* Inline ropes$RopeCharIteratorPiece$ldone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
4144 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_r:RopeCharIteratorPiece> */
4145 RET_LABEL22:(void)0;
4146 }
4147 }
4148 var23 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
4149 if (unlikely(var23 == NULL)) {
4150 if(catchStack.cursor >= 0){
4151 longjmp(catchStack.envs[catchStack.cursor], 1);
4152 }
4153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4154 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 519);
4155 fatal_exit(1);
4156 }
4157 var_rnod = var23;
4158 var24 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4159 {
4160 ((void(*)(val* self, val* p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var24, var_rnod); /* node= on <var24:RopeCharIteratorPiece>*/
4161 }
4162 {
4163 ((void(*)(val* self, short int p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var24, 0); /* ldone= on <var24:RopeCharIteratorPiece>*/
4164 }
4165 {
4166 ((void(*)(val* self, short int p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var24, 1); /* rdone= on <var24:RopeCharIteratorPiece>*/
4167 }
4168 {
4169 ((void(*)(val* self, val* p0))(var24->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var24, var_r); /* prev= on <var24:RopeCharIteratorPiece>*/
4170 }
4171 {
4172 ((void(*)(val* self))(var24->class->vft[COLOR_core__kernel__Object__init]))(var24); /* init on <var24:RopeCharIteratorPiece>*/
4173 }
4174 var_r = var24;
4175 }
4176 } else {
4177 /* <var_rnod:String> isa FlatString */
4178 cltype26 = type_core__FlatString.color;
4179 idtype27 = type_core__FlatString.id;
4180 if(cltype26 >= var_rnod->type->table_size) {
4181 var25 = 0;
4182 } else {
4183 var25 = var_rnod->type->type_table[cltype26] == idtype27;
4184 }
4185 if (unlikely(!var25)) {
4186 var_class_name28 = var_rnod == NULL ? "null" : var_rnod->type->name;
4187 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name28);
4188 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 523);
4189 fatal_exit(1);
4190 }
4191 {
4192 { /* Inline ropes$ReverseRopeSubstrings$str= (self,var_rnod) on <self:ReverseRopeSubstrings> */
4193 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val = var_rnod; /* _str on <self:ReverseRopeSubstrings> */
4194 RET_LABEL29:(void)0;
4195 }
4196 }
4197 {
4198 { /* Inline ropes$RopeCharIteratorPiece$ldone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
4199 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_r:RopeCharIteratorPiece> */
4200 RET_LABEL30:(void)0;
4201 }
4202 }
4203 {
4204 { /* Inline ropes$ReverseRopeSubstrings$iter= (self,var_r) on <self:ReverseRopeSubstrings> */
4205 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val = var_r; /* _iter on <self:ReverseRopeSubstrings> */
4206 RET_LABEL31:(void)0;
4207 }
4208 }
4209 {
4210 { /* Inline kernel$Int$- (var_pos,var_off) on <var_pos:Int> */
4211 /* Covariant cast for argument 0 (i) <var_off:Int> isa OTHER */
4212 /* <var_off:Int> isa OTHER */
4213 var34 = 1; /* easy <var_off:Int> isa OTHER*/
4214 if (unlikely(!var34)) {
4215 var_class_name37 = type_core__Int.name;
4216 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
4217 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4218 fatal_exit(1);
4219 }
4220 var38 = var_pos - var_off;
4221 var32 = var38;
4222 goto RET_LABEL33;
4223 RET_LABEL33:(void)0;
4224 }
4225 }
4226 {
4227 { /* Inline ropes$ReverseRopeSubstrings$pos= (self,var32) on <self:ReverseRopeSubstrings> */
4228 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = var32; /* _pos on <self:ReverseRopeSubstrings> */
4229 RET_LABEL39:(void)0;
4230 }
4231 }
4232 goto BREAK_label;
4233 }
4234 }
4235 BREAK_label: (void)0;
4236 RET_LABEL:;
4237 }
4238 /* method ropes$ReverseRopeSubstrings$item for (self: ReverseRopeSubstrings): FlatString */
4239 val* core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__Iterator__item(val* self) {
4240 val* var /* : FlatString */;
4241 val* var1 /* : FlatString */;
4242 val* var3 /* : FlatString */;
4243 {
4244 { /* Inline ropes$ReverseRopeSubstrings$str (self) on <self:ReverseRopeSubstrings> */
4245 var3 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val; /* _str on <self:ReverseRopeSubstrings> */
4246 if (unlikely(var3 == NULL)) {
4247 if(catchStack.cursor >= 0){
4248 longjmp(catchStack.envs[catchStack.cursor], 1);
4249 }
4250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4251 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 504);
4252 fatal_exit(1);
4253 }
4254 var1 = var3;
4255 RET_LABEL2:(void)0;
4256 }
4257 }
4258 var = var1;
4259 goto RET_LABEL;
4260 RET_LABEL:;
4261 return var;
4262 }
4263 /* method ropes$ReverseRopeSubstrings$index for (self: ReverseRopeSubstrings): Int */
4264 long core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__IndexedIterator__index(val* self) {
4265 long var /* : Int */;
4266 long var1 /* : Int */;
4267 long var3 /* : Int */;
4268 {
4269 { /* Inline ropes$ReverseRopeSubstrings$pos (self) on <self:ReverseRopeSubstrings> */
4270 var3 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
4271 var1 = var3;
4272 RET_LABEL2:(void)0;
4273 }
4274 }
4275 var = var1;
4276 goto RET_LABEL;
4277 RET_LABEL:;
4278 return var;
4279 }
4280 /* method ropes$ReverseRopeSubstrings$is_ok for (self: ReverseRopeSubstrings): Bool */
4281 short int core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__Iterator__is_ok(val* self) {
4282 short int var /* : Bool */;
4283 long var1 /* : Int */;
4284 long var3 /* : Int */;
4285 short int var4 /* : Bool */;
4286 short int var6 /* : Bool */;
4287 int cltype;
4288 int idtype;
4289 const char* var_class_name;
4290 short int var7 /* : Bool */;
4291 {
4292 { /* Inline ropes$ReverseRopeSubstrings$pos (self) on <self:ReverseRopeSubstrings> */
4293 var3 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
4294 var1 = var3;
4295 RET_LABEL2:(void)0;
4296 }
4297 }
4298 {
4299 { /* Inline kernel$Int$>= (var1,0l) on <var1:Int> */
4300 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4301 /* <0l:Int> isa OTHER */
4302 var6 = 1; /* easy <0l:Int> isa OTHER*/
4303 if (unlikely(!var6)) {
4304 var_class_name = type_core__Int.name;
4305 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4306 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4307 fatal_exit(1);
4308 }
4309 var7 = var1 >= 0l;
4310 var4 = var7;
4311 goto RET_LABEL5;
4312 RET_LABEL5:(void)0;
4313 }
4314 }
4315 var = var4;
4316 goto RET_LABEL;
4317 RET_LABEL:;
4318 return var;
4319 }
4320 /* method ropes$ReverseRopeSubstrings$next for (self: ReverseRopeSubstrings) */
4321 void core__ropes___core__ropes__ReverseRopeSubstrings___core__abstract_collection__Iterator__next(val* self) {
4322 long var /* : Int */;
4323 long var2 /* : Int */;
4324 short int var3 /* : Bool */;
4325 short int var5 /* : Bool */;
4326 int cltype;
4327 int idtype;
4328 const char* var_class_name;
4329 short int var6 /* : Bool */;
4330 val* var7 /* : RopeCharIteratorPiece */;
4331 val* var9 /* : RopeCharIteratorPiece */;
4332 val* var10 /* : nullable RopeCharIteratorPiece */;
4333 val* var12 /* : nullable RopeCharIteratorPiece */;
4334 val* var_curr /* var curr: nullable RopeCharIteratorPiece */;
4335 val* var13 /* : String */;
4336 val* var15 /* : String */;
4337 val* var_currit /* var currit: String */;
4338 short int var16 /* : Bool */;
4339 short int var17 /* : Bool */;
4340 val* var_other /* var other: nullable Object */;
4341 short int var19 /* : Bool */;
4342 short int var20 /* : Bool */;
4343 val* var21 /* : String */;
4344 val* var23 /* : String */;
4345 short int var24 /* : Bool */;
4346 int cltype25;
4347 int idtype26;
4348 short int var27 /* : Bool */;
4349 short int var28 /* : Bool */;
4350 int cltype29;
4351 int idtype30;
4352 const char* var_class_name31;
4353 val* var_ /* var : ReverseRopeSubstrings */;
4354 long var33 /* : Int */;
4355 long var35 /* : Int */;
4356 val* var36 /* : FlatString */;
4357 val* var38 /* : FlatString */;
4358 long var39 /* : Int */;
4359 long var41 /* : Int */;
4360 long var42 /* : Int */;
4361 short int var44 /* : Bool */;
4362 int cltype45;
4363 int idtype46;
4364 const char* var_class_name47;
4365 long var48 /* : Int */;
4366 short int var51 /* : Bool */;
4367 short int var53 /* : Bool */;
4368 short int var54 /* : Bool */;
4369 val* var56 /* : RopeCharIteratorPiece */;
4370 val* var57 /* : String */;
4371 short int var58 /* : Bool */;
4372 short int var60 /* : Bool */;
4373 short int var61 /* : Bool */;
4374 val* var63 /* : RopeCharIteratorPiece */;
4375 val* var64 /* : String */;
4376 val* var65 /* : nullable RopeCharIteratorPiece */;
4377 val* var67 /* : nullable RopeCharIteratorPiece */;
4378 long var69 /* : Int */;
4379 long var71 /* : Int */;
4380 {
4381 { /* Inline ropes$ReverseRopeSubstrings$pos (self) on <self:ReverseRopeSubstrings> */
4382 var2 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <self:ReverseRopeSubstrings> */
4383 var = var2;
4384 RET_LABEL1:(void)0;
4385 }
4386 }
4387 {
4388 { /* Inline kernel$Int$< (var,0l) on <var:Int> */
4389 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4390 /* <0l:Int> isa OTHER */
4391 var5 = 1; /* easy <0l:Int> isa OTHER*/
4392 if (unlikely(!var5)) {
4393 var_class_name = type_core__Int.name;
4394 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4395 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4396 fatal_exit(1);
4397 }
4398 var6 = var < 0l;
4399 var3 = var6;
4400 goto RET_LABEL4;
4401 RET_LABEL4:(void)0;
4402 }
4403 }
4404 if (var3){
4405 goto RET_LABEL;
4406 } else {
4407 }
4408 {
4409 { /* Inline ropes$ReverseRopeSubstrings$iter (self) on <self:ReverseRopeSubstrings> */
4410 var9 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val; /* _iter on <self:ReverseRopeSubstrings> */
4411 if (unlikely(var9 == NULL)) {
4412 if(catchStack.cursor >= 0){
4413 longjmp(catchStack.envs[catchStack.cursor], 1);
4414 }
4415 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4416 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 499);
4417 fatal_exit(1);
4418 }
4419 var7 = var9;
4420 RET_LABEL8:(void)0;
4421 }
4422 }
4423 {
4424 { /* Inline ropes$RopeCharIteratorPiece$prev (var7) on <var7:RopeCharIteratorPiece> */
4425 var12 = var7->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var7:RopeCharIteratorPiece> */
4426 var10 = var12;
4427 RET_LABEL11:(void)0;
4428 }
4429 }
4430 var_curr = var10;
4431 if (unlikely(var_curr == NULL)) {
4432 if(catchStack.cursor >= 0){
4433 longjmp(catchStack.envs[catchStack.cursor], 1);
4434 }
4435 PRINT_ERROR("Runtime error: %s", "Cast failed");
4436 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 541);
4437 fatal_exit(1);
4438 }
4439 {
4440 { /* Inline ropes$RopeCharIteratorPiece$node (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4441 var15 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4442 if (unlikely(var15 == NULL)) {
4443 if(catchStack.cursor >= 0){
4444 longjmp(catchStack.envs[catchStack.cursor], 1);
4445 }
4446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
4447 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 322);
4448 fatal_exit(1);
4449 }
4450 var13 = var15;
4451 RET_LABEL14:(void)0;
4452 }
4453 }
4454 var_currit = var13;
4455 for(;;) {
4456 if (var_curr == NULL) {
4457 var16 = 0; /* is null */
4458 } else {
4459 var16 = 1; /* arg is null and recv is not */
4460 }
4461 if (0) {
4462 { /* Inline kernel$Object$!= (var_curr,((val*)NULL)) on <var_curr:nullable RopeCharIteratorPiece> */
4463 var_other = ((val*)NULL);
4464 {
4465 var19 = ((short int(*)(val* self, val* p0))(var_curr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_curr, var_other); /* == on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)>*/
4466 }
4467 var20 = !var19;
4468 var17 = var20;
4469 goto RET_LABEL18;
4470 RET_LABEL18:(void)0;
4471 }
4472 var16 = var17;
4473 }
4474 if (var16){
4475 {
4476 { /* Inline ropes$RopeCharIteratorPiece$node (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4477 var23 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4478 if (unlikely(var23 == NULL)) {
4479 if(catchStack.cursor >= 0){
4480 longjmp(catchStack.envs[catchStack.cursor], 1);
4481 }
4482 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
4483 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 322);
4484 fatal_exit(1);
4485 }
4486 var21 = var23;
4487 RET_LABEL22:(void)0;
4488 }
4489 }
4490 var_currit = var21;
4491 /* <var_currit:String> isa Concat */
4492 cltype25 = type_core__ropes__Concat.color;
4493 idtype26 = type_core__ropes__Concat.id;
4494 if(cltype25 >= var_currit->type->table_size) {
4495 var24 = 0;
4496 } else {
4497 var24 = var_currit->type->type_table[cltype25] == idtype26;
4498 }
4499 var27 = !var24;
4500 if (var27){
4501 /* <var_currit:String> isa FlatString */
4502 cltype29 = type_core__FlatString.color;
4503 idtype30 = type_core__FlatString.id;
4504 if(cltype29 >= var_currit->type->table_size) {
4505 var28 = 0;
4506 } else {
4507 var28 = var_currit->type->type_table[cltype29] == idtype30;
4508 }
4509 if (unlikely(!var28)) {
4510 var_class_name31 = var_currit == NULL ? "null" : var_currit->type->name;
4511 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name31);
4512 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 545);
4513 fatal_exit(1);
4514 }
4515 {
4516 { /* Inline ropes$ReverseRopeSubstrings$str= (self,var_currit) on <self:ReverseRopeSubstrings> */
4517 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val = var_currit; /* _str on <self:ReverseRopeSubstrings> */
4518 RET_LABEL32:(void)0;
4519 }
4520 }
4521 var_ = self;
4522 {
4523 { /* Inline ropes$ReverseRopeSubstrings$pos (var_) on <var_:ReverseRopeSubstrings> */
4524 var35 = var_->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l; /* _pos on <var_:ReverseRopeSubstrings> */
4525 var33 = var35;
4526 RET_LABEL34:(void)0;
4527 }
4528 }
4529 {
4530 { /* Inline ropes$ReverseRopeSubstrings$str (self) on <self:ReverseRopeSubstrings> */
4531 var38 = self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___str].val; /* _str on <self:ReverseRopeSubstrings> */
4532 if (unlikely(var38 == NULL)) {
4533 if(catchStack.cursor >= 0){
4534 longjmp(catchStack.envs[catchStack.cursor], 1);
4535 }
4536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4537 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 504);
4538 fatal_exit(1);
4539 }
4540 var36 = var38;
4541 RET_LABEL37:(void)0;
4542 }
4543 }
4544 {
4545 { /* Inline abstract_text$FlatText$length (var36) on <var36:FlatString> */
4546 var41 = var36->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var36:FlatString> */
4547 var39 = var41;
4548 RET_LABEL40:(void)0;
4549 }
4550 }
4551 {
4552 { /* Inline kernel$Int$- (var33,var39) on <var33:Int> */
4553 /* Covariant cast for argument 0 (i) <var39:Int> isa OTHER */
4554 /* <var39:Int> isa OTHER */
4555 var44 = 1; /* easy <var39:Int> isa OTHER*/
4556 if (unlikely(!var44)) {
4557 var_class_name47 = type_core__Int.name;
4558 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
4559 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4560 fatal_exit(1);
4561 }
4562 var48 = var33 - var39;
4563 var42 = var48;
4564 goto RET_LABEL43;
4565 RET_LABEL43:(void)0;
4566 }
4567 }
4568 {
4569 { /* Inline ropes$ReverseRopeSubstrings$pos= (var_,var42) on <var_:ReverseRopeSubstrings> */
4570 var_->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = var42; /* _pos on <var_:ReverseRopeSubstrings> */
4571 RET_LABEL49:(void)0;
4572 }
4573 }
4574 {
4575 { /* Inline ropes$ReverseRopeSubstrings$iter= (self,var_curr) on <self:ReverseRopeSubstrings> */
4576 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___iter].val = var_curr; /* _iter on <self:ReverseRopeSubstrings> */
4577 RET_LABEL50:(void)0;
4578 }
4579 }
4580 goto RET_LABEL;
4581 } else {
4582 }
4583 {
4584 { /* Inline ropes$RopeCharIteratorPiece$rdone (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4585 var53 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4586 var51 = var53;
4587 RET_LABEL52:(void)0;
4588 }
4589 }
4590 var54 = !var51;
4591 if (var54){
4592 {
4593 { /* Inline ropes$RopeCharIteratorPiece$rdone= (var_curr,1) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4594 var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4595 RET_LABEL55:(void)0;
4596 }
4597 }
4598 var56 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4599 var57 = var_currit->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_currit:String(Concat)> */
4600 if (unlikely(var57 == NULL)) {
4601 if(catchStack.cursor >= 0){
4602 longjmp(catchStack.envs[catchStack.cursor], 1);
4603 }
4604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
4605 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 552);
4606 fatal_exit(1);
4607 }
4608 {
4609 ((void(*)(val* self, val* p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var56, var57); /* node= on <var56:RopeCharIteratorPiece>*/
4610 }
4611 {
4612 ((void(*)(val* self, short int p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var56, 0); /* ldone= on <var56:RopeCharIteratorPiece>*/
4613 }
4614 {
4615 ((void(*)(val* self, short int p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var56, 0); /* rdone= on <var56:RopeCharIteratorPiece>*/
4616 }
4617 {
4618 ((void(*)(val* self, val* p0))(var56->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var56, var_curr); /* prev= on <var56:RopeCharIteratorPiece>*/
4619 }
4620 {
4621 ((void(*)(val* self))(var56->class->vft[COLOR_core__kernel__Object__init]))(var56); /* init on <var56:RopeCharIteratorPiece>*/
4622 }
4623 var_curr = var56;
4624 goto BREAK_label;
4625 } else {
4626 }
4627 {
4628 { /* Inline ropes$RopeCharIteratorPiece$ldone (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4629 var60 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4630 var58 = var60;
4631 RET_LABEL59:(void)0;
4632 }
4633 }
4634 var61 = !var58;
4635 if (var61){
4636 {
4637 { /* Inline ropes$RopeCharIteratorPiece$ldone= (var_curr,1) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4638 var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4639 RET_LABEL62:(void)0;
4640 }
4641 }
4642 var63 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4643 var64 = var_currit->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_currit:String(Concat)> */
4644 if (unlikely(var64 == NULL)) {
4645 if(catchStack.cursor >= 0){
4646 longjmp(catchStack.envs[catchStack.cursor], 1);
4647 }
4648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4649 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 557);
4650 fatal_exit(1);
4651 }
4652 {
4653 ((void(*)(val* self, val* p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var63, var64); /* node= on <var63:RopeCharIteratorPiece>*/
4654 }
4655 {
4656 ((void(*)(val* self, short int p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var63, 0); /* ldone= on <var63:RopeCharIteratorPiece>*/
4657 }
4658 {
4659 ((void(*)(val* self, short int p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var63, 0); /* rdone= on <var63:RopeCharIteratorPiece>*/
4660 }
4661 {
4662 ((void(*)(val* self, val* p0))(var63->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var63, var_curr); /* prev= on <var63:RopeCharIteratorPiece>*/
4663 }
4664 {
4665 ((void(*)(val* self))(var63->class->vft[COLOR_core__kernel__Object__init]))(var63); /* init on <var63:RopeCharIteratorPiece>*/
4666 }
4667 var_curr = var63;
4668 goto BREAK_label;
4669 } else {
4670 }
4671 {
4672 { /* Inline ropes$RopeCharIteratorPiece$prev (var_curr) on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4673 var67 = var_curr->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_curr:nullable RopeCharIteratorPiece(RopeCharIteratorPiece)> */
4674 var65 = var67;
4675 RET_LABEL66:(void)0;
4676 }
4677 }
4678 var_curr = var65;
4679 } else {
4680 goto BREAK_label68;
4681 }
4682 BREAK_label: (void)0;
4683 }
4684 BREAK_label68: (void)0;
4685 {
4686 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
4687 var71 = -1l;
4688 var69 = var71;
4689 goto RET_LABEL70;
4690 RET_LABEL70:(void)0;
4691 }
4692 }
4693 {
4694 { /* Inline ropes$ReverseRopeSubstrings$pos= (self,var69) on <self:ReverseRopeSubstrings> */
4695 self->attrs[COLOR_core__ropes__ReverseRopeSubstrings___pos].l = var69; /* _pos on <self:ReverseRopeSubstrings> */
4696 RET_LABEL72:(void)0;
4697 }
4698 }
4699 RET_LABEL:;
4700 }
4701 /* method ropes$RopeSubstrings$iter for (self: RopeSubstrings): RopeCharIteratorPiece */
4702 val* core__ropes___core__ropes__RopeSubstrings___iter(val* self) {
4703 val* var /* : RopeCharIteratorPiece */;
4704 val* var1 /* : RopeCharIteratorPiece */;
4705 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
4706 if (unlikely(var1 == NULL)) {
4707 if(catchStack.cursor >= 0){
4708 longjmp(catchStack.envs[catchStack.cursor], 1);
4709 }
4710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4711 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 570);
4712 fatal_exit(1);
4713 }
4714 var = var1;
4715 RET_LABEL:;
4716 return var;
4717 }
4718 /* method ropes$RopeSubstrings$iter= for (self: RopeSubstrings, RopeCharIteratorPiece) */
4719 void core__ropes___core__ropes__RopeSubstrings___iter_61d(val* self, val* p0) {
4720 self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val = p0; /* _iter on <self:RopeSubstrings> */
4721 RET_LABEL:;
4722 }
4723 /* method ropes$RopeSubstrings$pos for (self: RopeSubstrings): Int */
4724 long core__ropes___core__ropes__RopeSubstrings___pos(val* self) {
4725 long var /* : Int */;
4726 long var1 /* : Int */;
4727 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
4728 var = var1;
4729 RET_LABEL:;
4730 return var;
4731 }
4732 /* method ropes$RopeSubstrings$pos= for (self: RopeSubstrings, Int) */
4733 void core__ropes___core__ropes__RopeSubstrings___pos_61d(val* self, long p0) {
4734 self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l = p0; /* _pos on <self:RopeSubstrings> */
4735 RET_LABEL:;
4736 }
4737 /* method ropes$RopeSubstrings$max for (self: RopeSubstrings): Int */
4738 long core__ropes___core__ropes__RopeSubstrings___max(val* self) {
4739 long var /* : Int */;
4740 long var1 /* : Int */;
4741 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
4742 var = var1;
4743 RET_LABEL:;
4744 return var;
4745 }
4746 /* method ropes$RopeSubstrings$max= for (self: RopeSubstrings, Int) */
4747 void core__ropes___core__ropes__RopeSubstrings___max_61d(val* self, long p0) {
4748 self->attrs[COLOR_core__ropes__RopeSubstrings___max].l = p0; /* _max on <self:RopeSubstrings> */
4749 RET_LABEL:;
4750 }
4751 /* method ropes$RopeSubstrings$str for (self: RopeSubstrings): FlatString */
4752 val* core__ropes___core__ropes__RopeSubstrings___str(val* self) {
4753 val* var /* : FlatString */;
4754 val* var1 /* : FlatString */;
4755 var1 = self->attrs[COLOR_core__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
4756 if (unlikely(var1 == NULL)) {
4757 if(catchStack.cursor >= 0){
4758 longjmp(catchStack.envs[catchStack.cursor], 1);
4759 }
4760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
4761 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 577);
4762 fatal_exit(1);
4763 }
4764 var = var1;
4765 RET_LABEL:;
4766 return var;
4767 }
4768 /* method ropes$RopeSubstrings$str= for (self: RopeSubstrings, FlatString) */
4769 void core__ropes___core__ropes__RopeSubstrings___str_61d(val* self, val* p0) {
4770 self->attrs[COLOR_core__ropes__RopeSubstrings___str].val = p0; /* _str on <self:RopeSubstrings> */
4771 RET_LABEL:;
4772 }
4773 /* method ropes$RopeSubstrings$from for (self: RopeSubstrings, Concat, Int) */
4774 void core__ropes___core__ropes__RopeSubstrings___from(val* self, val* p0, long p1) {
4775 val* var_root /* var root: Concat */;
4776 long var_pos /* var pos: Int */;
4777 val* var /* : RopeCharIteratorPiece */;
4778 val* var_r /* var r: RopeCharIteratorPiece */;
4779 long var2 /* : Int */;
4780 long var4 /* : Int */;
4781 long var5 /* : Int */;
4782 short int var7 /* : Bool */;
4783 int cltype;
4784 int idtype;
4785 const char* var_class_name;
4786 long var8 /* : Int */;
4787 val* var_rnod /* var rnod: String */;
4788 long var_off /* var off: Int */;
4789 short int var10 /* : Bool */;
4790 int cltype11;
4791 int idtype12;
4792 val* var13 /* : String */;
4793 long var14 /* : Int */;
4794 short int var15 /* : Bool */;
4795 short int var17 /* : Bool */;
4796 int cltype18;
4797 int idtype19;
4798 const char* var_class_name20;
4799 short int var21 /* : Bool */;
4800 val* var23 /* : String */;
4801 long var24 /* : Int */;
4802 long var25 /* : Int */;
4803 short int var27 /* : Bool */;
4804 int cltype28;
4805 int idtype29;
4806 const char* var_class_name30;
4807 long var31 /* : Int */;
4808 val* var32 /* : String */;
4809 val* var33 /* : RopeCharIteratorPiece */;
4810 val* var34 /* : String */;
4811 val* var35 /* : RopeCharIteratorPiece */;
4812 short int var36 /* : Bool */;
4813 int cltype37;
4814 int idtype38;
4815 const char* var_class_name39;
4816 long var43 /* : Int */;
4817 short int var45 /* : Bool */;
4818 int cltype46;
4819 int idtype47;
4820 const char* var_class_name48;
4821 long var49 /* : Int */;
4822 {
4823 { /* Inline kernel$Object$init (self) on <self:RopeSubstrings> */
4824 RET_LABEL1:(void)0;
4825 }
4826 }
4827 var_root = p0;
4828 var_pos = p1;
4829 var = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4830 {
4831 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var, var_root); /* node= on <var:RopeCharIteratorPiece>*/
4832 }
4833 {
4834 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var, 1); /* ldone= on <var:RopeCharIteratorPiece>*/
4835 }
4836 {
4837 ((void(*)(val* self, short int p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var, 0); /* rdone= on <var:RopeCharIteratorPiece>*/
4838 }
4839 {
4840 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var, ((val*)NULL)); /* prev= on <var:RopeCharIteratorPiece>*/
4841 }
4842 {
4843 ((void(*)(val* self))(var->class->vft[COLOR_core__kernel__Object__init]))(var); /* init on <var:RopeCharIteratorPiece>*/
4844 }
4845 var_r = var;
4846 {
4847 { /* Inline ropes$Concat$length (var_root) on <var_root:Concat> */
4848 var4 = var_root->attrs[COLOR_core__ropes__Concat___length].l; /* _length on <var_root:Concat> */
4849 var2 = var4;
4850 RET_LABEL3:(void)0;
4851 }
4852 }
4853 {
4854 { /* Inline kernel$Int$- (var2,1l) on <var2:Int> */
4855 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4856 /* <1l:Int> isa OTHER */
4857 var7 = 1; /* easy <1l:Int> isa OTHER*/
4858 if (unlikely(!var7)) {
4859 var_class_name = type_core__Int.name;
4860 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4861 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4862 fatal_exit(1);
4863 }
4864 var8 = var2 - 1l;
4865 var5 = var8;
4866 goto RET_LABEL6;
4867 RET_LABEL6:(void)0;
4868 }
4869 }
4870 {
4871 { /* Inline ropes$RopeSubstrings$max= (self,var5) on <self:RopeSubstrings> */
4872 self->attrs[COLOR_core__ropes__RopeSubstrings___max].l = var5; /* _max on <self:RopeSubstrings> */
4873 RET_LABEL9:(void)0;
4874 }
4875 }
4876 var_rnod = var_root;
4877 var_off = var_pos;
4878 for(;;) {
4879 /* <var_rnod:String> isa Concat */
4880 cltype11 = type_core__ropes__Concat.color;
4881 idtype12 = type_core__ropes__Concat.id;
4882 if(cltype11 >= var_rnod->type->table_size) {
4883 var10 = 0;
4884 } else {
4885 var10 = var_rnod->type->type_table[cltype11] == idtype12;
4886 }
4887 if (var10){
4888 var13 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
4889 if (unlikely(var13 == NULL)) {
4890 if(catchStack.cursor >= 0){
4891 longjmp(catchStack.envs[catchStack.cursor], 1);
4892 }
4893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4894 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 587);
4895 fatal_exit(1);
4896 }
4897 {
4898 var14 = ((long(*)(val* self))(var13->class->vft[COLOR_core__abstract_text__Text__length]))(var13); /* length on <var13:String>*/
4899 }
4900 {
4901 { /* Inline kernel$Int$>= (var_off,var14) on <var_off:Int> */
4902 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
4903 /* <var14:Int> isa OTHER */
4904 var17 = 1; /* easy <var14:Int> isa OTHER*/
4905 if (unlikely(!var17)) {
4906 var_class_name20 = type_core__Int.name;
4907 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
4908 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4909 fatal_exit(1);
4910 }
4911 var21 = var_off >= var14;
4912 var15 = var21;
4913 goto RET_LABEL16;
4914 RET_LABEL16:(void)0;
4915 }
4916 }
4917 if (var15){
4918 {
4919 { /* Inline ropes$RopeCharIteratorPiece$rdone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
4920 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_r:RopeCharIteratorPiece> */
4921 RET_LABEL22:(void)0;
4922 }
4923 }
4924 var23 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
4925 if (unlikely(var23 == NULL)) {
4926 if(catchStack.cursor >= 0){
4927 longjmp(catchStack.envs[catchStack.cursor], 1);
4928 }
4929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4930 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 589);
4931 fatal_exit(1);
4932 }
4933 {
4934 var24 = ((long(*)(val* self))(var23->class->vft[COLOR_core__abstract_text__Text__length]))(var23); /* length on <var23:String>*/
4935 }
4936 {
4937 { /* Inline kernel$Int$- (var_off,var24) on <var_off:Int> */
4938 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
4939 /* <var24:Int> isa OTHER */
4940 var27 = 1; /* easy <var24:Int> isa OTHER*/
4941 if (unlikely(!var27)) {
4942 var_class_name30 = type_core__Int.name;
4943 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
4944 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4945 fatal_exit(1);
4946 }
4947 var31 = var_off - var24;
4948 var25 = var31;
4949 goto RET_LABEL26;
4950 RET_LABEL26:(void)0;
4951 }
4952 }
4953 var_off = var25;
4954 var32 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
4955 if (unlikely(var32 == NULL)) {
4956 if(catchStack.cursor >= 0){
4957 longjmp(catchStack.envs[catchStack.cursor], 1);
4958 }
4959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
4960 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 590);
4961 fatal_exit(1);
4962 }
4963 var_rnod = var32;
4964 var33 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4965 {
4966 ((void(*)(val* self, val* p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var33, var_rnod); /* node= on <var33:RopeCharIteratorPiece>*/
4967 }
4968 {
4969 ((void(*)(val* self, short int p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var33, 1); /* ldone= on <var33:RopeCharIteratorPiece>*/
4970 }
4971 {
4972 ((void(*)(val* self, short int p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var33, 0); /* rdone= on <var33:RopeCharIteratorPiece>*/
4973 }
4974 {
4975 ((void(*)(val* self, val* p0))(var33->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var33, var_r); /* prev= on <var33:RopeCharIteratorPiece>*/
4976 }
4977 {
4978 ((void(*)(val* self))(var33->class->vft[COLOR_core__kernel__Object__init]))(var33); /* init on <var33:RopeCharIteratorPiece>*/
4979 }
4980 var_r = var33;
4981 } else {
4982 var34 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
4983 if (unlikely(var34 == NULL)) {
4984 if(catchStack.cursor >= 0){
4985 longjmp(catchStack.envs[catchStack.cursor], 1);
4986 }
4987 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
4988 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 593);
4989 fatal_exit(1);
4990 }
4991 var_rnod = var34;
4992 var35 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
4993 {
4994 ((void(*)(val* self, val* p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var35, var_rnod); /* node= on <var35:RopeCharIteratorPiece>*/
4995 }
4996 {
4997 ((void(*)(val* self, short int p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var35, 1); /* ldone= on <var35:RopeCharIteratorPiece>*/
4998 }
4999 {
5000 ((void(*)(val* self, short int p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var35, 0); /* rdone= on <var35:RopeCharIteratorPiece>*/
5001 }
5002 {
5003 ((void(*)(val* self, val* p0))(var35->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var35, var_r); /* prev= on <var35:RopeCharIteratorPiece>*/
5004 }
5005 {
5006 ((void(*)(val* self))(var35->class->vft[COLOR_core__kernel__Object__init]))(var35); /* init on <var35:RopeCharIteratorPiece>*/
5007 }
5008 var_r = var35;
5009 }
5010 } else {
5011 /* <var_rnod:String> isa FlatString */
5012 cltype37 = type_core__FlatString.color;
5013 idtype38 = type_core__FlatString.id;
5014 if(cltype37 >= var_rnod->type->table_size) {
5015 var36 = 0;
5016 } else {
5017 var36 = var_rnod->type->type_table[cltype37] == idtype38;
5018 }
5019 if (unlikely(!var36)) {
5020 var_class_name39 = var_rnod == NULL ? "null" : var_rnod->type->name;
5021 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name39);
5022 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 597);
5023 fatal_exit(1);
5024 }
5025 {
5026 { /* Inline ropes$RopeSubstrings$str= (self,var_rnod) on <self:RopeSubstrings> */
5027 self->attrs[COLOR_core__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
5028 RET_LABEL40:(void)0;
5029 }
5030 }
5031 {
5032 { /* Inline ropes$RopeCharIteratorPiece$rdone= (var_r,1) on <var_r:RopeCharIteratorPiece> */
5033 var_r->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_r:RopeCharIteratorPiece> */
5034 RET_LABEL41:(void)0;
5035 }
5036 }
5037 {
5038 { /* Inline ropes$RopeSubstrings$iter= (self,var_r) on <self:RopeSubstrings> */
5039 self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val = var_r; /* _iter on <self:RopeSubstrings> */
5040 RET_LABEL42:(void)0;
5041 }
5042 }
5043 {
5044 { /* Inline kernel$Int$- (var_pos,var_off) on <var_pos:Int> */
5045 /* Covariant cast for argument 0 (i) <var_off:Int> isa OTHER */
5046 /* <var_off:Int> isa OTHER */
5047 var45 = 1; /* easy <var_off:Int> isa OTHER*/
5048 if (unlikely(!var45)) {
5049 var_class_name48 = type_core__Int.name;
5050 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
5051 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5052 fatal_exit(1);
5053 }
5054 var49 = var_pos - var_off;
5055 var43 = var49;
5056 goto RET_LABEL44;
5057 RET_LABEL44:(void)0;
5058 }
5059 }
5060 {
5061 { /* Inline ropes$RopeSubstrings$pos= (self,var43) on <self:RopeSubstrings> */
5062 self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l = var43; /* _pos on <self:RopeSubstrings> */
5063 RET_LABEL50:(void)0;
5064 }
5065 }
5066 goto BREAK_label;
5067 }
5068 }
5069 BREAK_label: (void)0;
5070 RET_LABEL:;
5071 }
5072 /* method ropes$RopeSubstrings$item for (self: RopeSubstrings): FlatString */
5073 val* core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__Iterator__item(val* self) {
5074 val* var /* : FlatString */;
5075 val* var1 /* : FlatString */;
5076 val* var3 /* : FlatString */;
5077 {
5078 { /* Inline ropes$RopeSubstrings$str (self) on <self:RopeSubstrings> */
5079 var3 = self->attrs[COLOR_core__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
5080 if (unlikely(var3 == NULL)) {
5081 if(catchStack.cursor >= 0){
5082 longjmp(catchStack.envs[catchStack.cursor], 1);
5083 }
5084 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
5085 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 577);
5086 fatal_exit(1);
5087 }
5088 var1 = var3;
5089 RET_LABEL2:(void)0;
5090 }
5091 }
5092 var = var1;
5093 goto RET_LABEL;
5094 RET_LABEL:;
5095 return var;
5096 }
5097 /* method ropes$RopeSubstrings$is_ok for (self: RopeSubstrings): Bool */
5098 short int core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__Iterator__is_ok(val* self) {
5099 short int var /* : Bool */;
5100 long var1 /* : Int */;
5101 long var3 /* : Int */;
5102 long var4 /* : Int */;
5103 long var6 /* : Int */;
5104 short int var7 /* : Bool */;
5105 short int var9 /* : Bool */;
5106 int cltype;
5107 int idtype;
5108 const char* var_class_name;
5109 short int var10 /* : Bool */;
5110 {
5111 { /* Inline ropes$RopeSubstrings$pos (self) on <self:RopeSubstrings> */
5112 var3 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
5113 var1 = var3;
5114 RET_LABEL2:(void)0;
5115 }
5116 }
5117 {
5118 { /* Inline ropes$RopeSubstrings$max (self) on <self:RopeSubstrings> */
5119 var6 = self->attrs[COLOR_core__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
5120 var4 = var6;
5121 RET_LABEL5:(void)0;
5122 }
5123 }
5124 {
5125 { /* Inline kernel$Int$<= (var1,var4) on <var1:Int> */
5126 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
5127 /* <var4:Int> isa OTHER */
5128 var9 = 1; /* easy <var4:Int> isa OTHER*/
5129 if (unlikely(!var9)) {
5130 var_class_name = type_core__Int.name;
5131 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5132 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
5133 fatal_exit(1);
5134 }
5135 var10 = var1 <= var4;
5136 var7 = var10;
5137 goto RET_LABEL8;
5138 RET_LABEL8:(void)0;
5139 }
5140 }
5141 var = var7;
5142 goto RET_LABEL;
5143 RET_LABEL:;
5144 return var;
5145 }
5146 /* method ropes$RopeSubstrings$index for (self: RopeSubstrings): Int */
5147 long core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__IndexedIterator__index(val* self) {
5148 long var /* : Int */;
5149 long var1 /* : Int */;
5150 long var3 /* : Int */;
5151 {
5152 { /* Inline ropes$RopeSubstrings$pos (self) on <self:RopeSubstrings> */
5153 var3 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
5154 var1 = var3;
5155 RET_LABEL2:(void)0;
5156 }
5157 }
5158 var = var1;
5159 goto RET_LABEL;
5160 RET_LABEL:;
5161 return var;
5162 }
5163 /* method ropes$RopeSubstrings$next for (self: RopeSubstrings) */
5164 void core__ropes___core__ropes__RopeSubstrings___core__abstract_collection__Iterator__next(val* self) {
5165 val* var_ /* var : RopeSubstrings */;
5166 long var /* : Int */;
5167 long var2 /* : Int */;
5168 val* var3 /* : FlatString */;
5169 val* var5 /* : FlatString */;
5170 long var6 /* : Int */;
5171 long var8 /* : Int */;
5172 long var9 /* : Int */;
5173 short int var11 /* : Bool */;
5174 int cltype;
5175 int idtype;
5176 const char* var_class_name;
5177 long var12 /* : Int */;
5178 long var14 /* : Int */;
5179 long var16 /* : Int */;
5180 long var17 /* : Int */;
5181 long var19 /* : Int */;
5182 short int var20 /* : Bool */;
5183 short int var22 /* : Bool */;
5184 int cltype23;
5185 int idtype24;
5186 const char* var_class_name25;
5187 short int var26 /* : Bool */;
5188 val* var27 /* : RopeCharIteratorPiece */;
5189 val* var29 /* : RopeCharIteratorPiece */;
5190 val* var30 /* : nullable RopeCharIteratorPiece */;
5191 val* var32 /* : nullable RopeCharIteratorPiece */;
5192 val* var_it /* var it: RopeCharIteratorPiece */;
5193 val* var33 /* : String */;
5194 val* var35 /* : String */;
5195 val* var_rnod /* var rnod: String */;
5196 short int var36 /* : Bool */;
5197 int cltype37;
5198 int idtype38;
5199 short int var39 /* : Bool */;
5200 short int var42 /* : Bool */;
5201 int cltype43;
5202 int idtype44;
5203 const char* var_class_name45;
5204 short int var48 /* : Bool */;
5205 short int var50 /* : Bool */;
5206 short int var51 /* : Bool */;
5207 val* var52 /* : String */;
5208 val* var54 /* : RopeCharIteratorPiece */;
5209 short int var55 /* : Bool */;
5210 short int var57 /* : Bool */;
5211 short int var58 /* : Bool */;
5212 val* var60 /* : String */;
5213 val* var61 /* : RopeCharIteratorPiece */;
5214 val* var62 /* : nullable RopeCharIteratorPiece */;
5215 val* var64 /* : nullable RopeCharIteratorPiece */;
5216 val* var65 /* : String */;
5217 val* var67 /* : String */;
5218 var_ = self;
5219 {
5220 { /* Inline ropes$RopeSubstrings$pos (var_) on <var_:RopeSubstrings> */
5221 var2 = var_->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <var_:RopeSubstrings> */
5222 var = var2;
5223 RET_LABEL1:(void)0;
5224 }
5225 }
5226 {
5227 { /* Inline ropes$RopeSubstrings$str (self) on <self:RopeSubstrings> */
5228 var5 = self->attrs[COLOR_core__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
5229 if (unlikely(var5 == NULL)) {
5230 if(catchStack.cursor >= 0){
5231 longjmp(catchStack.envs[catchStack.cursor], 1);
5232 }
5233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
5234 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 577);
5235 fatal_exit(1);
5236 }
5237 var3 = var5;
5238 RET_LABEL4:(void)0;
5239 }
5240 }
5241 {
5242 { /* Inline abstract_text$FlatText$length (var3) on <var3:FlatString> */
5243 var8 = var3->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <var3:FlatString> */
5244 var6 = var8;
5245 RET_LABEL7:(void)0;
5246 }
5247 }
5248 {
5249 { /* Inline kernel$Int$+ (var,var6) on <var:Int> */
5250 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
5251 /* <var6:Int> isa OTHER */
5252 var11 = 1; /* easy <var6:Int> isa OTHER*/
5253 if (unlikely(!var11)) {
5254 var_class_name = type_core__Int.name;
5255 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5256 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5257 fatal_exit(1);
5258 }
5259 var12 = var + var6;
5260 var9 = var12;
5261 goto RET_LABEL10;
5262 RET_LABEL10:(void)0;
5263 }
5264 }
5265 {
5266 { /* Inline ropes$RopeSubstrings$pos= (var_,var9) on <var_:RopeSubstrings> */
5267 var_->attrs[COLOR_core__ropes__RopeSubstrings___pos].l = var9; /* _pos on <var_:RopeSubstrings> */
5268 RET_LABEL13:(void)0;
5269 }
5270 }
5271 {
5272 { /* Inline ropes$RopeSubstrings$pos (self) on <self:RopeSubstrings> */
5273 var16 = self->attrs[COLOR_core__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
5274 var14 = var16;
5275 RET_LABEL15:(void)0;
5276 }
5277 }
5278 {
5279 { /* Inline ropes$RopeSubstrings$max (self) on <self:RopeSubstrings> */
5280 var19 = self->attrs[COLOR_core__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
5281 var17 = var19;
5282 RET_LABEL18:(void)0;
5283 }
5284 }
5285 {
5286 { /* Inline kernel$Int$> (var14,var17) on <var14:Int> */
5287 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
5288 /* <var17:Int> isa OTHER */
5289 var22 = 1; /* easy <var17:Int> isa OTHER*/
5290 if (unlikely(!var22)) {
5291 var_class_name25 = type_core__Int.name;
5292 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
5293 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
5294 fatal_exit(1);
5295 }
5296 var26 = var14 > var17;
5297 var20 = var26;
5298 goto RET_LABEL21;
5299 RET_LABEL21:(void)0;
5300 }
5301 }
5302 if (var20){
5303 goto RET_LABEL;
5304 } else {
5305 }
5306 {
5307 { /* Inline ropes$RopeSubstrings$iter (self) on <self:RopeSubstrings> */
5308 var29 = self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
5309 if (unlikely(var29 == NULL)) {
5310 if(catchStack.cursor >= 0){
5311 longjmp(catchStack.envs[catchStack.cursor], 1);
5312 }
5313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
5314 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 570);
5315 fatal_exit(1);
5316 }
5317 var27 = var29;
5318 RET_LABEL28:(void)0;
5319 }
5320 }
5321 {
5322 { /* Inline ropes$RopeCharIteratorPiece$prev (var27) on <var27:RopeCharIteratorPiece> */
5323 var32 = var27->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var27:RopeCharIteratorPiece> */
5324 var30 = var32;
5325 RET_LABEL31:(void)0;
5326 }
5327 }
5328 if (unlikely(var30 == NULL)) {
5329 if(catchStack.cursor >= 0){
5330 longjmp(catchStack.envs[catchStack.cursor], 1);
5331 }
5332 PRINT_ERROR("Runtime error: %s", "Cast failed");
5333 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 615);
5334 fatal_exit(1);
5335 }
5336 var_it = var30;
5337 {
5338 { /* Inline ropes$RopeCharIteratorPiece$node (var_it) on <var_it:RopeCharIteratorPiece> */
5339 var35 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_it:RopeCharIteratorPiece> */
5340 if (unlikely(var35 == NULL)) {
5341 if(catchStack.cursor >= 0){
5342 longjmp(catchStack.envs[catchStack.cursor], 1);
5343 }
5344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5345 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 322);
5346 fatal_exit(1);
5347 }
5348 var33 = var35;
5349 RET_LABEL34:(void)0;
5350 }
5351 }
5352 var_rnod = var33;
5353 for(;;) {
5354 /* <var_rnod:String> isa Concat */
5355 cltype37 = type_core__ropes__Concat.color;
5356 idtype38 = type_core__ropes__Concat.id;
5357 if(cltype37 >= var_rnod->type->table_size) {
5358 var36 = 0;
5359 } else {
5360 var36 = var_rnod->type->type_table[cltype37] == idtype38;
5361 }
5362 var39 = !var36;
5363 if (var39){
5364 {
5365 { /* Inline ropes$RopeCharIteratorPiece$ldone= (var_it,1) on <var_it:RopeCharIteratorPiece> */
5366 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_it:RopeCharIteratorPiece> */
5367 RET_LABEL40:(void)0;
5368 }
5369 }
5370 {
5371 { /* Inline ropes$RopeCharIteratorPiece$rdone= (var_it,1) on <var_it:RopeCharIteratorPiece> */
5372 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_it:RopeCharIteratorPiece> */
5373 RET_LABEL41:(void)0;
5374 }
5375 }
5376 /* <var_rnod:String> isa FlatString */
5377 cltype43 = type_core__FlatString.color;
5378 idtype44 = type_core__FlatString.id;
5379 if(cltype43 >= var_rnod->type->table_size) {
5380 var42 = 0;
5381 } else {
5382 var42 = var_rnod->type->type_table[cltype43] == idtype44;
5383 }
5384 if (unlikely(!var42)) {
5385 var_class_name45 = var_rnod == NULL ? "null" : var_rnod->type->name;
5386 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name45);
5387 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 621);
5388 fatal_exit(1);
5389 }
5390 {
5391 { /* Inline ropes$RopeSubstrings$str= (self,var_rnod) on <self:RopeSubstrings> */
5392 self->attrs[COLOR_core__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
5393 RET_LABEL46:(void)0;
5394 }
5395 }
5396 {
5397 { /* Inline ropes$RopeSubstrings$iter= (self,var_it) on <self:RopeSubstrings> */
5398 self->attrs[COLOR_core__ropes__RopeSubstrings___iter].val = var_it; /* _iter on <self:RopeSubstrings> */
5399 RET_LABEL47:(void)0;
5400 }
5401 }
5402 goto BREAK_label;
5403 } else {
5404 }
5405 {
5406 { /* Inline ropes$RopeCharIteratorPiece$ldone (var_it) on <var_it:RopeCharIteratorPiece> */
5407 var50 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s; /* _ldone on <var_it:RopeCharIteratorPiece> */
5408 var48 = var50;
5409 RET_LABEL49:(void)0;
5410 }
5411 }
5412 var51 = !var48;
5413 if (var51){
5414 var52 = var_rnod->attrs[COLOR_core__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
5415 if (unlikely(var52 == NULL)) {
5416 if(catchStack.cursor >= 0){
5417 longjmp(catchStack.envs[catchStack.cursor], 1);
5418 }
5419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
5420 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 626);
5421 fatal_exit(1);
5422 }
5423 var_rnod = var52;
5424 {
5425 { /* Inline ropes$RopeCharIteratorPiece$ldone= (var_it,1) on <var_it:RopeCharIteratorPiece> */
5426 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___ldone].s = 1; /* _ldone on <var_it:RopeCharIteratorPiece> */
5427 RET_LABEL53:(void)0;
5428 }
5429 }
5430 var54 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
5431 {
5432 ((void(*)(val* self, val* p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var54, var_rnod); /* node= on <var54:RopeCharIteratorPiece>*/
5433 }
5434 {
5435 ((void(*)(val* self, short int p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var54, 0); /* ldone= on <var54:RopeCharIteratorPiece>*/
5436 }
5437 {
5438 ((void(*)(val* self, short int p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var54, 0); /* rdone= on <var54:RopeCharIteratorPiece>*/
5439 }
5440 {
5441 ((void(*)(val* self, val* p0))(var54->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var54, var_it); /* prev= on <var54:RopeCharIteratorPiece>*/
5442 }
5443 {
5444 ((void(*)(val* self))(var54->class->vft[COLOR_core__kernel__Object__init]))(var54); /* init on <var54:RopeCharIteratorPiece>*/
5445 }
5446 var_it = var54;
5447 } else {
5448 {
5449 { /* Inline ropes$RopeCharIteratorPiece$rdone (var_it) on <var_it:RopeCharIteratorPiece> */
5450 var57 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s; /* _rdone on <var_it:RopeCharIteratorPiece> */
5451 var55 = var57;
5452 RET_LABEL56:(void)0;
5453 }
5454 }
5455 var58 = !var55;
5456 if (var58){
5457 {
5458 { /* Inline ropes$RopeCharIteratorPiece$rdone= (var_it,1) on <var_it:RopeCharIteratorPiece> */
5459 var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___rdone].s = 1; /* _rdone on <var_it:RopeCharIteratorPiece> */
5460 RET_LABEL59:(void)0;
5461 }
5462 }
5463 var60 = var_rnod->attrs[COLOR_core__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
5464 if (unlikely(var60 == NULL)) {
5465 if(catchStack.cursor >= 0){
5466 longjmp(catchStack.envs[catchStack.cursor], 1);
5467 }
5468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
5469 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 631);
5470 fatal_exit(1);
5471 }
5472 var_rnod = var60;
5473 var61 = NEW_core__ropes__RopeCharIteratorPiece(&type_core__ropes__RopeCharIteratorPiece);
5474 {
5475 ((void(*)(val* self, val* p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__node_61d]))(var61, var_rnod); /* node= on <var61:RopeCharIteratorPiece>*/
5476 }
5477 {
5478 ((void(*)(val* self, short int p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__ldone_61d]))(var61, 0); /* ldone= on <var61:RopeCharIteratorPiece>*/
5479 }
5480 {
5481 ((void(*)(val* self, short int p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__rdone_61d]))(var61, 0); /* rdone= on <var61:RopeCharIteratorPiece>*/
5482 }
5483 {
5484 ((void(*)(val* self, val* p0))(var61->class->vft[COLOR_core__ropes__RopeCharIteratorPiece__prev_61d]))(var61, var_it); /* prev= on <var61:RopeCharIteratorPiece>*/
5485 }
5486 {
5487 ((void(*)(val* self))(var61->class->vft[COLOR_core__kernel__Object__init]))(var61); /* init on <var61:RopeCharIteratorPiece>*/
5488 }
5489 var_it = var61;
5490 } else {
5491 {
5492 { /* Inline ropes$RopeCharIteratorPiece$prev (var_it) on <var_it:RopeCharIteratorPiece> */
5493 var64 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___prev].val; /* _prev on <var_it:RopeCharIteratorPiece> */
5494 var62 = var64;
5495 RET_LABEL63:(void)0;
5496 }
5497 }
5498 if (unlikely(var62 == NULL)) {
5499 if(catchStack.cursor >= 0){
5500 longjmp(catchStack.envs[catchStack.cursor], 1);
5501 }
5502 PRINT_ERROR("Runtime error: %s", "Cast failed");
5503 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 634);
5504 fatal_exit(1);
5505 }
5506 var_it = var62;
5507 {
5508 { /* Inline ropes$RopeCharIteratorPiece$node (var_it) on <var_it:RopeCharIteratorPiece> */
5509 var67 = var_it->attrs[COLOR_core__ropes__RopeCharIteratorPiece___node].val; /* _node on <var_it:RopeCharIteratorPiece> */
5510 if (unlikely(var67 == NULL)) {
5511 if(catchStack.cursor >= 0){
5512 longjmp(catchStack.envs[catchStack.cursor], 1);
5513 }
5514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5515 PRINT_ERROR(" (%s:%d)\n", FILE_core__ropes, 322);
5516 fatal_exit(1);
5517 }
5518 var65 = var67;
5519 RET_LABEL66:(void)0;
5520 }
5521 }
5522 var_rnod = var65;
5523 goto BREAK_label68;
5524 }
5525 }
5526 BREAK_label68: (void)0;
5527 }
5528 BREAK_label: (void)0;
5529 RET_LABEL:;
5530 }
5531 /* method ropes$RopeChars$[] for (self: RopeChars, Int): Char */
5532 uint32_t core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
5533 uint32_t var /* : Char */;
5534 long var_i /* var i: Int */;
5535 val* var1 /* : Text */;
5536 val* var3 /* : Text */;
5537 uint32_t var4 /* : Char */;
5538 var_i = p0;
5539 {
5540 { /* Inline abstract_text$StringCharView$target (self) on <self:RopeChars> */
5541 var3 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:RopeChars> */
5542 if (unlikely(var3 == NULL)) {
5543 if(catchStack.cursor >= 0){
5544 longjmp(catchStack.envs[catchStack.cursor], 1);
5545 }
5546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5547 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1320);
5548 fatal_exit(1);
5549 }
5550 var1 = var3;
5551 RET_LABEL2:(void)0;
5552 }
5553 }
5554 {
5555 var4 = core__ropes___core__ropes__Concat___core__abstract_text__Text___91d_93d(var1, var_i);
5556 }
5557 var = var4;
5558 goto RET_LABEL;
5559 RET_LABEL:;
5560 return var;
5561 }
5562 /* method ropes$RopeChars$[] for (self: SequenceRead[nullable Object], Int): nullable Object */
5563 val* VIRTUAL_core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
5564 val* var /* : nullable Object */;
5565 uint32_t var1 /* : Char */;
5566 val* var2 /* : nullable Object */;
5567 var1 = core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead___91d_93d(self, p0);
5568 var2 = (val*)((long)(var1)<<2|2);
5569 var = var2;
5570 RET_LABEL:;
5571 return var;
5572 }
5573 /* method ropes$RopeChars$iterator_from for (self: RopeChars, Int): IndexedIterator[Char] */
5574 val* core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
5575 val* var /* : IndexedIterator[Char] */;
5576 long var_i /* var i: Int */;
5577 val* var1 /* : RopeCharIterator */;
5578 val* var2 /* : Text */;
5579 val* var4 /* : Text */;
5580 var_i = p0;
5581 var1 = NEW_core__ropes__RopeCharIterator(&type_core__ropes__RopeCharIterator);
5582 {
5583 { /* Inline abstract_text$StringCharView$target (self) on <self:RopeChars> */
5584 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:RopeChars> */
5585 if (unlikely(var4 == NULL)) {
5586 if(catchStack.cursor >= 0){
5587 longjmp(catchStack.envs[catchStack.cursor], 1);
5588 }
5589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5590 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1320);
5591 fatal_exit(1);
5592 }
5593 var2 = var4;
5594 RET_LABEL3:(void)0;
5595 }
5596 }
5597 {
5598 core__ropes___core__ropes__RopeCharIterator___from(var1, var2, var_i); /* Direct call ropes$RopeCharIterator$from on <var1:RopeCharIterator>*/
5599 }
5600 var = var1;
5601 goto RET_LABEL;
5602 RET_LABEL:;
5603 return var;
5604 }
5605 /* method ropes$RopeChars$reverse_iterator_from for (self: RopeChars, Int): IndexedIterator[Char] */
5606 val* core__ropes___core__ropes__RopeChars___core__abstract_collection__SequenceRead__reverse_iterator_from(val* self, long p0) {
5607 val* var /* : IndexedIterator[Char] */;
5608 long var_i /* var i: Int */;
5609 val* var1 /* : RopeCharReverseIterator */;
5610 val* var2 /* : Text */;
5611 val* var4 /* : Text */;
5612 var_i = p0;
5613 var1 = NEW_core__ropes__RopeCharReverseIterator(&type_core__ropes__RopeCharReverseIterator);
5614 {
5615 { /* Inline abstract_text$StringCharView$target (self) on <self:RopeChars> */
5616 var4 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:RopeChars> */
5617 if (unlikely(var4 == NULL)) {
5618 if(catchStack.cursor >= 0){
5619 longjmp(catchStack.envs[catchStack.cursor], 1);
5620 }
5621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
5622 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1320);
5623 fatal_exit(1);
5624 }
5625 var2 = var4;
5626 RET_LABEL3:(void)0;
5627 }
5628 }
5629 {
5630 core__ropes___core__ropes__RopeCharReverseIterator___from(var1, var2, var_i); /* Direct call ropes$RopeCharReverseIterator$from on <var1:RopeCharReverseIterator>*/
5631 }
5632 var = var1;
5633 goto RET_LABEL;
5634 RET_LABEL:;
5635 return var;
5636 }
5637 /* method ropes$Sys$maxlen for (self: Sys): Int */
5638 long core__ropes___Sys___maxlen(val* self) {
5639 long var /* : Int */;
5640 var = 512l;
5641 goto RET_LABEL;
5642 RET_LABEL:;
5643 return var;
5644 }