misc/vim: inform the user when no results are found
[nit.git] / c_src / standard__ropes.sep.1.c
1 #include "standard__ropes.sep.0.h"
2 /* method ropes#Object#maxlen for (self: Object): Int */
3 long standard__ropes___Object___maxlen(val* self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 var1 = 64;
7 var = var1;
8 goto RET_LABEL;
9 RET_LABEL:;
10 return var;
11 }
12 /* method ropes#RopeString#chars for (self: RopeString): SequenceRead[Char] */
13 val* standard__ropes___standard__ropes__RopeString___standard__string__Text__chars(val* self) {
14 val* var /* : SequenceRead[Char] */;
15 short int var1 /* : Bool */;
16 val* var2 /* : nullable SequenceRead[Char] */;
17 val* var3 /* : SequenceRead[Char] */;
18 val* var_res /* var res: SequenceRead[Char] */;
19 short int var4 /* : Bool */;
20 var1 = self->attrs[COLOR_standard__ropes__RopeString___64dchars_60dis_cached_62d].s; /* @chars<is_cached> on <self:RopeString> */
21 if (var1){
22 var2 = self->attrs[COLOR_standard__ropes__RopeString___64dchars_60dcache_62d].val; /* @chars<cache> on <self:RopeString> */
23 if (unlikely(var2 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Cast failed");
25 PRINT_ERROR("\n");
26 show_backtrace(1);
27 }
28 var = var2;
29 goto RET_LABEL;
30 } else {
31 }
32 {
33 var3 = standard__ropes___standard__ropes__RopeString___chars_60dreal_62d(self);
34 }
35 var_res = var3;
36 self->attrs[COLOR_standard__ropes__RopeString___64dchars_60dcache_62d].val = var_res; /* @chars<cache> on <self:RopeString> */
37 var4 = 1;
38 self->attrs[COLOR_standard__ropes__RopeString___64dchars_60dis_cached_62d].s = var4; /* @chars<is_cached> on <self:RopeString> */
39 var = var_res;
40 goto RET_LABEL;
41 RET_LABEL:;
42 return var;
43 }
44 /* method ropes#RopeString#chars<real> for (self: RopeString): SequenceRead[Char] */
45 val* standard__ropes___standard__ropes__RopeString___chars_60dreal_62d(val* self) {
46 val* var /* : SequenceRead[Char] */;
47 val* var1 /* : RopeChars */;
48 var1 = NEW_standard__ropes__RopeChars(&type_standard__ropes__RopeChars);
49 {
50 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__string__StringCharView__target_61d]))(var1, self) /* target= on <var1:RopeChars>*/;
51 }
52 {
53 ((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on <var1:RopeChars>*/;
54 }
55 var = var1;
56 goto RET_LABEL;
57 RET_LABEL:;
58 return var;
59 }
60 /* method ropes#Concat#length for (self: Concat): Int */
61 long standard__ropes___standard__ropes__Concat___standard__string__Text__length(val* self) {
62 long var /* : Int */;
63 long var1 /* : Int */;
64 var1 = self->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <self:Concat> */
65 var = var1;
66 RET_LABEL:;
67 return var;
68 }
69 /* method ropes#Concat#length= for (self: Concat, Int) */
70 void standard__ropes___standard__ropes__Concat___length_61d(val* self, long p0) {
71 self->attrs[COLOR_standard__ropes__Concat___length].l = p0; /* _length on <self:Concat> */
72 RET_LABEL:;
73 }
74 /* method ropes#Concat#substrings for (self: Concat): Iterator[Text] */
75 val* standard__ropes___standard__ropes__Concat___standard__string__Text__substrings(val* self) {
76 val* var /* : Iterator[Text] */;
77 val* var1 /* : RopeSubstrings */;
78 var1 = NEW_standard__ropes__RopeSubstrings(&type_standard__ropes__RopeSubstrings);
79 {
80 standard__ropes___standard__ropes__RopeSubstrings___init(var1, self); /* Direct call ropes#RopeSubstrings#init on <var1:RopeSubstrings>*/
81 }
82 var = var1;
83 goto RET_LABEL;
84 RET_LABEL:;
85 return var;
86 }
87 /* method ropes#Concat#empty for (self: Concat): String */
88 val* standard__ropes___standard__ropes__Concat___standard__string__Text__empty(val* self) {
89 val* var /* : String */;
90 static val* varonce;
91 val* var1 /* : String */;
92 char* var2 /* : NativeString */;
93 long var3 /* : Int */;
94 val* var4 /* : FlatString */;
95 if (varonce) {
96 var1 = varonce;
97 } else {
98 var2 = "";
99 var3 = 0;
100 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
101 var1 = var4;
102 varonce = var1;
103 }
104 var = var1;
105 goto RET_LABEL;
106 RET_LABEL:;
107 return var;
108 }
109 /* method ropes#Concat#to_cstring for (self: Concat): NativeString */
110 char* standard__ropes___standard__ropes__Concat___standard__string__Text__to_cstring(val* self) {
111 char* var /* : NativeString */;
112 short int var1 /* : Bool */;
113 val* var2 /* : nullable NativeString */;
114 char* var3 /* : NativeString */;
115 char* var4 /* : NativeString */;
116 char* var_res /* var res: NativeString */;
117 val* var5 /* : nullable NativeString */;
118 short int var6 /* : Bool */;
119 var1 = self->attrs[COLOR_standard__ropes__Concat___64dto_cstring_60dis_cached_62d].s; /* @to_cstring<is_cached> on <self:Concat> */
120 if (var1){
121 var2 = self->attrs[COLOR_standard__ropes__Concat___64dto_cstring_60dcache_62d].val; /* @to_cstring<cache> on <self:Concat> */
122 if (unlikely(var2 == NULL)) {
123 PRINT_ERROR("Runtime error: %s", "Cast failed");
124 PRINT_ERROR("\n");
125 show_backtrace(1);
126 }
127 var3 = ((struct instance_standard__NativeString*)var2)->value; /* autounbox from nullable NativeString to NativeString */;
128 var = var3;
129 goto RET_LABEL;
130 } else {
131 }
132 {
133 var4 = standard__ropes___standard__ropes__Concat___to_cstring_60dreal_62d(self);
134 }
135 var_res = var4;
136 var5 = BOX_standard__NativeString(var_res); /* autobox from NativeString to nullable NativeString */
137 self->attrs[COLOR_standard__ropes__Concat___64dto_cstring_60dcache_62d].val = var5; /* @to_cstring<cache> on <self:Concat> */
138 var6 = 1;
139 self->attrs[COLOR_standard__ropes__Concat___64dto_cstring_60dis_cached_62d].s = var6; /* @to_cstring<is_cached> on <self:Concat> */
140 var = var_res;
141 goto RET_LABEL;
142 RET_LABEL:;
143 return var;
144 }
145 /* method ropes#Concat#left for (self: Concat): String */
146 val* standard__ropes___standard__ropes__Concat___left(val* self) {
147 val* var /* : String */;
148 val* var1 /* : String */;
149 var1 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
150 if (unlikely(var1 == NULL)) {
151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
152 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
153 show_backtrace(1);
154 }
155 var = var1;
156 RET_LABEL:;
157 return var;
158 }
159 /* method ropes#Concat#left= for (self: Concat, String) */
160 void standard__ropes___standard__ropes__Concat___left_61d(val* self, val* p0) {
161 self->attrs[COLOR_standard__ropes__Concat___left].val = p0; /* _left on <self:Concat> */
162 RET_LABEL:;
163 }
164 /* method ropes#Concat#right for (self: Concat): String */
165 val* standard__ropes___standard__ropes__Concat___right(val* self) {
166 val* var /* : String */;
167 val* var1 /* : String */;
168 var1 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
169 if (unlikely(var1 == NULL)) {
170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
171 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
172 show_backtrace(1);
173 }
174 var = var1;
175 RET_LABEL:;
176 return var;
177 }
178 /* method ropes#Concat#right= for (self: Concat, String) */
179 void standard__ropes___standard__ropes__Concat___right_61d(val* self, val* p0) {
180 self->attrs[COLOR_standard__ropes__Concat___right].val = p0; /* _right on <self:Concat> */
181 RET_LABEL:;
182 }
183 /* method ropes#Concat#init for (self: Concat) */
184 void standard__ropes___standard__ropes__Concat___standard__kernel__Object__init(val* self) {
185 val* var /* : String */;
186 val* var2 /* : String */;
187 long var3 /* : Int */;
188 val* var4 /* : String */;
189 val* var6 /* : String */;
190 long var7 /* : Int */;
191 long var8 /* : Int */;
192 short int var10 /* : Bool */;
193 int cltype;
194 int idtype;
195 const char* var_class_name;
196 long var11 /* : Int */;
197 {
198 ((void (*)(val* self))(self->class->vft[COLOR_standard__ropes___standard__ropes__Concat___standard__kernel__Object__init]))(self) /* init on <self:Concat>*/;
199 }
200 {
201 { /* Inline ropes#Concat#left (self) on <self:Concat> */
202 var2 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
203 if (unlikely(var2 == NULL)) {
204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
205 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
206 show_backtrace(1);
207 }
208 var = var2;
209 RET_LABEL1:(void)0;
210 }
211 }
212 {
213 var3 = ((long (*)(val* self))(var->class->vft[COLOR_standard__string__Text__length]))(var) /* length on <var:String>*/;
214 }
215 {
216 { /* Inline ropes#Concat#right (self) on <self:Concat> */
217 var6 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
218 if (unlikely(var6 == NULL)) {
219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
220 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
221 show_backtrace(1);
222 }
223 var4 = var6;
224 RET_LABEL5:(void)0;
225 }
226 }
227 {
228 var7 = ((long (*)(val* self))(var4->class->vft[COLOR_standard__string__Text__length]))(var4) /* length on <var4:String>*/;
229 }
230 {
231 { /* Inline kernel#Int#+ (var3,var7) on <var3:Int> */
232 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
233 /* <var7:Int> isa OTHER */
234 var10 = 1; /* easy <var7:Int> isa OTHER*/
235 if (unlikely(!var10)) {
236 var_class_name = type_standard__Int.name;
237 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
238 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
239 show_backtrace(1);
240 }
241 var11 = var3 + var7;
242 var8 = var11;
243 goto RET_LABEL9;
244 RET_LABEL9:(void)0;
245 }
246 }
247 {
248 { /* Inline ropes#Concat#length= (self,var8) on <self:Concat> */
249 self->attrs[COLOR_standard__ropes__Concat___length].l = var8; /* _length on <self:Concat> */
250 RET_LABEL12:(void)0;
251 }
252 }
253 RET_LABEL:;
254 }
255 /* method ropes#Concat#* for (self: Concat, Int): String */
256 val* standard__ropes___standard__ropes__Concat___standard__string__String___42d(val* self, long p0) {
257 val* var /* : String */;
258 long var_i /* var i: Int */;
259 val* var_x /* var x: String */;
260 long var1 /* : Int */;
261 long var_j /* var j: Int */;
262 long var_ /* var : Int */;
263 short int var2 /* : Bool */;
264 short int var4 /* : Bool */;
265 int cltype;
266 int idtype;
267 const char* var_class_name;
268 short int var5 /* : Bool */;
269 val* var6 /* : String */;
270 long var7 /* : Int */;
271 long var8 /* : Int */;
272 var_i = p0;
273 var_x = self;
274 var1 = 1;
275 var_j = var1;
276 var_ = var_i;
277 for(;;) {
278 {
279 { /* Inline kernel#Int#< (var_j,var_) on <var_j:Int> */
280 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
281 /* <var_:Int> isa OTHER */
282 var4 = 1; /* easy <var_:Int> isa OTHER*/
283 if (unlikely(!var4)) {
284 var_class_name = type_standard__Int.name;
285 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
286 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
287 show_backtrace(1);
288 }
289 var5 = var_j < var_;
290 var2 = var5;
291 goto RET_LABEL3;
292 RET_LABEL3:(void)0;
293 }
294 }
295 if (var2){
296 {
297 var6 = ((val* (*)(val* self, val* p0))(var_x->class->vft[COLOR_standard__string__String___43d]))(var_x, self) /* + on <var_x:String>*/;
298 }
299 var_x = var6;
300 var7 = 1;
301 {
302 var8 = standard___standard__Int___Discrete__successor(var_j, var7);
303 }
304 var_j = var8;
305 } else {
306 goto BREAK_label;
307 }
308 }
309 BREAK_label: (void)0;
310 var = var_x;
311 goto RET_LABEL;
312 RET_LABEL:;
313 return var;
314 }
315 /* method ropes#Concat#[] for (self: Concat, Int): Char */
316 char standard__ropes___standard__ropes__Concat___standard__string__Text___91d_93d(val* self, long p0) {
317 char var /* : Char */;
318 long var_i /* var i: Int */;
319 val* var1 /* : String */;
320 val* var3 /* : String */;
321 long var4 /* : Int */;
322 long var_llen /* var llen: Int */;
323 short int var5 /* : Bool */;
324 short int var7 /* : Bool */;
325 int cltype;
326 int idtype;
327 const char* var_class_name;
328 short int var8 /* : Bool */;
329 val* var9 /* : String */;
330 val* var11 /* : String */;
331 long var12 /* : Int */;
332 short int var14 /* : Bool */;
333 int cltype15;
334 int idtype16;
335 const char* var_class_name17;
336 long var18 /* : Int */;
337 char var19 /* : Char */;
338 val* var20 /* : String */;
339 val* var22 /* : String */;
340 char var23 /* : Char */;
341 var_i = p0;
342 {
343 { /* Inline ropes#Concat#left (self) on <self:Concat> */
344 var3 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
345 if (unlikely(var3 == NULL)) {
346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
347 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
348 show_backtrace(1);
349 }
350 var1 = var3;
351 RET_LABEL2:(void)0;
352 }
353 }
354 {
355 var4 = ((long (*)(val* self))(var1->class->vft[COLOR_standard__string__Text__length]))(var1) /* length on <var1:String>*/;
356 }
357 var_llen = var4;
358 {
359 { /* Inline kernel#Int#>= (var_i,var_llen) on <var_i:Int> */
360 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
361 /* <var_llen:Int> isa OTHER */
362 var7 = 1; /* easy <var_llen:Int> isa OTHER*/
363 if (unlikely(!var7)) {
364 var_class_name = type_standard__Int.name;
365 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
366 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
367 show_backtrace(1);
368 }
369 var8 = var_i >= var_llen;
370 var5 = var8;
371 goto RET_LABEL6;
372 RET_LABEL6:(void)0;
373 }
374 }
375 if (var5){
376 {
377 { /* Inline ropes#Concat#right (self) on <self:Concat> */
378 var11 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
379 if (unlikely(var11 == NULL)) {
380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
381 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
382 show_backtrace(1);
383 }
384 var9 = var11;
385 RET_LABEL10:(void)0;
386 }
387 }
388 {
389 { /* Inline kernel#Int#- (var_i,var_llen) on <var_i:Int> */
390 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
391 /* <var_llen:Int> isa OTHER */
392 var14 = 1; /* easy <var_llen:Int> isa OTHER*/
393 if (unlikely(!var14)) {
394 var_class_name17 = type_standard__Int.name;
395 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
396 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
397 show_backtrace(1);
398 }
399 var18 = var_i - var_llen;
400 var12 = var18;
401 goto RET_LABEL13;
402 RET_LABEL13:(void)0;
403 }
404 }
405 {
406 var19 = ((char (*)(val* self, long p0))(var9->class->vft[COLOR_standard__string__Text___91d_93d]))(var9, var12) /* [] on <var9:String>*/;
407 }
408 var = var19;
409 goto RET_LABEL;
410 } else {
411 }
412 {
413 { /* Inline ropes#Concat#left (self) on <self:Concat> */
414 var22 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
415 if (unlikely(var22 == NULL)) {
416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
417 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
418 show_backtrace(1);
419 }
420 var20 = var22;
421 RET_LABEL21:(void)0;
422 }
423 }
424 {
425 var23 = ((char (*)(val* self, long p0))(var20->class->vft[COLOR_standard__string__Text___91d_93d]))(var20, var_i) /* [] on <var20:String>*/;
426 }
427 var = var23;
428 goto RET_LABEL;
429 RET_LABEL:;
430 return var;
431 }
432 /* method ropes#Concat#substring for (self: Concat, Int, Int): String */
433 val* standard__ropes___standard__ropes__Concat___standard__string__Text__substring(val* self, long p0, long p1) {
434 val* var /* : String */;
435 long var_from /* var from: Int */;
436 long var_len /* var len: Int */;
437 val* var1 /* : String */;
438 val* var3 /* : String */;
439 long var4 /* : Int */;
440 long var_llen /* var llen: Int */;
441 short int var5 /* : Bool */;
442 short int var7 /* : Bool */;
443 int cltype;
444 int idtype;
445 const char* var_class_name;
446 short int var8 /* : Bool */;
447 long var9 /* : Int */;
448 short int var11 /* : Bool */;
449 int cltype12;
450 int idtype13;
451 const char* var_class_name14;
452 long var15 /* : Int */;
453 short int var16 /* : Bool */;
454 short int var18 /* : Bool */;
455 int cltype19;
456 int idtype20;
457 const char* var_class_name21;
458 short int var22 /* : Bool */;
459 val* var23 /* : String */;
460 val* var25 /* : String */;
461 val* var26 /* : Text */;
462 long var27 /* : Int */;
463 short int var29 /* : Bool */;
464 int cltype30;
465 int idtype31;
466 const char* var_class_name32;
467 long var33 /* : Int */;
468 long var_lsublen /* var lsublen: Int */;
469 val* var34 /* : String */;
470 val* var36 /* : String */;
471 val* var37 /* : Text */;
472 val* var38 /* : String */;
473 val* var40 /* : String */;
474 long var41 /* : Int */;
475 long var42 /* : Int */;
476 short int var44 /* : Bool */;
477 int cltype45;
478 int idtype46;
479 const char* var_class_name47;
480 long var48 /* : Int */;
481 val* var49 /* : Text */;
482 val* var50 /* : String */;
483 val* var51 /* : String */;
484 val* var53 /* : String */;
485 long var54 /* : Int */;
486 short int var56 /* : Bool */;
487 int cltype57;
488 int idtype58;
489 const char* var_class_name59;
490 long var60 /* : Int */;
491 val* var61 /* : Text */;
492 var_from = p0;
493 var_len = p1;
494 {
495 { /* Inline ropes#Concat#left (self) on <self:Concat> */
496 var3 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
497 if (unlikely(var3 == NULL)) {
498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
499 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
500 show_backtrace(1);
501 }
502 var1 = var3;
503 RET_LABEL2:(void)0;
504 }
505 }
506 {
507 var4 = ((long (*)(val* self))(var1->class->vft[COLOR_standard__string__Text__length]))(var1) /* length on <var1:String>*/;
508 }
509 var_llen = var4;
510 {
511 { /* Inline kernel#Int#< (var_from,var_llen) on <var_from:Int> */
512 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
513 /* <var_llen:Int> isa OTHER */
514 var7 = 1; /* easy <var_llen:Int> isa OTHER*/
515 if (unlikely(!var7)) {
516 var_class_name = type_standard__Int.name;
517 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
518 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
519 show_backtrace(1);
520 }
521 var8 = var_from < var_llen;
522 var5 = var8;
523 goto RET_LABEL6;
524 RET_LABEL6:(void)0;
525 }
526 }
527 if (var5){
528 {
529 { /* Inline kernel#Int#+ (var_from,var_len) on <var_from:Int> */
530 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
531 /* <var_len:Int> isa OTHER */
532 var11 = 1; /* easy <var_len:Int> isa OTHER*/
533 if (unlikely(!var11)) {
534 var_class_name14 = type_standard__Int.name;
535 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
536 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
537 show_backtrace(1);
538 }
539 var15 = var_from + var_len;
540 var9 = var15;
541 goto RET_LABEL10;
542 RET_LABEL10:(void)0;
543 }
544 }
545 {
546 { /* Inline kernel#Int#< (var9,var_llen) on <var9:Int> */
547 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
548 /* <var_llen:Int> isa OTHER */
549 var18 = 1; /* easy <var_llen:Int> isa OTHER*/
550 if (unlikely(!var18)) {
551 var_class_name21 = type_standard__Int.name;
552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
553 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
554 show_backtrace(1);
555 }
556 var22 = var9 < var_llen;
557 var16 = var22;
558 goto RET_LABEL17;
559 RET_LABEL17:(void)0;
560 }
561 }
562 if (var16){
563 {
564 { /* Inline ropes#Concat#left (self) on <self:Concat> */
565 var25 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
566 if (unlikely(var25 == NULL)) {
567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
568 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
569 show_backtrace(1);
570 }
571 var23 = var25;
572 RET_LABEL24:(void)0;
573 }
574 }
575 {
576 var26 = ((val* (*)(val* self, long p0, long p1))(var23->class->vft[COLOR_standard__string__Text__substring]))(var23, var_from, var_len) /* substring on <var23:String>*/;
577 }
578 var = var26;
579 goto RET_LABEL;
580 } else {
581 }
582 {
583 { /* Inline kernel#Int#- (var_llen,var_from) on <var_llen:Int> */
584 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
585 /* <var_from:Int> isa OTHER */
586 var29 = 1; /* easy <var_from:Int> isa OTHER*/
587 if (unlikely(!var29)) {
588 var_class_name32 = type_standard__Int.name;
589 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
590 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
591 show_backtrace(1);
592 }
593 var33 = var_llen - var_from;
594 var27 = var33;
595 goto RET_LABEL28;
596 RET_LABEL28:(void)0;
597 }
598 }
599 var_lsublen = var27;
600 {
601 { /* Inline ropes#Concat#left (self) on <self:Concat> */
602 var36 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
603 if (unlikely(var36 == NULL)) {
604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
605 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
606 show_backtrace(1);
607 }
608 var34 = var36;
609 RET_LABEL35:(void)0;
610 }
611 }
612 {
613 var37 = standard___standard__Text___substring_from(var34, var_from);
614 }
615 {
616 { /* Inline ropes#Concat#right (self) on <self:Concat> */
617 var40 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
618 if (unlikely(var40 == NULL)) {
619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
620 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
621 show_backtrace(1);
622 }
623 var38 = var40;
624 RET_LABEL39:(void)0;
625 }
626 }
627 var41 = 0;
628 {
629 { /* Inline kernel#Int#- (var_len,var_lsublen) on <var_len:Int> */
630 /* Covariant cast for argument 0 (i) <var_lsublen:Int> isa OTHER */
631 /* <var_lsublen:Int> isa OTHER */
632 var44 = 1; /* easy <var_lsublen:Int> isa OTHER*/
633 if (unlikely(!var44)) {
634 var_class_name47 = type_standard__Int.name;
635 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
636 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
637 show_backtrace(1);
638 }
639 var48 = var_len - var_lsublen;
640 var42 = var48;
641 goto RET_LABEL43;
642 RET_LABEL43:(void)0;
643 }
644 }
645 {
646 var49 = ((val* (*)(val* self, long p0, long p1))(var38->class->vft[COLOR_standard__string__Text__substring]))(var38, var41, var42) /* substring on <var38:String>*/;
647 }
648 {
649 var50 = ((val* (*)(val* self, val* p0))(var37->class->vft[COLOR_standard__string__String___43d]))(var37, var49) /* + on <var37:Text(String)>*/;
650 }
651 var = var50;
652 goto RET_LABEL;
653 } else {
654 {
655 { /* Inline ropes#Concat#right (self) on <self:Concat> */
656 var53 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
657 if (unlikely(var53 == NULL)) {
658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
659 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
660 show_backtrace(1);
661 }
662 var51 = var53;
663 RET_LABEL52:(void)0;
664 }
665 }
666 {
667 { /* Inline kernel#Int#- (var_from,var_llen) on <var_from:Int> */
668 /* Covariant cast for argument 0 (i) <var_llen:Int> isa OTHER */
669 /* <var_llen:Int> isa OTHER */
670 var56 = 1; /* easy <var_llen:Int> isa OTHER*/
671 if (unlikely(!var56)) {
672 var_class_name59 = type_standard__Int.name;
673 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
674 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
675 show_backtrace(1);
676 }
677 var60 = var_from - var_llen;
678 var54 = var60;
679 goto RET_LABEL55;
680 RET_LABEL55:(void)0;
681 }
682 }
683 {
684 var61 = ((val* (*)(val* self, long p0, long p1))(var51->class->vft[COLOR_standard__string__Text__substring]))(var51, var54, var_len) /* substring on <var51:String>*/;
685 }
686 var = var61;
687 goto RET_LABEL;
688 }
689 RET_LABEL:;
690 return var;
691 }
692 /* method ropes#Concat#to_upper for (self: Concat): String */
693 val* standard__ropes___standard__ropes__Concat___standard__string__String__to_upper(val* self) {
694 val* var /* : String */;
695 val* var1 /* : Concat */;
696 val* var2 /* : String */;
697 val* var4 /* : String */;
698 val* var5 /* : String */;
699 val* var6 /* : String */;
700 val* var8 /* : String */;
701 val* var9 /* : String */;
702 var1 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
703 {
704 { /* Inline ropes#Concat#left (self) on <self:Concat> */
705 var4 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
706 if (unlikely(var4 == NULL)) {
707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
708 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
709 show_backtrace(1);
710 }
711 var2 = var4;
712 RET_LABEL3:(void)0;
713 }
714 }
715 {
716 var5 = ((val* (*)(val* self))(var2->class->vft[COLOR_standard__string__String__to_upper]))(var2) /* to_upper on <var2:String>*/;
717 }
718 {
719 { /* Inline ropes#Concat#right (self) on <self:Concat> */
720 var8 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
721 if (unlikely(var8 == NULL)) {
722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
723 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
724 show_backtrace(1);
725 }
726 var6 = var8;
727 RET_LABEL7:(void)0;
728 }
729 }
730 {
731 var9 = ((val* (*)(val* self))(var6->class->vft[COLOR_standard__string__String__to_upper]))(var6) /* to_upper on <var6:String>*/;
732 }
733 {
734 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var1, var5) /* left= on <var1:Concat>*/;
735 }
736 {
737 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var1, var9) /* right= on <var1:Concat>*/;
738 }
739 {
740 ((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on <var1:Concat>*/;
741 }
742 var = var1;
743 goto RET_LABEL;
744 RET_LABEL:;
745 return var;
746 }
747 /* method ropes#Concat#to_lower for (self: Concat): String */
748 val* standard__ropes___standard__ropes__Concat___standard__string__String__to_lower(val* self) {
749 val* var /* : String */;
750 val* var1 /* : Concat */;
751 val* var2 /* : String */;
752 val* var4 /* : String */;
753 val* var5 /* : String */;
754 val* var6 /* : String */;
755 val* var8 /* : String */;
756 val* var9 /* : String */;
757 var1 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
758 {
759 { /* Inline ropes#Concat#left (self) on <self:Concat> */
760 var4 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
761 if (unlikely(var4 == NULL)) {
762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
763 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
764 show_backtrace(1);
765 }
766 var2 = var4;
767 RET_LABEL3:(void)0;
768 }
769 }
770 {
771 var5 = ((val* (*)(val* self))(var2->class->vft[COLOR_standard__string__String__to_lower]))(var2) /* to_lower on <var2:String>*/;
772 }
773 {
774 { /* Inline ropes#Concat#right (self) on <self:Concat> */
775 var8 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
776 if (unlikely(var8 == NULL)) {
777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
778 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
779 show_backtrace(1);
780 }
781 var6 = var8;
782 RET_LABEL7:(void)0;
783 }
784 }
785 {
786 var9 = ((val* (*)(val* self))(var6->class->vft[COLOR_standard__string__String__to_lower]))(var6) /* to_lower on <var6:String>*/;
787 }
788 {
789 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var1, var5) /* left= on <var1:Concat>*/;
790 }
791 {
792 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var1, var9) /* right= on <var1:Concat>*/;
793 }
794 {
795 ((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on <var1:Concat>*/;
796 }
797 var = var1;
798 goto RET_LABEL;
799 RET_LABEL:;
800 return var;
801 }
802 /* method ropes#Concat#+ for (self: Concat, Text): String */
803 val* standard__ropes___standard__ropes__Concat___standard__string__String___43d(val* self, val* p0) {
804 val* var /* : String */;
805 val* var_o /* var o: Text */;
806 val* var1 /* : String */;
807 val* var_s /* var s: String */;
808 long var2 /* : Int */;
809 long var_slen /* var slen: Int */;
810 short int var3 /* : Bool */;
811 int cltype;
812 int idtype;
813 val* var4 /* : Concat */;
814 val* var5 /* : String */;
815 val* var7 /* : String */;
816 val* var_r /* var r: String */;
817 long var8 /* : Int */;
818 long var_rlen /* var rlen: Int */;
819 long var9 /* : Int */;
820 short int var11 /* : Bool */;
821 int cltype12;
822 int idtype13;
823 const char* var_class_name;
824 long var14 /* : Int */;
825 long var15 /* : Int */;
826 short int var16 /* : Bool */;
827 short int var18 /* : Bool */;
828 int cltype19;
829 int idtype20;
830 const char* var_class_name21;
831 short int var22 /* : Bool */;
832 val* var23 /* : Concat */;
833 val* var24 /* : Concat */;
834 val* var25 /* : String */;
835 val* var27 /* : String */;
836 val* var28 /* : String */;
837 var_o = p0;
838 {
839 var1 = ((val* (*)(val* self))(var_o->class->vft[COLOR_standard__string__Object__to_s]))(var_o) /* to_s on <var_o:Text>*/;
840 }
841 var_s = var1;
842 {
843 var2 = ((long (*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s) /* length on <var_s:String>*/;
844 }
845 var_slen = var2;
846 /* <var_s:String> isa Concat */
847 cltype = type_standard__ropes__Concat.color;
848 idtype = type_standard__ropes__Concat.id;
849 if(cltype >= var_s->type->table_size) {
850 var3 = 0;
851 } else {
852 var3 = var_s->type->type_table[cltype] == idtype;
853 }
854 if (var3){
855 var4 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
856 {
857 ((void (*)(val* self, val* p0))(var4->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var4, self) /* left= on <var4:Concat>*/;
858 }
859 {
860 ((void (*)(val* self, val* p0))(var4->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var4, var_s) /* right= on <var4:Concat>*/;
861 }
862 {
863 ((void (*)(val* self))(var4->class->vft[COLOR_standard__kernel__Object__init]))(var4) /* init on <var4:Concat>*/;
864 }
865 var = var4;
866 goto RET_LABEL;
867 } else {
868 {
869 { /* Inline ropes#Concat#right (self) on <self:Concat> */
870 var7 = self->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <self:Concat> */
871 if (unlikely(var7 == NULL)) {
872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
873 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
874 show_backtrace(1);
875 }
876 var5 = var7;
877 RET_LABEL6:(void)0;
878 }
879 }
880 var_r = var5;
881 {
882 var8 = ((long (*)(val* self))(var_r->class->vft[COLOR_standard__string__Text__length]))(var_r) /* length on <var_r:String>*/;
883 }
884 var_rlen = var8;
885 {
886 { /* Inline kernel#Int#+ (var_rlen,var_slen) on <var_rlen:Int> */
887 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
888 /* <var_slen:Int> isa OTHER */
889 var11 = 1; /* easy <var_slen:Int> isa OTHER*/
890 if (unlikely(!var11)) {
891 var_class_name = type_standard__Int.name;
892 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
893 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
894 show_backtrace(1);
895 }
896 var14 = var_rlen + var_slen;
897 var9 = var14;
898 goto RET_LABEL10;
899 RET_LABEL10:(void)0;
900 }
901 }
902 {
903 var15 = standard__ropes___Object___maxlen(self);
904 }
905 {
906 { /* Inline kernel#Int#> (var9,var15) on <var9:Int> */
907 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
908 /* <var15:Int> isa OTHER */
909 var18 = 1; /* easy <var15:Int> isa OTHER*/
910 if (unlikely(!var18)) {
911 var_class_name21 = type_standard__Int.name;
912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
913 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
914 show_backtrace(1);
915 }
916 var22 = var9 > var15;
917 var16 = var22;
918 goto RET_LABEL17;
919 RET_LABEL17:(void)0;
920 }
921 }
922 if (var16){
923 var23 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
924 {
925 ((void (*)(val* self, val* p0))(var23->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var23, self) /* left= on <var23:Concat>*/;
926 }
927 {
928 ((void (*)(val* self, val* p0))(var23->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var23, var_s) /* right= on <var23:Concat>*/;
929 }
930 {
931 ((void (*)(val* self))(var23->class->vft[COLOR_standard__kernel__Object__init]))(var23) /* init on <var23:Concat>*/;
932 }
933 var = var23;
934 goto RET_LABEL;
935 } else {
936 }
937 var24 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
938 {
939 { /* Inline ropes#Concat#left (self) on <self:Concat> */
940 var27 = self->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <self:Concat> */
941 if (unlikely(var27 == NULL)) {
942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
943 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
944 show_backtrace(1);
945 }
946 var25 = var27;
947 RET_LABEL26:(void)0;
948 }
949 }
950 {
951 var28 = ((val* (*)(val* self, val* p0))(var_r->class->vft[COLOR_standard__string__String___43d]))(var_r, var_s) /* + on <var_r:String>*/;
952 }
953 {
954 ((void (*)(val* self, val* p0))(var24->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var24, var25) /* left= on <var24:Concat>*/;
955 }
956 {
957 ((void (*)(val* self, val* p0))(var24->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var24, var28) /* right= on <var24:Concat>*/;
958 }
959 {
960 ((void (*)(val* self))(var24->class->vft[COLOR_standard__kernel__Object__init]))(var24) /* init on <var24:Concat>*/;
961 }
962 var = var24;
963 goto RET_LABEL;
964 }
965 RET_LABEL:;
966 return var;
967 }
968 /* method ropes#Concat#to_cstring<real> for (self: Concat): NativeString */
969 char* standard__ropes___standard__ropes__Concat___to_cstring_60dreal_62d(val* self) {
970 char* var /* : NativeString */;
971 long var1 /* : Int */;
972 long var3 /* : Int */;
973 long var_len /* var len: Int */;
974 char* var4 /* : NativeString */;
975 long var5 /* : Int */;
976 long var6 /* : Int */;
977 short int var8 /* : Bool */;
978 int cltype;
979 int idtype;
980 const char* var_class_name;
981 long var9 /* : Int */;
982 char* var10 /* : NativeString */;
983 char* var12 /* : NativeString */;
984 char* var_ns /* var ns: NativeString */;
985 char var13 /* : Char */;
986 long var15 /* : Int */;
987 long var_off /* var off: Int */;
988 val* var16 /* : Iterator[Text] */;
989 val* var_ /* var : Iterator[Text] */;
990 val* var17 /* : Iterator[nullable Object] */;
991 val* var_18 /* var : Iterator[Text] */;
992 short int var19 /* : Bool */;
993 val* var20 /* : nullable Object */;
994 val* var_i /* var i: Text */;
995 long var21 /* : Int */;
996 long var_ilen /* var ilen: Int */;
997 short int var22 /* : Bool */;
998 int cltype23;
999 int idtype24;
1000 const char* var_class_name25;
1001 char* var26 /* : NativeString */;
1002 char* var28 /* : NativeString */;
1003 short int var29 /* : Bool */;
1004 int cltype30;
1005 int idtype31;
1006 const char* var_class_name32;
1007 long var33 /* : Int */;
1008 long var35 /* : Int */;
1009 long var37 /* : Int */;
1010 short int var39 /* : Bool */;
1011 int cltype40;
1012 int idtype41;
1013 const char* var_class_name42;
1014 long var43 /* : Int */;
1015 {
1016 { /* Inline ropes#Concat#length (self) on <self:Concat> */
1017 var3 = self->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <self:Concat> */
1018 var1 = var3;
1019 RET_LABEL2:(void)0;
1020 }
1021 }
1022 var_len = var1;
1023 var4 = NULL/*special!*/;
1024 var5 = 1;
1025 {
1026 { /* Inline kernel#Int#+ (var_len,var5) on <var_len:Int> */
1027 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
1028 /* <var5:Int> isa OTHER */
1029 var8 = 1; /* easy <var5:Int> isa OTHER*/
1030 if (unlikely(!var8)) {
1031 var_class_name = type_standard__Int.name;
1032 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1033 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1034 show_backtrace(1);
1035 }
1036 var9 = var_len + var5;
1037 var6 = var9;
1038 goto RET_LABEL7;
1039 RET_LABEL7:(void)0;
1040 }
1041 }
1042 {
1043 { /* Inline string#NativeString#new (var4,var6) on <var4:NativeString> */
1044 var12 = (char*)nit_alloc(var6);
1045 var10 = var12;
1046 goto RET_LABEL11;
1047 RET_LABEL11:(void)0;
1048 }
1049 }
1050 var_ns = var10;
1051 var13 = '\0';
1052 {
1053 { /* Inline string#NativeString#[]= (var_ns,var_len,var13) on <var_ns:NativeString> */
1054 var_ns[var_len]=var13;
1055 RET_LABEL14:(void)0;
1056 }
1057 }
1058 var15 = 0;
1059 var_off = var15;
1060 {
1061 var16 = standard__ropes___standard__ropes__Concat___standard__string__Text__substrings(self);
1062 }
1063 var_ = var16;
1064 {
1065 var17 = standard___standard__Iterator___iterator(var_);
1066 }
1067 var_18 = var17;
1068 for(;;) {
1069 {
1070 var19 = ((short int (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_18) /* is_ok on <var_18:Iterator[Text]>*/;
1071 }
1072 if (var19){
1073 {
1074 var20 = ((val* (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_18) /* item on <var_18:Iterator[Text]>*/;
1075 }
1076 var_i = var20;
1077 {
1078 var21 = ((long (*)(val* self))(var_i->class->vft[COLOR_standard__string__Text__length]))(var_i) /* length on <var_i:Text>*/;
1079 }
1080 var_ilen = var21;
1081 /* <var_i:Text> isa FlatString */
1082 cltype23 = type_standard__FlatString.color;
1083 idtype24 = type_standard__FlatString.id;
1084 if(cltype23 >= var_i->type->table_size) {
1085 var22 = 0;
1086 } else {
1087 var22 = var_i->type->type_table[cltype23] == idtype24;
1088 }
1089 if (unlikely(!var22)) {
1090 var_class_name25 = var_i == NULL ? "null" : var_i->type->name;
1091 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name25);
1092 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 90);
1093 show_backtrace(1);
1094 }
1095 {
1096 { /* Inline string#FlatText#items (var_i) on <var_i:Text(FlatString)> */
1097 var28 = var_i->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_i:Text(FlatString)> */
1098 var26 = var28;
1099 RET_LABEL27:(void)0;
1100 }
1101 }
1102 /* <var_i:Text> isa FlatString */
1103 cltype30 = type_standard__FlatString.color;
1104 idtype31 = type_standard__FlatString.id;
1105 if(cltype30 >= var_i->type->table_size) {
1106 var29 = 0;
1107 } else {
1108 var29 = var_i->type->type_table[cltype30] == idtype31;
1109 }
1110 if (unlikely(!var29)) {
1111 var_class_name32 = var_i == NULL ? "null" : var_i->type->name;
1112 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name32);
1113 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 90);
1114 show_backtrace(1);
1115 }
1116 {
1117 { /* Inline string#FlatString#index_from (var_i) on <var_i:Text(FlatString)> */
1118 var35 = var_i->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <var_i:Text(FlatString)> */
1119 var33 = var35;
1120 RET_LABEL34:(void)0;
1121 }
1122 }
1123 {
1124 { /* Inline string#NativeString#copy_to (var26,var_ns,var_ilen,var33,var_off) on <var26:NativeString> */
1125 memmove(var_ns+var_off,var26+var33,var_ilen);
1126 RET_LABEL36:(void)0;
1127 }
1128 }
1129 {
1130 { /* Inline kernel#Int#+ (var_off,var_ilen) on <var_off:Int> */
1131 /* Covariant cast for argument 0 (i) <var_ilen:Int> isa OTHER */
1132 /* <var_ilen:Int> isa OTHER */
1133 var39 = 1; /* easy <var_ilen:Int> isa OTHER*/
1134 if (unlikely(!var39)) {
1135 var_class_name42 = type_standard__Int.name;
1136 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
1137 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1138 show_backtrace(1);
1139 }
1140 var43 = var_off + var_ilen;
1141 var37 = var43;
1142 goto RET_LABEL38;
1143 RET_LABEL38:(void)0;
1144 }
1145 }
1146 var_off = var37;
1147 {
1148 ((void (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_18) /* next on <var_18:Iterator[Text]>*/;
1149 }
1150 } else {
1151 goto BREAK_label;
1152 }
1153 }
1154 BREAK_label: (void)0;
1155 {
1156 { /* Inline abstract_collection#Iterator#finish (var_18) on <var_18:Iterator[Text]> */
1157 RET_LABEL44:(void)0;
1158 }
1159 }
1160 var = var_ns;
1161 goto RET_LABEL;
1162 RET_LABEL:;
1163 return var;
1164 }
1165 /* method ropes#FlatString#+ for (self: FlatString, Text): String */
1166 val* standard__ropes___FlatString___standard__string__String___43d(val* self, val* p0) {
1167 val* var /* : String */;
1168 val* var_o /* var o: Text */;
1169 val* var1 /* : String */;
1170 val* var_s /* var s: String */;
1171 long var2 /* : Int */;
1172 long var_slen /* var slen: Int */;
1173 long var3 /* : Int */;
1174 long var5 /* : Int */;
1175 long var_mlen /* var mlen: Int */;
1176 long var6 /* : Int */;
1177 short int var7 /* : Bool */;
1178 short int var9 /* : Bool */;
1179 long var10 /* : Int */;
1180 short int var11 /* : Bool */;
1181 short int var13 /* : Bool */;
1182 long var14 /* : Int */;
1183 short int var16 /* : Bool */;
1184 int cltype;
1185 int idtype;
1186 const char* var_class_name;
1187 long var17 /* : Int */;
1188 long var_nlen /* var nlen: Int */;
1189 short int var18 /* : Bool */;
1190 int cltype19;
1191 int idtype20;
1192 long var21 /* : Int */;
1193 short int var22 /* : Bool */;
1194 short int var24 /* : Bool */;
1195 int cltype25;
1196 int idtype26;
1197 const char* var_class_name27;
1198 short int var28 /* : Bool */;
1199 val* var29 /* : Concat */;
1200 char* var30 /* : NativeString */;
1201 char* var32 /* : NativeString */;
1202 char* var_mits /* var mits: NativeString */;
1203 long var33 /* : Int */;
1204 long var35 /* : Int */;
1205 long var_sifrom /* var sifrom: Int */;
1206 long var36 /* : Int */;
1207 long var38 /* : Int */;
1208 long var_mifrom /* var mifrom: Int */;
1209 char* var39 /* : NativeString */;
1210 char* var41 /* : NativeString */;
1211 char* var_sits /* var sits: NativeString */;
1212 char* var42 /* : NativeString */;
1213 long var43 /* : Int */;
1214 long var44 /* : Int */;
1215 short int var46 /* : Bool */;
1216 int cltype47;
1217 int idtype48;
1218 const char* var_class_name49;
1219 long var50 /* : Int */;
1220 char* var51 /* : NativeString */;
1221 char* var53 /* : NativeString */;
1222 char* var_ns /* var ns: NativeString */;
1223 long var54 /* : Int */;
1224 val* var57 /* : FlatString */;
1225 short int var58 /* : Bool */;
1226 int cltype59;
1227 int idtype60;
1228 val* var61 /* : String */;
1229 val* var63 /* : String */;
1230 val* var_sl /* var sl: String */;
1231 long var64 /* : Int */;
1232 long var_sllen /* var sllen: Int */;
1233 long var65 /* : Int */;
1234 short int var67 /* : Bool */;
1235 int cltype68;
1236 int idtype69;
1237 const char* var_class_name70;
1238 long var71 /* : Int */;
1239 long var72 /* : Int */;
1240 short int var73 /* : Bool */;
1241 short int var75 /* : Bool */;
1242 int cltype76;
1243 int idtype77;
1244 const char* var_class_name78;
1245 short int var79 /* : Bool */;
1246 val* var80 /* : Concat */;
1247 val* var81 /* : Concat */;
1248 val* var82 /* : String */;
1249 val* var83 /* : String */;
1250 val* var85 /* : String */;
1251 var_o = p0;
1252 {
1253 var1 = ((val* (*)(val* self))(var_o->class->vft[COLOR_standard__string__Object__to_s]))(var_o) /* to_s on <var_o:Text>*/;
1254 }
1255 var_s = var1;
1256 {
1257 var2 = ((long (*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s) /* length on <var_s:String>*/;
1258 }
1259 var_slen = var2;
1260 {
1261 { /* Inline string#FlatText#length (self) on <self:FlatString> */
1262 var5 = self->attrs[COLOR_standard__string__FlatText___length].l; /* _length on <self:FlatString> */
1263 var3 = var5;
1264 RET_LABEL4:(void)0;
1265 }
1266 }
1267 var_mlen = var3;
1268 var6 = 0;
1269 {
1270 { /* Inline kernel#Int#== (var_slen,var6) on <var_slen:Int> */
1271 var9 = var_slen == var6;
1272 var7 = var9;
1273 goto RET_LABEL8;
1274 RET_LABEL8:(void)0;
1275 }
1276 }
1277 if (var7){
1278 var = self;
1279 goto RET_LABEL;
1280 } else {
1281 }
1282 var10 = 0;
1283 {
1284 { /* Inline kernel#Int#== (var_mlen,var10) on <var_mlen:Int> */
1285 var13 = var_mlen == var10;
1286 var11 = var13;
1287 goto RET_LABEL12;
1288 RET_LABEL12:(void)0;
1289 }
1290 }
1291 if (var11){
1292 var = var_s;
1293 goto RET_LABEL;
1294 } else {
1295 }
1296 {
1297 { /* Inline kernel#Int#+ (var_slen,var_mlen) on <var_slen:Int> */
1298 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
1299 /* <var_mlen:Int> isa OTHER */
1300 var16 = 1; /* easy <var_mlen:Int> isa OTHER*/
1301 if (unlikely(!var16)) {
1302 var_class_name = type_standard__Int.name;
1303 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1304 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1305 show_backtrace(1);
1306 }
1307 var17 = var_slen + var_mlen;
1308 var14 = var17;
1309 goto RET_LABEL15;
1310 RET_LABEL15:(void)0;
1311 }
1312 }
1313 var_nlen = var14;
1314 /* <var_s:String> isa FlatString */
1315 cltype19 = type_standard__FlatString.color;
1316 idtype20 = type_standard__FlatString.id;
1317 if(cltype19 >= var_s->type->table_size) {
1318 var18 = 0;
1319 } else {
1320 var18 = var_s->type->type_table[cltype19] == idtype20;
1321 }
1322 if (var18){
1323 {
1324 var21 = standard__ropes___Object___maxlen(self);
1325 }
1326 {
1327 { /* Inline kernel#Int#> (var_nlen,var21) on <var_nlen:Int> */
1328 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
1329 /* <var21:Int> isa OTHER */
1330 var24 = 1; /* easy <var21:Int> isa OTHER*/
1331 if (unlikely(!var24)) {
1332 var_class_name27 = type_standard__Int.name;
1333 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
1334 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
1335 show_backtrace(1);
1336 }
1337 var28 = var_nlen > var21;
1338 var22 = var28;
1339 goto RET_LABEL23;
1340 RET_LABEL23:(void)0;
1341 }
1342 }
1343 if (var22){
1344 var29 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
1345 {
1346 ((void (*)(val* self, val* p0))(var29->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var29, self) /* left= on <var29:Concat>*/;
1347 }
1348 {
1349 ((void (*)(val* self, val* p0))(var29->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var29, var_s) /* right= on <var29:Concat>*/;
1350 }
1351 {
1352 ((void (*)(val* self))(var29->class->vft[COLOR_standard__kernel__Object__init]))(var29) /* init on <var29:Concat>*/;
1353 }
1354 var = var29;
1355 goto RET_LABEL;
1356 } else {
1357 }
1358 {
1359 { /* Inline string#FlatText#items (self) on <self:FlatString> */
1360 var32 = self->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <self:FlatString> */
1361 var30 = var32;
1362 RET_LABEL31:(void)0;
1363 }
1364 }
1365 var_mits = var30;
1366 {
1367 { /* Inline string#FlatString#index_from (var_s) on <var_s:String(FlatString)> */
1368 var35 = var_s->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <var_s:String(FlatString)> */
1369 var33 = var35;
1370 RET_LABEL34:(void)0;
1371 }
1372 }
1373 var_sifrom = var33;
1374 {
1375 { /* Inline string#FlatString#index_from (self) on <self:FlatString> */
1376 var38 = self->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <self:FlatString> */
1377 var36 = var38;
1378 RET_LABEL37:(void)0;
1379 }
1380 }
1381 var_mifrom = var36;
1382 {
1383 { /* Inline string#FlatText#items (var_s) on <var_s:String(FlatString)> */
1384 var41 = var_s->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_s:String(FlatString)> */
1385 var39 = var41;
1386 RET_LABEL40:(void)0;
1387 }
1388 }
1389 var_sits = var39;
1390 var42 = NULL/*special!*/;
1391 var43 = 1;
1392 {
1393 { /* Inline kernel#Int#+ (var_nlen,var43) on <var_nlen:Int> */
1394 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
1395 /* <var43:Int> isa OTHER */
1396 var46 = 1; /* easy <var43:Int> isa OTHER*/
1397 if (unlikely(!var46)) {
1398 var_class_name49 = type_standard__Int.name;
1399 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
1400 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1401 show_backtrace(1);
1402 }
1403 var50 = var_nlen + var43;
1404 var44 = var50;
1405 goto RET_LABEL45;
1406 RET_LABEL45:(void)0;
1407 }
1408 }
1409 {
1410 { /* Inline string#NativeString#new (var42,var44) on <var42:NativeString> */
1411 var53 = (char*)nit_alloc(var44);
1412 var51 = var53;
1413 goto RET_LABEL52;
1414 RET_LABEL52:(void)0;
1415 }
1416 }
1417 var_ns = var51;
1418 var54 = 0;
1419 {
1420 { /* Inline string#NativeString#copy_to (var_mits,var_ns,var_mlen,var_mifrom,var54) on <var_mits:NativeString> */
1421 memmove(var_ns+var54,var_mits+var_mifrom,var_mlen);
1422 RET_LABEL55:(void)0;
1423 }
1424 }
1425 {
1426 { /* Inline string#NativeString#copy_to (var_sits,var_ns,var_slen,var_sifrom,var_mlen) on <var_sits:NativeString> */
1427 memmove(var_ns+var_mlen,var_sits+var_sifrom,var_slen);
1428 RET_LABEL56:(void)0;
1429 }
1430 }
1431 {
1432 var57 = standard___standard__NativeString___to_s_with_length(var_ns, var_nlen);
1433 }
1434 var = var57;
1435 goto RET_LABEL;
1436 } else {
1437 /* <var_s:String> isa Concat */
1438 cltype59 = type_standard__ropes__Concat.color;
1439 idtype60 = type_standard__ropes__Concat.id;
1440 if(cltype59 >= var_s->type->table_size) {
1441 var58 = 0;
1442 } else {
1443 var58 = var_s->type->type_table[cltype59] == idtype60;
1444 }
1445 if (var58){
1446 {
1447 { /* Inline ropes#Concat#left (var_s) on <var_s:String(Concat)> */
1448 var63 = var_s->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_s:String(Concat)> */
1449 if (unlikely(var63 == NULL)) {
1450 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
1451 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
1452 show_backtrace(1);
1453 }
1454 var61 = var63;
1455 RET_LABEL62:(void)0;
1456 }
1457 }
1458 var_sl = var61;
1459 {
1460 var64 = ((long (*)(val* self))(var_sl->class->vft[COLOR_standard__string__Text__length]))(var_sl) /* length on <var_sl:String>*/;
1461 }
1462 var_sllen = var64;
1463 {
1464 { /* Inline kernel#Int#+ (var_sllen,var_mlen) on <var_sllen:Int> */
1465 /* Covariant cast for argument 0 (i) <var_mlen:Int> isa OTHER */
1466 /* <var_mlen:Int> isa OTHER */
1467 var67 = 1; /* easy <var_mlen:Int> isa OTHER*/
1468 if (unlikely(!var67)) {
1469 var_class_name70 = type_standard__Int.name;
1470 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
1471 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1472 show_backtrace(1);
1473 }
1474 var71 = var_sllen + var_mlen;
1475 var65 = var71;
1476 goto RET_LABEL66;
1477 RET_LABEL66:(void)0;
1478 }
1479 }
1480 {
1481 var72 = standard__ropes___Object___maxlen(self);
1482 }
1483 {
1484 { /* Inline kernel#Int#> (var65,var72) on <var65:Int> */
1485 /* Covariant cast for argument 0 (i) <var72:Int> isa OTHER */
1486 /* <var72:Int> isa OTHER */
1487 var75 = 1; /* easy <var72:Int> isa OTHER*/
1488 if (unlikely(!var75)) {
1489 var_class_name78 = type_standard__Int.name;
1490 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78);
1491 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
1492 show_backtrace(1);
1493 }
1494 var79 = var65 > var72;
1495 var73 = var79;
1496 goto RET_LABEL74;
1497 RET_LABEL74:(void)0;
1498 }
1499 }
1500 if (var73){
1501 var80 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
1502 {
1503 ((void (*)(val* self, val* p0))(var80->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var80, self) /* left= on <var80:Concat>*/;
1504 }
1505 {
1506 ((void (*)(val* self, val* p0))(var80->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var80, var_s) /* right= on <var80:Concat>*/;
1507 }
1508 {
1509 ((void (*)(val* self))(var80->class->vft[COLOR_standard__kernel__Object__init]))(var80) /* init on <var80:Concat>*/;
1510 }
1511 var = var80;
1512 goto RET_LABEL;
1513 } else {
1514 }
1515 var81 = NEW_standard__ropes__Concat(&type_standard__ropes__Concat);
1516 {
1517 var82 = standard__ropes___FlatString___standard__string__String___43d(self, var_sl);
1518 }
1519 {
1520 { /* Inline ropes#Concat#right (var_s) on <var_s:String(Concat)> */
1521 var85 = var_s->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <var_s:String(Concat)> */
1522 if (unlikely(var85 == NULL)) {
1523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
1524 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
1525 show_backtrace(1);
1526 }
1527 var83 = var85;
1528 RET_LABEL84:(void)0;
1529 }
1530 }
1531 {
1532 ((void (*)(val* self, val* p0))(var81->class->vft[COLOR_standard__ropes__Concat__left_61d]))(var81, var82) /* left= on <var81:Concat>*/;
1533 }
1534 {
1535 ((void (*)(val* self, val* p0))(var81->class->vft[COLOR_standard__ropes__Concat__right_61d]))(var81, var83) /* right= on <var81:Concat>*/;
1536 }
1537 {
1538 ((void (*)(val* self))(var81->class->vft[COLOR_standard__kernel__Object__init]))(var81) /* init on <var81:Concat>*/;
1539 }
1540 var = var81;
1541 goto RET_LABEL;
1542 } else {
1543 PRINT_ERROR("Runtime error: %s", "Aborted");
1544 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 451);
1545 show_backtrace(1);
1546 }
1547 }
1548 RET_LABEL:;
1549 return var;
1550 }
1551 /* method ropes#RopeIterPiece#node for (self: RopeIterPiece): String */
1552 val* standard__ropes___standard__ropes__RopeIterPiece___node(val* self) {
1553 val* var /* : String */;
1554 val* var1 /* : String */;
1555 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___node].val; /* _node on <self:RopeIterPiece> */
1556 if (unlikely(var1 == NULL)) {
1557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
1558 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 458);
1559 show_backtrace(1);
1560 }
1561 var = var1;
1562 RET_LABEL:;
1563 return var;
1564 }
1565 /* method ropes#RopeIterPiece#node= for (self: RopeIterPiece, String) */
1566 void standard__ropes___standard__ropes__RopeIterPiece___node_61d(val* self, val* p0) {
1567 self->attrs[COLOR_standard__ropes__RopeIterPiece___node].val = p0; /* _node on <self:RopeIterPiece> */
1568 RET_LABEL:;
1569 }
1570 /* method ropes#RopeIterPiece#ldone for (self: RopeIterPiece): Bool */
1571 short int standard__ropes___standard__ropes__RopeIterPiece___ldone(val* self) {
1572 short int var /* : Bool */;
1573 short int var1 /* : Bool */;
1574 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s; /* _ldone on <self:RopeIterPiece> */
1575 var = var1;
1576 RET_LABEL:;
1577 return var;
1578 }
1579 /* method ropes#RopeIterPiece#ldone= for (self: RopeIterPiece, Bool) */
1580 void standard__ropes___standard__ropes__RopeIterPiece___ldone_61d(val* self, short int p0) {
1581 self->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s = p0; /* _ldone on <self:RopeIterPiece> */
1582 RET_LABEL:;
1583 }
1584 /* method ropes#RopeIterPiece#rdone for (self: RopeIterPiece): Bool */
1585 short int standard__ropes___standard__ropes__RopeIterPiece___rdone(val* self) {
1586 short int var /* : Bool */;
1587 short int var1 /* : Bool */;
1588 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s; /* _rdone on <self:RopeIterPiece> */
1589 var = var1;
1590 RET_LABEL:;
1591 return var;
1592 }
1593 /* method ropes#RopeIterPiece#rdone= for (self: RopeIterPiece, Bool) */
1594 void standard__ropes___standard__ropes__RopeIterPiece___rdone_61d(val* self, short int p0) {
1595 self->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = p0; /* _rdone on <self:RopeIterPiece> */
1596 RET_LABEL:;
1597 }
1598 /* method ropes#RopeIterPiece#prev for (self: RopeIterPiece): nullable RopeIterPiece */
1599 val* standard__ropes___standard__ropes__RopeIterPiece___prev(val* self) {
1600 val* var /* : nullable RopeIterPiece */;
1601 val* var1 /* : nullable RopeIterPiece */;
1602 var1 = self->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val; /* _prev on <self:RopeIterPiece> */
1603 var = var1;
1604 RET_LABEL:;
1605 return var;
1606 }
1607 /* method ropes#RopeIterPiece#prev= for (self: RopeIterPiece, nullable RopeIterPiece) */
1608 void standard__ropes___standard__ropes__RopeIterPiece___prev_61d(val* self, val* p0) {
1609 self->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val = p0; /* _prev on <self:RopeIterPiece> */
1610 RET_LABEL:;
1611 }
1612 /* method ropes#RopeIterPiece#init for (self: RopeIterPiece) */
1613 void standard__ropes___standard__ropes__RopeIterPiece___standard__kernel__Object__init(val* self) {
1614 {
1615 ((void (*)(val* self))(self->class->vft[COLOR_standard__ropes___standard__ropes__RopeIterPiece___standard__kernel__Object__init]))(self) /* init on <self:RopeIterPiece>*/;
1616 }
1617 RET_LABEL:;
1618 }
1619 /* method ropes#RopeIter#pns for (self: RopeIter): Int */
1620 long standard__ropes___standard__ropes__RopeIter___pns(val* self) {
1621 long var /* : Int */;
1622 long var1 /* : Int */;
1623 var1 = self->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <self:RopeIter> */
1624 var = var1;
1625 RET_LABEL:;
1626 return var;
1627 }
1628 /* method ropes#RopeIter#pns= for (self: RopeIter, Int) */
1629 void standard__ropes___standard__ropes__RopeIter___pns_61d(val* self, long p0) {
1630 self->attrs[COLOR_standard__ropes__RopeIter___pns].l = p0; /* _pns on <self:RopeIter> */
1631 RET_LABEL:;
1632 }
1633 /* method ropes#RopeIter#str for (self: RopeIter): String */
1634 val* standard__ropes___standard__ropes__RopeIter___str(val* self) {
1635 val* var /* : String */;
1636 val* var1 /* : String */;
1637 var1 = self->attrs[COLOR_standard__ropes__RopeIter___str].val; /* _str on <self:RopeIter> */
1638 if (unlikely(var1 == NULL)) {
1639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
1640 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 520);
1641 show_backtrace(1);
1642 }
1643 var = var1;
1644 RET_LABEL:;
1645 return var;
1646 }
1647 /* method ropes#RopeIter#str= for (self: RopeIter, String) */
1648 void standard__ropes___standard__ropes__RopeIter___str_61d(val* self, val* p0) {
1649 self->attrs[COLOR_standard__ropes__RopeIter___str].val = p0; /* _str on <self:RopeIter> */
1650 RET_LABEL:;
1651 }
1652 /* method ropes#RopeIter#subs for (self: RopeIter): IndexedIterator[String] */
1653 val* standard__ropes___standard__ropes__RopeIter___subs(val* self) {
1654 val* var /* : IndexedIterator[String] */;
1655 val* var1 /* : IndexedIterator[String] */;
1656 var1 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
1657 if (unlikely(var1 == NULL)) {
1658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
1659 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
1660 show_backtrace(1);
1661 }
1662 var = var1;
1663 RET_LABEL:;
1664 return var;
1665 }
1666 /* method ropes#RopeIter#subs= for (self: RopeIter, IndexedIterator[String]) */
1667 void standard__ropes___standard__ropes__RopeIter___subs_61d(val* self, val* p0) {
1668 self->attrs[COLOR_standard__ropes__RopeIter___subs].val = p0; /* _subs on <self:RopeIter> */
1669 RET_LABEL:;
1670 }
1671 /* method ropes#RopeIter#max for (self: RopeIter): Int */
1672 long standard__ropes___standard__ropes__RopeIter___max(val* self) {
1673 long var /* : Int */;
1674 long var1 /* : Int */;
1675 var1 = self->attrs[COLOR_standard__ropes__RopeIter___max].l; /* _max on <self:RopeIter> */
1676 var = var1;
1677 RET_LABEL:;
1678 return var;
1679 }
1680 /* method ropes#RopeIter#max= for (self: RopeIter, Int) */
1681 void standard__ropes___standard__ropes__RopeIter___max_61d(val* self, long p0) {
1682 self->attrs[COLOR_standard__ropes__RopeIter___max].l = p0; /* _max on <self:RopeIter> */
1683 RET_LABEL:;
1684 }
1685 /* method ropes#RopeIter#pos for (self: RopeIter): Int */
1686 long standard__ropes___standard__ropes__RopeIter___pos(val* self) {
1687 long var /* : Int */;
1688 long var1 /* : Int */;
1689 var1 = self->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <self:RopeIter> */
1690 var = var1;
1691 RET_LABEL:;
1692 return var;
1693 }
1694 /* method ropes#RopeIter#pos= for (self: RopeIter, Int) */
1695 void standard__ropes___standard__ropes__RopeIter___pos_61d(val* self, long p0) {
1696 self->attrs[COLOR_standard__ropes__RopeIter___pos].l = p0; /* _pos on <self:RopeIter> */
1697 RET_LABEL:;
1698 }
1699 /* method ropes#RopeIter#from for (self: RopeIter, RopeString, Int) */
1700 void standard__ropes___standard__ropes__RopeIter___from(val* self, val* p0, long p1) {
1701 val* var_root /* var root: RopeString */;
1702 long var_pos /* var pos: Int */;
1703 val* var /* : RopeSubstrings */;
1704 val* var2 /* : IndexedIterator[String] */;
1705 val* var4 /* : IndexedIterator[String] */;
1706 long var5 /* : Int */;
1707 long var6 /* : Int */;
1708 short int var8 /* : Bool */;
1709 int cltype;
1710 int idtype;
1711 const char* var_class_name;
1712 long var9 /* : Int */;
1713 val* var12 /* : IndexedIterator[String] */;
1714 val* var14 /* : IndexedIterator[String] */;
1715 val* var15 /* : nullable Object */;
1716 long var17 /* : Int */;
1717 long var19 /* : Int */;
1718 long var20 /* : Int */;
1719 long var21 /* : Int */;
1720 short int var23 /* : Bool */;
1721 int cltype24;
1722 int idtype25;
1723 const char* var_class_name26;
1724 long var27 /* : Int */;
1725 var_root = p0;
1726 var_pos = p1;
1727 var = NEW_standard__ropes__RopeSubstrings(&type_standard__ropes__RopeSubstrings);
1728 {
1729 standard__ropes___standard__ropes__RopeSubstrings___from(var, var_root, var_pos); /* Direct call ropes#RopeSubstrings#from on <var:RopeSubstrings>*/
1730 }
1731 {
1732 { /* Inline ropes#RopeIter#subs= (self,var) on <self:RopeIter> */
1733 self->attrs[COLOR_standard__ropes__RopeIter___subs].val = var; /* _subs on <self:RopeIter> */
1734 RET_LABEL1:(void)0;
1735 }
1736 }
1737 {
1738 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
1739 var4 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
1740 if (unlikely(var4 == NULL)) {
1741 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
1742 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
1743 show_backtrace(1);
1744 }
1745 var2 = var4;
1746 RET_LABEL3:(void)0;
1747 }
1748 }
1749 {
1750 var5 = ((long (*)(val* self))(var2->class->vft[COLOR_standard__abstract_collection__IndexedIterator__index]))(var2) /* index on <var2:IndexedIterator[String]>*/;
1751 }
1752 {
1753 { /* Inline kernel#Int#- (var_pos,var5) on <var_pos:Int> */
1754 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
1755 /* <var5:Int> isa OTHER */
1756 var8 = 1; /* easy <var5:Int> isa OTHER*/
1757 if (unlikely(!var8)) {
1758 var_class_name = type_standard__Int.name;
1759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1760 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
1761 show_backtrace(1);
1762 }
1763 var9 = var_pos - var5;
1764 var6 = var9;
1765 goto RET_LABEL7;
1766 RET_LABEL7:(void)0;
1767 }
1768 }
1769 {
1770 { /* Inline ropes#RopeIter#pns= (self,var6) on <self:RopeIter> */
1771 self->attrs[COLOR_standard__ropes__RopeIter___pns].l = var6; /* _pns on <self:RopeIter> */
1772 RET_LABEL10:(void)0;
1773 }
1774 }
1775 {
1776 { /* Inline ropes#RopeIter#pos= (self,var_pos) on <self:RopeIter> */
1777 self->attrs[COLOR_standard__ropes__RopeIter___pos].l = var_pos; /* _pos on <self:RopeIter> */
1778 RET_LABEL11:(void)0;
1779 }
1780 }
1781 {
1782 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
1783 var14 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
1784 if (unlikely(var14 == NULL)) {
1785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
1786 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
1787 show_backtrace(1);
1788 }
1789 var12 = var14;
1790 RET_LABEL13:(void)0;
1791 }
1792 }
1793 {
1794 var15 = ((val* (*)(val* self))(var12->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var12) /* item on <var12:IndexedIterator[String]>*/;
1795 }
1796 {
1797 { /* Inline ropes#RopeIter#str= (self,var15) on <self:RopeIter> */
1798 self->attrs[COLOR_standard__ropes__RopeIter___str].val = var15; /* _str on <self:RopeIter> */
1799 RET_LABEL16:(void)0;
1800 }
1801 }
1802 {
1803 { /* Inline ropes#Concat#length (var_root) on <var_root:RopeString> */
1804 var19 = var_root->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <var_root:RopeString> */
1805 var17 = var19;
1806 RET_LABEL18:(void)0;
1807 }
1808 }
1809 var20 = 1;
1810 {
1811 { /* Inline kernel#Int#- (var17,var20) on <var17:Int> */
1812 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
1813 /* <var20:Int> isa OTHER */
1814 var23 = 1; /* easy <var20:Int> isa OTHER*/
1815 if (unlikely(!var23)) {
1816 var_class_name26 = type_standard__Int.name;
1817 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
1818 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
1819 show_backtrace(1);
1820 }
1821 var27 = var17 - var20;
1822 var21 = var27;
1823 goto RET_LABEL22;
1824 RET_LABEL22:(void)0;
1825 }
1826 }
1827 {
1828 { /* Inline ropes#RopeIter#max= (self,var21) on <self:RopeIter> */
1829 self->attrs[COLOR_standard__ropes__RopeIter___max].l = var21; /* _max on <self:RopeIter> */
1830 RET_LABEL28:(void)0;
1831 }
1832 }
1833 RET_LABEL:;
1834 }
1835 /* method ropes#RopeIter#item for (self: RopeIter): Char */
1836 char standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__item(val* self) {
1837 char var /* : Char */;
1838 val* var1 /* : String */;
1839 val* var3 /* : String */;
1840 long var4 /* : Int */;
1841 long var6 /* : Int */;
1842 char var7 /* : Char */;
1843 {
1844 { /* Inline ropes#RopeIter#str (self) on <self:RopeIter> */
1845 var3 = self->attrs[COLOR_standard__ropes__RopeIter___str].val; /* _str on <self:RopeIter> */
1846 if (unlikely(var3 == NULL)) {
1847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
1848 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 520);
1849 show_backtrace(1);
1850 }
1851 var1 = var3;
1852 RET_LABEL2:(void)0;
1853 }
1854 }
1855 {
1856 { /* Inline ropes#RopeIter#pns (self) on <self:RopeIter> */
1857 var6 = self->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <self:RopeIter> */
1858 var4 = var6;
1859 RET_LABEL5:(void)0;
1860 }
1861 }
1862 {
1863 var7 = ((char (*)(val* self, long p0))(var1->class->vft[COLOR_standard__string__Text___91d_93d]))(var1, var4) /* [] on <var1:String>*/;
1864 }
1865 var = var7;
1866 goto RET_LABEL;
1867 RET_LABEL:;
1868 return var;
1869 }
1870 /* method ropes#RopeIter#item for (self: Iterator[nullable Object]): nullable Object */
1871 val* VIRTUAL_standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__item(val* self) {
1872 val* var /* : nullable Object */;
1873 char var1 /* : Char */;
1874 val* var2 /* : nullable Object */;
1875 var1 = standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__item(self);
1876 var2 = BOX_standard__Char(var1); /* autobox from Char to nullable Object */
1877 var = var2;
1878 RET_LABEL:;
1879 return var;
1880 }
1881 /* method ropes#RopeIter#is_ok for (self: RopeIter): Bool */
1882 short int standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__is_ok(val* self) {
1883 short int var /* : Bool */;
1884 long var1 /* : Int */;
1885 long var3 /* : Int */;
1886 long var4 /* : Int */;
1887 long var6 /* : Int */;
1888 short int var7 /* : Bool */;
1889 short int var9 /* : Bool */;
1890 int cltype;
1891 int idtype;
1892 const char* var_class_name;
1893 short int var10 /* : Bool */;
1894 {
1895 { /* Inline ropes#RopeIter#pos (self) on <self:RopeIter> */
1896 var3 = self->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <self:RopeIter> */
1897 var1 = var3;
1898 RET_LABEL2:(void)0;
1899 }
1900 }
1901 {
1902 { /* Inline ropes#RopeIter#max (self) on <self:RopeIter> */
1903 var6 = self->attrs[COLOR_standard__ropes__RopeIter___max].l; /* _max on <self:RopeIter> */
1904 var4 = var6;
1905 RET_LABEL5:(void)0;
1906 }
1907 }
1908 {
1909 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
1910 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1911 /* <var4:Int> isa OTHER */
1912 var9 = 1; /* easy <var4:Int> isa OTHER*/
1913 if (unlikely(!var9)) {
1914 var_class_name = type_standard__Int.name;
1915 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1916 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
1917 show_backtrace(1);
1918 }
1919 var10 = var1 <= var4;
1920 var7 = var10;
1921 goto RET_LABEL8;
1922 RET_LABEL8:(void)0;
1923 }
1924 }
1925 var = var7;
1926 goto RET_LABEL;
1927 RET_LABEL:;
1928 return var;
1929 }
1930 /* method ropes#RopeIter#index for (self: RopeIter): Int */
1931 long standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__IndexedIterator__index(val* self) {
1932 long var /* : Int */;
1933 long var1 /* : Int */;
1934 long var3 /* : Int */;
1935 {
1936 { /* Inline ropes#RopeIter#pos (self) on <self:RopeIter> */
1937 var3 = self->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <self:RopeIter> */
1938 var1 = var3;
1939 RET_LABEL2:(void)0;
1940 }
1941 }
1942 var = var1;
1943 goto RET_LABEL;
1944 RET_LABEL:;
1945 return var;
1946 }
1947 /* method ropes#RopeIter#next for (self: RopeIter) */
1948 void standard__ropes___standard__ropes__RopeIter___standard__abstract_collection__Iterator__next(val* self) {
1949 val* var_ /* var : RopeIter */;
1950 long var /* : Int */;
1951 long var2 /* : Int */;
1952 long var3 /* : Int */;
1953 long var4 /* : Int */;
1954 short int var6 /* : Bool */;
1955 int cltype;
1956 int idtype;
1957 const char* var_class_name;
1958 long var7 /* : Int */;
1959 val* var_9 /* var : RopeIter */;
1960 long var10 /* : Int */;
1961 long var12 /* : Int */;
1962 long var13 /* : Int */;
1963 long var14 /* : Int */;
1964 short int var16 /* : Bool */;
1965 int cltype17;
1966 int idtype18;
1967 const char* var_class_name19;
1968 long var20 /* : Int */;
1969 long var22 /* : Int */;
1970 long var24 /* : Int */;
1971 val* var25 /* : IndexedIterator[String] */;
1972 val* var27 /* : IndexedIterator[String] */;
1973 val* var28 /* : nullable Object */;
1974 long var29 /* : Int */;
1975 short int var30 /* : Bool */;
1976 short int var32 /* : Bool */;
1977 int cltype33;
1978 int idtype34;
1979 const char* var_class_name35;
1980 short int var36 /* : Bool */;
1981 val* var37 /* : IndexedIterator[String] */;
1982 val* var39 /* : IndexedIterator[String] */;
1983 short int var40 /* : Bool */;
1984 short int var41 /* : Bool */;
1985 val* var42 /* : IndexedIterator[String] */;
1986 val* var44 /* : IndexedIterator[String] */;
1987 val* var45 /* : IndexedIterator[String] */;
1988 val* var47 /* : IndexedIterator[String] */;
1989 short int var48 /* : Bool */;
1990 short int var49 /* : Bool */;
1991 val* var50 /* : IndexedIterator[String] */;
1992 val* var52 /* : IndexedIterator[String] */;
1993 val* var53 /* : nullable Object */;
1994 long var55 /* : Int */;
1995 var_ = self;
1996 {
1997 { /* Inline ropes#RopeIter#pns (var_) on <var_:RopeIter> */
1998 var2 = var_->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <var_:RopeIter> */
1999 var = var2;
2000 RET_LABEL1:(void)0;
2001 }
2002 }
2003 var3 = 1;
2004 {
2005 { /* Inline kernel#Int#+ (var,var3) on <var:Int> */
2006 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
2007 /* <var3:Int> isa OTHER */
2008 var6 = 1; /* easy <var3:Int> isa OTHER*/
2009 if (unlikely(!var6)) {
2010 var_class_name = type_standard__Int.name;
2011 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2012 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
2013 show_backtrace(1);
2014 }
2015 var7 = var + var3;
2016 var4 = var7;
2017 goto RET_LABEL5;
2018 RET_LABEL5:(void)0;
2019 }
2020 }
2021 {
2022 { /* Inline ropes#RopeIter#pns= (var_,var4) on <var_:RopeIter> */
2023 var_->attrs[COLOR_standard__ropes__RopeIter___pns].l = var4; /* _pns on <var_:RopeIter> */
2024 RET_LABEL8:(void)0;
2025 }
2026 }
2027 var_9 = self;
2028 {
2029 { /* Inline ropes#RopeIter#pos (var_9) on <var_9:RopeIter> */
2030 var12 = var_9->attrs[COLOR_standard__ropes__RopeIter___pos].l; /* _pos on <var_9:RopeIter> */
2031 var10 = var12;
2032 RET_LABEL11:(void)0;
2033 }
2034 }
2035 var13 = 1;
2036 {
2037 { /* Inline kernel#Int#+ (var10,var13) on <var10:Int> */
2038 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
2039 /* <var13:Int> isa OTHER */
2040 var16 = 1; /* easy <var13:Int> isa OTHER*/
2041 if (unlikely(!var16)) {
2042 var_class_name19 = type_standard__Int.name;
2043 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
2044 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
2045 show_backtrace(1);
2046 }
2047 var20 = var10 + var13;
2048 var14 = var20;
2049 goto RET_LABEL15;
2050 RET_LABEL15:(void)0;
2051 }
2052 }
2053 {
2054 { /* Inline ropes#RopeIter#pos= (var_9,var14) on <var_9:RopeIter> */
2055 var_9->attrs[COLOR_standard__ropes__RopeIter___pos].l = var14; /* _pos on <var_9:RopeIter> */
2056 RET_LABEL21:(void)0;
2057 }
2058 }
2059 {
2060 { /* Inline ropes#RopeIter#pns (self) on <self:RopeIter> */
2061 var24 = self->attrs[COLOR_standard__ropes__RopeIter___pns].l; /* _pns on <self:RopeIter> */
2062 var22 = var24;
2063 RET_LABEL23:(void)0;
2064 }
2065 }
2066 {
2067 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
2068 var27 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
2069 if (unlikely(var27 == NULL)) {
2070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2071 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
2072 show_backtrace(1);
2073 }
2074 var25 = var27;
2075 RET_LABEL26:(void)0;
2076 }
2077 }
2078 {
2079 var28 = ((val* (*)(val* self))(var25->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var25) /* item on <var25:IndexedIterator[String]>*/;
2080 }
2081 {
2082 var29 = ((long (*)(val* self))(var28->class->vft[COLOR_standard__string__Text__length]))(var28) /* length on <var28:nullable Object(String)>*/;
2083 }
2084 {
2085 { /* Inline kernel#Int#< (var22,var29) on <var22:Int> */
2086 /* Covariant cast for argument 0 (i) <var29:Int> isa OTHER */
2087 /* <var29:Int> isa OTHER */
2088 var32 = 1; /* easy <var29:Int> isa OTHER*/
2089 if (unlikely(!var32)) {
2090 var_class_name35 = type_standard__Int.name;
2091 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
2092 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
2093 show_backtrace(1);
2094 }
2095 var36 = var22 < var29;
2096 var30 = var36;
2097 goto RET_LABEL31;
2098 RET_LABEL31:(void)0;
2099 }
2100 }
2101 if (var30){
2102 goto RET_LABEL;
2103 } else {
2104 }
2105 {
2106 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
2107 var39 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
2108 if (unlikely(var39 == NULL)) {
2109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2110 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
2111 show_backtrace(1);
2112 }
2113 var37 = var39;
2114 RET_LABEL38:(void)0;
2115 }
2116 }
2117 {
2118 var40 = ((short int (*)(val* self))(var37->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var37) /* is_ok on <var37:IndexedIterator[String]>*/;
2119 }
2120 var41 = !var40;
2121 if (var41){
2122 goto RET_LABEL;
2123 } else {
2124 }
2125 {
2126 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
2127 var44 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
2128 if (unlikely(var44 == NULL)) {
2129 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2130 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
2131 show_backtrace(1);
2132 }
2133 var42 = var44;
2134 RET_LABEL43:(void)0;
2135 }
2136 }
2137 {
2138 ((void (*)(val* self))(var42->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var42) /* next on <var42:IndexedIterator[String]>*/;
2139 }
2140 {
2141 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
2142 var47 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
2143 if (unlikely(var47 == NULL)) {
2144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2145 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
2146 show_backtrace(1);
2147 }
2148 var45 = var47;
2149 RET_LABEL46:(void)0;
2150 }
2151 }
2152 {
2153 var48 = ((short int (*)(val* self))(var45->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var45) /* is_ok on <var45:IndexedIterator[String]>*/;
2154 }
2155 var49 = !var48;
2156 if (var49){
2157 goto RET_LABEL;
2158 } else {
2159 }
2160 {
2161 { /* Inline ropes#RopeIter#subs (self) on <self:RopeIter> */
2162 var52 = self->attrs[COLOR_standard__ropes__RopeIter___subs].val; /* _subs on <self:RopeIter> */
2163 if (unlikely(var52 == NULL)) {
2164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _subs");
2165 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 522);
2166 show_backtrace(1);
2167 }
2168 var50 = var52;
2169 RET_LABEL51:(void)0;
2170 }
2171 }
2172 {
2173 var53 = ((val* (*)(val* self))(var50->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var50) /* item on <var50:IndexedIterator[String]>*/;
2174 }
2175 {
2176 { /* Inline ropes#RopeIter#str= (self,var53) on <self:RopeIter> */
2177 self->attrs[COLOR_standard__ropes__RopeIter___str].val = var53; /* _str on <self:RopeIter> */
2178 RET_LABEL54:(void)0;
2179 }
2180 }
2181 var55 = 0;
2182 {
2183 { /* Inline ropes#RopeIter#pns= (self,var55) on <self:RopeIter> */
2184 self->attrs[COLOR_standard__ropes__RopeIter___pns].l = var55; /* _pns on <self:RopeIter> */
2185 RET_LABEL56:(void)0;
2186 }
2187 }
2188 RET_LABEL:;
2189 }
2190 /* method ropes#RopeSubstrings#iter for (self: RopeSubstrings): RopeIterPiece */
2191 val* standard__ropes___standard__ropes__RopeSubstrings___iter(val* self) {
2192 val* var /* : RopeIterPiece */;
2193 val* var1 /* : RopeIterPiece */;
2194 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
2195 if (unlikely(var1 == NULL)) {
2196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
2197 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 687);
2198 show_backtrace(1);
2199 }
2200 var = var1;
2201 RET_LABEL:;
2202 return var;
2203 }
2204 /* method ropes#RopeSubstrings#iter= for (self: RopeSubstrings, RopeIterPiece) */
2205 void standard__ropes___standard__ropes__RopeSubstrings___iter_61d(val* self, val* p0) {
2206 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = p0; /* _iter on <self:RopeSubstrings> */
2207 RET_LABEL:;
2208 }
2209 /* method ropes#RopeSubstrings#pos for (self: RopeSubstrings): Int */
2210 long standard__ropes___standard__ropes__RopeSubstrings___pos(val* self) {
2211 long var /* : Int */;
2212 long var1 /* : Int */;
2213 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
2214 var = var1;
2215 RET_LABEL:;
2216 return var;
2217 }
2218 /* method ropes#RopeSubstrings#pos= for (self: RopeSubstrings, Int) */
2219 void standard__ropes___standard__ropes__RopeSubstrings___pos_61d(val* self, long p0) {
2220 self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = p0; /* _pos on <self:RopeSubstrings> */
2221 RET_LABEL:;
2222 }
2223 /* method ropes#RopeSubstrings#max for (self: RopeSubstrings): Int */
2224 long standard__ropes___standard__ropes__RopeSubstrings___max(val* self) {
2225 long var /* : Int */;
2226 long var1 /* : Int */;
2227 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
2228 var = var1;
2229 RET_LABEL:;
2230 return var;
2231 }
2232 /* method ropes#RopeSubstrings#max= for (self: RopeSubstrings, Int) */
2233 void standard__ropes___standard__ropes__RopeSubstrings___max_61d(val* self, long p0) {
2234 self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l = p0; /* _max on <self:RopeSubstrings> */
2235 RET_LABEL:;
2236 }
2237 /* method ropes#RopeSubstrings#str for (self: RopeSubstrings): String */
2238 val* standard__ropes___standard__ropes__RopeSubstrings___str(val* self) {
2239 val* var /* : String */;
2240 val* var1 /* : String */;
2241 var1 = self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
2242 if (unlikely(var1 == NULL)) {
2243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2244 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 694);
2245 show_backtrace(1);
2246 }
2247 var = var1;
2248 RET_LABEL:;
2249 return var;
2250 }
2251 /* method ropes#RopeSubstrings#str= for (self: RopeSubstrings, String) */
2252 void standard__ropes___standard__ropes__RopeSubstrings___str_61d(val* self, val* p0) {
2253 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = p0; /* _str on <self:RopeSubstrings> */
2254 RET_LABEL:;
2255 }
2256 /* method ropes#RopeSubstrings#init for (self: RopeSubstrings, RopeString) */
2257 void standard__ropes___standard__ropes__RopeSubstrings___init(val* self, val* p0) {
2258 val* var_root /* var root: RopeString */;
2259 val* var /* : RopeIterPiece */;
2260 short int var1 /* : Bool */;
2261 short int var2 /* : Bool */;
2262 val* var3 /* : null */;
2263 val* var_r /* var r: RopeIterPiece */;
2264 long var4 /* : Int */;
2265 long var6 /* : Int */;
2266 long var8 /* : Int */;
2267 long var9 /* : Int */;
2268 long var10 /* : Int */;
2269 short int var12 /* : Bool */;
2270 int cltype;
2271 int idtype;
2272 const char* var_class_name;
2273 long var13 /* : Int */;
2274 val* var_rnod /* var rnod: String */;
2275 short int var15 /* : Bool */;
2276 int cltype16;
2277 int idtype17;
2278 val* var18 /* : String */;
2279 val* var20 /* : String */;
2280 val* var21 /* : RopeIterPiece */;
2281 short int var22 /* : Bool */;
2282 short int var23 /* : Bool */;
2283 short int var25 /* : Bool */;
2284 var_root = p0;
2285 var = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
2286 var1 = 1;
2287 var2 = 0;
2288 var3 = NULL;
2289 {
2290 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var, var_root) /* node= on <var:RopeIterPiece>*/;
2291 }
2292 {
2293 ((void (*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var, var1) /* ldone= on <var:RopeIterPiece>*/;
2294 }
2295 {
2296 ((void (*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var, var2) /* rdone= on <var:RopeIterPiece>*/;
2297 }
2298 {
2299 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var, var3) /* prev= on <var:RopeIterPiece>*/;
2300 }
2301 {
2302 ((void (*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var) /* init on <var:RopeIterPiece>*/;
2303 }
2304 var_r = var;
2305 var4 = 0;
2306 {
2307 { /* Inline ropes#RopeSubstrings#pos= (self,var4) on <self:RopeSubstrings> */
2308 self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = var4; /* _pos on <self:RopeSubstrings> */
2309 RET_LABEL5:(void)0;
2310 }
2311 }
2312 {
2313 { /* Inline ropes#Concat#length (var_root) on <var_root:RopeString> */
2314 var8 = var_root->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <var_root:RopeString> */
2315 var6 = var8;
2316 RET_LABEL7:(void)0;
2317 }
2318 }
2319 var9 = 1;
2320 {
2321 { /* Inline kernel#Int#- (var6,var9) on <var6:Int> */
2322 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
2323 /* <var9:Int> isa OTHER */
2324 var12 = 1; /* easy <var9:Int> isa OTHER*/
2325 if (unlikely(!var12)) {
2326 var_class_name = type_standard__Int.name;
2327 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2328 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
2329 show_backtrace(1);
2330 }
2331 var13 = var6 - var9;
2332 var10 = var13;
2333 goto RET_LABEL11;
2334 RET_LABEL11:(void)0;
2335 }
2336 }
2337 {
2338 { /* Inline ropes#RopeSubstrings#max= (self,var10) on <self:RopeSubstrings> */
2339 self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l = var10; /* _max on <self:RopeSubstrings> */
2340 RET_LABEL14:(void)0;
2341 }
2342 }
2343 var_rnod = var_root;
2344 for(;;) {
2345 /* <var_rnod:String> isa Concat */
2346 cltype16 = type_standard__ropes__Concat.color;
2347 idtype17 = type_standard__ropes__Concat.id;
2348 if(cltype16 >= var_rnod->type->table_size) {
2349 var15 = 0;
2350 } else {
2351 var15 = var_rnod->type->type_table[cltype16] == idtype17;
2352 }
2353 if (var15){
2354 {
2355 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
2356 var20 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
2357 if (unlikely(var20 == NULL)) {
2358 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
2359 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
2360 show_backtrace(1);
2361 }
2362 var18 = var20;
2363 RET_LABEL19:(void)0;
2364 }
2365 }
2366 var_rnod = var18;
2367 var21 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
2368 var22 = 1;
2369 var23 = 0;
2370 {
2371 ((void (*)(val* self, val* p0))(var21->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var21, var_rnod) /* node= on <var21:RopeIterPiece>*/;
2372 }
2373 {
2374 ((void (*)(val* self, short int p0))(var21->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var21, var22) /* ldone= on <var21:RopeIterPiece>*/;
2375 }
2376 {
2377 ((void (*)(val* self, short int p0))(var21->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var21, var23) /* rdone= on <var21:RopeIterPiece>*/;
2378 }
2379 {
2380 ((void (*)(val* self, val* p0))(var21->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var21, var_r) /* prev= on <var21:RopeIterPiece>*/;
2381 }
2382 {
2383 ((void (*)(val* self))(var21->class->vft[COLOR_standard__kernel__Object__init]))(var21) /* init on <var21:RopeIterPiece>*/;
2384 }
2385 var_r = var21;
2386 } else {
2387 {
2388 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
2389 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
2390 RET_LABEL24:(void)0;
2391 }
2392 }
2393 var25 = 1;
2394 {
2395 { /* Inline ropes#RopeIterPiece#rdone= (var_r,var25) on <var_r:RopeIterPiece> */
2396 var_r->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = var25; /* _rdone on <var_r:RopeIterPiece> */
2397 RET_LABEL26:(void)0;
2398 }
2399 }
2400 {
2401 { /* Inline ropes#RopeSubstrings#iter= (self,var_r) on <self:RopeSubstrings> */
2402 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = var_r; /* _iter on <self:RopeSubstrings> */
2403 RET_LABEL27:(void)0;
2404 }
2405 }
2406 goto BREAK_label;
2407 }
2408 }
2409 BREAK_label: (void)0;
2410 RET_LABEL:;
2411 }
2412 /* method ropes#RopeSubstrings#from for (self: RopeSubstrings, RopeString, Int) */
2413 void standard__ropes___standard__ropes__RopeSubstrings___from(val* self, val* p0, long p1) {
2414 val* var_root /* var root: RopeString */;
2415 long var_pos /* var pos: Int */;
2416 val* var /* : RopeIterPiece */;
2417 short int var1 /* : Bool */;
2418 short int var2 /* : Bool */;
2419 val* var3 /* : null */;
2420 val* var_r /* var r: RopeIterPiece */;
2421 long var4 /* : Int */;
2422 long var6 /* : Int */;
2423 long var7 /* : Int */;
2424 long var8 /* : Int */;
2425 short int var10 /* : Bool */;
2426 int cltype;
2427 int idtype;
2428 const char* var_class_name;
2429 long var11 /* : Int */;
2430 val* var_rnod /* var rnod: String */;
2431 long var_off /* var off: Int */;
2432 short int var13 /* : Bool */;
2433 int cltype14;
2434 int idtype15;
2435 val* var16 /* : String */;
2436 val* var18 /* : String */;
2437 long var19 /* : Int */;
2438 short int var20 /* : Bool */;
2439 short int var22 /* : Bool */;
2440 int cltype23;
2441 int idtype24;
2442 const char* var_class_name25;
2443 short int var26 /* : Bool */;
2444 short int var27 /* : Bool */;
2445 val* var29 /* : String */;
2446 val* var31 /* : String */;
2447 long var32 /* : Int */;
2448 long var33 /* : Int */;
2449 short int var35 /* : Bool */;
2450 int cltype36;
2451 int idtype37;
2452 const char* var_class_name38;
2453 long var39 /* : Int */;
2454 val* var40 /* : String */;
2455 val* var42 /* : String */;
2456 val* var43 /* : RopeIterPiece */;
2457 short int var44 /* : Bool */;
2458 short int var45 /* : Bool */;
2459 val* var46 /* : String */;
2460 val* var48 /* : String */;
2461 val* var49 /* : RopeIterPiece */;
2462 short int var50 /* : Bool */;
2463 short int var51 /* : Bool */;
2464 short int var53 /* : Bool */;
2465 long var56 /* : Int */;
2466 short int var58 /* : Bool */;
2467 int cltype59;
2468 int idtype60;
2469 const char* var_class_name61;
2470 long var62 /* : Int */;
2471 var_root = p0;
2472 var_pos = p1;
2473 var = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
2474 var1 = 1;
2475 var2 = 0;
2476 var3 = NULL;
2477 {
2478 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var, var_root) /* node= on <var:RopeIterPiece>*/;
2479 }
2480 {
2481 ((void (*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var, var1) /* ldone= on <var:RopeIterPiece>*/;
2482 }
2483 {
2484 ((void (*)(val* self, short int p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var, var2) /* rdone= on <var:RopeIterPiece>*/;
2485 }
2486 {
2487 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var, var3) /* prev= on <var:RopeIterPiece>*/;
2488 }
2489 {
2490 ((void (*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var) /* init on <var:RopeIterPiece>*/;
2491 }
2492 var_r = var;
2493 {
2494 { /* Inline ropes#Concat#length (var_root) on <var_root:RopeString> */
2495 var6 = var_root->attrs[COLOR_standard__ropes__Concat___length].l; /* _length on <var_root:RopeString> */
2496 var4 = var6;
2497 RET_LABEL5:(void)0;
2498 }
2499 }
2500 var7 = 1;
2501 {
2502 { /* Inline kernel#Int#- (var4,var7) on <var4:Int> */
2503 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
2504 /* <var7:Int> isa OTHER */
2505 var10 = 1; /* easy <var7:Int> isa OTHER*/
2506 if (unlikely(!var10)) {
2507 var_class_name = type_standard__Int.name;
2508 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2509 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
2510 show_backtrace(1);
2511 }
2512 var11 = var4 - var7;
2513 var8 = var11;
2514 goto RET_LABEL9;
2515 RET_LABEL9:(void)0;
2516 }
2517 }
2518 {
2519 { /* Inline ropes#RopeSubstrings#max= (self,var8) on <self:RopeSubstrings> */
2520 self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l = var8; /* _max on <self:RopeSubstrings> */
2521 RET_LABEL12:(void)0;
2522 }
2523 }
2524 var_rnod = var_root;
2525 var_off = var_pos;
2526 for(;;) {
2527 /* <var_rnod:String> isa Concat */
2528 cltype14 = type_standard__ropes__Concat.color;
2529 idtype15 = type_standard__ropes__Concat.id;
2530 if(cltype14 >= var_rnod->type->table_size) {
2531 var13 = 0;
2532 } else {
2533 var13 = var_rnod->type->type_table[cltype14] == idtype15;
2534 }
2535 if (var13){
2536 {
2537 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
2538 var18 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
2539 if (unlikely(var18 == NULL)) {
2540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
2541 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
2542 show_backtrace(1);
2543 }
2544 var16 = var18;
2545 RET_LABEL17:(void)0;
2546 }
2547 }
2548 {
2549 var19 = ((long (*)(val* self))(var16->class->vft[COLOR_standard__string__Text__length]))(var16) /* length on <var16:String>*/;
2550 }
2551 {
2552 { /* Inline kernel#Int#>= (var_off,var19) on <var_off:Int> */
2553 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
2554 /* <var19:Int> isa OTHER */
2555 var22 = 1; /* easy <var19:Int> isa OTHER*/
2556 if (unlikely(!var22)) {
2557 var_class_name25 = type_standard__Int.name;
2558 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
2559 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
2560 show_backtrace(1);
2561 }
2562 var26 = var_off >= var19;
2563 var20 = var26;
2564 goto RET_LABEL21;
2565 RET_LABEL21:(void)0;
2566 }
2567 }
2568 if (var20){
2569 var27 = 1;
2570 {
2571 { /* Inline ropes#RopeIterPiece#rdone= (var_r,var27) on <var_r:RopeIterPiece> */
2572 var_r->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = var27; /* _rdone on <var_r:RopeIterPiece> */
2573 RET_LABEL28:(void)0;
2574 }
2575 }
2576 {
2577 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
2578 var31 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
2579 if (unlikely(var31 == NULL)) {
2580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
2581 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
2582 show_backtrace(1);
2583 }
2584 var29 = var31;
2585 RET_LABEL30:(void)0;
2586 }
2587 }
2588 {
2589 var32 = ((long (*)(val* self))(var29->class->vft[COLOR_standard__string__Text__length]))(var29) /* length on <var29:String>*/;
2590 }
2591 {
2592 { /* Inline kernel#Int#- (var_off,var32) on <var_off:Int> */
2593 /* Covariant cast for argument 0 (i) <var32:Int> isa OTHER */
2594 /* <var32:Int> isa OTHER */
2595 var35 = 1; /* easy <var32:Int> isa OTHER*/
2596 if (unlikely(!var35)) {
2597 var_class_name38 = type_standard__Int.name;
2598 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
2599 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
2600 show_backtrace(1);
2601 }
2602 var39 = var_off - var32;
2603 var33 = var39;
2604 goto RET_LABEL34;
2605 RET_LABEL34:(void)0;
2606 }
2607 }
2608 var_off = var33;
2609 {
2610 { /* Inline ropes#Concat#right (var_rnod) on <var_rnod:String(Concat)> */
2611 var42 = var_rnod->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
2612 if (unlikely(var42 == NULL)) {
2613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
2614 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
2615 show_backtrace(1);
2616 }
2617 var40 = var42;
2618 RET_LABEL41:(void)0;
2619 }
2620 }
2621 var_rnod = var40;
2622 var43 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
2623 var44 = 1;
2624 var45 = 0;
2625 {
2626 ((void (*)(val* self, val* p0))(var43->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var43, var_rnod) /* node= on <var43:RopeIterPiece>*/;
2627 }
2628 {
2629 ((void (*)(val* self, short int p0))(var43->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var43, var44) /* ldone= on <var43:RopeIterPiece>*/;
2630 }
2631 {
2632 ((void (*)(val* self, short int p0))(var43->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var43, var45) /* rdone= on <var43:RopeIterPiece>*/;
2633 }
2634 {
2635 ((void (*)(val* self, val* p0))(var43->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var43, var_r) /* prev= on <var43:RopeIterPiece>*/;
2636 }
2637 {
2638 ((void (*)(val* self))(var43->class->vft[COLOR_standard__kernel__Object__init]))(var43) /* init on <var43:RopeIterPiece>*/;
2639 }
2640 var_r = var43;
2641 } else {
2642 {
2643 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
2644 var48 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
2645 if (unlikely(var48 == NULL)) {
2646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
2647 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
2648 show_backtrace(1);
2649 }
2650 var46 = var48;
2651 RET_LABEL47:(void)0;
2652 }
2653 }
2654 var_rnod = var46;
2655 var49 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
2656 var50 = 1;
2657 var51 = 0;
2658 {
2659 ((void (*)(val* self, val* p0))(var49->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var49, var_rnod) /* node= on <var49:RopeIterPiece>*/;
2660 }
2661 {
2662 ((void (*)(val* self, short int p0))(var49->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var49, var50) /* ldone= on <var49:RopeIterPiece>*/;
2663 }
2664 {
2665 ((void (*)(val* self, short int p0))(var49->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var49, var51) /* rdone= on <var49:RopeIterPiece>*/;
2666 }
2667 {
2668 ((void (*)(val* self, val* p0))(var49->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var49, var_r) /* prev= on <var49:RopeIterPiece>*/;
2669 }
2670 {
2671 ((void (*)(val* self))(var49->class->vft[COLOR_standard__kernel__Object__init]))(var49) /* init on <var49:RopeIterPiece>*/;
2672 }
2673 var_r = var49;
2674 }
2675 } else {
2676 {
2677 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
2678 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
2679 RET_LABEL52:(void)0;
2680 }
2681 }
2682 var53 = 1;
2683 {
2684 { /* Inline ropes#RopeIterPiece#rdone= (var_r,var53) on <var_r:RopeIterPiece> */
2685 var_r->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = var53; /* _rdone on <var_r:RopeIterPiece> */
2686 RET_LABEL54:(void)0;
2687 }
2688 }
2689 {
2690 { /* Inline ropes#RopeSubstrings#iter= (self,var_r) on <self:RopeSubstrings> */
2691 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = var_r; /* _iter on <self:RopeSubstrings> */
2692 RET_LABEL55:(void)0;
2693 }
2694 }
2695 {
2696 { /* Inline kernel#Int#- (var_pos,var_off) on <var_pos:Int> */
2697 /* Covariant cast for argument 0 (i) <var_off:Int> isa OTHER */
2698 /* <var_off:Int> isa OTHER */
2699 var58 = 1; /* easy <var_off:Int> isa OTHER*/
2700 if (unlikely(!var58)) {
2701 var_class_name61 = type_standard__Int.name;
2702 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
2703 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
2704 show_backtrace(1);
2705 }
2706 var62 = var_pos - var_off;
2707 var56 = var62;
2708 goto RET_LABEL57;
2709 RET_LABEL57:(void)0;
2710 }
2711 }
2712 {
2713 { /* Inline ropes#RopeSubstrings#pos= (self,var56) on <self:RopeSubstrings> */
2714 self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = var56; /* _pos on <self:RopeSubstrings> */
2715 RET_LABEL63:(void)0;
2716 }
2717 }
2718 goto BREAK_label;
2719 }
2720 }
2721 BREAK_label: (void)0;
2722 RET_LABEL:;
2723 }
2724 /* method ropes#RopeSubstrings#item for (self: RopeSubstrings): String */
2725 val* standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__Iterator__item(val* self) {
2726 val* var /* : String */;
2727 val* var1 /* : String */;
2728 val* var3 /* : String */;
2729 {
2730 { /* Inline ropes#RopeSubstrings#str (self) on <self:RopeSubstrings> */
2731 var3 = self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
2732 if (unlikely(var3 == NULL)) {
2733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2734 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 694);
2735 show_backtrace(1);
2736 }
2737 var1 = var3;
2738 RET_LABEL2:(void)0;
2739 }
2740 }
2741 var = var1;
2742 goto RET_LABEL;
2743 RET_LABEL:;
2744 return var;
2745 }
2746 /* method ropes#RopeSubstrings#is_ok for (self: RopeSubstrings): Bool */
2747 short int standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__Iterator__is_ok(val* self) {
2748 short int var /* : Bool */;
2749 long var1 /* : Int */;
2750 long var3 /* : Int */;
2751 long var4 /* : Int */;
2752 long var6 /* : Int */;
2753 short int var7 /* : Bool */;
2754 short int var9 /* : Bool */;
2755 int cltype;
2756 int idtype;
2757 const char* var_class_name;
2758 short int var10 /* : Bool */;
2759 {
2760 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
2761 var3 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
2762 var1 = var3;
2763 RET_LABEL2:(void)0;
2764 }
2765 }
2766 {
2767 { /* Inline ropes#RopeSubstrings#max (self) on <self:RopeSubstrings> */
2768 var6 = self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
2769 var4 = var6;
2770 RET_LABEL5:(void)0;
2771 }
2772 }
2773 {
2774 { /* Inline kernel#Int#<= (var1,var4) on <var1:Int> */
2775 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
2776 /* <var4:Int> isa OTHER */
2777 var9 = 1; /* easy <var4:Int> isa OTHER*/
2778 if (unlikely(!var9)) {
2779 var_class_name = type_standard__Int.name;
2780 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2781 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
2782 show_backtrace(1);
2783 }
2784 var10 = var1 <= var4;
2785 var7 = var10;
2786 goto RET_LABEL8;
2787 RET_LABEL8:(void)0;
2788 }
2789 }
2790 var = var7;
2791 goto RET_LABEL;
2792 RET_LABEL:;
2793 return var;
2794 }
2795 /* method ropes#RopeSubstrings#index for (self: RopeSubstrings): Int */
2796 long standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__IndexedIterator__index(val* self) {
2797 long var /* : Int */;
2798 long var1 /* : Int */;
2799 long var3 /* : Int */;
2800 {
2801 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
2802 var3 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
2803 var1 = var3;
2804 RET_LABEL2:(void)0;
2805 }
2806 }
2807 var = var1;
2808 goto RET_LABEL;
2809 RET_LABEL:;
2810 return var;
2811 }
2812 /* method ropes#RopeSubstrings#next for (self: RopeSubstrings) */
2813 void standard__ropes___standard__ropes__RopeSubstrings___standard__abstract_collection__Iterator__next(val* self) {
2814 val* var_ /* var : RopeSubstrings */;
2815 long var /* : Int */;
2816 long var2 /* : Int */;
2817 val* var3 /* : String */;
2818 val* var5 /* : String */;
2819 long var6 /* : Int */;
2820 long var7 /* : Int */;
2821 short int var9 /* : Bool */;
2822 int cltype;
2823 int idtype;
2824 const char* var_class_name;
2825 long var10 /* : Int */;
2826 long var12 /* : Int */;
2827 long var14 /* : Int */;
2828 long var15 /* : Int */;
2829 long var17 /* : Int */;
2830 short int var18 /* : Bool */;
2831 short int var20 /* : Bool */;
2832 int cltype21;
2833 int idtype22;
2834 const char* var_class_name23;
2835 short int var24 /* : Bool */;
2836 val* var25 /* : RopeIterPiece */;
2837 val* var27 /* : RopeIterPiece */;
2838 val* var28 /* : nullable RopeIterPiece */;
2839 val* var30 /* : nullable RopeIterPiece */;
2840 val* var_it /* var it: nullable RopeIterPiece */;
2841 val* var31 /* : String */;
2842 val* var33 /* : String */;
2843 val* var_rnod /* var rnod: String */;
2844 short int var34 /* : Bool */;
2845 int cltype35;
2846 int idtype36;
2847 short int var37 /* : Bool */;
2848 short int var38 /* : Bool */;
2849 short int var40 /* : Bool */;
2850 short int var44 /* : Bool */;
2851 short int var46 /* : Bool */;
2852 short int var47 /* : Bool */;
2853 val* var48 /* : String */;
2854 val* var50 /* : String */;
2855 short int var51 /* : Bool */;
2856 val* var53 /* : RopeIterPiece */;
2857 short int var54 /* : Bool */;
2858 short int var55 /* : Bool */;
2859 short int var56 /* : Bool */;
2860 short int var58 /* : Bool */;
2861 short int var59 /* : Bool */;
2862 short int var60 /* : Bool */;
2863 val* var62 /* : String */;
2864 val* var64 /* : String */;
2865 val* var65 /* : RopeIterPiece */;
2866 short int var66 /* : Bool */;
2867 short int var67 /* : Bool */;
2868 val* var68 /* : nullable RopeIterPiece */;
2869 val* var70 /* : nullable RopeIterPiece */;
2870 val* var71 /* : String */;
2871 val* var73 /* : String */;
2872 var_ = self;
2873 {
2874 { /* Inline ropes#RopeSubstrings#pos (var_) on <var_:RopeSubstrings> */
2875 var2 = var_->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <var_:RopeSubstrings> */
2876 var = var2;
2877 RET_LABEL1:(void)0;
2878 }
2879 }
2880 {
2881 { /* Inline ropes#RopeSubstrings#str (self) on <self:RopeSubstrings> */
2882 var5 = self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val; /* _str on <self:RopeSubstrings> */
2883 if (unlikely(var5 == NULL)) {
2884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _str");
2885 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 694);
2886 show_backtrace(1);
2887 }
2888 var3 = var5;
2889 RET_LABEL4:(void)0;
2890 }
2891 }
2892 {
2893 var6 = ((long (*)(val* self))(var3->class->vft[COLOR_standard__string__Text__length]))(var3) /* length on <var3:String>*/;
2894 }
2895 {
2896 { /* Inline kernel#Int#+ (var,var6) on <var:Int> */
2897 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
2898 /* <var6:Int> isa OTHER */
2899 var9 = 1; /* easy <var6:Int> isa OTHER*/
2900 if (unlikely(!var9)) {
2901 var_class_name = type_standard__Int.name;
2902 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2903 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
2904 show_backtrace(1);
2905 }
2906 var10 = var + var6;
2907 var7 = var10;
2908 goto RET_LABEL8;
2909 RET_LABEL8:(void)0;
2910 }
2911 }
2912 {
2913 { /* Inline ropes#RopeSubstrings#pos= (var_,var7) on <var_:RopeSubstrings> */
2914 var_->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l = var7; /* _pos on <var_:RopeSubstrings> */
2915 RET_LABEL11:(void)0;
2916 }
2917 }
2918 {
2919 { /* Inline ropes#RopeSubstrings#pos (self) on <self:RopeSubstrings> */
2920 var14 = self->attrs[COLOR_standard__ropes__RopeSubstrings___pos].l; /* _pos on <self:RopeSubstrings> */
2921 var12 = var14;
2922 RET_LABEL13:(void)0;
2923 }
2924 }
2925 {
2926 { /* Inline ropes#RopeSubstrings#max (self) on <self:RopeSubstrings> */
2927 var17 = self->attrs[COLOR_standard__ropes__RopeSubstrings___max].l; /* _max on <self:RopeSubstrings> */
2928 var15 = var17;
2929 RET_LABEL16:(void)0;
2930 }
2931 }
2932 {
2933 { /* Inline kernel#Int#> (var12,var15) on <var12:Int> */
2934 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
2935 /* <var15:Int> isa OTHER */
2936 var20 = 1; /* easy <var15:Int> isa OTHER*/
2937 if (unlikely(!var20)) {
2938 var_class_name23 = type_standard__Int.name;
2939 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23);
2940 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
2941 show_backtrace(1);
2942 }
2943 var24 = var12 > var15;
2944 var18 = var24;
2945 goto RET_LABEL19;
2946 RET_LABEL19:(void)0;
2947 }
2948 }
2949 if (var18){
2950 goto RET_LABEL;
2951 } else {
2952 }
2953 {
2954 { /* Inline ropes#RopeSubstrings#iter (self) on <self:RopeSubstrings> */
2955 var27 = self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val; /* _iter on <self:RopeSubstrings> */
2956 if (unlikely(var27 == NULL)) {
2957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
2958 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 687);
2959 show_backtrace(1);
2960 }
2961 var25 = var27;
2962 RET_LABEL26:(void)0;
2963 }
2964 }
2965 {
2966 { /* Inline ropes#RopeIterPiece#prev (var25) on <var25:RopeIterPiece> */
2967 var30 = var25->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val; /* _prev on <var25:RopeIterPiece> */
2968 var28 = var30;
2969 RET_LABEL29:(void)0;
2970 }
2971 }
2972 var_it = var28;
2973 if (var_it == NULL) {
2974 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2975 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 751);
2976 show_backtrace(1);
2977 } else {
2978 { /* Inline ropes#RopeIterPiece#node (var_it) on <var_it:nullable RopeIterPiece> */
2979 if (unlikely(var_it == NULL)) {
2980 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2981 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 458);
2982 show_backtrace(1);
2983 }
2984 var33 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___node].val; /* _node on <var_it:nullable RopeIterPiece> */
2985 if (unlikely(var33 == NULL)) {
2986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
2987 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 458);
2988 show_backtrace(1);
2989 }
2990 var31 = var33;
2991 RET_LABEL32:(void)0;
2992 }
2993 }
2994 var_rnod = var31;
2995 for(;;) {
2996 /* <var_rnod:String> isa Concat */
2997 cltype35 = type_standard__ropes__Concat.color;
2998 idtype36 = type_standard__ropes__Concat.id;
2999 if(cltype35 >= var_rnod->type->table_size) {
3000 var34 = 0;
3001 } else {
3002 var34 = var_rnod->type->type_table[cltype35] == idtype36;
3003 }
3004 var37 = !var34;
3005 if (var37){
3006 var38 = 1;
3007 if (var_it == NULL) {
3008 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3009 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 754);
3010 show_backtrace(1);
3011 } else {
3012 { /* Inline ropes#RopeIterPiece#ldone= (var_it,var38) on <var_it:nullable RopeIterPiece> */
3013 if (unlikely(var_it == NULL)) {
3014 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3015 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 460);
3016 show_backtrace(1);
3017 }
3018 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s = var38; /* _ldone on <var_it:nullable RopeIterPiece> */
3019 RET_LABEL39:(void)0;
3020 }
3021 }
3022 var40 = 1;
3023 if (var_it == NULL) {
3024 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3025 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 755);
3026 show_backtrace(1);
3027 } else {
3028 { /* Inline ropes#RopeIterPiece#rdone= (var_it,var40) on <var_it:nullable RopeIterPiece> */
3029 if (unlikely(var_it == NULL)) {
3030 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3031 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 462);
3032 show_backtrace(1);
3033 }
3034 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = var40; /* _rdone on <var_it:nullable RopeIterPiece> */
3035 RET_LABEL41:(void)0;
3036 }
3037 }
3038 {
3039 { /* Inline ropes#RopeSubstrings#str= (self,var_rnod) on <self:RopeSubstrings> */
3040 self->attrs[COLOR_standard__ropes__RopeSubstrings___str].val = var_rnod; /* _str on <self:RopeSubstrings> */
3041 RET_LABEL42:(void)0;
3042 }
3043 }
3044 if (unlikely(var_it == NULL)) {
3045 PRINT_ERROR("Runtime error: %s", "Cast failed");
3046 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 757);
3047 show_backtrace(1);
3048 }
3049 {
3050 { /* Inline ropes#RopeSubstrings#iter= (self,var_it) on <self:RopeSubstrings> */
3051 self->attrs[COLOR_standard__ropes__RopeSubstrings___iter].val = var_it; /* _iter on <self:RopeSubstrings> */
3052 RET_LABEL43:(void)0;
3053 }
3054 }
3055 goto BREAK_label;
3056 } else {
3057 }
3058 if (var_it == NULL) {
3059 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3060 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 760);
3061 show_backtrace(1);
3062 } else {
3063 { /* Inline ropes#RopeIterPiece#ldone (var_it) on <var_it:nullable RopeIterPiece> */
3064 if (unlikely(var_it == NULL)) {
3065 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3066 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 460);
3067 show_backtrace(1);
3068 }
3069 var46 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s; /* _ldone on <var_it:nullable RopeIterPiece> */
3070 var44 = var46;
3071 RET_LABEL45:(void)0;
3072 }
3073 }
3074 var47 = !var44;
3075 if (var47){
3076 {
3077 { /* Inline ropes#Concat#left (var_rnod) on <var_rnod:String(Concat)> */
3078 var50 = var_rnod->attrs[COLOR_standard__ropes__Concat___left].val; /* _left on <var_rnod:String(Concat)> */
3079 if (unlikely(var50 == NULL)) {
3080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _left");
3081 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 96);
3082 show_backtrace(1);
3083 }
3084 var48 = var50;
3085 RET_LABEL49:(void)0;
3086 }
3087 }
3088 var_rnod = var48;
3089 var51 = 1;
3090 if (var_it == NULL) {
3091 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3092 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 762);
3093 show_backtrace(1);
3094 } else {
3095 { /* Inline ropes#RopeIterPiece#ldone= (var_it,var51) on <var_it:nullable RopeIterPiece> */
3096 if (unlikely(var_it == NULL)) {
3097 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3098 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 460);
3099 show_backtrace(1);
3100 }
3101 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___ldone].s = var51; /* _ldone on <var_it:nullable RopeIterPiece> */
3102 RET_LABEL52:(void)0;
3103 }
3104 }
3105 var53 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
3106 var54 = 0;
3107 var55 = 0;
3108 {
3109 ((void (*)(val* self, val* p0))(var53->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var53, var_rnod) /* node= on <var53:RopeIterPiece>*/;
3110 }
3111 {
3112 ((void (*)(val* self, short int p0))(var53->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var53, var54) /* ldone= on <var53:RopeIterPiece>*/;
3113 }
3114 {
3115 ((void (*)(val* self, short int p0))(var53->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var53, var55) /* rdone= on <var53:RopeIterPiece>*/;
3116 }
3117 {
3118 ((void (*)(val* self, val* p0))(var53->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var53, var_it) /* prev= on <var53:RopeIterPiece>*/;
3119 }
3120 {
3121 ((void (*)(val* self))(var53->class->vft[COLOR_standard__kernel__Object__init]))(var53) /* init on <var53:RopeIterPiece>*/;
3122 }
3123 var_it = var53;
3124 } else {
3125 if (var_it == NULL) {
3126 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3127 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 764);
3128 show_backtrace(1);
3129 } else {
3130 { /* Inline ropes#RopeIterPiece#rdone (var_it) on <var_it:nullable RopeIterPiece> */
3131 if (unlikely(var_it == NULL)) {
3132 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3133 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 462);
3134 show_backtrace(1);
3135 }
3136 var58 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s; /* _rdone on <var_it:nullable RopeIterPiece> */
3137 var56 = var58;
3138 RET_LABEL57:(void)0;
3139 }
3140 }
3141 var59 = !var56;
3142 if (var59){
3143 var60 = 1;
3144 if (var_it == NULL) {
3145 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3146 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 765);
3147 show_backtrace(1);
3148 } else {
3149 { /* Inline ropes#RopeIterPiece#rdone= (var_it,var60) on <var_it:nullable RopeIterPiece> */
3150 if (unlikely(var_it == NULL)) {
3151 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3152 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 462);
3153 show_backtrace(1);
3154 }
3155 var_it->attrs[COLOR_standard__ropes__RopeIterPiece___rdone].s = var60; /* _rdone on <var_it:nullable RopeIterPiece> */
3156 RET_LABEL61:(void)0;
3157 }
3158 }
3159 {
3160 { /* Inline ropes#Concat#right (var_rnod) on <var_rnod:String(Concat)> */
3161 var64 = var_rnod->attrs[COLOR_standard__ropes__Concat___right].val; /* _right on <var_rnod:String(Concat)> */
3162 if (unlikely(var64 == NULL)) {
3163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _right");
3164 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 98);
3165 show_backtrace(1);
3166 }
3167 var62 = var64;
3168 RET_LABEL63:(void)0;
3169 }
3170 }
3171 var_rnod = var62;
3172 var65 = NEW_standard__ropes__RopeIterPiece(&type_standard__ropes__RopeIterPiece);
3173 var66 = 0;
3174 var67 = 0;
3175 {
3176 ((void (*)(val* self, val* p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__node_61d]))(var65, var_rnod) /* node= on <var65:RopeIterPiece>*/;
3177 }
3178 {
3179 ((void (*)(val* self, short int p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__ldone_61d]))(var65, var66) /* ldone= on <var65:RopeIterPiece>*/;
3180 }
3181 {
3182 ((void (*)(val* self, short int p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__rdone_61d]))(var65, var67) /* rdone= on <var65:RopeIterPiece>*/;
3183 }
3184 {
3185 ((void (*)(val* self, val* p0))(var65->class->vft[COLOR_standard__ropes__RopeIterPiece__prev_61d]))(var65, var_it) /* prev= on <var65:RopeIterPiece>*/;
3186 }
3187 {
3188 ((void (*)(val* self))(var65->class->vft[COLOR_standard__kernel__Object__init]))(var65) /* init on <var65:RopeIterPiece>*/;
3189 }
3190 var_it = var65;
3191 } else {
3192 if (var_it == NULL) {
3193 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3194 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 769);
3195 show_backtrace(1);
3196 } else {
3197 { /* Inline ropes#RopeIterPiece#prev (var_it) on <var_it:nullable RopeIterPiece> */
3198 if (unlikely(var_it == NULL)) {
3199 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3200 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 464);
3201 show_backtrace(1);
3202 }
3203 var70 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___prev].val; /* _prev on <var_it:nullable RopeIterPiece> */
3204 var68 = var70;
3205 RET_LABEL69:(void)0;
3206 }
3207 }
3208 var_it = var68;
3209 if (var_it == NULL) {
3210 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3211 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 770);
3212 show_backtrace(1);
3213 } else {
3214 { /* Inline ropes#RopeIterPiece#node (var_it) on <var_it:nullable RopeIterPiece> */
3215 if (unlikely(var_it == NULL)) {
3216 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3217 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 458);
3218 show_backtrace(1);
3219 }
3220 var73 = var_it->attrs[COLOR_standard__ropes__RopeIterPiece___node].val; /* _node on <var_it:nullable RopeIterPiece> */
3221 if (unlikely(var73 == NULL)) {
3222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
3223 PRINT_ERROR(" (%s:%d)\n", FILE_standard__ropes, 458);
3224 show_backtrace(1);
3225 }
3226 var71 = var73;
3227 RET_LABEL72:(void)0;
3228 }
3229 }
3230 var_rnod = var71;
3231 goto BREAK_label74;
3232 }
3233 }
3234 BREAK_label74: (void)0;
3235 }
3236 BREAK_label: (void)0;
3237 RET_LABEL:;
3238 }
3239 /* method ropes#RopeChars#[] for (self: RopeChars, Int): Char */
3240 char standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
3241 char var /* : Char */;
3242 long var_i /* var i: Int */;
3243 val* var1 /* : Text */;
3244 val* var3 /* : Text */;
3245 char var4 /* : Char */;
3246 var_i = p0;
3247 {
3248 { /* Inline string#StringCharView#target (self) on <self:RopeChars> */
3249 var3 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeChars> */
3250 if (unlikely(var3 == NULL)) {
3251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
3252 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 851);
3253 show_backtrace(1);
3254 }
3255 var1 = var3;
3256 RET_LABEL2:(void)0;
3257 }
3258 }
3259 {
3260 var4 = standard__ropes___standard__ropes__Concat___standard__string__Text___91d_93d(var1, var_i);
3261 }
3262 var = var4;
3263 goto RET_LABEL;
3264 RET_LABEL:;
3265 return var;
3266 }
3267 /* method ropes#RopeChars#[] for (self: SequenceRead[nullable Object], Int): nullable Object */
3268 val* VIRTUAL_standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
3269 val* var /* : nullable Object */;
3270 char var1 /* : Char */;
3271 val* var2 /* : nullable Object */;
3272 var1 = standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead___91d_93d(self, p0);
3273 var2 = BOX_standard__Char(var1); /* autobox from Char to nullable Object */
3274 var = var2;
3275 RET_LABEL:;
3276 return var;
3277 }
3278 /* method ropes#RopeChars#iterator_from for (self: RopeChars, Int): IndexedIterator[Char] */
3279 val* standard__ropes___standard__ropes__RopeChars___standard__abstract_collection__SequenceRead__iterator_from(val* self, long p0) {
3280 val* var /* : IndexedIterator[Char] */;
3281 long var_i /* var i: Int */;
3282 val* var1 /* : RopeIter */;
3283 val* var2 /* : Text */;
3284 val* var4 /* : Text */;
3285 var_i = p0;
3286 var1 = NEW_standard__ropes__RopeIter(&type_standard__ropes__RopeIter);
3287 {
3288 { /* Inline string#StringCharView#target (self) on <self:RopeChars> */
3289 var4 = self->attrs[COLOR_standard__string__StringCharView___target].val; /* _target on <self:RopeChars> */
3290 if (unlikely(var4 == NULL)) {
3291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
3292 PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 851);
3293 show_backtrace(1);
3294 }
3295 var2 = var4;
3296 RET_LABEL3:(void)0;
3297 }
3298 }
3299 {
3300 standard__ropes___standard__ropes__RopeIter___from(var1, var2, var_i); /* Direct call ropes#RopeIter#from on <var1:RopeIter>*/
3301 }
3302 var = var1;
3303 goto RET_LABEL;
3304 RET_LABEL:;
3305 return var;
3306 }