X-Git-Url: http://nitlanguage.org diff --git a/c_src/string.sep.1.c b/c_src/string.sep.1.c index bf26b76..855e3b8 100644 --- a/c_src/string.sep.1.c +++ b/c_src/string.sep.1.c @@ -1,67 +1,118 @@ #include "string.sep.0.h" -/* method string#AbstractString#items for (self: AbstractString): NativeString */ -char* string__AbstractString__items(val* self) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -var1 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var = var1; +/* method string#Text#is_empty for (self: Text): Bool */ +short int string__Text__is_empty(val* self) { +short int var /* : Bool */; +long var1 /* : Int */; +long var3 /* : Int */; +long var4 /* : Int */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +{ +{ /* Inline string#FlatText#length (self) on */ +var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +var4 = 0; +{ +{ /* Inline kernel#Int#== (var1,var4) on */ +var8 = var1 == var4; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +var5 = var6; +} +var = var5; +goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#items for (self: Object): NativeString */ -char* VIRTUAL_string__AbstractString__items(val* self) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -var1 = string__AbstractString__items(self); +/* method string#Text#is_empty for (self: Object): Bool */ +short int VIRTUAL_string__Text__is_empty(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__Text__is_empty(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#[] for (self: AbstractString, Int): Char */ -char string__AbstractString___91d_93d(val* self, long p0) { +/* method string#Text#last for (self: Text): Char */ +char string__Text__last(val* self) { char var /* : Char */; -long var_index /* var index: Int */; -char* var1 /* : NativeString */; -char var2 /* : Char */; -char var4 /* : Char */; -var_index = p0; -var1 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var1,var_index) */ -var4 = var1[var_index]; +val* var1 /* : SequenceRead[Char] */; +long var2 /* : Int */; +long var4 /* : Int */; +long var5 /* : Int */; +long var6 /* : Int */; +short int var8 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var9 /* : Int */; +val* var10 /* : nullable Object */; +char var11 /* : Char */; +{ +var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; +} +{ +{ /* Inline string#FlatText#length (self) on */ +var4 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ var2 = var4; -goto RET_LABEL3; RET_LABEL3:(void)0; } -var = var2; +} +var5 = 1; +{ +{ /* Inline kernel#Int#- (var2,var5) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var8 = 1; /* easy isa OTHER*/ +if (unlikely(!var8)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var9 = var2 - var5; +var6 = var9; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +} +{ +var10 = ((val* (*)(val*, long))(var1->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var1, var6) /* [] on */; +} +var11 = ((struct instance_kernel__Char*)var10)->value; /* autounbox from nullable Object to Char */; +var = var11; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#[] for (self: Object, Int): nullable Object */ -val* VIRTUAL_string__AbstractString___91d_93d(val* self, long p0) { -val* var /* : nullable Object */; +/* method string#Text#last for (self: Object): Char */ +char VIRTUAL_string__Text__last(val* self) { +char var /* : Char */; char var1 /* : Char */; -val* var2 /* : nullable Object */; -var1 = string__AbstractString___91d_93d(self, p0); -var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */ -var = var2; +var1 = string__Text__last(self); +var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#substring for (self: AbstractString, Int, Int): String */ -val* string__AbstractString__substring(val* self, long p0, long p1) { -val* var /* : String */; +/* method string#Text#substring_from for (self: Text, Int): Text */ +val* string__Text__substring_from(val* self, long p0) { +val* var /* : Text */; long var_from /* var from: Int */; -long var_count /* var count: Int */; long var1 /* : Int */; -short int var2 /* : Bool */; +long var3 /* : Int */; short int var4 /* : Bool */; +short int var6 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var5 /* : Bool */; -long var6 /* : Int */; -long var8 /* : Int */; +short int var7 /* : Bool */; +val* var8 /* : Text */; long var9 /* : Int */; short int var10 /* : Bool */; short int var12 /* : Bool */; @@ -71,81 +122,57 @@ const char* var_class_name15; short int var16 /* : Bool */; long var17 /* : Int */; long var18 /* : Int */; -short int var19 /* : Bool */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -const char* var_class_name24; -short int var25 /* : Bool */; -long var26 /* : Int */; -short int var27 /* : Bool */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -const char* var_class_name32; -short int var33 /* : Bool */; -val* var34 /* : Buffer */; -long var35 /* : Int */; -long var37 /* : Int */; -val* var_r /* var r: Buffer */; -short int var38 /* : Bool */; -short int var40 /* : Bool */; -int cltype41; -int idtype42; -const char* var_class_name43; -short int var44 /* : Bool */; -char* var45 /* : NativeString */; -char var46 /* : Char */; -char var48 /* : Char */; -val* var49 /* : nullable Object */; -long var50 /* : Int */; -long var51 /* : Int */; -long var53 /* : Int */; -val* var54 /* : String */; -static val* varonce; -val* var55 /* : String */; -char* var56 /* : NativeString */; -long var57 /* : Int */; -val* var58 /* : String */; +long var20 /* : Int */; +long var21 /* : Int */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +const char* var_class_name26; +long var27 /* : Int */; +val* var28 /* : Text */; var_from = p0; -var_count = p1; -var1 = 0; -{ /* Inline kernel#Int#>= (var_count,var1) */ +{ +{ /* Inline string#FlatText#length (self) on */ +var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline kernel#Int#>= (var_from,var1) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { +var6 = 1; /* easy isa OTHER*/ +if (unlikely(!var6)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); show_backtrace(1); } -var5 = var_count >= var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var7 = var_from >= var1; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -if (!var2) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 50); -show_backtrace(1); } -{ /* Inline kernel#Int#+ (var_count,var_from) */ -var8 = var_count + var_from; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +if (var4){ +{ +var8 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__empty]))(self) /* empty on */; +} +var = var8; +goto RET_LABEL; +} else { } -var_count = var6; var9 = 0; -{ /* Inline kernel#Int#< (var_from,var9) */ +{ +{ /* Inline kernel#Int#< (var_from,var9) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var12 = 1; /* easy isa OTHER*/ -if (!var12) { +if (unlikely(!var12)) { var_class_name15 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); show_backtrace(1); } var16 = var_from < var9; @@ -153,646 +180,688 @@ var10 = var16; goto RET_LABEL11; RET_LABEL11:(void)0; } +} if (var10){ var17 = 0; var_from = var17; } else { } -var18 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#> (var_count,var18) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var21 = 1; /* easy isa OTHER*/ -if (!var21) { -var_class_name24 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -show_backtrace(1); -} -var25 = var_count > var18; -var19 = var25; -goto RET_LABEL20; -RET_LABEL20:(void)0; -} -if (var19){ -var26 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var_count = var26; -} else { -} -{ /* Inline kernel#Int#< (var_from,var_count) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var29 = 1; /* easy isa OTHER*/ -if (!var29) { -var_class_name32 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); -} -var33 = var_from < var_count; -var27 = var33; -goto RET_LABEL28; -RET_LABEL28:(void)0; +{ +{ /* Inline string#FlatText#length (self) on */ +var20 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var18 = var20; +RET_LABEL19:(void)0; } -if (var27){ -var34 = NEW_string__Buffer(&type_string__Buffer); -{ /* Inline kernel#Int#- (var_count,var_from) */ -var37 = var_count - var_from; -var35 = var37; -goto RET_LABEL36; -RET_LABEL36:(void)0; } -((void (*)(val*, long))(var34->class->vft[COLOR_string__Buffer__with_capacity]))(var34, var35) /* with_capacity on */; -var_r = var34; -for(;;) { -{ /* Inline kernel#Int#< (var_from,var_count) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var40 = 1; /* easy isa OTHER*/ -if (!var40) { -var_class_name43 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +{ +{ /* Inline kernel#Int#- (var18,var_from) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var23 = 1; /* easy isa OTHER*/ +if (unlikely(!var23)) { +var_class_name26 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); show_backtrace(1); } -var44 = var_from < var_count; -var38 = var44; -goto RET_LABEL39; -RET_LABEL39:(void)0; -} -if (!var38) break; -var45 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var45,var_from) */ -var48 = var45[var_from]; -var46 = var48; -goto RET_LABEL47; -RET_LABEL47:(void)0; -} -var49 = BOX_kernel__Char(var46); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_r->class->vft[COLOR_abstract_collection__Sequence__push]))(var_r, var49) /* push on */; -var50 = 1; -{ /* Inline kernel#Int#+ (var_from,var50) */ -var53 = var_from + var50; -var51 = var53; -goto RET_LABEL52; -RET_LABEL52:(void)0; +var27 = var18 - var_from; +var21 = var27; +goto RET_LABEL22; +RET_LABEL22:(void)0; } -var_from = var51; -CONTINUE_label: (void)0; } -BREAK_label: (void)0; -var54 = ((val* (*)(val*))(var_r->class->vft[COLOR_string__Object__to_s]))(var_r) /* to_s on */; -var = var54; -goto RET_LABEL; -} else { -if (varonce) { -var55 = varonce; -} else { -var56 = ""; -var57 = 0; -var58 = string__NativeString__to_s_with_length(var56, var57); -var55 = var58; -varonce = var55; +{ +var28 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__Text__substring]))(self, var_from, var21) /* substring on */; } -var = var55; +var = var28; goto RET_LABEL; -} RET_LABEL:; return var; } -/* method string#AbstractString#substring for (self: Object, Int, Int): String */ -val* VIRTUAL_string__AbstractString__substring(val* self, long p0, long p1) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__AbstractString__substring(self, p0, p1); +/* method string#Text#substring_from for (self: Object, Int): Text */ +val* VIRTUAL_string__Text__substring_from(val* self, long p0) { +val* var /* : Text */; +val* var1 /* : Text */; +var1 = string__Text__substring_from(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#substring_from for (self: AbstractString, Int): String */ -val* string__AbstractString__substring_from(val* self, long p0) { -val* var /* : String */; -long var_from /* var from: Int */; -long var1 /* : Int */; +/* method string#Text#has_substring for (self: Text, String, Int): Bool */ +short int string__Text__has_substring(val* self, val* p0, long p1) { +short int var /* : Bool */; +val* var_str /* var str: String */; +long var_pos /* var pos: Int */; +short int var1 /* : Bool */; short int var2 /* : Bool */; -short int var4 /* : Bool */; +short int var3 /* : Bool */; +long var4 /* : Int */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var5 /* : Bool */; -long var6 /* : Int */; -long var7 /* : Int */; +short int var8 /* : Bool */; +short int var_ /* var : Bool */; long var9 /* : Int */; -val* var10 /* : String */; -var_from = p0; -var1 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#< (var_from,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { +long var11 /* : Int */; +long var12 /* : Int */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; +long var18 /* : Int */; +long var19 /* : Int */; +long var21 /* : Int */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +val* var30 /* : SequenceRead[Char] */; +val* var31 /* : IndexedIterator[nullable Object] */; +val* var_myiter /* var myiter: IndexedIterator[Char] */; +val* var32 /* : SequenceRead[Char] */; +val* var34 /* : SequenceRead[Char] */; +val* var35 /* : Iterator[nullable Object] */; +val* var_itsiter /* var itsiter: IndexedIterator[Char] */; +short int var36 /* : Bool */; +short int var37 /* : Bool */; +short int var_38 /* var : Bool */; +short int var39 /* : Bool */; +val* var40 /* : nullable Object */; +val* var41 /* : nullable Object */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +short int var46 /* : Bool */; +short int var47 /* : Bool */; +short int var48 /* : Bool */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +var_str = p0; +var_pos = p1; +{ +var1 = string__Text__is_empty(var_str); +} +if (var1){ +var2 = 1; +var = var2; +goto RET_LABEL; +} else { +} +var4 = 0; +{ +{ /* Inline kernel#Int#< (var_pos,var4) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var7 = 1; /* easy isa OTHER*/ +if (unlikely(!var7)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); show_backtrace(1); } -var5 = var_from < var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var8 = var_pos < var4; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} } -if (!var2) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 75); +var_ = var5; +if (var5){ +var3 = var_; +} else { +{ +{ /* Inline string#FlatText#length (var_str) on */ +var11 = var_str->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var_pos,var9) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var14 = 1; /* easy isa OTHER*/ +if (unlikely(!var14)) { +var_class_name17 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var6 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#- (var6,var_from) */ -var9 = var6 - var_from; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var18 = var_pos + var9; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; } -var10 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__AbstractString__substring]))(self, var_from, var7) /* substring on */; -var = var10; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#AbstractString#substring_from for (self: Object, Int): String */ -val* VIRTUAL_string__AbstractString__substring_from(val* self, long p0) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__AbstractString__substring_from(self, p0); -var = var1; -RET_LABEL:; -return var; +{ +{ /* Inline string#FlatText#length (self) on */ +var21 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var19 = var21; +RET_LABEL20:(void)0; } -/* method string#AbstractString#has_substring for (self: AbstractString, String, Int): Bool */ -short int string__AbstractString__has_substring(val* self, val* p0, long p1) { -short int var /* : Bool */; -val* var_str /* var str: String */; -long var_pos /* var pos: Int */; -long var1 /* : Int */; -long var2 /* : Int */; -long var3 /* : Int */; -long var5 /* : Int */; -long var_itsindex /* var itsindex: Int */; -long var6 /* : Int */; -long var8 /* : Int */; -long var_myindex /* var myindex: Int */; -char* var9 /* : NativeString */; -char* var_myitems /* var myitems: NativeString */; -char* var10 /* : NativeString */; -char* var_itsitems /* var itsitems: NativeString */; -short int var11 /* : Bool */; -long var12 /* : Int */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var16 /* : Bool */; -short int var_ /* var : Bool */; -short int var17 /* : Bool */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -long var25 /* : Int */; -long var_its_index_from /* var its_index_from: Int */; -long var26 /* : Int */; -long var28 /* : Int */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; -int cltype32; -int idtype33; -const char* var_class_name34; -short int var35 /* : Bool */; -char var36 /* : Char */; -char var38 /* : Char */; -char var39 /* : Char */; -char var41 /* : Char */; -short int var42 /* : Bool */; -short int var44 /* : Bool */; -short int var45 /* : Bool */; -short int var46 /* : Bool */; -long var47 /* : Int */; -long var48 /* : Int */; -long var50 /* : Int */; -long var51 /* : Int */; -long var52 /* : Int */; -long var54 /* : Int */; -short int var55 /* : Bool */; -var_str = p0; -var_pos = p1; -var1 = ((long (*)(val*))(var_str->class->vft[COLOR_abstract_collection__Collection__length]))(var_str) /* length on */; -var2 = 1; -{ /* Inline kernel#Int#- (var1,var2) */ -var5 = var1 - var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -var_itsindex = var3; -{ /* Inline kernel#Int#+ (var_pos,var_itsindex) */ -var8 = var_pos + var_itsindex; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; } -var_myindex = var6; -var9 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_myitems = var9; -var10 = var_str->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_itsitems = var10; -var12 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#> (var_myindex,var12) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var15 = 1; /* easy isa OTHER*/ -if (!var15) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); +{ +{ /* Inline kernel#Int#> (var12,var19) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var24 = 1; /* easy isa OTHER*/ +if (unlikely(!var24)) { +var_class_name27 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } -var16 = var_myindex > var12; -var13 = var16; -goto RET_LABEL14; -RET_LABEL14:(void)0; -} -var_ = var13; -if (var13){ -var11 = var_; -} else { -{ /* Inline kernel#Int#> (var_itsindex,var_myindex) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (!var19) { -var_class_name22 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -show_backtrace(1); +var28 = var12 > var19; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -var23 = var_itsindex > var_myindex; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; } -var11 = var17; +var3 = var22; } -if (var11){ -var24 = 0; -var = var24; +if (var3){ +var29 = 0; +var = var29; goto RET_LABEL; } else { } -var25 = var_str->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_its_index_from = var25; -{ /* Inline kernel#Int#+ (var_itsindex,var_its_index_from) */ -var28 = var_itsindex + var_its_index_from; -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; +{ +var30 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; +} +{ +var31 = ((val* (*)(val*, long))(var30->class->vft[COLOR_abstract_collection__SequenceRead__iterator_from]))(var30, var_pos) /* iterator_from on */; +} +var_myiter = var31; +{ +{ /* Inline string#FlatString#chars (var_str) on */ +var34 = var_str->attrs[COLOR_string__FlatString___chars].val; /* _chars on */ +if (unlikely(var34 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939); +show_backtrace(1); } -var_itsindex = var26; +var32 = var34; +RET_LABEL33:(void)0; +} +} +{ +var35 = ((val* (*)(val*))(var32->class->vft[COLOR_abstract_collection__Collection__iterator]))(var32) /* iterator on */; +} +var_itsiter = var35; for(;;) { -{ /* Inline kernel#Int#>= (var_itsindex,var_its_index_from) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var31 = 1; /* easy isa OTHER*/ -if (!var31) { -var_class_name34 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); -show_backtrace(1); -} -var35 = var_itsindex >= var_its_index_from; -var29 = var35; -goto RET_LABEL30; -RET_LABEL30:(void)0; +{ +var37 = ((short int (*)(val*))(var_myiter->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_myiter) /* is_ok on */; } -if (!var29) break; -{ /* Inline string#NativeString#[] (var_myitems,var_myindex) */ -var38 = var_myitems[var_myindex]; -var36 = var38; -goto RET_LABEL37; -RET_LABEL37:(void)0; +var_38 = var37; +if (var37){ +{ +var39 = ((short int (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_itsiter) /* is_ok on */; } -{ /* Inline string#NativeString#[] (var_itsitems,var_itsindex) */ -var41 = var_itsitems[var_itsindex]; -var39 = var41; -goto RET_LABEL40; -RET_LABEL40:(void)0; +var36 = var39; +} else { +var36 = var_38; } -{ /* Inline kernel#Char#!= (var36,var39) */ -var44 = var36 == var39; -var45 = !var44; -var42 = var45; -goto RET_LABEL43; -RET_LABEL43:(void)0; +if (var36){ +{ +var40 = ((val* (*)(val*))(var_myiter->class->vft[COLOR_abstract_collection__Iterator__item]))(var_myiter) /* item on */; +} +{ +var41 = ((val* (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__item]))(var_itsiter) /* item on */; +} +{ +{ /* Inline kernel#Char#!= (var40,var41) on */ +var45 = var40 == var41 || (((struct instance_kernel__Char*)var40)->value == ((struct instance_kernel__Char*)var41)->value); +var46 = !var45; +var43 = var46; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +var42 = var43; } if (var42){ -var46 = 0; -var = var46; +var47 = 0; +var = var47; goto RET_LABEL; } else { } -var47 = 1; -{ /* Inline kernel#Int#- (var_myindex,var47) */ -var50 = var_myindex - var47; -var48 = var50; -goto RET_LABEL49; -RET_LABEL49:(void)0; +{ +((void (*)(val*))(var_myiter->class->vft[COLOR_abstract_collection__Iterator__next]))(var_myiter) /* next on */; } -var_myindex = var48; -var51 = 1; -{ /* Inline kernel#Int#- (var_itsindex,var51) */ -var54 = var_itsindex - var51; -var52 = var54; -goto RET_LABEL53; -RET_LABEL53:(void)0; +{ +((void (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__next]))(var_itsiter) /* next on */; +} +} else { +goto BREAK_label; } -var_itsindex = var52; -CONTINUE_label: (void)0; } BREAK_label: (void)0; -var55 = 1; -var = var55; +{ +var48 = ((short int (*)(val*))(var_itsiter->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_itsiter) /* is_ok on */; +} +if (var48){ +var49 = 0; +var = var49; +goto RET_LABEL; +} else { +} +var50 = 1; +var = var50; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#has_substring for (self: Object, String, Int): Bool */ -short int VIRTUAL_string__AbstractString__has_substring(val* self, val* p0, long p1) { +/* method string#Text#has_substring for (self: Object, String, Int): Bool */ +short int VIRTUAL_string__Text__has_substring(val* self, val* p0, long p1) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = string__AbstractString__has_substring(self, p0, p1); +var1 = string__Text__has_substring(self, p0, p1); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#has_prefix for (self: AbstractString, String): Bool */ -short int string__AbstractString__has_prefix(val* self, val* p0) { +/* method string#Text#has_prefix for (self: Text, String): Bool */ +short int string__Text__has_prefix(val* self, val* p0) { short int var /* : Bool */; val* var_prefix /* var prefix: String */; long var1 /* : Int */; short int var2 /* : Bool */; var_prefix = p0; var1 = 0; -var2 = ((short int (*)(val*, val*, long))(self->class->vft[COLOR_string__AbstractString__has_substring]))(self, var_prefix, var1) /* has_substring on */; +{ +var2 = string__Text__has_substring(self, var_prefix, var1); +} var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#has_prefix for (self: Object, String): Bool */ -short int VIRTUAL_string__AbstractString__has_prefix(val* self, val* p0) { +/* method string#Text#has_prefix for (self: Object, String): Bool */ +short int VIRTUAL_string__Text__has_prefix(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = string__AbstractString__has_prefix(self, p0); +var1 = string__Text__has_prefix(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#has_suffix for (self: AbstractString, String): Bool */ -short int string__AbstractString__has_suffix(val* self, val* p0) { +/* method string#Text#has_suffix for (self: Text, String): Bool */ +short int string__Text__has_suffix(val* self, val* p0) { short int var /* : Bool */; val* var_suffix /* var suffix: String */; long var1 /* : Int */; -long var2 /* : Int */; long var3 /* : Int */; -long var5 /* : Int */; -short int var6 /* : Bool */; +long var4 /* : Int */; +long var6 /* : Int */; +long var7 /* : Int */; +short int var9 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var10 /* : Int */; +short int var11 /* : Bool */; var_suffix = p0; -var1 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var2 = ((long (*)(val*))(var_suffix->class->vft[COLOR_abstract_collection__Collection__length]))(var_suffix) /* length on */; -{ /* Inline kernel#Int#- (var1,var2) */ -var5 = var1 - var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +{ +{ /* Inline string#FlatText#length (self) on */ +var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; } -var6 = ((short int (*)(val*, val*, long))(self->class->vft[COLOR_string__AbstractString__has_substring]))(self, var_suffix, var3) /* has_substring on */; -var = var6; +} +{ +{ /* Inline string#FlatText#length (var_suffix) on */ +var6 = var_suffix->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline kernel#Int#- (var1,var4) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var10 = var1 - var4; +var7 = var10; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +{ +var11 = string__Text__has_substring(self, var_suffix, var7); +} +var = var11; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#has_suffix for (self: Object, String): Bool */ -short int VIRTUAL_string__AbstractString__has_suffix(val* self, val* p0) { +/* method string#Text#has_suffix for (self: Object, String): Bool */ +short int VIRTUAL_string__Text__has_suffix(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = string__AbstractString__has_suffix(self, p0); +var1 = string__Text__has_suffix(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#to_i for (self: AbstractString): Int */ -long string__AbstractString__to_i(val* self) { +/* method string#Text#to_i for (self: Text): Int */ +long string__Text__to_i(val* self) { long var /* : Int */; val* var1 /* : String */; char* var2 /* : NativeString */; long var3 /* : Int */; long var5 /* : Int */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on */; -var2 = ((char* (*)(val*))(var1->class->vft[COLOR_string__String__to_cstring]))(var1) /* to_cstring on */; -{ /* Inline string#NativeString#atoi (var2) */ +{ +var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on */; +} +{ +var2 = string__FlatString__to_cstring(var1); +} +{ +{ /* Inline string#NativeString#atoi (var2) on */ var5 = atoi(var2);; var3 = var5; goto RET_LABEL4; RET_LABEL4:(void)0; } +} var = var3; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#to_i for (self: Object): Int */ -long VIRTUAL_string__AbstractString__to_i(val* self) { +/* method string#Text#to_i for (self: Object): Int */ +long VIRTUAL_string__Text__to_i(val* self) { long var /* : Int */; long var1 /* : Int */; -var1 = string__AbstractString__to_i(self); +var1 = string__Text__to_i(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#to_f for (self: AbstractString): Float */ -double string__AbstractString__to_f(val* self) { +/* method string#Text#to_f for (self: Text): Float */ +double string__Text__to_f(val* self) { double var /* : Float */; val* var1 /* : String */; char* var2 /* : NativeString */; double var3 /* : Float */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on */; -var2 = ((char* (*)(val*))(var1->class->vft[COLOR_string__String__to_cstring]))(var1) /* to_cstring on */; -var3 = string__NativeString__atof(var2); +double var5 /* : Float for extern */; +{ +var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on */; +} +{ +var2 = string__FlatString__to_cstring(var1); +} +{ +{ /* Inline string#NativeString#atof (var2) on */ +var5 = atof(var2); +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +} var = var3; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#to_f for (self: Object): Float */ -double VIRTUAL_string__AbstractString__to_f(val* self) { +/* method string#Text#to_f for (self: Object): Float */ +double VIRTUAL_string__Text__to_f(val* self) { double var /* : Float */; double var1 /* : Float */; -var1 = string__AbstractString__to_f(self); +var1 = string__Text__to_f(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#to_hex for (self: AbstractString): Int */ -long string__AbstractString__to_hex(val* self) { +/* method string#Text#to_hex for (self: Text): Int */ +long string__Text__to_hex(val* self) { long var /* : Int */; long var1 /* : Int */; long var2 /* : Int */; var1 = 16; -var2 = ((long (*)(val*, long))(self->class->vft[COLOR_string__AbstractString__a_to]))(self, var1) /* a_to on */; +{ +var2 = string__Text__a_to(self, var1); +} var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#to_hex for (self: Object): Int */ -long VIRTUAL_string__AbstractString__to_hex(val* self) { +/* method string#Text#to_hex for (self: Object): Int */ +long VIRTUAL_string__Text__to_hex(val* self) { long var /* : Int */; long var1 /* : Int */; -var1 = string__AbstractString__to_hex(self); +var1 = string__Text__to_hex(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#a_to for (self: AbstractString, Int): Int */ -long string__AbstractString__a_to(val* self, long p0) { +/* method string#Text#a_to for (self: Text, Int): Int */ +long string__Text__a_to(val* self, long p0) { long var /* : Int */; long var_base /* var base: Int */; long var1 /* : Int */; long var_i /* var i: Int */; short int var2 /* : Bool */; short int var_neg /* var neg: Bool */; -val* var3 /* : Iterator[nullable Object] */; -short int var4 /* : Bool */; -val* var5 /* : nullable Object */; -char var_c /* var c: Char */; -char var6 /* : Char */; -long var7 /* : Int */; -long var_v /* var v: Int */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; +long var3 /* : Int */; +long var_j /* var j: Int */; +long var4 /* : Int */; +long var6 /* : Int */; +long var_ /* var : Int */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var11 /* : Bool */; -long var12 /* : Int */; +short int var10 /* : Bool */; +val* var11 /* : SequenceRead[Char] */; +val* var12 /* : nullable Object */; +char var13 /* : Char */; +char var_c /* var c: Char */; long var14 /* : Int */; -long var15 /* : Int */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -const char* var_class_name21; -short int var22 /* : Bool */; -short int var23 /* : Bool */; +long var_v /* var v: Int */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +const char* var_class_name20; +short int var21 /* : Bool */; +long var22 /* : Int */; long var24 /* : Int */; -long var26 /* : Int */; -long var27 /* : Int */; -long var29 /* : Int */; -long var30 /* : Int */; -long var32 /* : Int */; +long var25 /* : Int */; +short int var26 /* : Bool */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +const char* var_class_name31; +short int var32 /* : Bool */; +short int var33 /* : Bool */; +long var34 /* : Int */; +short int var36 /* : Bool */; +int cltype37; +int idtype38; +const char* var_class_name39; +long var40 /* : Int */; +long var41 /* : Int */; +short int var43 /* : Bool */; +int cltype44; +int idtype45; +const char* var_class_name46; +long var47 /* : Int */; +long var48 /* : Int */; +long var49 /* : Int */; +long var50 /* : Int */; +long var52 /* : Int */; var_base = p0; var1 = 0; var_i = var1; var2 = 0; var_neg = var2; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var3 = 0; +var_j = var3; +{ +{ /* Inline string#FlatText#length (self) on */ +var6 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +var_ = var4; for(;;) { -var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on */; -if(!var4) break; -var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on */; -var6 = ((struct instance_kernel__Char*)var5)->value; /* autounbox from nullable Object to Char */; -var_c = var6; -var7 = kernel__Char__to_i(var_c); -var_v = var7; -{ /* Inline kernel#Int#> (var_v,var_base) */ +{ +{ /* Inline kernel#Int#< (var_j,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var10 = var_j < var_; +var7 = var10; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +if (var7){ +{ +var11 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; +} +{ +var12 = ((val* (*)(val*, long))(var11->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var11, var_j) /* [] on */; +} +var13 = ((struct instance_kernel__Char*)var12)->value; /* autounbox from nullable Object to Char */; +var_c = var13; +{ +var14 = kernel__Char__to_i(var_c); +} +var_v = var14; +{ +{ /* Inline kernel#Int#> (var_v,var_base) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var10 = 1; /* easy isa OTHER*/ -if (!var10) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); +var17 = 1; /* easy isa OTHER*/ +if (unlikely(!var17)) { +var_class_name20 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } -var11 = var_v > var_base; -var8 = var11; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var21 = var_v > var_base; +var15 = var21; +goto RET_LABEL16; +RET_LABEL16:(void)0; } -if (var8){ +} +if (var15){ if (var_neg){ -{ /* Inline kernel#Int#unary - (var_i) */ -var14 = -var_i; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +{ +{ /* Inline kernel#Int#unary - (var_i) on */ +var24 = -var_i; +var22 = var24; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -var = var12; +} +var = var22; goto RET_LABEL; } else { var = var_i; goto RET_LABEL; } } else { -var15 = 0; -{ /* Inline kernel#Int#< (var_v,var15) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var18 = 1; /* easy isa OTHER*/ -if (!var18) { -var_class_name21 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +var25 = 0; +{ +{ /* Inline kernel#Int#< (var_v,var25) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var28 = 1; /* easy isa OTHER*/ +if (unlikely(!var28)) { +var_class_name31 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); show_backtrace(1); } -var22 = var_v < var15; -var16 = var22; -goto RET_LABEL17; -RET_LABEL17:(void)0; +var32 = var_v < var25; +var26 = var32; +goto RET_LABEL27; +RET_LABEL27:(void)0; } -if (var16){ -var23 = 1; -var_neg = var23; +} +if (var26){ +var33 = 1; +var_neg = var33; } else { -{ /* Inline kernel#Int#* (var_i,var_base) */ -var26 = var_i * var_base; -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; +{ +{ /* Inline kernel#Int#* (var_i,var_base) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var36 = 1; /* easy isa OTHER*/ +if (unlikely(!var36)) { +var_class_name39 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378); +show_backtrace(1); +} +var40 = var_i * var_base; +var34 = var40; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var34,var_v) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var43 = 1; /* easy isa OTHER*/ +if (unlikely(!var43)) { +var_class_name46 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var47 = var34 + var_v; +var41 = var47; +goto RET_LABEL42; +RET_LABEL42:(void)0; } -{ /* Inline kernel#Int#+ (var24,var_v) */ -var29 = var24 + var_v; -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; } -var_i = var27; +var_i = var41; } } -CONTINUE_label: (void)0; -((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on */; +var48 = 1; +{ +var49 = kernel__Int__successor(var_j, var48); +} +var_j = var49; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; if (var_neg){ -{ /* Inline kernel#Int#unary - (var_i) */ -var32 = -var_i; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; +{ +{ /* Inline kernel#Int#unary - (var_i) on */ +var52 = -var_i; +var50 = var52; +goto RET_LABEL51; +RET_LABEL51:(void)0; +} } -var = var30; +var = var50; goto RET_LABEL; } else { var = var_i; @@ -801,6836 +870,9127 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#a_to for (self: Object, Int): Int */ -long VIRTUAL_string__AbstractString__a_to(val* self, long p0) { +/* method string#Text#a_to for (self: Object, Int): Int */ +long VIRTUAL_string__Text__a_to(val* self, long p0) { long var /* : Int */; long var1 /* : Int */; -var1 = string__AbstractString__a_to(self, p0); +var1 = string__Text__a_to(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#is_numeric for (self: AbstractString): Bool */ -short int string__AbstractString__is_numeric(val* self) { +/* method string#Text#is_numeric for (self: Text): Bool */ +short int string__Text__is_numeric(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; short int var_has_point_or_comma /* var has_point_or_comma: Bool */; -val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; -char var_i /* var i: Char */; -char var5 /* : Char */; +long var2 /* : Int */; +long var_i /* var i: Int */; +long var3 /* : Int */; +long var5 /* : Int */; +long var_ /* var : Int */; short int var6 /* : Bool */; -short int var7 /* : Bool */; short int var8 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; short int var9 /* : Bool */; -char var10 /* : Char */; -short int var11 /* : Bool */; +val* var10 /* : SequenceRead[Char] */; +val* var11 /* : nullable Object */; +char var12 /* : Char */; +char var_c /* var c: Char */; short int var13 /* : Bool */; -short int var_ /* var : Bool */; -char var14 /* : Char */; +short int var14 /* : Bool */; short int var15 /* : Bool */; -short int var17 /* : Bool */; -short int var_18 /* var : Bool */; +short int var16 /* : Bool */; +char var17 /* : Char */; +short int var18 /* : Bool */; short int var19 /* : Bool */; -short int var20 /* : Bool */; short int var21 /* : Bool */; -short int var22 /* : Bool */; +short int var_22 /* var : Bool */; +char var23 /* : Char */; +short int var24 /* : Bool */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +short int var_28 /* var : Bool */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +long var32 /* : Int */; +long var33 /* : Int */; +short int var34 /* : Bool */; var1 = 0; var_has_point_or_comma = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var2 = 0; +var_i = var2; +{ +{ /* Inline string#FlatText#length (self) on */ +var5 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var3 = var5; +RET_LABEL4:(void)0; +} +} +var_ = var3; for(;;) { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; -if(!var3) break; -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; -var5 = ((struct instance_kernel__Char*)var4)->value; /* autounbox from nullable Object to Char */; -var_i = var5; -var6 = string__Char__is_numeric(var_i); -var7 = !var6; -if (var7){ -var10 = '.'; -{ /* Inline kernel#Char#== (var_i,var10) */ -var13 = var_i == var10; -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var8 = 1; /* easy isa OTHER*/ +if (unlikely(!var8)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -var_ = var11; -if (var11){ -var9 = var_; -} else { -var14 = ','; -{ /* Inline kernel#Char#== (var_i,var14) */ -var17 = var_i == var14; -var15 = var17; -goto RET_LABEL16; -RET_LABEL16:(void)0; +var9 = var_i < var_; +var6 = var9; +goto RET_LABEL7; +RET_LABEL7:(void)0; } -var9 = var15; } -var_18 = var9; -if (var9){ -var19 = !var_has_point_or_comma; -var8 = var19; -} else { -var8 = var_18; +if (var6){ +{ +var10 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; +} +{ +var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on */; +} +var12 = ((struct instance_kernel__Char*)var11)->value; /* autounbox from nullable Object to Char */; +var_c = var12; +{ +var13 = string__Char__is_numeric(var_c); +} +var14 = !var13; +if (var14){ +var17 = '.'; +{ +{ /* Inline kernel#Char#== (var_c,var17) on */ +var21 = var_c == var17; +var19 = var21; +goto RET_LABEL20; +RET_LABEL20:(void)0; } -if (var8){ -var20 = 1; -var_has_point_or_comma = var20; -} else { -var21 = 0; -var = var21; -goto RET_LABEL; +var18 = var19; } +var_22 = var18; +if (var18){ +var16 = var_22; } else { +var23 = ','; +{ +{ /* Inline kernel#Char#== (var_c,var23) on */ +var27 = var_c == var23; +var25 = var27; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -CONTINUE_label: (void)0; -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; -} -BREAK_label: (void)0; -var22 = 1; -var = var22; -goto RET_LABEL; -RET_LABEL:; -return var; +var24 = var25; } -/* method string#AbstractString#is_numeric for (self: Object): Bool */ -short int VIRTUAL_string__AbstractString__is_numeric(val* self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = string__AbstractString__is_numeric(self); -var = var1; -RET_LABEL:; -return var; +var16 = var24; } -/* method string#AbstractString#to_upper for (self: AbstractString): String */ -val* string__AbstractString__to_upper(val* self) { -val* var /* : String */; -val* var1 /* : Buffer */; -long var2 /* : Int */; -val* var_s /* var s: Buffer */; -val* var3 /* : Iterator[nullable Object] */; -short int var4 /* : Bool */; -val* var5 /* : nullable Object */; -char var_i /* var i: Char */; -char var6 /* : Char */; -char var7 /* : Char */; -val* var8 /* : nullable Object */; -val* var9 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var2) /* with_capacity on */; -var_s = var1; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; -for(;;) { -var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on */; -if(!var4) break; -var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on */; -var6 = ((struct instance_kernel__Char*)var5)->value; /* autounbox from nullable Object to Char */; -var_i = var6; -var7 = kernel__Char__to_upper(var_i); -var8 = BOX_kernel__Char(var7); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var8) /* add on */; -CONTINUE_label: (void)0; -((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on */; +var_28 = var16; +if (var16){ +var29 = !var_has_point_or_comma; +var15 = var29; +} else { +var15 = var_28; } -BREAK_label: (void)0; -var9 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var9; +if (var15){ +var30 = 1; +var_has_point_or_comma = var30; +} else { +var31 = 0; +var = var31; goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#AbstractString#to_upper for (self: Object): String */ -val* VIRTUAL_string__AbstractString__to_upper(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__AbstractString__to_upper(self); -var = var1; -RET_LABEL:; -return var; +} else { +} +var32 = 1; +{ +var33 = kernel__Int__successor(var_i, var32); +} +var_i = var33; +} else { +goto BREAK_label; } -/* method string#AbstractString#to_lower for (self: AbstractString): String */ -val* string__AbstractString__to_lower(val* self) { -val* var /* : String */; -val* var1 /* : Buffer */; -long var2 /* : Int */; -val* var_s /* var s: Buffer */; -val* var3 /* : Iterator[nullable Object] */; -short int var4 /* : Bool */; -val* var5 /* : nullable Object */; -char var_i /* var i: Char */; -char var6 /* : Char */; -char var7 /* : Char */; -val* var8 /* : nullable Object */; -val* var9 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var2) /* with_capacity on */; -var_s = var1; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; -for(;;) { -var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on */; -if(!var4) break; -var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on */; -var6 = ((struct instance_kernel__Char*)var5)->value; /* autounbox from nullable Object to Char */; -var_i = var6; -var7 = kernel__Char__to_lower(var_i); -var8 = BOX_kernel__Char(var7); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var8) /* add on */; -CONTINUE_label: (void)0; -((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on */; } BREAK_label: (void)0; -var9 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var9; +var34 = 1; +var = var34; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#to_lower for (self: Object): String */ -val* VIRTUAL_string__AbstractString__to_lower(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__AbstractString__to_lower(self); +/* method string#Text#is_numeric for (self: Object): Bool */ +short int VIRTUAL_string__Text__is_numeric(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__Text__is_numeric(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#trim for (self: AbstractString): String */ -val* string__AbstractString__trim(val* self) { +/* method string#Text#to_cmangle for (self: Text): String */ +val* string__Text__to_cmangle(val* self) { val* var /* : String */; -long var1 /* : Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; -val* var6 /* : String */; -long var7 /* : Int */; -long var_start_pos /* var start_pos: Int */; -val* var8 /* : nullable Object */; -long var9 /* : Int */; -char var11 /* : Char */; -long var12 /* : Int */; -long var13 /* : Int */; -short int var14 /* : Bool */; -short int var16 /* : Bool */; +val* var1 /* : FlatBuffer */; +val* var_res /* var res: FlatBuffer */; +short int var2 /* : Bool */; +short int var_underscore /* var underscore: Bool */; +long var3 /* : Int */; +long var_i /* var i: Int */; +long var4 /* : Int */; +long var6 /* : Int */; +long var_ /* var : Int */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; int cltype; int idtype; const char* var_class_name; +short int var10 /* : Bool */; +val* var11 /* : SequenceRead[Char] */; +val* var12 /* : nullable Object */; +char var13 /* : Char */; +char var_c /* var c: Char */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +char var16 /* : Char */; short int var17 /* : Bool */; -long var18 /* : Int */; -long var19 /* : Int */; -long var21 /* : Int */; -long var22 /* : Int */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +const char* var_class_name22; short int var23 /* : Bool */; -short int var25 /* : Bool */; -static val* varonce; -val* var26 /* : String */; -char* var27 /* : NativeString */; -long var28 /* : Int */; -val* var29 /* : String */; -long var30 /* : Int */; -long var31 /* : Int */; -long var32 /* : Int */; -long var34 /* : Int */; -long var_end_pos /* var end_pos: Int */; -val* var35 /* : nullable Object */; -long var36 /* : Int */; -char var38 /* : Char */; -long var39 /* : Int */; -long var40 /* : Int */; -short int var41 /* : Bool */; -short int var43 /* : Bool */; -int cltype44; -int idtype45; -const char* var_class_name46; +short int var_24 /* var : Bool */; +char var25 /* : Char */; +short int var26 /* : Bool */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +const char* var_class_name31; +short int var32 /* : Bool */; +short int var_33 /* var : Bool */; +short int var34 /* : Bool */; +char var35 /* : Char */; +short int var36 /* : Bool */; +short int var38 /* : Bool */; +int cltype39; +int idtype40; +const char* var_class_name41; +short int var42 /* : Bool */; +short int var_43 /* var : Bool */; +char var44 /* : Char */; +short int var45 /* : Bool */; short int var47 /* : Bool */; -long var48 /* : Int */; -long var49 /* : Int */; -long var51 /* : Int */; +int cltype48; +int idtype49; +const char* var_class_name50; +short int var51 /* : Bool */; short int var52 /* : Bool */; -short int var54 /* : Bool */; -val* var55 /* : nullable Object */; -val* var56 /* : String */; -char var57 /* : Char */; -long var59 /* : Int */; -long var61 /* : Int */; -long var62 /* : Int */; -long var63 /* : Int */; -long var65 /* : Int */; -val* var66 /* : String */; -var1 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +char var53 /* : Char */; +long var54 /* : Int */; +long var56 /* : Int */; +val* var57 /* : String */; +char var58 /* : Char */; +short int var59 /* : Bool */; +char var60 /* : Char */; +short int var61 /* : Bool */; +short int var63 /* : Bool */; +int cltype64; +int idtype65; +const char* var_class_name66; +short int var67 /* : Bool */; +short int var_68 /* var : Bool */; +char var69 /* : Char */; +short int var70 /* : Bool */; +short int var72 /* : Bool */; +int cltype73; +int idtype74; +const char* var_class_name75; +short int var76 /* : Bool */; +short int var77 /* : Bool */; +char var78 /* : Char */; +short int var79 /* : Bool */; +short int var80 /* : Bool */; +short int var82 /* : Bool */; +short int var83 /* : Bool */; +char var84 /* : Char */; +long var85 /* : Int */; +long var87 /* : Int */; +val* var88 /* : String */; +char var89 /* : Char */; +short int var90 /* : Bool */; +long var91 /* : Int */; +long var92 /* : Int */; +val* var94 /* : String */; +var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer); +{ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; +} +var_res = var1; var2 = 0; -{ /* Inline kernel#Int#== (var1,var2) */ -var5 = var1 == var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var_underscore = var2; +var3 = 0; +var_i = var3; +{ +{ /* Inline string#FlatText#length (self) on */ +var6 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var4 = var6; +RET_LABEL5:(void)0; } -if (var3){ -var6 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on */; -var = var6; -goto RET_LABEL; -} else { } -var7 = 0; -var_start_pos = var7; +var_ = var4; for(;;) { -var8 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_start_pos) /* [] on */; -{ /* Inline kernel#Char#ascii (var8) */ -var11 = ((struct instance_kernel__Char*)var8)->value; /* autounbox from nullable Object to Char */; -var12 = (unsigned char)var11; -var9 = var12; -goto RET_LABEL10; -RET_LABEL10:(void)0; -} -var13 = 32; -{ /* Inline kernel#Int#<= (var9,var13) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var16 = 1; /* easy isa OTHER*/ -if (!var16) { +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); show_backtrace(1); } -var17 = var9 <= var13; -var14 = var17; -goto RET_LABEL15; -RET_LABEL15:(void)0; +var10 = var_i < var_; +var7 = var10; +goto RET_LABEL8; +RET_LABEL8:(void)0; } -if (!var14) break; -var18 = 1; -{ /* Inline kernel#Int#+ (var_start_pos,var18) */ -var21 = var_start_pos + var18; -var19 = var21; -goto RET_LABEL20; -RET_LABEL20:(void)0; } -var_start_pos = var19; -var22 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline kernel#Int#== (var_start_pos,var22) */ -var25 = var_start_pos == var22; -var23 = var25; -goto RET_LABEL24; -RET_LABEL24:(void)0; +if (var7){ +{ +var11 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; +} +{ +var12 = ((val* (*)(val*, long))(var11->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var11, var_i) /* [] on */; +} +var13 = ((struct instance_kernel__Char*)var12)->value; /* autounbox from nullable Object to Char */; +var_c = var13; +var16 = 'a'; +{ +{ /* Inline kernel#Char#>= (var_c,var16) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var19 = 1; /* easy isa OTHER*/ +if (unlikely(!var19)) { +var_class_name22 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); } -if (var23){ -if (varonce) { -var26 = varonce; -} else { -var27 = ""; -var28 = 0; -var29 = string__NativeString__to_s_with_length(var27, var28); -var26 = var29; -varonce = var26; +var23 = var_c >= var16; +var17 = var23; +goto RET_LABEL18; +RET_LABEL18:(void)0; } -var = var26; -goto RET_LABEL; -} else { } -CONTINUE_label: (void)0; +var_24 = var17; +if (var17){ +var25 = 'z'; +{ +{ /* Inline kernel#Char#<= (var_c,var25) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var28 = 1; /* easy isa OTHER*/ +if (unlikely(!var28)) { +var_class_name31 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); +show_backtrace(1); +} +var32 = var_c <= var25; +var26 = var32; +goto RET_LABEL27; +RET_LABEL27:(void)0; } -BREAK_label: (void)0; -var30 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var31 = 1; -{ /* Inline kernel#Int#- (var30,var31) */ -var34 = var30 - var31; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; } -var_end_pos = var32; -for(;;) { -var35 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_end_pos) /* [] on */; -{ /* Inline kernel#Char#ascii (var35) */ -var38 = ((struct instance_kernel__Char*)var35)->value; /* autounbox from nullable Object to Char */; -var39 = (unsigned char)var38; -var36 = var39; +var15 = var26; +} else { +var15 = var_24; +} +var_33 = var15; +if (var15){ +var14 = var_33; +} else { +var35 = 'A'; +{ +{ /* Inline kernel#Char#>= (var_c,var35) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var38 = 1; /* easy isa OTHER*/ +if (unlikely(!var38)) { +var_class_name41 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); +} +var42 = var_c >= var35; +var36 = var42; goto RET_LABEL37; RET_LABEL37:(void)0; } -var40 = 32; -{ /* Inline kernel#Int#<= (var36,var40) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var43 = 1; /* easy isa OTHER*/ -if (!var43) { -var_class_name46 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +} +var_43 = var36; +if (var36){ +var44 = 'Z'; +{ +{ /* Inline kernel#Char#<= (var_c,var44) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var47 = 1; /* easy isa OTHER*/ +if (unlikely(!var47)) { +var_class_name50 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); show_backtrace(1); } -var47 = var36 <= var40; -var41 = var47; -goto RET_LABEL42; -RET_LABEL42:(void)0; +var51 = var_c <= var44; +var45 = var51; +goto RET_LABEL46; +RET_LABEL46:(void)0; } -if (!var41) break; -var48 = 1; -{ /* Inline kernel#Int#- (var_end_pos,var48) */ -var51 = var_end_pos - var48; -var49 = var51; -goto RET_LABEL50; -RET_LABEL50:(void)0; -} -var_end_pos = var49; -{ /* Inline kernel#Int#== (var_end_pos,var_start_pos) */ -var54 = var_end_pos == var_start_pos; -var52 = var54; -goto RET_LABEL53; -RET_LABEL53:(void)0; } -if (var52){ -var55 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_start_pos) /* [] on */; -var57 = ((struct instance_kernel__Char*)var55)->value; /* autounbox from nullable Object to Char */; -var56 = string__Char__to_s(var57); -var = var56; -goto RET_LABEL; +var34 = var45; } else { +var34 = var_43; } -CONTINUE_label58: (void)0; -} -BREAK_label58: (void)0; -{ /* Inline kernel#Int#- (var_end_pos,var_start_pos) */ -var61 = var_end_pos - var_start_pos; -var59 = var61; -goto RET_LABEL60; -RET_LABEL60:(void)0; +var14 = var34; } -var62 = 1; -{ /* Inline kernel#Int#+ (var59,var62) */ -var65 = var59 + var62; -var63 = var65; -goto RET_LABEL64; -RET_LABEL64:(void)0; +if (var14){ +{ +string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on */ } -var66 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__AbstractString__substring]))(self, var_start_pos, var63) /* substring on */; -var = var66; -goto RET_LABEL; -RET_LABEL:; -return var; +var52 = 0; +var_underscore = var52; +goto BREAK_label; +} else { } -/* method string#AbstractString#trim for (self: Object): String */ -val* VIRTUAL_string__AbstractString__trim(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__AbstractString__trim(self); -var = var1; -RET_LABEL:; -return var; +if (var_underscore){ +var53 = '_'; +{ +{ /* Inline kernel#Char#ascii (var53) on */ +var56 = (unsigned char)var53; +var54 = var56; +goto RET_LABEL55; +RET_LABEL55:(void)0; } -/* method string#AbstractString#output for (self: AbstractString) */ -void string__AbstractString__output(val* self) { -long var /* : Int */; -long var_i /* var i: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var5 /* : Bool */; -char* var6 /* : NativeString */; -char var7 /* : Char */; -char var9 /* : Char */; -long var11 /* : Int */; -long var12 /* : Int */; -long var14 /* : Int */; -var = 0; -var_i = var; -for(;;) { -var1 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#< (var_i,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); } -var5 = var_i < var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +{ +var57 = string__Int__to_s(var54); } -if (!var2) break; -var6 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var6,var_i) */ -var9 = var6[var_i]; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +{ +string__FlatBuffer__append(var_res, var57); /* Direct call string#FlatBuffer#append on */ } -{ /* Inline kernel#Char#output (var7) */ -printf("%c", var7); -RET_LABEL10:(void)0; +var58 = 'd'; +{ +string__FlatBuffer__add(var_res, var58); /* Direct call string#FlatBuffer#add on */ } -var11 = 1; -{ /* Inline kernel#Int#+ (var_i,var11) */ -var14 = var_i + var11; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +} else { } -var_i = var12; -CONTINUE_label: (void)0; +var60 = '0'; +{ +{ /* Inline kernel#Char#>= (var_c,var60) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var63 = 1; /* easy isa OTHER*/ +if (unlikely(!var63)) { +var_class_name66 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); } -BREAK_label: (void)0; -RET_LABEL:; +var67 = var_c >= var60; +var61 = var67; +goto RET_LABEL62; +RET_LABEL62:(void)0; } -/* method string#AbstractString#output for (self: Object) */ -void VIRTUAL_string__AbstractString__output(val* self) { -string__AbstractString__output(self); -RET_LABEL:; } -/* method string#AbstractString#to_cmangle for (self: AbstractString): String */ -val* string__AbstractString__to_cmangle(val* self) { -val* var /* : String */; -val* var1 /* : Buffer */; -val* var_res /* var res: Buffer */; -short int var2 /* : Bool */; -short int var_underscore /* var underscore: Bool */; -val* var3 /* : Iterator[nullable Object] */; -short int var4 /* : Bool */; -val* var5 /* : nullable Object */; -char var_c /* var c: Char */; -char var6 /* : Char */; -short int var7 /* : Bool */; -short int var8 /* : Bool */; -char var9 /* : Char */; -short int var10 /* : Bool */; -short int var12 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var13 /* : Bool */; -short int var_ /* var : Bool */; -char var14 /* : Char */; -short int var15 /* : Bool */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -const char* var_class_name20; -short int var21 /* : Bool */; -short int var_22 /* var : Bool */; -short int var23 /* : Bool */; -char var24 /* : Char */; -short int var25 /* : Bool */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -const char* var_class_name30; -short int var31 /* : Bool */; -short int var_32 /* var : Bool */; -char var33 /* : Char */; -short int var34 /* : Bool */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -const char* var_class_name39; -short int var40 /* : Bool */; -val* var41 /* : nullable Object */; -short int var42 /* : Bool */; -char var43 /* : Char */; -long var44 /* : Int */; -long var46 /* : Int */; -val* var47 /* : String */; -char var48 /* : Char */; -val* var49 /* : nullable Object */; -short int var50 /* : Bool */; -char var51 /* : Char */; -short int var52 /* : Bool */; -short int var54 /* : Bool */; -int cltype55; -int idtype56; -const char* var_class_name57; -short int var58 /* : Bool */; -short int var_59 /* var : Bool */; -char var60 /* : Char */; -short int var61 /* : Bool */; -short int var63 /* : Bool */; -int cltype64; -int idtype65; -const char* var_class_name66; -short int var67 /* : Bool */; -val* var68 /* : nullable Object */; -short int var69 /* : Bool */; -char var70 /* : Char */; -short int var71 /* : Bool */; -short int var73 /* : Bool */; -val* var74 /* : nullable Object */; -short int var75 /* : Bool */; -char var76 /* : Char */; -val* var77 /* : nullable Object */; -long var78 /* : Int */; -long var80 /* : Int */; -val* var81 /* : String */; -char var82 /* : Char */; -val* var83 /* : nullable Object */; -short int var84 /* : Bool */; -val* var85 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; -var_res = var1; -var2 = 0; -var_underscore = var2; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; -for(;;) { -var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on */; -if(!var4) break; -var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on */; -var6 = ((struct instance_kernel__Char*)var5)->value; /* autounbox from nullable Object to Char */; -var_c = var6; -var9 = 'a'; -{ /* Inline kernel#Char#>= (var_c,var9) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var12 = 1; /* easy isa OTHER*/ -if (!var12) { -var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 438); +var_68 = var61; +if (var61){ +var69 = '9'; +{ +{ /* Inline kernel#Char#<= (var_c,var69) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var72 = 1; /* easy isa OTHER*/ +if (unlikely(!var72)) { +var_class_name75 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); show_backtrace(1); } -var13 = var_c >= var9; -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; -} -var_ = var10; -if (var10){ -var14 = 'z'; -{ /* Inline kernel#Char#<= (var_c,var14) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var17 = 1; /* easy isa OTHER*/ -if (!var17) { -var_class_name20 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 436); -show_backtrace(1); -} -var21 = var_c <= var14; -var15 = var21; -goto RET_LABEL16; -RET_LABEL16:(void)0; +var76 = var_c <= var69; +var70 = var76; +goto RET_LABEL71; +RET_LABEL71:(void)0; } -var8 = var15; -} else { -var8 = var_; } -var_22 = var8; -if (var8){ -var7 = var_22; +var59 = var70; } else { -var24 = 'A'; -{ /* Inline kernel#Char#>= (var_c,var24) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var27 = 1; /* easy isa OTHER*/ -if (!var27) { -var_class_name30 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 438); -show_backtrace(1); -} -var31 = var_c >= var24; -var25 = var31; -goto RET_LABEL26; -RET_LABEL26:(void)0; +var59 = var_68; } -var_32 = var25; -if (var25){ -var33 = 'Z'; -{ /* Inline kernel#Char#<= (var_c,var33) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var36 = 1; /* easy isa OTHER*/ -if (!var36) { -var_class_name39 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 436); -show_backtrace(1); -} -var40 = var_c <= var33; -var34 = var40; -goto RET_LABEL35; -RET_LABEL35:(void)0; +if (var59){ +{ +string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on */ } -var23 = var34; +var77 = 0; +var_underscore = var77; } else { -var23 = var_32; +var78 = '_'; +{ +{ /* Inline kernel#Char#== (var_c,var78) on */ +var82 = var_c == var78; +var80 = var82; +goto RET_LABEL81; +RET_LABEL81:(void)0; } -var7 = var23; +var79 = var80; } -if (var7){ -var41 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var41) /* add on */; -var42 = 0; -var_underscore = var42; -goto CONTINUE_label; +if (var79){ +{ +string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on */ +} +var83 = 1; +var_underscore = var83; } else { +var84 = '_'; +{ +string__FlatBuffer__add(var_res, var84); /* Direct call string#FlatBuffer#add on */ } -if (var_underscore){ -var43 = '_'; -{ /* Inline kernel#Char#ascii (var43) */ -var46 = (unsigned char)var43; -var44 = var46; -goto RET_LABEL45; -RET_LABEL45:(void)0; +{ +{ /* Inline kernel#Char#ascii (var_c) on */ +var87 = (unsigned char)var_c; +var85 = var87; +goto RET_LABEL86; +RET_LABEL86:(void)0; } -var47 = string__Int__to_s(var44); -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__Sequence__append]))(var_res, var47) /* append on */; -var48 = 'd'; -var49 = BOX_kernel__Char(var48); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var49) /* add on */; -} else { } -var51 = '0'; -{ /* Inline kernel#Char#>= (var_c,var51) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var54 = 1; /* easy isa OTHER*/ -if (!var54) { -var_class_name57 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 438); -show_backtrace(1); +{ +var88 = string__Int__to_s(var85); } -var58 = var_c >= var51; -var52 = var58; -goto RET_LABEL53; -RET_LABEL53:(void)0; +{ +string__FlatBuffer__append(var_res, var88); /* Direct call string#FlatBuffer#append on */ } -var_59 = var52; -if (var52){ -var60 = '9'; -{ /* Inline kernel#Char#<= (var_c,var60) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var63 = 1; /* easy isa OTHER*/ -if (!var63) { -var_class_name66 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 436); -show_backtrace(1); +var89 = 'd'; +{ +string__FlatBuffer__add(var_res, var89); /* Direct call string#FlatBuffer#add on */ } -var67 = var_c <= var60; -var61 = var67; -goto RET_LABEL62; -RET_LABEL62:(void)0; +var90 = 0; +var_underscore = var90; } -var50 = var61; -} else { -var50 = var_59; } -if (var50){ -var68 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var68) /* add on */; -var69 = 0; -var_underscore = var69; -} else { -var70 = '_'; -{ /* Inline kernel#Char#== (var_c,var70) */ -var73 = var_c == var70; -var71 = var73; -goto RET_LABEL72; -RET_LABEL72:(void)0; +BREAK_label: (void)0; +var91 = 1; +{ +var92 = kernel__Int__successor(var_i, var91); } -if (var71){ -var74 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var74) /* add on */; -var75 = 1; -var_underscore = var75; +var_i = var92; } else { -var76 = '_'; -var77 = BOX_kernel__Char(var76); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var77) /* add on */; -{ /* Inline kernel#Char#ascii (var_c) */ -var80 = (unsigned char)var_c; -var78 = var80; -goto RET_LABEL79; -RET_LABEL79:(void)0; -} -var81 = string__Int__to_s(var78); -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__Sequence__append]))(var_res, var81) /* append on */; -var82 = 'd'; -var83 = BOX_kernel__Char(var82); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var83) /* add on */; -var84 = 0; -var_underscore = var84; +goto BREAK_label93; } } -CONTINUE_label: (void)0; -((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on */; +BREAK_label93: (void)0; +{ +var94 = string__FlatBuffer__to_s(var_res); } -BREAK_label: (void)0; -var85 = ((val* (*)(val*))(var_res->class->vft[COLOR_string__Object__to_s]))(var_res) /* to_s on */; -var = var85; +var = var94; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#to_cmangle for (self: Object): String */ -val* VIRTUAL_string__AbstractString__to_cmangle(val* self) { +/* method string#Text#to_cmangle for (self: Object): String */ +val* VIRTUAL_string__Text__to_cmangle(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = string__AbstractString__to_cmangle(self); +var1 = string__Text__to_cmangle(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#escape_to_c for (self: AbstractString): String */ -val* string__AbstractString__escape_to_c(val* self) { +/* method string#Text#escape_to_c for (self: Text): String */ +val* string__Text__escape_to_c(val* self) { val* var /* : String */; -val* var1 /* : Buffer */; -val* var_b /* var b: Buffer */; -val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; -char var_c /* var c: Char */; -char var5 /* : Char */; -char var6 /* : Char */; -short int var7 /* : Bool */; +val* var1 /* : FlatBuffer */; +val* var_b /* var b: FlatBuffer */; +long var2 /* : Int */; +long var_i /* var i: Int */; +long var3 /* : Int */; +long var5 /* : Int */; +long var_ /* var : Int */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; short int var9 /* : Bool */; -static val* varonce; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : String */; -char var14 /* : Char */; +val* var10 /* : SequenceRead[Char] */; +val* var11 /* : nullable Object */; +char var12 /* : Char */; +char var_c /* var c: Char */; +char var13 /* : Char */; +short int var14 /* : Bool */; short int var15 /* : Bool */; short int var17 /* : Bool */; -static val* varonce18; -val* var19 /* : String */; -char* var20 /* : NativeString */; -long var21 /* : Int */; -val* var22 /* : String */; -char var23 /* : Char */; +static val* varonce; +val* var18 /* : String */; +char* var19 /* : NativeString */; +long var20 /* : Int */; +val* var21 /* : FlatString */; +char var22 /* : Char */; +short int var23 /* : Bool */; short int var24 /* : Bool */; short int var26 /* : Bool */; static val* varonce27; val* var28 /* : String */; char* var29 /* : NativeString */; long var30 /* : Int */; -val* var31 /* : String */; +val* var31 /* : FlatString */; char var32 /* : Char */; short int var33 /* : Bool */; -short int var35 /* : Bool */; -static val* varonce36; -val* var37 /* : String */; -char* var38 /* : NativeString */; -long var39 /* : Int */; -val* var40 /* : String */; -char var41 /* : Char */; -short int var42 /* : Bool */; +short int var34 /* : Bool */; +short int var36 /* : Bool */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +long var40 /* : Int */; +val* var41 /* : FlatString */; +char var42 /* : Char */; +short int var43 /* : Bool */; short int var44 /* : Bool */; -static val* varonce45; -val* var46 /* : String */; -char* var47 /* : NativeString */; -long var48 /* : Int */; -val* var49 /* : String */; +short int var46 /* : Bool */; +static val* varonce47; +val* var48 /* : String */; +char* var49 /* : NativeString */; long var50 /* : Int */; -long var52 /* : Int */; -long var53 /* : Int */; +val* var51 /* : FlatString */; +char var52 /* : Char */; +short int var53 /* : Bool */; short int var54 /* : Bool */; short int var56 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var57 /* : Bool */; -static val* varonce58; -val* var59 /* : String */; -char* var60 /* : NativeString */; -long var61 /* : Int */; -val* var62 /* : String */; -long var63 /* : Int */; +static val* varonce57; +val* var58 /* : String */; +char* var59 /* : NativeString */; +long var60 /* : Int */; +val* var61 /* : FlatString */; +long var62 /* : Int */; +long var64 /* : Int */; long var65 /* : Int */; -long var66 /* : Int */; -short int var67 /* : Bool */; -val* var68 /* : String */; -val* var69 /* : Array[Object] */; -long var70 /* : Int */; -val* var71 /* : NativeArray[Object] */; -val* var72 /* : String */; -val* var73 /* : nullable Object */; +short int var66 /* : Bool */; +short int var68 /* : Bool */; +int cltype69; +int idtype70; +const char* var_class_name71; +short int var72 /* : Bool */; +static val* varonce73; val* var74 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; +char* var75 /* : NativeString */; +long var76 /* : Int */; +val* var77 /* : FlatString */; +long var78 /* : Int */; +long var80 /* : Int */; +long var81 /* : Int */; +short int var82 /* : Bool */; +val* var83 /* : String */; +val* var84 /* : Array[Object] */; +long var85 /* : Int */; +val* var86 /* : NativeArray[Object] */; +val* var87 /* : String */; +long var88 /* : Int */; +long var89 /* : Int */; +val* var90 /* : String */; +var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer); +{ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; +} var_b = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var2 = 0; +var_i = var2; +{ +{ /* Inline string#FlatText#length (self) on */ +var5 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var3 = var5; +RET_LABEL4:(void)0; +} +} +var_ = var3; for(;;) { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; -if(!var3) break; -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; -var5 = ((struct instance_kernel__Char*)var4)->value; /* autounbox from nullable Object to Char */; -var_c = var5; -var6 = '\n'; -{ /* Inline kernel#Char#== (var_c,var6) */ -var9 = var_c == var6; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var8 = 1; /* easy isa OTHER*/ +if (unlikely(!var8)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -if (var7){ -if (varonce) { -var10 = varonce; -} else { -var11 = "\\n"; -var12 = 2; -var13 = string__NativeString__to_s_with_length(var11, var12); -var10 = var13; -varonce = var10; +var9 = var_i < var_; +var6 = var9; +goto RET_LABEL7; +RET_LABEL7:(void)0; } -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var10) /* append on */; -} else { -var14 = '\0'; -{ /* Inline kernel#Char#== (var_c,var14) */ -var17 = var_c == var14; +} +if (var6){ +{ +var10 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; +} +{ +var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on */; +} +var12 = ((struct instance_kernel__Char*)var11)->value; /* autounbox from nullable Object to Char */; +var_c = var12; +var13 = '\n'; +{ +{ /* Inline kernel#Char#== (var_c,var13) on */ +var17 = var_c == var13; var15 = var17; goto RET_LABEL16; RET_LABEL16:(void)0; } -if (var15){ -if (varonce18) { -var19 = varonce18; +var14 = var15; +} +if (var14){ +if (varonce) { +var18 = varonce; } else { -var20 = "\\0"; -var21 = 2; -var22 = string__NativeString__to_s_with_length(var20, var21); -var19 = var22; -varonce18 = var19; +var19 = "\\n"; +var20 = 2; +var21 = string__NativeString__to_s_with_length(var19, var20); +var18 = var21; +varonce = var18; +} +{ +string__FlatBuffer__append(var_b, var18); /* Direct call string#FlatBuffer#append on */ } -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var19) /* append on */; } else { -var23 = '\"'; -{ /* Inline kernel#Char#== (var_c,var23) */ -var26 = var_c == var23; +var22 = '\0'; +{ +{ /* Inline kernel#Char#== (var_c,var22) on */ +var26 = var_c == var22; var24 = var26; goto RET_LABEL25; RET_LABEL25:(void)0; } -if (var24){ +var23 = var24; +} +if (var23){ if (varonce27) { var28 = varonce27; } else { -var29 = "\\\""; +var29 = "\\0"; var30 = 2; var31 = string__NativeString__to_s_with_length(var29, var30); var28 = var31; varonce27 = var28; } -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var28) /* append on */; +{ +string__FlatBuffer__append(var_b, var28); /* Direct call string#FlatBuffer#append on */ +} } else { -var32 = '\''; -{ /* Inline kernel#Char#== (var_c,var32) */ -var35 = var_c == var32; -var33 = var35; -goto RET_LABEL34; -RET_LABEL34:(void)0; +var32 = '\"'; +{ +{ /* Inline kernel#Char#== (var_c,var32) on */ +var36 = var_c == var32; +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +var33 = var34; } if (var33){ -if (varonce36) { -var37 = varonce36; +if (varonce37) { +var38 = varonce37; } else { -var38 = "\\\'"; -var39 = 2; -var40 = string__NativeString__to_s_with_length(var38, var39); -var37 = var40; -varonce36 = var37; +var39 = "\\\""; +var40 = 2; +var41 = string__NativeString__to_s_with_length(var39, var40); +var38 = var41; +varonce37 = var38; } -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var37) /* append on */; -} else { -var41 = '\\'; -{ /* Inline kernel#Char#== (var_c,var41) */ -var44 = var_c == var41; -var42 = var44; -goto RET_LABEL43; -RET_LABEL43:(void)0; +{ +string__FlatBuffer__append(var_b, var38); /* Direct call string#FlatBuffer#append on */ } -if (var42){ -if (varonce45) { -var46 = varonce45; } else { -var47 = "\\\\"; -var48 = 2; -var49 = string__NativeString__to_s_with_length(var47, var48); -var46 = var49; -varonce45 = var46; +var42 = '\''; +{ +{ /* Inline kernel#Char#== (var_c,var42) on */ +var46 = var_c == var42; +var44 = var46; +goto RET_LABEL45; +RET_LABEL45:(void)0; } -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var46) /* append on */; +var43 = var44; +} +if (var43){ +if (varonce47) { +var48 = varonce47; } else { -{ /* Inline kernel#Char#ascii (var_c) */ -var52 = (unsigned char)var_c; -var50 = var52; -goto RET_LABEL51; -RET_LABEL51:(void)0; +var49 = "\\\'"; +var50 = 2; +var51 = string__NativeString__to_s_with_length(var49, var50); +var48 = var51; +varonce47 = var48; } -var53 = 32; -{ /* Inline kernel#Int#< (var50,var53) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var56 = 1; /* easy isa OTHER*/ -if (!var56) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); +{ +string__FlatBuffer__append(var_b, var48); /* Direct call string#FlatBuffer#append on */ } -var57 = var50 < var53; -var54 = var57; +} else { +var52 = '\\'; +{ +{ /* Inline kernel#Char#== (var_c,var52) on */ +var56 = var_c == var52; +var54 = var56; goto RET_LABEL55; RET_LABEL55:(void)0; } -if (var54){ -if (varonce58) { -var59 = varonce58; -} else { -var60 = "\\"; -var61 = 1; -var62 = string__NativeString__to_s_with_length(var60, var61); -var59 = var62; -varonce58 = var59; +var53 = var54; } -{ /* Inline kernel#Char#ascii (var_c) */ -var65 = (unsigned char)var_c; -var63 = var65; -goto RET_LABEL64; -RET_LABEL64:(void)0; +if (var53){ +if (varonce57) { +var58 = varonce57; +} else { +var59 = "\\\\"; +var60 = 2; +var61 = string__NativeString__to_s_with_length(var59, var60); +var58 = var61; +varonce57 = var58; } -var66 = 8; -var67 = 0; -var68 = string__Int__to_base(var63, var66, var67); -var69 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var69 = array_instance Array[Object] */ -var70 = 2; -var71 = NEW_array__NativeArray(var70, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var71)->values[0] = (val*) var59; -((struct instance_array__NativeArray*)var71)->values[1] = (val*) var68; -((void (*)(val*, val*, long))(var69->class->vft[COLOR_array__Array__with_native]))(var69, var71, var70) /* with_native on */; +{ +string__FlatBuffer__append(var_b, var58); /* Direct call string#FlatBuffer#append on */ } -var72 = ((val* (*)(val*))(var69->class->vft[COLOR_string__Object__to_s]))(var69) /* to_s on */; -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var72) /* append on */; } else { -var73 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_b, var73) /* add on */; +{ +{ /* Inline kernel#Char#ascii (var_c) on */ +var64 = (unsigned char)var_c; +var62 = var64; +goto RET_LABEL63; +RET_LABEL63:(void)0; } } +var65 = 32; +{ +{ /* Inline kernel#Int#< (var62,var65) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var68 = 1; /* easy isa OTHER*/ +if (unlikely(!var68)) { +var_class_name71 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } +var72 = var62 < var65; +var66 = var72; +goto RET_LABEL67; +RET_LABEL67:(void)0; } } +if (var66){ +if (varonce73) { +var74 = varonce73; +} else { +var75 = "\\"; +var76 = 1; +var77 = string__NativeString__to_s_with_length(var75, var76); +var74 = var77; +varonce73 = var74; } -CONTINUE_label: (void)0; -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +{ +{ /* Inline kernel#Char#ascii (var_c) on */ +var80 = (unsigned char)var_c; +var78 = var80; +goto RET_LABEL79; +RET_LABEL79:(void)0; } -BREAK_label: (void)0; -var74 = ((val* (*)(val*))(var_b->class->vft[COLOR_string__Object__to_s]))(var_b) /* to_s on */; -var = var74; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#AbstractString#escape_to_c for (self: Object): String */ -val* VIRTUAL_string__AbstractString__escape_to_c(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__AbstractString__escape_to_c(self); -var = var1; -RET_LABEL:; -return var; +var81 = 8; +var82 = 0; +{ +var83 = string__Int__to_base(var78, var81, var82); +} +var84 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var84 = array_instance Array[Object] */ +var85 = 2; +var86 = NEW_array__NativeArray(var85, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var86)->values[0] = (val*) var74; +((struct instance_array__NativeArray*)var86)->values[1] = (val*) var83; +{ +((void (*)(val*, val*, long))(var84->class->vft[COLOR_array__Array__with_native]))(var84, var86, var85) /* with_native on */; +} +} +{ +var87 = ((val* (*)(val*))(var84->class->vft[COLOR_string__Object__to_s]))(var84) /* to_s on */; +} +{ +string__FlatBuffer__append(var_b, var87); /* Direct call string#FlatBuffer#append on */ } -/* method string#AbstractString#escape_more_to_c for (self: AbstractString, String): String */ -val* string__AbstractString__escape_more_to_c(val* self, val* p0) { -val* var /* : String */; -val* var_chars /* var chars: String */; -val* var1 /* : Buffer */; -val* var_b /* var b: Buffer */; -val* var2 /* : String */; -val* var3 /* : Iterator[nullable Object] */; -short int var4 /* : Bool */; -val* var5 /* : nullable Object */; -char var_c /* var c: Char */; -char var6 /* : Char */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; -char var9 /* : Char */; -val* var10 /* : nullable Object */; -val* var11 /* : nullable Object */; -val* var12 /* : String */; -var_chars = p0; -var1 = NEW_string__Buffer(&type_string__Buffer); -((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; -var_b = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_string__AbstractString__escape_to_c]))(self) /* escape_to_c on */; -var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on */; -for(;;) { -var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on */; -if(!var4) break; -var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on */; -var6 = ((struct instance_kernel__Char*)var5)->value; /* autounbox from nullable Object to Char */; -var_c = var6; -var8 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -var7 = ((short int (*)(val*, val*))(var_chars->class->vft[COLOR_abstract_collection__Collection__has]))(var_chars, var8) /* has on */; -if (var7){ -var9 = '\\'; -var10 = BOX_kernel__Char(var9); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_b, var10) /* add on */; } else { +{ +string__FlatBuffer__add(var_b, var_c); /* Direct call string#FlatBuffer#add on */ } -var11 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_b, var11) /* add on */; -CONTINUE_label: (void)0; -((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on */; } -BREAK_label: (void)0; -var12 = ((val* (*)(val*))(var_b->class->vft[COLOR_string__Object__to_s]))(var_b) /* to_s on */; -var = var12; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#AbstractString#escape_more_to_c for (self: Object, String): String */ -val* VIRTUAL_string__AbstractString__escape_more_to_c(val* self, val* p0) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__AbstractString__escape_more_to_c(self, p0); -var = var1; -RET_LABEL:; -return var; } -/* method string#AbstractString#escape_to_nit for (self: AbstractString): String */ -val* string__AbstractString__escape_to_nit(val* self) { -val* var /* : String */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : String */; -val* var5 /* : String */; -if (varonce) { -var1 = varonce; +} +} +} +var88 = 1; +{ +var89 = kernel__Int__successor(var_i, var88); +} +var_i = var89; } else { -var2 = "{}"; -var3 = 2; -var4 = string__NativeString__to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; +goto BREAK_label; } -var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_string__AbstractString__escape_more_to_c]))(self, var1) /* escape_more_to_c on */; -var = var5; +} +BREAK_label: (void)0; +{ +var90 = string__FlatBuffer__to_s(var_b); +} +var = var90; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#escape_to_nit for (self: Object): String */ -val* VIRTUAL_string__AbstractString__escape_to_nit(val* self) { +/* method string#Text#escape_to_c for (self: Object): String */ +val* VIRTUAL_string__Text__escape_to_c(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = string__AbstractString__escape_to_nit(self); +var1 = string__Text__escape_to_c(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#unescape_nit for (self: AbstractString): String */ -val* string__AbstractString__unescape_nit(val* self) { +/* method string#Text#unescape_nit for (self: Text): String */ +val* string__Text__unescape_nit(val* self) { val* var /* : String */; -val* var1 /* : Buffer */; +val* var1 /* : FlatBuffer */; long var2 /* : Int */; -val* var_res /* var res: Buffer */; -short int var3 /* : Bool */; -short int var_was_slash /* var was_slash: Bool */; -val* var4 /* : Iterator[nullable Object] */; +long var4 /* : Int */; +val* var_res /* var res: FlatBuffer */; short int var5 /* : Bool */; -val* var6 /* : nullable Object */; -char var_c /* var c: Char */; -char var7 /* : Char */; -short int var8 /* : Bool */; -char var9 /* : Char */; +short int var_was_slash /* var was_slash: Bool */; +long var6 /* : Int */; +long var_i /* var i: Int */; +long var7 /* : Int */; +long var9 /* : Int */; +long var_ /* var : Int */; short int var10 /* : Bool */; short int var12 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; short int var13 /* : Bool */; -val* var14 /* : nullable Object */; -short int var15 /* : Bool */; +val* var14 /* : SequenceRead[Char] */; +val* var15 /* : nullable Object */; char var16 /* : Char */; +char var_c /* var c: Char */; short int var17 /* : Bool */; +char var18 /* : Char */; short int var19 /* : Bool */; -char var20 /* : Char */; -val* var21 /* : nullable Object */; -char var22 /* : Char */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; short int var23 /* : Bool */; -short int var25 /* : Bool */; -char var26 /* : Char */; -val* var27 /* : nullable Object */; -char var28 /* : Char */; +short int var24 /* : Bool */; +char var25 /* : Char */; +short int var26 /* : Bool */; +short int var27 /* : Bool */; short int var29 /* : Bool */; -short int var31 /* : Bool */; -char var32 /* : Char */; -val* var33 /* : nullable Object */; -char var34 /* : Char */; +char var30 /* : Char */; +char var31 /* : Char */; +short int var32 /* : Bool */; +short int var33 /* : Bool */; short int var35 /* : Bool */; -short int var37 /* : Bool */; -char var38 /* : Char */; -val* var39 /* : nullable Object */; -val* var40 /* : nullable Object */; -val* var41 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var2) /* with_capacity on */; +char var36 /* : Char */; +char var37 /* : Char */; +short int var38 /* : Bool */; +short int var39 /* : Bool */; +short int var41 /* : Bool */; +char var42 /* : Char */; +char var43 /* : Char */; +short int var44 /* : Bool */; +short int var45 /* : Bool */; +short int var47 /* : Bool */; +char var48 /* : Char */; +long var49 /* : Int */; +long var50 /* : Int */; +val* var52 /* : String */; +var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer); +{ +{ /* Inline string#FlatText#length (self) on */ +var4 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var2 = var4; +RET_LABEL3:(void)0; +} +} +{ +string__FlatBuffer__with_capacity(var1, var2); /* Direct call string#FlatBuffer#with_capacity on */ +} var_res = var1; -var3 = 0; -var_was_slash = var3; -var4 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var5 = 0; +var_was_slash = var5; +var6 = 0; +var_i = var6; +{ +{ /* Inline string#FlatText#length (self) on */ +var9 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +var_ = var7; for(;;) { -var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on */; -if(!var5) break; -var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on */; -var7 = ((struct instance_kernel__Char*)var6)->value; /* autounbox from nullable Object to Char */; -var_c = var7; -var8 = !var_was_slash; -if (var8){ -var9 = '\\'; -{ /* Inline kernel#Char#== (var_c,var9) */ -var12 = var_c == var9; -var10 = var12; +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var12 = 1; /* easy isa OTHER*/ +if (unlikely(!var12)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var13 = var_i < var_; +var10 = var13; goto RET_LABEL11; RET_LABEL11:(void)0; } -if (var10){ -var13 = 1; -var_was_slash = var13; -} else { -var14 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var14) /* add on */; } -goto CONTINUE_label; -} else { +if (var10){ +{ +var14 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; } -var15 = 0; -var_was_slash = var15; -var16 = 'n'; -{ /* Inline kernel#Char#== (var_c,var16) */ -var19 = var_c == var16; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; +{ +var15 = ((val* (*)(val*, long))(var14->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var14, var_i) /* [] on */; } +var16 = ((struct instance_kernel__Char*)var15)->value; /* autounbox from nullable Object to Char */; +var_c = var16; +var17 = !var_was_slash; if (var17){ -var20 = '\n'; -var21 = BOX_kernel__Char(var20); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var21) /* add on */; -} else { -var22 = 'r'; -{ /* Inline kernel#Char#== (var_c,var22) */ -var25 = var_c == var22; -var23 = var25; -goto RET_LABEL24; -RET_LABEL24:(void)0; -} -if (var23){ -var26 = '\15'; -var27 = BOX_kernel__Char(var26); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var27) /* add on */; -} else { -var28 = 't'; -{ /* Inline kernel#Char#== (var_c,var28) */ -var31 = var_c == var28; -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; +var18 = '\\'; +{ +{ /* Inline kernel#Char#== (var_c,var18) on */ +var22 = var_c == var18; +var20 = var22; +goto RET_LABEL21; +RET_LABEL21:(void)0; } -if (var29){ -var32 = '\11'; -var33 = BOX_kernel__Char(var32); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var33) /* add on */; -} else { -var34 = '0'; -{ /* Inline kernel#Char#== (var_c,var34) */ -var37 = var_c == var34; -var35 = var37; -goto RET_LABEL36; -RET_LABEL36:(void)0; +var19 = var20; } -if (var35){ -var38 = '\0'; -var39 = BOX_kernel__Char(var38); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var39) /* add on */; +if (var19){ +var23 = 1; +var_was_slash = var23; } else { -var40 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var40) /* add on */; -} +{ +string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on */ +} +} +goto BREAK_label; +} else { +} +var24 = 0; +var_was_slash = var24; +var25 = 'n'; +{ +{ /* Inline kernel#Char#== (var_c,var25) on */ +var29 = var_c == var25; +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +var26 = var27; +} +if (var26){ +var30 = '\n'; +{ +string__FlatBuffer__add(var_res, var30); /* Direct call string#FlatBuffer#add on */ +} +} else { +var31 = 'r'; +{ +{ /* Inline kernel#Char#== (var_c,var31) on */ +var35 = var_c == var31; +var33 = var35; +goto RET_LABEL34; +RET_LABEL34:(void)0; +} +var32 = var33; +} +if (var32){ +var36 = '\15'; +{ +string__FlatBuffer__add(var_res, var36); /* Direct call string#FlatBuffer#add on */ +} +} else { +var37 = 't'; +{ +{ /* Inline kernel#Char#== (var_c,var37) on */ +var41 = var_c == var37; +var39 = var41; +goto RET_LABEL40; +RET_LABEL40:(void)0; +} +var38 = var39; +} +if (var38){ +var42 = '\11'; +{ +string__FlatBuffer__add(var_res, var42); /* Direct call string#FlatBuffer#add on */ +} +} else { +var43 = '0'; +{ +{ /* Inline kernel#Char#== (var_c,var43) on */ +var47 = var_c == var43; +var45 = var47; +goto RET_LABEL46; +RET_LABEL46:(void)0; +} +var44 = var45; +} +if (var44){ +var48 = '\0'; +{ +string__FlatBuffer__add(var_res, var48); /* Direct call string#FlatBuffer#add on */ +} +} else { +{ +string__FlatBuffer__add(var_res, var_c); /* Direct call string#FlatBuffer#add on */ +} } } } -CONTINUE_label: (void)0; -((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on */; } BREAK_label: (void)0; -var41 = ((val* (*)(val*))(var_res->class->vft[COLOR_string__Object__to_s]))(var_res) /* to_s on */; -var = var41; +var49 = 1; +{ +var50 = kernel__Int__successor(var_i, var49); +} +var_i = var50; +} else { +goto BREAK_label51; +} +} +BREAK_label51: (void)0; +{ +var52 = string__FlatBuffer__to_s(var_res); +} +var = var52; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#AbstractString#unescape_nit for (self: Object): String */ -val* VIRTUAL_string__AbstractString__unescape_nit(val* self) { +/* method string#Text#unescape_nit for (self: Object): String */ +val* VIRTUAL_string__Text__unescape_nit(val* self) { val* var /* : String */; val* var1 /* : String */; -var1 = string__AbstractString__unescape_nit(self); +var1 = string__Text__unescape_nit(self); var = var1; RET_LABEL:; return var; } -/* method string#AbstractString#init for (self: AbstractString) */ -void string__AbstractString__init(val* self) { -((void (*)(val*))(self->class->vft[COLOR_array__AbstractArrayRead__init]))(self) /* init on */; -RET_LABEL:; +/* method string#Text#== for (self: Text, nullable Object): Bool */ +short int string__Text___61d_61d(val* self, val* p0) { +short int var /* : Bool */; +val* var_o /* var o: nullable Object */; +val* var1 /* : null */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +int cltype; +int idtype; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +long var12 /* : Int */; +long var14 /* : Int */; +long var15 /* : Int */; +long var17 /* : Int */; +short int var18 /* : Bool */; +short int var19 /* : Bool */; +short int var21 /* : Bool */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +val* var24 /* : SequenceRead[Char] */; +val* var25 /* : SequenceRead[Char] */; +short int var26 /* : Bool */; +short int var27 /* : Bool */; +var_o = p0; +var1 = NULL; +if (var_o == NULL) { +var2 = 1; /* is null */ +} else { +var2 = 0; /* arg is null but recv is not */ } -/* method string#AbstractString#init for (self: Object) */ -void VIRTUAL_string__AbstractString__init(val* self) { -string__AbstractString__init(self); -RET_LABEL:; +if (0) { +var3 = ((short int (*)(val*, val*))(var_o->class->vft[COLOR_kernel__Object___61d_61d]))(var_o, var1) /* == on */; +var2 = var3; } -/* method string#String#index_from for (self: String): Int */ -long string__String__index_from(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var = var1; -RET_LABEL:; -return var; +if (var2){ +var4 = 0; +var = var4; +goto RET_LABEL; +} else { } -/* method string#String#index_from for (self: Object): Int */ -long VIRTUAL_string__String__index_from(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = string__String__index_from(self); -var = var1; -RET_LABEL:; -return var; +/* isa Text */ +cltype = type_string__Text.color; +idtype = type_string__Text.id; +if(cltype >= var_o->type->table_size) { +var5 = 0; +} else { +var5 = var_o->type->type_table[cltype] == idtype; } -/* method string#String#index_to for (self: String): Int */ -long string__String__index_to(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var = var1; +var6 = !var5; +if (var6){ +var7 = 0; +var = var7; +goto RET_LABEL; +} else { +} +{ +{ /* Inline kernel#Object#is_same_instance (self,var_o) on */ +var10 = self == var_o; +var8 = var10; +goto RET_LABEL9; +RET_LABEL9:(void)0; +} +} +if (var8){ +var11 = 1; +var = var11; +goto RET_LABEL; +} else { +} +{ +{ /* Inline string#FlatText#length (self) on */ +var14 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (var_o) on */ +var17 = var_o->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var15 = var17; +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline kernel#Int#!= (var12,var15) on */ +var21 = var12 == var15; +var22 = !var21; +var19 = var22; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +var18 = var19; +} +if (var18){ +var23 = 0; +var = var23; +goto RET_LABEL; +} else { +} +{ +var24 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; +} +{ +var25 = ((val* (*)(val*))(var_o->class->vft[COLOR_string__Text__chars]))(var_o) /* chars on */; +} +{ +var27 = ((short int (*)(val*, val*))(var24->class->vft[COLOR_kernel__Object___61d_61d]))(var24, var25) /* == on */; +var26 = var27; +} +var = var26; +goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#index_to for (self: Object): Int */ -long VIRTUAL_string__String__index_to(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = string__String__index_to(self); +/* method string#Text#== for (self: Object, nullable Object): Bool */ +short int VIRTUAL_string__Text___61d_61d(val* self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__Text___61d_61d(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#String#[] for (self: String, Int): Char */ -char string__String___91d_93d(val* self, long p0) { -char var /* : Char */; -long var_index /* var index: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; +/* method string#Text#< for (self: Text, Text): Bool */ +short int string__Text___60d(val* self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; int cltype; int idtype; +const struct type* type_struct; const char* var_class_name; -short int var5 /* : Bool */; -long var6 /* : Int */; -long var7 /* : Int */; -long var9 /* : Int */; -long var10 /* : Int */; +val* var_other /* var other: Text */; +val* var2 /* : SequenceRead[Char] */; +val* var3 /* : Iterator[nullable Object] */; +val* var_self_chars /* var self_chars: IndexedIterator[Char] */; +val* var4 /* : SequenceRead[Char] */; +val* var5 /* : Iterator[nullable Object] */; +val* var_other_chars /* var other_chars: IndexedIterator[Char] */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +short int var_ /* var : Bool */; +short int var8 /* : Bool */; +val* var9 /* : nullable Object */; +val* var10 /* : nullable Object */; short int var11 /* : Bool */; short int var13 /* : Bool */; int cltype14; int idtype15; const char* var_class_name16; -short int var17 /* : Bool */; -char* var18 /* : NativeString */; -long var19 /* : Int */; -long var20 /* : Int */; -long var22 /* : Int */; -char var23 /* : Char */; -char var25 /* : Char */; -var_index = p0; +char var17 /* : Char */; +char var18 /* : Char */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +val* var21 /* : nullable Object */; +val* var22 /* : nullable Object */; +short int var23 /* : Bool */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +const char* var_class_name28; +char var29 /* : Char */; +char var30 /* : Char */; +short int var31 /* : Bool */; +short int var32 /* : Bool */; +short int var33 /* : Bool */; +short int var34 /* : Bool */; +short int var35 /* : Bool */; +/* Covariant cast for argument 0 (other) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { var1 = 0; -{ /* Inline kernel#Int#>= (var_index,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); +} else { +var1 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var1)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 648); show_backtrace(1); } -var5 = var_index >= var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var_other = p0; +{ +var2 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; } -if (!var2) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 379); -show_backtrace(1); +{ +var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on */; } -var6 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -{ /* Inline kernel#Int#+ (var_index,var6) */ -var9 = var_index + var6; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var_self_chars = var3; +{ +var4 = ((val* (*)(val*))(var_other->class->vft[COLOR_string__Text__chars]))(var_other) /* chars on */; } -var10 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -{ /* Inline kernel#Int#<= (var7,var10) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var13 = 1; /* easy isa OTHER*/ -if (!var13) { -var_class_name16 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +{ +var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on */; +} +var_other_chars = var5; +for(;;) { +{ +var7 = ((short int (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_self_chars) /* is_ok on */; +} +var_ = var7; +if (var7){ +{ +var8 = ((short int (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_other_chars) /* is_ok on */; +} +var6 = var8; +} else { +var6 = var_; +} +if (var6){ +{ +var9 = ((val* (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_self_chars) /* item on */; +} +{ +var10 = ((val* (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_other_chars) /* item on */; +} +{ +{ /* Inline kernel#Char#< (var9,var10) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var13 = 1; /* easy isa OTHER*/ +if (unlikely(!var13)) { +var_class_name16 = var10 == NULL ? "null" : var10->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 546); show_backtrace(1); } -var17 = var7 <= var10; -var11 = var17; +var17 = ((struct instance_kernel__Char*)var9)->value; /* autounbox from nullable Object to Char */; +var18 = ((struct instance_kernel__Char*)var10)->value; /* autounbox from nullable Object to Char */; +var19 = var17 < var18; +var11 = var19; goto RET_LABEL12; RET_LABEL12:(void)0; } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 382); -show_backtrace(1); } -var18 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var19 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -{ /* Inline kernel#Int#+ (var_index,var19) */ -var22 = var_index + var19; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +if (var11){ +var20 = 1; +var = var20; +goto RET_LABEL; +} else { } -{ /* Inline string#NativeString#[] (var18,var20) */ -var25 = var18[var20]; -var23 = var25; +{ +var21 = ((val* (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_self_chars) /* item on */; +} +{ +var22 = ((val* (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__item]))(var_other_chars) /* item on */; +} +{ +{ /* Inline kernel#Char#> (var21,var22) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var25 = 1; /* easy isa OTHER*/ +if (unlikely(!var25)) { +var_class_name28 = var22 == NULL ? "null" : var22->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 548); +show_backtrace(1); +} +var29 = ((struct instance_kernel__Char*)var21)->value; /* autounbox from nullable Object to Char */; +var30 = ((struct instance_kernel__Char*)var22)->value; /* autounbox from nullable Object to Char */; +var31 = var29 > var30; +var23 = var31; goto RET_LABEL24; RET_LABEL24:(void)0; } -var = var23; +} +if (var23){ +var32 = 0; +var = var32; +goto RET_LABEL; +} else { +} +{ +((void (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__next]))(var_self_chars) /* next on */; +} +{ +((void (*)(val*))(var_other_chars->class->vft[COLOR_abstract_collection__Iterator__next]))(var_other_chars) /* next on */; +} +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +var33 = ((short int (*)(val*))(var_self_chars->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_self_chars) /* is_ok on */; +} +if (var33){ +var34 = 0; +var = var34; +goto RET_LABEL; +} else { +var35 = 1; +var = var35; goto RET_LABEL; +} RET_LABEL:; return var; } -/* method string#String#[] for (self: Object, Int): nullable Object */ -val* VIRTUAL_string__String___91d_93d(val* self, long p0) { -val* var /* : nullable Object */; -char var1 /* : Char */; -val* var2 /* : nullable Object */; -var1 = string__String___91d_93d(self, p0); -var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */ -var = var2; +/* method string#Text#< for (self: Object, Comparable): Bool */ +short int VIRTUAL_string__Text___60d(val* self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__Text___60d(self, p0); +var = var1; RET_LABEL:; return var; } -/* method string#String#substring for (self: String, Int, Int): String */ -val* string__String__substring(val* self, long p0, long p1) { -val* var /* : String */; -long var_from /* var from: Int */; -long var_count /* var count: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; +/* method string#Text#hash_cache for (self: Text): nullable Int */ +val* string__Text__hash_cache(val* self) { +val* var /* : nullable Int */; +val* var1 /* : nullable Int */; +var1 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#Text#hash_cache for (self: Object): nullable Int */ +val* VIRTUAL_string__Text__hash_cache(val* self) { +val* var /* : nullable Int */; +val* var1 /* : nullable Int */; +val* var3 /* : nullable Int */; +{ /* Inline string#Text#hash_cache (self) on */ +var3 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#Text#hash_cache= for (self: Text, nullable Int) */ +void string__Text__hash_cache_61d(val* self, val* p0) { +self->attrs[COLOR_string__Text___hash_cache].val = p0; /* _hash_cache on */ +RET_LABEL:; +} +/* method string#Text#hash_cache= for (self: Object, nullable Int) */ +void VIRTUAL_string__Text__hash_cache_61d(val* self, val* p0) { +{ /* Inline string#Text#hash_cache= (self,p0) on */ +self->attrs[COLOR_string__Text___hash_cache].val = p0; /* _hash_cache on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#Text#hash for (self: Text): Int */ +long string__Text__hash(val* self) { +long var /* : Int */; +val* var1 /* : nullable Int */; +val* var3 /* : nullable Int */; +val* var4 /* : null */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +long var9 /* : Int */; +long var_h /* var h: Int */; +long var10 /* : Int */; +long var_i /* var i: Int */; +long var11 /* : Int */; +long var13 /* : Int */; +long var_ /* var : Int */; +short int var14 /* : Bool */; +short int var16 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var5 /* : Bool */; -long var6 /* : Int */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -const char* var_class_name12; -short int var13 /* : Bool */; -long var14 /* : Int */; -long var16 /* : Int */; -long var17 /* : Int */; -short int var18 /* : Bool */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -const char* var_class_name23; -short int var24 /* : Bool */; +short int var17 /* : Bool */; +val* var18 /* : SequenceRead[Char] */; +val* var19 /* : nullable Object */; +char var20 /* : Char */; +char var_char /* var char: Char */; +long var21 /* : Int */; +long var22 /* : Int */; +long var24 /* : Int */; long var25 /* : Int */; -long var26 /* : Int */; -long var27 /* : Int */; -long var28 /* : Int */; -long var30 /* : Int */; -long var_realFrom /* var realFrom: Int */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +const char* var_class_name30; long var31 /* : Int */; -long var33 /* : Int */; +long var32 /* : Int */; long var34 /* : Int */; -short int var35 /* : Bool */; +long var35 /* : Int */; short int var37 /* : Bool */; int cltype38; int idtype39; const char* var_class_name40; -short int var41 /* : Bool */; -val* var42 /* : String */; +long var41 /* : Int */; +long var42 /* : Int */; long var43 /* : Int */; -char* var44 /* : NativeString */; -long var45 /* : Int */; -short int var46 /* : Bool */; -short int var48 /* : Bool */; -static val* varonce; -val* var49 /* : String */; -char* var50 /* : NativeString */; -long var51 /* : Int */; -val* var52 /* : String */; -val* var53 /* : String */; -long var54 /* : Int */; -long var56 /* : Int */; -long var57 /* : Int */; -long var58 /* : Int */; -long var60 /* : Int */; -char* var61 /* : NativeString */; -var_from = p0; -var_count = p1; -var1 = 0; -{ /* Inline kernel#Int#>= (var_count,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); -show_backtrace(1); +val* var45 /* : nullable Int */; +val* var46 /* : nullable Int */; +val* var48 /* : nullable Int */; +long var49 /* : Int */; +{ +{ /* Inline string#Text#hash_cache (self) on */ +var3 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on */ +var1 = var3; +RET_LABEL2:(void)0; } -var5 = var_count >= var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; } -if (!var2) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 388); -show_backtrace(1); +var4 = NULL; +if (var1 == NULL) { +var5 = 1; /* is null */ +} else { +var5 = 0; /* arg is null but recv is not */ } -var6 = 0; -{ /* Inline kernel#Int#< (var_from,var6) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var9 = 1; /* easy isa OTHER*/ -if (!var9) { -var_class_name12 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); +if (0) { +{ /* Inline kernel#Int#== (var1,var4) on */ +var8 = 0; /* incompatible types Int vs. null; cannot be NULL */ +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } -var13 = var_from < var6; -var7 = var13; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var5 = var6; } -if (var7){ -{ /* Inline kernel#Int#+ (var_count,var_from) */ -var16 = var_count + var_from; -var14 = var16; +if (var5){ +var9 = 5381; +var_h = var9; +var10 = 0; +var_i = var10; +{ +{ /* Inline string#FlatText#length (self) on */ +var13 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var11 = var13; +RET_LABEL12:(void)0; +} +} +var_ = var11; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var16 = 1; /* easy isa OTHER*/ +if (unlikely(!var16)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var17 = var_i < var_; +var14 = var17; goto RET_LABEL15; RET_LABEL15:(void)0; } -var_count = var14; -var17 = 0; -{ /* Inline kernel#Int#< (var_count,var17) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var20 = 1; /* easy isa OTHER*/ -if (!var20) { -var_class_name23 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); -} -var24 = var_count < var17; -var18 = var24; -goto RET_LABEL19; -RET_LABEL19:(void)0; } -if (var18){ -var25 = 0; -var_count = var25; -} else { +if (var14){ +{ +var18 = ((val* (*)(val*))(self->class->vft[COLOR_string__Text__chars]))(self) /* chars on */; } -var26 = 0; -var_from = var26; -} else { +{ +var19 = ((val* (*)(val*, long))(var18->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var18, var_i) /* [] on */; } -var27 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -{ /* Inline kernel#Int#+ (var27,var_from) */ -var30 = var27 + var_from; -var28 = var30; -goto RET_LABEL29; -RET_LABEL29:(void)0; +var20 = ((struct instance_kernel__Char*)var19)->value; /* autounbox from nullable Object to Char */; +var_char = var20; +var21 = 5; +{ +{ /* Inline kernel#Int#lshift (var_h,var21) on */ +var24 = var_h << var21; +var22 = var24; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -var_realFrom = var28; -{ /* Inline kernel#Int#+ (var_realFrom,var_count) */ -var33 = var_realFrom + var_count; -var31 = var33; -goto RET_LABEL32; -RET_LABEL32:(void)0; } -var34 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -{ /* Inline kernel#Int#> (var31,var34) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var37 = 1; /* easy isa OTHER*/ -if (!var37) { +{ +{ /* Inline kernel#Int#+ (var22,var_h) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var27 = 1; /* easy isa OTHER*/ +if (unlikely(!var27)) { +var_class_name30 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var31 = var22 + var_h; +var25 = var31; +goto RET_LABEL26; +RET_LABEL26:(void)0; +} +} +{ +{ /* Inline kernel#Char#ascii (var_char) on */ +var34 = (unsigned char)var_char; +var32 = var34; +goto RET_LABEL33; +RET_LABEL33:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var25,var32) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var37 = 1; /* easy isa OTHER*/ +if (unlikely(!var37)) { var_class_name40 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var41 = var31 > var34; +var41 = var25 + var32; var35 = var41; goto RET_LABEL36; RET_LABEL36:(void)0; } -if (var35){ -var42 = NEW_string__String(&type_string__String); -var43 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var44 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -((void (*)(val*, long, long, char*))(var42->class->vft[COLOR_string__String__from_substring]))(var42, var_realFrom, var43, var44) /* from_substring on */; -var = var42; -goto RET_LABEL; -} else { } -var45 = 0; -{ /* Inline kernel#Int#== (var_count,var45) */ -var48 = var_count == var45; -var46 = var48; -goto RET_LABEL47; -RET_LABEL47:(void)0; +var_h = var35; +var42 = 1; +{ +var43 = kernel__Int__successor(var_i, var42); } -if (var46){ -if (varonce) { -var49 = varonce; +var_i = var43; } else { -var50 = ""; -var51 = 0; -var52 = string__NativeString__to_s_with_length(var50, var51); -var49 = var52; -varonce = var49; +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +{ /* Inline string#Text#hash_cache= (self,var_h) on */ +var45 = BOX_kernel__Int(var_h); /* autobox from Int to nullable Int */ +self->attrs[COLOR_string__Text___hash_cache].val = var45; /* _hash_cache on */ +RET_LABEL44:(void)0; +} } -var = var49; -goto RET_LABEL; } else { } -var53 = NEW_string__String(&type_string__String); -{ /* Inline kernel#Int#+ (var_realFrom,var_count) */ -var56 = var_realFrom + var_count; -var54 = var56; -goto RET_LABEL55; -RET_LABEL55:(void)0; +{ +{ /* Inline string#Text#hash_cache (self) on */ +var48 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on */ +var46 = var48; +RET_LABEL47:(void)0; } -var57 = 1; -{ /* Inline kernel#Int#- (var54,var57) */ -var60 = var54 - var57; -var58 = var60; -goto RET_LABEL59; -RET_LABEL59:(void)0; } -var61 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -((void (*)(val*, long, long, char*))(var53->class->vft[COLOR_string__String__from_substring]))(var53, var_realFrom, var58, var61) /* from_substring on */; -var = var53; +if (unlikely(var46 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 697); +show_backtrace(1); +} +var49 = ((struct instance_kernel__Int*)var46)->value; /* autounbox from nullable Int to Int */; +var = var49; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#substring for (self: Object, Int, Int): String */ -val* VIRTUAL_string__String__substring(val* self, long p0, long p1) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String__substring(self, p0, p1); +/* method string#Text#hash for (self: Object): Int */ +long VIRTUAL_string__Text__hash(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = string__Text__hash(self); var = var1; RET_LABEL:; return var; } -/* method string#String#substring_from for (self: String, Int): String */ -val* string__String__substring_from(val* self, long p0) { -val* var /* : String */; -long var_from /* var from: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var5 /* : Bool */; -static val* varonce; -val* var6 /* : String */; -char* var7 /* : NativeString */; -long var8 /* : Int */; -val* var9 /* : String */; -long var10 /* : Int */; -short int var11 /* : Bool */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -const char* var_class_name16; -short int var17 /* : Bool */; -long var18 /* : Int */; -long var19 /* : Int */; -val* var20 /* : String */; -var_from = p0; -var1 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline kernel#Int#> (var_from,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -show_backtrace(1); -} -var5 = var_from > var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +/* method string#FlatText#items for (self: FlatText): NativeString */ +char* string__FlatText__items(val* self) { +char* var /* : NativeString */; +char* var1 /* : NativeString */; +var1 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var = var1; +RET_LABEL:; +return var; } -if (var2){ -if (varonce) { -var6 = varonce; -} else { -var7 = ""; -var8 = 0; -var9 = string__NativeString__to_s_with_length(var7, var8); -var6 = var9; -varonce = var6; +/* method string#FlatText#items for (self: Object): NativeString */ +char* VIRTUAL_string__FlatText__items(val* self) { +char* var /* : NativeString */; +char* var1 /* : NativeString */; +char* var3 /* : NativeString */; +{ /* Inline string#FlatText#items (self) on */ +var3 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var1 = var3; +RET_LABEL2:(void)0; } -var = var6; -goto RET_LABEL; -} else { +var = var1; +RET_LABEL:; +return var; } -var10 = 0; -{ /* Inline kernel#Int#< (var_from,var10) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var13 = 1; /* easy isa OTHER*/ -if (!var13) { -var_class_name16 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); +/* method string#FlatText#items= for (self: FlatText, NativeString) */ +void string__FlatText__items_61d(val* self, char* p0) { +self->attrs[COLOR_string__FlatText___items].str = p0; /* _items on */ +RET_LABEL:; } -var17 = var_from < var10; -var11 = var17; -goto RET_LABEL12; -RET_LABEL12:(void)0; +/* method string#FlatText#items= for (self: Object, NativeString) */ +void VIRTUAL_string__FlatText__items_61d(val* self, char* p0) { +{ /* Inline string#FlatText#items= (self,p0) on */ +self->attrs[COLOR_string__FlatText___items].str = p0; /* _items on */ +RET_LABEL1:(void)0; } -if (var11){ -var18 = 0; -var_from = var18; -} else { +RET_LABEL:; } -var19 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var20 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__AbstractString__substring]))(self, var_from, var19) /* substring on */; -var = var20; -goto RET_LABEL; +/* method string#FlatText#real_items for (self: FlatText): nullable NativeString */ +val* string__FlatText__real_items(val* self) { +val* var /* : nullable NativeString */; +val* var1 /* : nullable NativeString */; +var1 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on */ +var = var1; RET_LABEL:; return var; } -/* method string#String#substring_from for (self: Object, Int): String */ -val* VIRTUAL_string__String__substring_from(val* self, long p0) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String__substring_from(self, p0); +/* method string#FlatText#real_items for (self: Object): nullable NativeString */ +val* VIRTUAL_string__FlatText__real_items(val* self) { +val* var /* : nullable NativeString */; +val* var1 /* : nullable NativeString */; +val* var3 /* : nullable NativeString */; +{ /* Inline string#FlatText#real_items (self) on */ +var3 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on */ +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method string#String#has_substring for (self: String, String, Int): Bool */ -short int string__String__has_substring(val* self, val* p0, long p1) { -short int var /* : Bool */; -val* var_str /* var str: String */; -long var_pos /* var pos: Int */; +/* method string#FlatText#real_items= for (self: FlatText, nullable NativeString) */ +void string__FlatText__real_items_61d(val* self, val* p0) { +self->attrs[COLOR_string__FlatText___real_items].val = p0; /* _real_items on */ +RET_LABEL:; +} +/* method string#FlatText#real_items= for (self: Object, nullable NativeString) */ +void VIRTUAL_string__FlatText__real_items_61d(val* self, val* p0) { +{ /* Inline string#FlatText#real_items= (self,p0) on */ +self->attrs[COLOR_string__FlatText___real_items].val = p0; /* _real_items on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatText#length for (self: FlatText): Int */ +long string__FlatText__length(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatText#length for (self: Object): Int */ +long VIRTUAL_string__FlatText__length(val* self) { +long var /* : Int */; long var1 /* : Int */; -long var2 /* : Int */; long var3 /* : Int */; -long var5 /* : Int */; -long var_itsindex /* var itsindex: Int */; -long var6 /* : Int */; -long var8 /* : Int */; -long var_myindex /* var myindex: Int */; -char* var9 /* : NativeString */; -char* var_myitems /* var myitems: NativeString */; -char* var10 /* : NativeString */; -char* var_itsitems /* var itsitems: NativeString */; -short int var11 /* : Bool */; -long var12 /* : Int */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var16 /* : Bool */; -short int var_ /* var : Bool */; -short int var17 /* : Bool */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -long var25 /* : Int */; -long var_itsindexfrom /* var itsindexfrom: Int */; -long var26 /* : Int */; -long var28 /* : Int */; -long var29 /* : Int */; -long var30 /* : Int */; -long var32 /* : Int */; -short int var33 /* : Bool */; -short int var35 /* : Bool */; -int cltype36; -int idtype37; -const char* var_class_name38; -short int var39 /* : Bool */; -char var40 /* : Char */; -char var42 /* : Char */; -char var43 /* : Char */; -char var45 /* : Char */; -short int var46 /* : Bool */; -short int var48 /* : Bool */; -short int var49 /* : Bool */; -short int var50 /* : Bool */; -long var51 /* : Int */; -long var52 /* : Int */; -long var54 /* : Int */; -long var55 /* : Int */; -long var56 /* : Int */; -long var58 /* : Int */; -short int var59 /* : Bool */; -var_str = p0; -var_pos = p1; -var1 = var_str->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var2 = 1; -{ /* Inline kernel#Int#- (var1,var2) */ -var5 = var1 - var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +{ /* Inline string#FlatText#length (self) on */ +var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; } -var_itsindex = var3; -{ /* Inline kernel#Int#+ (var_pos,var_itsindex) */ -var8 = var_pos + var_itsindex; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var = var1; +RET_LABEL:; +return var; } -var_myindex = var6; -var9 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_myitems = var9; -var10 = var_str->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_itsitems = var10; -var12 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline kernel#Int#> (var_myindex,var12) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var15 = 1; /* easy isa OTHER*/ -if (!var15) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -show_backtrace(1); +/* method string#FlatText#length= for (self: FlatText, Int) */ +void string__FlatText__length_61d(val* self, long p0) { +self->attrs[COLOR_string__FlatText___length].l = p0; /* _length on */ +RET_LABEL:; } -var16 = var_myindex > var12; -var13 = var16; -goto RET_LABEL14; -RET_LABEL14:(void)0; +/* method string#FlatText#length= for (self: Object, Int) */ +void VIRTUAL_string__FlatText__length_61d(val* self, long p0) { +{ /* Inline string#FlatText#length= (self,p0) on */ +self->attrs[COLOR_string__FlatText___length].l = p0; /* _length on */ +RET_LABEL1:(void)0; } -var_ = var13; -if (var13){ -var11 = var_; -} else { -{ /* Inline kernel#Int#> (var_itsindex,var_myindex) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (!var19) { -var_class_name22 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -show_backtrace(1); +RET_LABEL:; } -var23 = var_itsindex > var_myindex; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; +/* method string#FlatText#init for (self: FlatText) */ +void string__FlatText__init(val* self) { +{ +((void (*)(val*))(self->class->vft[COLOR_string__FlatText__init]))(self) /* init on */; } -var11 = var17; +RET_LABEL:; } -if (var11){ -var24 = 0; -var = var24; -goto RET_LABEL; -} else { +/* method string#FlatText#init for (self: Object) */ +void VIRTUAL_string__FlatText__init(val* self) { +{ /* Inline string#FlatText#init (self) on */ +{ +((void (*)(val*))(self->class->vft[COLOR_string__FlatText__init]))(self) /* init on */; } -var25 = ((long (*)(val*))(var_str->class->vft[COLOR_string__String__index_from]))(var_str) /* index_from on */; -var_itsindexfrom = var25; -{ /* Inline kernel#Int#+ (var_itsindex,var_itsindexfrom) */ -var28 = var_itsindex + var_itsindexfrom; -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; +RET_LABEL1:(void)0; } -var_itsindex = var26; -var29 = ((long (*)(val*))(self->class->vft[COLOR_string__String__index_from]))(self) /* index_from on */; -{ /* Inline kernel#Int#+ (var_myindex,var29) */ -var32 = var_myindex + var29; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; +RET_LABEL:; } -var_myindex = var30; -for(;;) { -{ /* Inline kernel#Int#>= (var_itsindex,var_itsindexfrom) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var35 = 1; /* easy isa OTHER*/ -if (!var35) { -var_class_name38 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); +/* method string#StringCharView#target for (self: StringCharView): Text */ +val* string__StringCharView__target(val* self) { +val* var /* : Text */; +val* var1 /* : Text */; +var1 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); show_backtrace(1); } -var39 = var_itsindex >= var_itsindexfrom; -var33 = var39; -goto RET_LABEL34; -RET_LABEL34:(void)0; +var = var1; +RET_LABEL:; +return var; } -if (!var33) break; -{ /* Inline string#NativeString#[] (var_myitems,var_myindex) */ -var42 = var_myitems[var_myindex]; -var40 = var42; -goto RET_LABEL41; -RET_LABEL41:(void)0; +/* method string#StringCharView#target for (self: Object): Text */ +val* VIRTUAL_string__StringCharView__target(val* self) { +val* var /* : Text */; +val* var1 /* : Text */; +val* var3 /* : Text */; +{ /* Inline string#StringCharView#target (self) on */ +var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -{ /* Inline string#NativeString#[] (var_itsitems,var_itsindex) */ -var45 = var_itsitems[var_itsindex]; -var43 = var45; -goto RET_LABEL44; -RET_LABEL44:(void)0; +var1 = var3; +RET_LABEL2:(void)0; } -{ /* Inline kernel#Char#!= (var40,var43) */ -var48 = var40 == var43; -var49 = !var48; -var46 = var49; -goto RET_LABEL47; -RET_LABEL47:(void)0; +var = var1; +RET_LABEL:; +return var; } -if (var46){ -var50 = 0; -var = var50; -goto RET_LABEL; +/* method string#StringCharView#target= for (self: StringCharView, Text) */ +void string__StringCharView__target_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +/* Covariant cast for argument 0 (target) isa SELFTYPE */ +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; } else { +var = p0->type->type_table[cltype] == idtype; } -var51 = 1; -{ /* Inline kernel#Int#- (var_myindex,var51) */ -var54 = var_myindex - var51; -var52 = var54; -goto RET_LABEL53; -RET_LABEL53:(void)0; -} -var_myindex = var52; -var55 = 1; -{ /* Inline kernel#Int#- (var_itsindex,var55) */ -var58 = var_itsindex - var55; -var56 = var58; -goto RET_LABEL57; -RET_LABEL57:(void)0; -} -var_itsindex = var56; -CONTINUE_label: (void)0; +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -BREAK_label: (void)0; -var59 = 1; -var = var59; -goto RET_LABEL; +self->attrs[COLOR_string__StringCharView___target].val = p0; /* _target on */ RET_LABEL:; -return var; } -/* method string#String#has_substring for (self: Object, String, Int): Bool */ -short int VIRTUAL_string__String__has_substring(val* self, val* p0, long p1) { +/* method string#StringCharView#target= for (self: Object, Text) */ +void VIRTUAL_string__StringCharView__target_61d(val* self, val* p0) { short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = string__String__has_substring(self, p0, p1); -var = var1; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +{ /* Inline string#StringCharView#target= (self,p0) on */ +/* Covariant cast for argument 0 (target) isa SELFTYPE */ +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); +} +self->attrs[COLOR_string__StringCharView___target].val = p0; /* _target on */ +RET_LABEL1:(void)0; +} RET_LABEL:; -return var; } -/* method string#String#to_upper for (self: String): String */ -val* string__String__to_upper(val* self) { -val* var /* : String */; -long var1 /* : Int */; -long var2 /* : Int */; -long var3 /* : Int */; -long var5 /* : Int */; -char* var6 /* : NativeString */; -char* var_outstr /* var outstr: NativeString */; -long var7 /* : Int */; -long var_out_index /* var out_index: Int */; -char* var8 /* : NativeString */; -char* var_myitems /* var myitems: NativeString */; -long var9 /* : Int */; -long var_index_from /* var index_from: Int */; -long var10 /* : Int */; -long var_max /* var max: Int */; -short int var11 /* : Bool */; -short int var13 /* : Bool */; +/* method string#StringCharView#init for (self: StringCharView, Text) */ +void string__StringCharView__init(val* self, val* p0) { +short int var /* : Bool */; int cltype; int idtype; +const struct type* type_struct; const char* var_class_name; -short int var14 /* : Bool */; -char var15 /* : Char */; -char var17 /* : Char */; -char var18 /* : Char */; -long var20 /* : Int */; -long var21 /* : Int */; -long var23 /* : Int */; -long var24 /* : Int */; -long var25 /* : Int */; -long var27 /* : Int */; -long var28 /* : Int */; -char var29 /* : Char */; -long var31 /* : Int */; -val* var32 /* : String */; -var1 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var2 = 1; -{ /* Inline kernel#Int#+ (var1,var2) */ -var5 = var1 + var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +val* var_tgt /* var tgt: Text */; +short int var2 /* : Bool */; +int cltype3; +int idtype4; +const struct type* type_struct5; +const char* var_class_name6; +/* Covariant cast for argument 0 (tgt) isa SELFTYPE */ +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; } -var6 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var3) /* calloc_string on */; -var_outstr = var6; -var7 = 0; -var_out_index = var7; -var8 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_myitems = var8; -var9 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_index_from = var9; -var10 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var_max = var10; -for(;;) { -{ /* Inline kernel#Int#<= (var_index_from,var_max) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var13 = 1; /* easy isa OTHER*/ -if (!var13) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 740); show_backtrace(1); } -var14 = var_index_from <= var_max; -var11 = var14; -goto RET_LABEL12; -RET_LABEL12:(void)0; +var_tgt = p0; +{ +{ /* Inline string#StringCharView#target= (self,var_tgt) on */ +/* Covariant cast for argument 0 (target) isa SELFTYPE */ +/* isa SELFTYPE */ +type_struct5 = self->type->resolution_table->types[COLOR_string__StringCharView_VTSELFTYPE]; +cltype3 = type_struct5->color; +idtype4 = type_struct5->id; +if(cltype3 >= var_tgt->type->table_size) { +var2 = 0; +} else { +var2 = var_tgt->type->type_table[cltype3] == idtype4; } -if (!var11) break; -{ /* Inline string#NativeString#[] (var_myitems,var_index_from) */ -var17 = var_myitems[var_index_from]; -var15 = var17; -goto RET_LABEL16; -RET_LABEL16:(void)0; +if (unlikely(!var2)) { +var_class_name6 = var_tgt == NULL ? "null" : var_tgt->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -var18 = kernel__Char__to_upper(var15); -{ /* Inline string#NativeString#[]= (var_outstr,var_out_index,var18) */ -var_outstr[var_out_index]=var18; -RET_LABEL19:(void)0; +self->attrs[COLOR_string__StringCharView___target].val = var_tgt; /* _target on */ +RET_LABEL1:(void)0; } -var20 = 1; -{ /* Inline kernel#Int#+ (var_out_index,var20) */ -var23 = var_out_index + var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; } -var_out_index = var21; -var24 = 1; -{ /* Inline kernel#Int#+ (var_index_from,var24) */ -var27 = var_index_from + var24; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; +RET_LABEL:; } -var_index_from = var25; -CONTINUE_label: (void)0; +/* method string#StringCharView#init for (self: Object, Text) */ +void VIRTUAL_string__StringCharView__init(val* self, val* p0) { +string__StringCharView__init(self, p0); /* Direct call string#StringCharView#init on */ +RET_LABEL:; } -BREAK_label: (void)0; -var28 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var29 = '\0'; -{ /* Inline string#NativeString#[]= (var_outstr,var28,var29) */ -var_outstr[var28]=var29; -RET_LABEL30:(void)0; +/* method string#StringCharView#is_empty for (self: StringCharView): Bool */ +short int string__StringCharView__is_empty(val* self) { +short int var /* : Bool */; +val* var1 /* : Text */; +val* var3 /* : Text */; +short int var4 /* : Bool */; +{ +{ /* Inline string#StringCharView#target (self) on */ +var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -var31 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var32 = string__NativeString__to_s_with_length(var_outstr, var31); -var = var32; +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = string__Text__is_empty(var1); +} +var = var4; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#to_upper for (self: Object): String */ -val* VIRTUAL_string__String__to_upper(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String__to_upper(self); +/* method string#StringCharView#is_empty for (self: Object): Bool */ +short int VIRTUAL_string__StringCharView__is_empty(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__StringCharView__is_empty(self); var = var1; RET_LABEL:; return var; } -/* method string#String#to_lower for (self: String): String */ -val* string__String__to_lower(val* self) { -val* var /* : String */; -long var1 /* : Int */; -long var2 /* : Int */; -long var3 /* : Int */; -long var5 /* : Int */; -char* var6 /* : NativeString */; -char* var_outstr /* var outstr: NativeString */; -long var7 /* : Int */; -long var_out_index /* var out_index: Int */; -char* var8 /* : NativeString */; -char* var_myitems /* var myitems: NativeString */; -long var9 /* : Int */; -long var_index_from /* var index_from: Int */; -long var10 /* : Int */; -long var_max /* var max: Int */; -short int var11 /* : Bool */; -short int var13 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var14 /* : Bool */; -char var15 /* : Char */; -char var17 /* : Char */; -char var18 /* : Char */; -long var20 /* : Int */; -long var21 /* : Int */; -long var23 /* : Int */; -long var24 /* : Int */; -long var25 /* : Int */; -long var27 /* : Int */; -long var28 /* : Int */; -char var29 /* : Char */; -long var31 /* : Int */; -val* var32 /* : String */; -var1 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var2 = 1; -{ /* Inline kernel#Int#+ (var1,var2) */ -var5 = var1 + var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -var6 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var3) /* calloc_string on */; -var_outstr = var6; -var7 = 0; -var_out_index = var7; -var8 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_myitems = var8; -var9 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_index_from = var9; -var10 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var_max = var10; -for(;;) { -{ /* Inline kernel#Int#<= (var_index_from,var_max) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var13 = 1; /* easy isa OTHER*/ -if (!var13) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +/* method string#StringCharView#length for (self: StringCharView): Int */ +long string__StringCharView__length(val* self) { +long var /* : Int */; +val* var1 /* : Text */; +val* var3 /* : Text */; +long var4 /* : Int */; +long var6 /* : Int */; +{ +{ /* Inline string#StringCharView#target (self) on */ +var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); show_backtrace(1); } -var14 = var_index_from <= var_max; -var11 = var14; -goto RET_LABEL12; -RET_LABEL12:(void)0; +var1 = var3; +RET_LABEL2:(void)0; } -if (!var11) break; -{ /* Inline string#NativeString#[] (var_myitems,var_index_from) */ -var17 = var_myitems[var_index_from]; -var15 = var17; -goto RET_LABEL16; -RET_LABEL16:(void)0; } -var18 = kernel__Char__to_lower(var15); -{ /* Inline string#NativeString#[]= (var_outstr,var_out_index,var18) */ -var_outstr[var_out_index]=var18; -RET_LABEL19:(void)0; +{ +{ /* Inline string#FlatText#length (var1) on */ +var6 = var1->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var4 = var6; +RET_LABEL5:(void)0; } -var20 = 1; -{ /* Inline kernel#Int#+ (var_out_index,var20) */ -var23 = var_out_index + var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; } -var_out_index = var21; -var24 = 1; -{ /* Inline kernel#Int#+ (var_index_from,var24) */ -var27 = var_index_from + var24; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; +var = var4; +goto RET_LABEL; +RET_LABEL:; +return var; } -var_index_from = var25; -CONTINUE_label: (void)0; +/* method string#StringCharView#length for (self: Object): Int */ +long VIRTUAL_string__StringCharView__length(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = string__StringCharView__length(self); +var = var1; +RET_LABEL:; +return var; } -BREAK_label: (void)0; -var28 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var29 = '\0'; -{ /* Inline string#NativeString#[]= (var_outstr,var28,var29) */ -var_outstr[var28]=var29; -RET_LABEL30:(void)0; +/* method string#StringCharView#iterator for (self: StringCharView): IndexedIterator[Char] */ +val* string__StringCharView__iterator(val* self) { +val* var /* : IndexedIterator[Char] */; +long var1 /* : Int */; +val* var2 /* : IndexedIterator[nullable Object] */; +var1 = 0; +{ +var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead__iterator_from]))(self, var1) /* iterator_from on */; } -var31 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var32 = string__NativeString__to_s_with_length(var_outstr, var31); -var = var32; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#to_lower for (self: Object): String */ -val* VIRTUAL_string__String__to_lower(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String__to_lower(self); +/* method string#StringCharView#iterator for (self: Object): Iterator[nullable Object] */ +val* VIRTUAL_string__StringCharView__iterator(val* self) { +val* var /* : Iterator[nullable Object] */; +val* var1 /* : IndexedIterator[Char] */; +var1 = string__StringCharView__iterator(self); var = var1; RET_LABEL:; return var; } -/* method string#String#trim for (self: String): String */ -val* string__String__trim(val* self) { +/* method string#String#to_s for (self: String): String */ +val* string__String__to_s(val* self) { val* var /* : String */; -long var1 /* : Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; -long var6 /* : Int */; -long var_start_pos /* var start_pos: Int */; -char* var7 /* : NativeString */; -char var8 /* : Char */; -char var10 /* : Char */; -long var11 /* : Int */; -long var13 /* : Int */; -long var14 /* : Int */; -short int var15 /* : Bool */; -short int var17 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var18 /* : Bool */; -long var19 /* : Int */; -long var20 /* : Int */; -long var22 /* : Int */; -long var23 /* : Int */; -long var24 /* : Int */; -long var25 /* : Int */; -long var27 /* : Int */; -short int var28 /* : Bool */; -short int var30 /* : Bool */; -static val* varonce; -val* var31 /* : String */; -char* var32 /* : NativeString */; -long var33 /* : Int */; -val* var34 /* : String */; -long var35 /* : Int */; -long var_end_pos /* var end_pos: Int */; -char* var36 /* : NativeString */; -char var37 /* : Char */; -char var39 /* : Char */; -long var40 /* : Int */; -long var42 /* : Int */; -long var43 /* : Int */; -short int var44 /* : Bool */; -short int var46 /* : Bool */; -int cltype47; -int idtype48; -const char* var_class_name49; -short int var50 /* : Bool */; -long var51 /* : Int */; -long var52 /* : Int */; -long var54 /* : Int */; -short int var55 /* : Bool */; -short int var57 /* : Bool */; -char* var58 /* : NativeString */; -char var59 /* : Char */; -char var61 /* : Char */; -val* var62 /* : String */; -long var64 /* : Int */; -long var65 /* : Int */; -long var67 /* : Int */; -long var68 /* : Int */; -long var69 /* : Int */; -long var71 /* : Int */; -long var72 /* : Int */; -long var74 /* : Int */; -long var75 /* : Int */; -long var76 /* : Int */; -long var78 /* : Int */; -val* var79 /* : String */; -var1 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var2 = 0; -{ /* Inline kernel#Int#== (var1,var2) */ -var5 = var1 == var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -if (var3){ var = self; goto RET_LABEL; -} else { -} -var6 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_start_pos = var6; -for(;;) { -var7 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var7,var_start_pos) */ -var10 = var7[var_start_pos]; -var8 = var10; -goto RET_LABEL9; -RET_LABEL9:(void)0; +RET_LABEL:; +return var; } -{ /* Inline kernel#Char#ascii (var8) */ -var13 = (unsigned char)var8; -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; +/* method string#String#to_s for (self: Object): String */ +val* VIRTUAL_string__String__to_s(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = string__String__to_s(self); +var = var1; +RET_LABEL:; +return var; } -var14 = 32; -{ /* Inline kernel#Int#<= (var11,var14) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var17 = 1; /* easy isa OTHER*/ -if (!var17) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); -show_backtrace(1); +/* method string#FlatSubstringsIter#tgt for (self: FlatSubstringsIter): nullable FlatText */ +val* string__FlatSubstringsIter__tgt(val* self) { +val* var /* : nullable FlatText */; +val* var1 /* : nullable FlatText */; +var1 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on */ +var = var1; +RET_LABEL:; +return var; } -var18 = var11 <= var14; -var15 = var18; -goto RET_LABEL16; -RET_LABEL16:(void)0; +/* method string#FlatSubstringsIter#tgt for (self: Object): nullable FlatText */ +val* VIRTUAL_string__FlatSubstringsIter__tgt(val* self) { +val* var /* : nullable FlatText */; +val* var1 /* : nullable FlatText */; +val* var3 /* : nullable FlatText */; +{ /* Inline string#FlatSubstringsIter#tgt (self) on */ +var3 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on */ +var1 = var3; +RET_LABEL2:(void)0; } -if (!var15) break; -var19 = 1; -{ /* Inline kernel#Int#+ (var_start_pos,var19) */ -var22 = var_start_pos + var19; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +var = var1; +RET_LABEL:; +return var; } -var_start_pos = var20; -var23 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var24 = 1; -{ /* Inline kernel#Int#+ (var23,var24) */ -var27 = var23 + var24; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; +/* method string#FlatSubstringsIter#tgt= for (self: FlatSubstringsIter, nullable FlatText) */ +void string__FlatSubstringsIter__tgt_61d(val* self, val* p0) { +self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = p0; /* _tgt on */ +RET_LABEL:; } -{ /* Inline kernel#Int#== (var_start_pos,var25) */ -var30 = var_start_pos == var25; -var28 = var30; -goto RET_LABEL29; -RET_LABEL29:(void)0; +/* method string#FlatSubstringsIter#tgt= for (self: Object, nullable FlatText) */ +void VIRTUAL_string__FlatSubstringsIter__tgt_61d(val* self, val* p0) { +{ /* Inline string#FlatSubstringsIter#tgt= (self,p0) on */ +self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = p0; /* _tgt on */ +RET_LABEL1:(void)0; } -if (var28){ -if (varonce) { -var31 = varonce; -} else { -var32 = ""; -var33 = 0; -var34 = string__NativeString__to_s_with_length(var32, var33); -var31 = var34; -varonce = var31; +RET_LABEL:; } -var = var31; -goto RET_LABEL; -} else { +/* method string#FlatSubstringsIter#init for (self: FlatSubstringsIter, FlatText) */ +void string__FlatSubstringsIter__init(val* self, val* p0) { +val* var_tgt /* var tgt: FlatText */; +var_tgt = p0; +{ +{ /* Inline string#FlatSubstringsIter#tgt= (self,var_tgt) on */ +self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = var_tgt; /* _tgt on */ +RET_LABEL1:(void)0; } -CONTINUE_label: (void)0; } -BREAK_label: (void)0; -var35 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var_end_pos = var35; -for(;;) { -var36 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var36,var_end_pos) */ -var39 = var36[var_end_pos]; -var37 = var39; -goto RET_LABEL38; -RET_LABEL38:(void)0; +RET_LABEL:; } -{ /* Inline kernel#Char#ascii (var37) */ -var42 = (unsigned char)var37; -var40 = var42; -goto RET_LABEL41; -RET_LABEL41:(void)0; +/* method string#FlatSubstringsIter#init for (self: Object, FlatText) */ +void VIRTUAL_string__FlatSubstringsIter__init(val* self, val* p0) { +string__FlatSubstringsIter__init(self, p0); /* Direct call string#FlatSubstringsIter#init on */ +RET_LABEL:; } -var43 = 32; -{ /* Inline kernel#Int#<= (var40,var43) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var46 = 1; /* easy isa OTHER*/ -if (!var46) { -var_class_name49 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +/* method string#FlatSubstringsIter#item for (self: FlatSubstringsIter): FlatText */ +val* string__FlatSubstringsIter__item(val* self) { +val* var /* : FlatText */; +short int var1 /* : Bool */; +val* var2 /* : nullable FlatText */; +val* var4 /* : nullable FlatText */; +{ +var1 = string__FlatSubstringsIter__is_ok(self); +} +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 919); show_backtrace(1); } -var50 = var40 <= var43; -var44 = var50; -goto RET_LABEL45; -RET_LABEL45:(void)0; -} -if (!var44) break; -var51 = 1; -{ /* Inline kernel#Int#- (var_end_pos,var51) */ -var54 = var_end_pos - var51; -var52 = var54; -goto RET_LABEL53; -RET_LABEL53:(void)0; +{ +{ /* Inline string#FlatSubstringsIter#tgt (self) on */ +var4 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on */ +var2 = var4; +RET_LABEL3:(void)0; } -var_end_pos = var52; -{ /* Inline kernel#Int#== (var_end_pos,var_start_pos) */ -var57 = var_end_pos == var_start_pos; -var55 = var57; -goto RET_LABEL56; -RET_LABEL56:(void)0; } -if (var55){ -var58 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var58,var_start_pos) */ -var61 = var58[var_start_pos]; -var59 = var61; -goto RET_LABEL60; -RET_LABEL60:(void)0; +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 920); +show_backtrace(1); } -var62 = string__Char__to_s(var59); -var = var62; +var = var2; goto RET_LABEL; -} else { +RET_LABEL:; +return var; } -CONTINUE_label63: (void)0; +/* method string#FlatSubstringsIter#item for (self: Object): nullable Object */ +val* VIRTUAL_string__FlatSubstringsIter__item(val* self) { +val* var /* : nullable Object */; +val* var1 /* : FlatText */; +var1 = string__FlatSubstringsIter__item(self); +var = var1; +RET_LABEL:; +return var; } -BREAK_label63: (void)0; -var64 = ((long (*)(val*))(self->class->vft[COLOR_string__String__index_from]))(self) /* index_from on */; -{ /* Inline kernel#Int#- (var_start_pos,var64) */ -var67 = var_start_pos - var64; -var65 = var67; -goto RET_LABEL66; -RET_LABEL66:(void)0; +/* method string#FlatSubstringsIter#is_ok for (self: FlatSubstringsIter): Bool */ +short int string__FlatSubstringsIter__is_ok(val* self) { +short int var /* : Bool */; +val* var1 /* : nullable FlatText */; +val* var3 /* : nullable FlatText */; +val* var4 /* : null */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +{ +{ /* Inline string#FlatSubstringsIter#tgt (self) on */ +var3 = self->attrs[COLOR_string__FlatSubstringsIter___tgt].val; /* _tgt on */ +var1 = var3; +RET_LABEL2:(void)0; } -var_start_pos = var65; -var68 = ((long (*)(val*))(self->class->vft[COLOR_string__String__index_from]))(self) /* index_from on */; -{ /* Inline kernel#Int#- (var_end_pos,var68) */ -var71 = var_end_pos - var68; -var69 = var71; -goto RET_LABEL70; -RET_LABEL70:(void)0; } -var_end_pos = var69; -{ /* Inline kernel#Int#- (var_end_pos,var_start_pos) */ -var74 = var_end_pos - var_start_pos; -var72 = var74; -goto RET_LABEL73; -RET_LABEL73:(void)0; +var4 = NULL; +if (var1 == NULL) { +var5 = 0; /* is null */ +} else { +var5 = 1; /* arg is null and recv is not */ } -var75 = 1; -{ /* Inline kernel#Int#+ (var72,var75) */ -var78 = var72 + var75; -var76 = var78; -goto RET_LABEL77; -RET_LABEL77:(void)0; +if (0) { +{ /* Inline kernel#Object#!= (var1,var4) on */ +var_other = var4; +{ +var9 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var_other) /* == on */; +var8 = var9; } -var79 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__AbstractString__substring]))(self, var_start_pos, var76) /* substring on */; -var = var79; +var10 = !var8; +var6 = var10; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +var5 = var6; +} +var = var5; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#trim for (self: Object): String */ -val* VIRTUAL_string__String__trim(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String__trim(self); +/* method string#FlatSubstringsIter#is_ok for (self: Object): Bool */ +short int VIRTUAL_string__FlatSubstringsIter__is_ok(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__FlatSubstringsIter__is_ok(self); var = var1; RET_LABEL:; return var; } -/* method string#String#output for (self: String) */ -void string__String__output(val* self) { -long var /* : Int */; -long var_i /* var i: Int */; -long var1 /* : Int */; -long var_imax /* var imax: Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var5 /* : Bool */; -char* var6 /* : NativeString */; -char var7 /* : Char */; -char var9 /* : Char */; -long var11 /* : Int */; -long var12 /* : Int */; -long var14 /* : Int */; -var = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_i = var; -var1 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var_imax = var1; -for(;;) { -{ /* Inline kernel#Int#<= (var_i,var_imax) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); -show_backtrace(1); +/* method string#FlatSubstringsIter#next for (self: FlatSubstringsIter) */ +void string__FlatSubstringsIter__next(val* self) { +val* var /* : null */; +var = NULL; +{ +{ /* Inline string#FlatSubstringsIter#tgt= (self,var) on */ +self->attrs[COLOR_string__FlatSubstringsIter___tgt].val = var; /* _tgt on */ +RET_LABEL1:(void)0; } -var5 = var_i <= var_imax; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; } -if (!var2) break; -var6 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var6,var_i) */ -var9 = var6[var_i]; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +RET_LABEL:; } -{ /* Inline kernel#Char#output (var7) */ -printf("%c", var7); -RET_LABEL10:(void)0; +/* method string#FlatSubstringsIter#next for (self: Object) */ +void VIRTUAL_string__FlatSubstringsIter__next(val* self) { +string__FlatSubstringsIter__next(self); /* Direct call string#FlatSubstringsIter#next on */ +RET_LABEL:; } -var11 = 1; -{ /* Inline kernel#Int#+ (var_i,var11) */ -var14 = var_i + var11; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +/* method string#FlatString#index_from for (self: FlatString): Int */ +long string__FlatString__index_from(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var = var1; +RET_LABEL:; +return var; } -var_i = var12; -CONTINUE_label: (void)0; +/* method string#FlatString#index_from for (self: Object): Int */ +long VIRTUAL_string__FlatString__index_from(val* self) { +long var /* : Int */; +long var1 /* : Int */; +long var3 /* : Int */; +{ /* Inline string#FlatString#index_from (self) on */ +var3 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var1 = var3; +RET_LABEL2:(void)0; } -BREAK_label: (void)0; +var = var1; RET_LABEL:; +return var; } -/* method string#String#output for (self: Object) */ -void VIRTUAL_string__String__output(val* self) { -string__String__output(self); +/* method string#FlatString#index_from= for (self: FlatString, Int) */ +void string__FlatString__index_from_61d(val* self, long p0) { +self->attrs[COLOR_string__FlatString___index_from].l = p0; /* _index_from on */ RET_LABEL:; } -/* method string#String#from_substring for (self: String, Int, Int, NativeString) */ -void string__String__from_substring(val* self, long p0, long p1, char* p2) { -long var_from /* var from: Int */; -long var_to /* var to: Int */; -char* var_internalString /* var internalString: NativeString */; +/* method string#FlatString#index_from= for (self: Object, Int) */ +void VIRTUAL_string__FlatString__index_from_61d(val* self, long p0) { +{ /* Inline string#FlatString#index_from= (self,p0) on */ +self->attrs[COLOR_string__FlatString___index_from].l = p0; /* _index_from on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatString#index_to for (self: FlatString): Int */ +long string__FlatString__index_to(val* self) { long var /* : Int */; -long var2 /* : Int */; +long var1 /* : Int */; +var1 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatString#index_to for (self: Object): Int */ +long VIRTUAL_string__FlatString__index_to(val* self) { +long var /* : Int */; +long var1 /* : Int */; long var3 /* : Int */; -long var4 /* : Int */; -long var6 /* : Int */; -var_from = p0; -var_to = p1; -var_internalString = p2; -((void (*)(val*))(self->class->vft[COLOR_string__AbstractString__init]))(self) /* init on */; -self->attrs[COLOR_string__AbstractString___items].str = var_internalString; /* _items on */ -self->attrs[COLOR_string__String___index_from].l = var_from; /* _index_from on */ -self->attrs[COLOR_string__String___index_to].l = var_to; /* _index_to on */ -{ /* Inline kernel#Int#- (var_to,var_from) */ -var2 = var_to - var_from; -var = var2; -goto RET_LABEL1; -RET_LABEL1:(void)0; +{ /* Inline string#FlatString#index_to (self) on */ +var3 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var1 = var3; +RET_LABEL2:(void)0; } -var3 = 1; -{ /* Inline kernel#Int#+ (var,var3) */ -var6 = var + var3; -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var = var1; +RET_LABEL:; +return var; } -self->attrs[COLOR_array__AbstractArrayRead___length].l = var4; /* _length on */ +/* method string#FlatString#index_to= for (self: FlatString, Int) */ +void string__FlatString__index_to_61d(val* self, long p0) { +self->attrs[COLOR_string__FlatString___index_to].l = p0; /* _index_to on */ RET_LABEL:; } -/* method string#String#from_substring for (self: Object, Int, Int, NativeString) */ -void VIRTUAL_string__String__from_substring(val* self, long p0, long p1, char* p2) { -string__String__from_substring(self, p0, p1, p2); +/* method string#FlatString#index_to= for (self: Object, Int) */ +void VIRTUAL_string__FlatString__index_to_61d(val* self, long p0) { +{ /* Inline string#FlatString#index_to= (self,p0) on */ +self->attrs[COLOR_string__FlatString___index_to].l = p0; /* _index_to on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } -/* method string#String#with_infos for (self: String, NativeString, Int, Int, Int) */ -void string__String__with_infos(val* self, char* p0, long p1, long p2, long p3) { -char* var_items /* var items: NativeString */; -long var_len /* var len: Int */; -long var_from /* var from: Int */; -long var_to /* var to: Int */; -var_items = p0; -var_len = p1; -var_from = p2; -var_to = p3; -((void (*)(val*))(self->class->vft[COLOR_string__AbstractString__init]))(self) /* init on */; -self->attrs[COLOR_string__AbstractString___items].str = var_items; /* _items on */ -self->attrs[COLOR_array__AbstractArrayRead___length].l = var_len; /* _length on */ -self->attrs[COLOR_string__String___index_from].l = var_from; /* _index_from on */ -self->attrs[COLOR_string__String___index_to].l = var_to; /* _index_to on */ +/* method string#FlatString#chars for (self: FlatString): SequenceRead[Char] */ +val* string__FlatString__chars(val* self) { +val* var /* : SequenceRead[Char] */; +val* var1 /* : SequenceRead[Char] */; +var1 = self->attrs[COLOR_string__FlatString___chars].val; /* _chars on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939); +show_backtrace(1); +} +var = var1; RET_LABEL:; +return var; +} +/* method string#FlatString#chars for (self: Object): SequenceRead[Char] */ +val* VIRTUAL_string__FlatString__chars(val* self) { +val* var /* : SequenceRead[Char] */; +val* var1 /* : SequenceRead[Char] */; +val* var3 /* : SequenceRead[Char] */; +{ /* Inline string#FlatString#chars (self) on */ +var3 = self->attrs[COLOR_string__FlatString___chars].val; /* _chars on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; } -/* method string#String#with_infos for (self: Object, NativeString, Int, Int, Int) */ -void VIRTUAL_string__String__with_infos(val* self, char* p0, long p1, long p2, long p3) { -string__String__with_infos(self, p0, p1, p2, p3); +var = var1; RET_LABEL:; +return var; } -/* method string#String#to_cstring for (self: String): NativeString */ -char* string__String__to_cstring(val* self) { -char* var /* : NativeString */; -short int var1 /* : Bool */; -long var2 /* : Int */; -long var3 /* : Int */; +/* method string#FlatString#[] for (self: FlatString, Int): Char */ +char string__FlatString___91d_93d(val* self, long p0) { +char var /* : Char */; +long var_index /* var index: Int */; +long var1 /* : Int */; +short int var2 /* : Bool */; short int var4 /* : Bool */; -short int var6 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var7 /* : Bool */; -short int var_ /* var : Bool */; +short int var5 /* : Bool */; +long var6 /* : Int */; long var8 /* : Int */; -char* var9 /* : NativeString */; -long var10 /* : Int */; -long var11 /* : Int */; -long var12 /* : Int */; -long var14 /* : Int */; -short int var15 /* : Bool */; -short int var17 /* : Bool */; -short int var18 /* : Bool */; -long var19 /* : Int */; -long var20 /* : Int */; -long var21 /* : Int */; -long var23 /* : Int */; -char* var24 /* : NativeString */; -char* var_newItems /* var newItems: NativeString */; -char* var25 /* : NativeString */; -long var26 /* : Int */; -long var27 /* : Int */; -long var28 /* : Int */; -long var30 /* : Int */; -char var31 /* : Char */; -char* var33 /* : NativeString */; -var2 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var3 = 0; -{ /* Inline kernel#Int#> (var2,var3) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (!var6) { +long var9 /* : Int */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; +long var15 /* : Int */; +long var16 /* : Int */; +long var18 /* : Int */; +short int var19 /* : Bool */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +const char* var_class_name24; +short int var25 /* : Bool */; +char* var26 /* : NativeString */; +char* var28 /* : NativeString */; +long var29 /* : Int */; +long var31 /* : Int */; +long var32 /* : Int */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +const char* var_class_name37; +long var38 /* : Int */; +char var39 /* : Char */; +char var41 /* : Char */; +var_index = p0; +var1 = 0; +{ +{ /* Inline kernel#Int#>= (var_index,var1) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); show_backtrace(1); } -var7 = var2 > var3; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var5 = var_index >= var1; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } -var_ = var4; -if (var4){ -var1 = var_; -} else { -var8 = self->attrs[COLOR_string__String___index_to].l; /* _index_to on */ -var9 = ((char* (*)(val*))(self->class->vft[COLOR_string__AbstractString__items]))(self) /* items on */; -var10 = string__NativeString__cstring_length(var9); -var11 = 1; -{ /* Inline kernel#Int#- (var10,var11) */ -var14 = var10 - var11; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; } -{ /* Inline kernel#Int#!= (var8,var12) */ -var17 = var8 == var12; -var18 = !var17; -var15 = var18; -goto RET_LABEL16; -RET_LABEL16:(void)0; +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 945); +show_backtrace(1); } -var1 = var15; +{ +{ /* Inline string#FlatString#index_from (self) on */ +var8 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var6 = var8; +RET_LABEL7:(void)0; } -if (var1){ -var19 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var20 = 1; -{ /* Inline kernel#Int#+ (var19,var20) */ -var23 = var19 + var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; } -var24 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var21) /* calloc_string on */; -var_newItems = var24; -var25 = ((char* (*)(val*))(self->class->vft[COLOR_string__AbstractString__items]))(self) /* items on */; -var26 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var27 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var28 = 0; -{ /* Inline string#NativeString#copy_to (var25,var_newItems,var26,var27,var28) */ -memcpy(var_newItems+var28,var25+var27,var26); -RET_LABEL29:(void)0; +{ +{ /* Inline kernel#Int#+ (var_index,var6) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var11 = 1; /* easy isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -var30 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var31 = '\0'; -{ /* Inline string#NativeString#[]= (var_newItems,var30,var31) */ -var_newItems[var30]=var31; -RET_LABEL32:(void)0; +var15 = var_index + var6; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; } -var = var_newItems; -goto RET_LABEL; -} else { } -var33 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var = var33; +{ +{ /* Inline string#FlatString#index_to (self) on */ +var18 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline kernel#Int#<= (var9,var16) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var21 = 1; /* easy isa OTHER*/ +if (unlikely(!var21)) { +var_class_name24 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var25 = var9 <= var16; +var19 = var25; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 946); +show_backtrace(1); +} +{ +{ /* Inline string#FlatText#items (self) on */ +var28 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var26 = var28; +RET_LABEL27:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (self) on */ +var31 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var29 = var31; +RET_LABEL30:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var_index,var29) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var34 = 1; /* easy isa OTHER*/ +if (unlikely(!var34)) { +var_class_name37 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var38 = var_index + var29; +var32 = var38; +goto RET_LABEL33; +RET_LABEL33:(void)0; +} +} +{ +{ /* Inline string#NativeString#[] (var26,var32) on */ +var41 = var26[var32]; +var39 = var41; +goto RET_LABEL40; +RET_LABEL40:(void)0; +} +} +var = var39; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#to_cstring for (self: Object): NativeString */ -char* VIRTUAL_string__String__to_cstring(val* self) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -var1 = string__String__to_cstring(self); +/* method string#FlatString#[] for (self: Object, Int): Char */ +char VIRTUAL_string__FlatString___91d_93d(val* self, long p0) { +char var /* : Char */; +char var1 /* : Char */; +var1 = string__FlatString___91d_93d(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#String#== for (self: String, nullable Object): Bool */ -short int string__String___61d_61d(val* self, val* p0) { -short int var /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var1 /* : Bool */; +/* method string#FlatString#substring for (self: FlatString, Int, Int): String */ +val* string__FlatString__substring(val* self, long p0, long p1) { +val* var /* : String */; +long var_from /* var from: Int */; +long var_count /* var count: Int */; +long var1 /* : Int */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; int cltype; int idtype; -short int var2 /* : Bool */; -short int var3 /* : Bool */; -long var4 /* : Int */; -long var5 /* : Int */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; +const char* var_class_name; +short int var5 /* : Bool */; +long var6 /* : Int */; +short int var7 /* : Bool */; short int var9 /* : Bool */; -long var10 /* : Int */; -long var_my_length /* var my_length: Int */; -long var11 /* : Int */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -long var17 /* : Int */; -long var_my_index /* var my_index: Int */; -long var18 /* : Int */; -long var_its_index /* var its_index: Int */; -long var19 /* : Int */; +int cltype10; +int idtype11; +const char* var_class_name12; +short int var13 /* : Bool */; +long var14 /* : Int */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const char* var_class_name19; +long var20 /* : Int */; long var21 /* : Int */; -long var_last_iteration /* var last_iteration: Int */; -char* var22 /* : NativeString */; -char* var_itsitems /* var itsitems: NativeString */; -char* var23 /* : NativeString */; -char* var_myitems /* var myitems: NativeString */; +short int var22 /* : Bool */; short int var24 /* : Bool */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -const char* var_class_name; -short int var29 /* : Bool */; -char var30 /* : Char */; -char var32 /* : Char */; -char var33 /* : Char */; -char var35 /* : Char */; +int cltype25; +int idtype26; +const char* var_class_name27; +short int var28 /* : Bool */; +long var29 /* : Int */; +long var30 /* : Int */; +long var31 /* : Int */; +long var33 /* : Int */; +long var34 /* : Int */; short int var36 /* : Bool */; -short int var38 /* : Bool */; -short int var39 /* : Bool */; -short int var40 /* : Bool */; +int cltype37; +int idtype38; +const char* var_class_name39; +long var40 /* : Int */; +long var_realFrom /* var realFrom: Int */; long var41 /* : Int */; -long var42 /* : Int */; -long var44 /* : Int */; -long var45 /* : Int */; -long var46 /* : Int */; +short int var43 /* : Bool */; +int cltype44; +int idtype45; +const char* var_class_name46; +long var47 /* : Int */; long var48 /* : Int */; -short int var49 /* : Bool */; -var_other = p0; -/* isa String */ -cltype = type_string__String.color; -idtype = type_string__String.id; -if(var_other == NULL) { +long var50 /* : Int */; +short int var51 /* : Bool */; +short int var53 /* : Bool */; +int cltype54; +int idtype55; +const char* var_class_name56; +short int var57 /* : Bool */; +val* var58 /* : FlatString */; +char* var59 /* : NativeString */; +char* var61 /* : NativeString */; +long var62 /* : Int */; +long var64 /* : Int */; +long var65 /* : Int */; +short int var67 /* : Bool */; +int cltype68; +int idtype69; +const char* var_class_name70; +long var71 /* : Int */; +long var72 /* : Int */; +long var73 /* : Int */; +short int var75 /* : Bool */; +int cltype76; +int idtype77; +const char* var_class_name78; +long var79 /* : Int */; +long var80 /* : Int */; +long var82 /* : Int */; +short int var83 /* : Bool */; +int cltype84; +int idtype85; +const struct type* type_struct; +const char* var_class_name86; +long var87 /* : Int */; +short int var88 /* : Bool */; +short int var89 /* : Bool */; +short int var91 /* : Bool */; +val* var92 /* : String */; +long var93 /* : Int */; +short int var95 /* : Bool */; +int cltype96; +int idtype97; +const char* var_class_name98; +long var99 /* : Int */; +long var100 /* : Int */; +long var101 /* : Int */; +short int var103 /* : Bool */; +int cltype104; +int idtype105; +const char* var_class_name106; +long var107 /* : Int */; +long var_to /* var to: Int */; +val* var108 /* : FlatString */; +char* var109 /* : NativeString */; +char* var111 /* : NativeString */; +long var112 /* : Int */; +short int var114 /* : Bool */; +int cltype115; +int idtype116; +const char* var_class_name117; +long var118 /* : Int */; +long var119 /* : Int */; +long var120 /* : Int */; +short int var122 /* : Bool */; +int cltype123; +int idtype124; +const char* var_class_name125; +long var126 /* : Int */; +short int var127 /* : Bool */; +int cltype128; +int idtype129; +const struct type* type_struct130; +const char* var_class_name131; +var_from = p0; +var_count = p1; var1 = 0; +{ +{ /* Inline kernel#Int#>= (var_count,var1) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var5 = var_count >= var1; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 971); +show_backtrace(1); +} +var6 = 0; +{ +{ /* Inline kernel#Int#< (var_from,var6) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { +var_class_name12 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var13 = var_from < var6; +var7 = var13; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +if (var7){ +{ +{ /* Inline kernel#Int#+ (var_count,var_from) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var16 = 1; /* easy isa OTHER*/ +if (unlikely(!var16)) { +var_class_name19 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var20 = var_count + var_from; +var14 = var20; +goto RET_LABEL15; +RET_LABEL15:(void)0; +} +} +var_count = var14; +var21 = 0; +{ +{ /* Inline kernel#Int#< (var_count,var21) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var24 = 1; /* easy isa OTHER*/ +if (unlikely(!var24)) { +var_class_name27 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var28 = var_count < var21; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; +} +} +if (var22){ +var29 = 0; +var_count = var29; } else { -if(cltype >= var_other->type->table_size) { -var1 = 0; +} +var30 = 0; +var_from = var30; } else { -var1 = var_other->type->type_table[cltype] == idtype; } +{ +{ /* Inline string#FlatString#index_from (self) on */ +var33 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var31 = var33; +RET_LABEL32:(void)0; } -var2 = !var1; -if (var2){ -var3 = 0; -var = var3; -goto RET_LABEL; +} +{ +{ /* Inline kernel#Int#+ (var31,var_from) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var36 = 1; /* easy isa OTHER*/ +if (unlikely(!var36)) { +var_class_name39 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var40 = var31 + var_from; +var34 = var40; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +} +var_realFrom = var34; +{ +{ /* Inline kernel#Int#+ (var_realFrom,var_count) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var43 = 1; /* easy isa OTHER*/ +if (unlikely(!var43)) { +var_class_name46 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var47 = var_realFrom + var_count; +var41 = var47; +goto RET_LABEL42; +RET_LABEL42:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_to (self) on */ +var50 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var48 = var50; +RET_LABEL49:(void)0; +} +} +{ +{ /* Inline kernel#Int#> (var41,var48) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var53 = 1; /* easy isa OTHER*/ +if (unlikely(!var53)) { +var_class_name56 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var57 = var41 > var48; +var51 = var57; +goto RET_LABEL52; +RET_LABEL52:(void)0; +} +} +if (var51){ +var58 = NEW_string__FlatString(&type_string__FlatString); +{ +{ /* Inline string#FlatText#items (self) on */ +var61 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var59 = var61; +RET_LABEL60:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_to (self) on */ +var64 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var62 = var64; +RET_LABEL63:(void)0; +} +} +{ +{ /* Inline kernel#Int#- (var62,var_realFrom) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var67 = 1; /* easy isa OTHER*/ +if (unlikely(!var67)) { +var_class_name70 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var71 = var62 - var_realFrom; +var65 = var71; +goto RET_LABEL66; +RET_LABEL66:(void)0; +} +} +var72 = 1; +{ +{ /* Inline kernel#Int#+ (var65,var72) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var75 = 1; /* easy isa OTHER*/ +if (unlikely(!var75)) { +var_class_name78 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var79 = var65 + var72; +var73 = var79; +goto RET_LABEL74; +RET_LABEL74:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_to (self) on */ +var82 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var80 = var82; +RET_LABEL81:(void)0; +} +} +{ +string__FlatString__with_infos(var58, var59, var73, var_realFrom, var80); /* Direct call string#FlatString#with_infos on */ +} +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype84 = type_struct->color; +idtype85 = type_struct->id; +if(cltype84 >= var58->type->table_size) { +var83 = 0; } else { +var83 = var58->type->type_table[cltype84] == idtype85; } -var4 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on */; -var5 = ((long (*)(val*))(var_other->class->vft[COLOR_kernel__Object__object_id]))(var_other) /* object_id on */; -{ /* Inline kernel#Int#== (var4,var5) */ -var8 = var4 == var5; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +if (unlikely(!var83)) { +var_class_name86 = var58 == NULL ? "null" : var58->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name86); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 981); +show_backtrace(1); } -if (var6){ -var9 = 1; -var = var9; +var = var58; goto RET_LABEL; } else { } -var10 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var_my_length = var10; -var11 = var_other->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline kernel#Int#!= (var11,var_my_length) */ -var14 = var11 == var_my_length; -var15 = !var14; -var12 = var15; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var87 = 0; +{ +{ /* Inline kernel#Int#== (var_count,var87) on */ +var91 = var_count == var87; +var89 = var91; +goto RET_LABEL90; +RET_LABEL90:(void)0; +} +var88 = var89; +} +if (var88){ +{ +var92 = string__FlatString__empty(self); } -if (var12){ -var16 = 0; -var = var16; +var = var92; goto RET_LABEL; } else { } -var17 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_my_index = var17; -var18 = var_other->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_its_index = var18; -{ /* Inline kernel#Int#+ (var_my_index,var_my_length) */ -var21 = var_my_index + var_my_length; -var19 = var21; -goto RET_LABEL20; -RET_LABEL20:(void)0; -} -var_last_iteration = var19; -var22 = var_other->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_itsitems = var22; -var23 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_myitems = var23; -for(;;) { -{ /* Inline kernel#Int#< (var_my_index,var_last_iteration) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var26 = 1; /* easy isa OTHER*/ -if (!var26) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +{ +{ /* Inline kernel#Int#+ (var_realFrom,var_count) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var95 = 1; /* easy isa OTHER*/ +if (unlikely(!var95)) { +var_class_name98 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name98); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var29 = var_my_index < var_last_iteration; -var24 = var29; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var99 = var_realFrom + var_count; +var93 = var99; +goto RET_LABEL94; +RET_LABEL94:(void)0; +} +} +var100 = 1; +{ +{ /* Inline kernel#Int#- (var93,var100) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var103 = 1; /* easy isa OTHER*/ +if (unlikely(!var103)) { +var_class_name106 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name106); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); } -if (!var24) break; -{ /* Inline string#NativeString#[] (var_myitems,var_my_index) */ -var32 = var_myitems[var_my_index]; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; +var107 = var93 - var100; +var101 = var107; +goto RET_LABEL102; +RET_LABEL102:(void)0; +} +} +var_to = var101; +var108 = NEW_string__FlatString(&type_string__FlatString); +{ +{ /* Inline string#FlatText#items (self) on */ +var111 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var109 = var111; +RET_LABEL110:(void)0; +} +} +{ +{ /* Inline kernel#Int#- (var_to,var_realFrom) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var114 = 1; /* easy isa OTHER*/ +if (unlikely(!var114)) { +var_class_name117 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name117); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); } -{ /* Inline string#NativeString#[] (var_itsitems,var_its_index) */ -var35 = var_itsitems[var_its_index]; -var33 = var35; -goto RET_LABEL34; -RET_LABEL34:(void)0; +var118 = var_to - var_realFrom; +var112 = var118; +goto RET_LABEL113; +RET_LABEL113:(void)0; +} +} +var119 = 1; +{ +{ /* Inline kernel#Int#+ (var112,var119) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var122 = 1; /* easy isa OTHER*/ +if (unlikely(!var122)) { +var_class_name125 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name125); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -{ /* Inline kernel#Char#!= (var30,var33) */ -var38 = var30 == var33; -var39 = !var38; -var36 = var39; -goto RET_LABEL37; -RET_LABEL37:(void)0; +var126 = var112 + var119; +var120 = var126; +goto RET_LABEL121; +RET_LABEL121:(void)0; } -if (var36){ -var40 = 0; -var = var40; -goto RET_LABEL; -} else { } -var41 = 1; -{ /* Inline kernel#Int#+ (var_my_index,var41) */ -var44 = var_my_index + var41; -var42 = var44; -goto RET_LABEL43; -RET_LABEL43:(void)0; +{ +string__FlatString__with_infos(var108, var109, var120, var_realFrom, var_to); /* Direct call string#FlatString#with_infos on */ } -var_my_index = var42; -var45 = 1; -{ /* Inline kernel#Int#+ (var_its_index,var45) */ -var48 = var_its_index + var45; -var46 = var48; -goto RET_LABEL47; -RET_LABEL47:(void)0; +/* isa SELFTYPE */ +type_struct130 = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype128 = type_struct130->color; +idtype129 = type_struct130->id; +if(cltype128 >= var108->type->table_size) { +var127 = 0; +} else { +var127 = var108->type->type_table[cltype128] == idtype129; } -var_its_index = var46; -CONTINUE_label: (void)0; +if (unlikely(!var127)) { +var_class_name131 = var108 == NULL ? "null" : var108->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name131); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 987); +show_backtrace(1); } -BREAK_label: (void)0; -var49 = 1; -var = var49; +var = var108; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#== for (self: Object, nullable Object): Bool */ -short int VIRTUAL_string__String___61d_61d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = string__String___61d_61d(self, p0); +/* method string#FlatString#substring for (self: Object, Int, Int): Text */ +val* VIRTUAL_string__FlatString__substring(val* self, long p0, long p1) { +val* var /* : Text */; +val* var1 /* : String */; +var1 = string__FlatString__substring(self, p0, p1); var = var1; RET_LABEL:; return var; } -/* method string#String#< for (self: String, String): Bool */ -short int string__String___60d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; +/* method string#FlatString#empty for (self: FlatString): String */ +val* string__FlatString__empty(val* self) { +val* var /* : String */; +static val* varonce; +val* var1 /* : String */; +char* var2 /* : NativeString */; +long var3 /* : Int */; +val* var4 /* : FlatString */; +short int var5 /* : Bool */; int cltype; int idtype; -const struct type* type_struct; const char* var_class_name; -val* var_other /* var other: String */; -long var2 /* : Int */; -long var3 /* : Int */; -short int var4 /* : Bool */; short int var6 /* : Bool */; -short int var7 /* : Bool */; -long var8 /* : Int */; -long var_curr_id_self /* var curr_id_self: Int */; -long var9 /* : Int */; -long var_curr_id_other /* var curr_id_other: Int */; -char* var10 /* : NativeString */; -char* var_my_items /* var my_items: NativeString */; -char* var11 /* : NativeString */; -char* var_its_items /* var its_items: NativeString */; -long var12 /* : Int */; -long var_my_length /* var my_length: Int */; -long var13 /* : Int */; -long var_its_length /* var its_length: Int */; -long var14 /* : Int */; -long var16 /* : Int */; -long var_max_iterations /* var max_iterations: Int */; -short int var17 /* : Bool */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; -short int var23 /* : Bool */; -char var24 /* : Char */; -char var26 /* : Char */; -char var_my_curr_char /* var my_curr_char: Char */; -char var27 /* : Char */; +int cltype7; +int idtype8; +const struct type* type_struct; +const char* var_class_name9; +if (varonce) { +var1 = varonce; +} else { +var2 = ""; +var3 = 0; +var4 = string__NativeString__to_s_with_length(var2, var3); +var1 = var4; +varonce = var1; +} +/* isa FlatString */ +cltype = type_string__FlatString.color; +idtype = type_string__FlatString.id; +if(cltype >= var1->type->table_size) { +var5 = 0; +} else { +var5 = var1->type->type_table[cltype] == idtype; +} +if (unlikely(!var5)) { +var_class_name = var1 == NULL ? "null" : var1->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 990); +show_backtrace(1); +} +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype7 = type_struct->color; +idtype8 = type_struct->id; +if(cltype7 >= var1->type->table_size) { +var6 = 0; +} else { +var6 = var1->type->type_table[cltype7] == idtype8; +} +if (unlikely(!var6)) { +var_class_name9 = var1 == NULL ? "null" : var1->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name9); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 990); +show_backtrace(1); +} +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatString#empty for (self: Object): Text */ +val* VIRTUAL_string__FlatString__empty(val* self) { +val* var /* : Text */; +val* var1 /* : String */; +var1 = string__FlatString__empty(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatString#to_upper for (self: FlatString): String */ +val* string__FlatString__to_upper(val* self) { +val* var /* : String */; +long var1 /* : Int */; +long var3 /* : Int */; +long var4 /* : Int */; +long var5 /* : Int */; +short int var7 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var8 /* : Int */; +char* var9 /* : NativeString */; +char* var11 /* : NativeString */; +char* var_outstr /* var outstr: NativeString */; +long var12 /* : Int */; +long var_out_index /* var out_index: Int */; +char* var13 /* : NativeString */; +char* var15 /* : NativeString */; +char* var_myitems /* var myitems: NativeString */; +long var16 /* : Int */; +long var18 /* : Int */; +long var_index_from /* var index_from: Int */; +long var19 /* : Int */; +long var21 /* : Int */; +long var_max /* var max: Int */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +short int var28 /* : Bool */; char var29 /* : Char */; -char var_its_curr_char /* var its_curr_char: Char */; -short int var30 /* : Bool */; -short int var32 /* : Bool */; -short int var33 /* : Bool */; -short int var34 /* : Bool */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -const char* var_class_name39; -short int var40 /* : Bool */; -short int var41 /* : Bool */; -short int var42 /* : Bool */; +char var31 /* : Char */; +char var32 /* : Char */; +long var34 /* : Int */; +long var35 /* : Int */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +const char* var_class_name40; +long var41 /* : Int */; +long var42 /* : Int */; long var43 /* : Int */; -long var44 /* : Int */; -long var46 /* : Int */; -long var47 /* : Int */; -long var48 /* : Int */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +const char* var_class_name48; +long var49 /* : Int */; long var50 /* : Int */; -short int var51 /* : Bool */; -short int var53 /* : Bool */; -int cltype54; -int idtype55; -const char* var_class_name56; -short int var57 /* : Bool */; -/* Covariant cast for argument 0 (other) isa OTHER */ -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; +long var52 /* : Int */; +char var53 /* : Char */; +long var55 /* : Int */; +long var57 /* : Int */; +val* var58 /* : FlatString */; +short int var59 /* : Bool */; +int cltype60; +int idtype61; +const struct type* type_struct; +const char* var_class_name62; +{ +{ /* Inline string#FlatText#length (self) on */ +var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; } -if (!var1) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 571); +} +var4 = 1; +{ +{ /* Inline kernel#Int#+ (var1,var4) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var7 = 1; /* easy isa OTHER*/ +if (unlikely(!var7)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var_other = p0; -var2 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on */; -var3 = ((long (*)(val*))(var_other->class->vft[COLOR_kernel__Object__object_id]))(var_other) /* object_id on */; -{ /* Inline kernel#Int#== (var2,var3) */ -var6 = var2 == var3; -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var8 = var1 + var4; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -if (var4){ -var7 = 0; -var = var7; -goto RET_LABEL; -} else { } -var8 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_curr_id_self = var8; -var9 = var_other->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_curr_id_other = var9; -var10 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_my_items = var10; -var11 = var_other->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_its_items = var11; -var12 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var_my_length = var12; -var13 = var_other->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var_its_length = var13; -{ /* Inline kernel#Int#+ (var_curr_id_self,var_my_length) */ -var16 = var_curr_id_self + var_my_length; -var14 = var16; -goto RET_LABEL15; -RET_LABEL15:(void)0; +{ +{ /* Inline string#StringCapable#calloc_string (self,var5) on */ +var11 = (char*)nit_alloc(var5); +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +} +var_outstr = var9; +var12 = 0; +var_out_index = var12; +{ +{ /* Inline string#FlatText#items (self) on */ +var15 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var13 = var15; +RET_LABEL14:(void)0; +} +} +var_myitems = var13; +{ +{ /* Inline string#FlatString#index_from (self) on */ +var18 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +var_index_from = var16; +{ +{ /* Inline string#FlatString#index_to (self) on */ +var21 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var19 = var21; +RET_LABEL20:(void)0; } -var_max_iterations = var14; +} +var_max = var19; for(;;) { -{ /* Inline kernel#Int#< (var_curr_id_self,var_max_iterations) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (!var19) { -var_class_name22 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +{ +{ /* Inline kernel#Int#<= (var_index_from,var_max) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var24 = 1; /* easy isa OTHER*/ +if (unlikely(!var24)) { +var_class_name27 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); show_backtrace(1); } -var23 = var_curr_id_self < var_max_iterations; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; +var28 = var_index_from <= var_max; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -if (!var17) break; -{ /* Inline string#NativeString#[] (var_my_items,var_curr_id_self) */ -var26 = var_my_items[var_curr_id_self]; -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; } -var_my_curr_char = var24; -{ /* Inline string#NativeString#[] (var_its_items,var_curr_id_other) */ -var29 = var_its_items[var_curr_id_other]; -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; +if (var22){ +{ +{ /* Inline string#NativeString#[] (var_myitems,var_index_from) on */ +var31 = var_myitems[var_index_from]; +var29 = var31; +goto RET_LABEL30; +RET_LABEL30:(void)0; } -var_its_curr_char = var27; -{ /* Inline kernel#Char#!= (var_my_curr_char,var_its_curr_char) */ -var32 = var_my_curr_char == var_its_curr_char; -var33 = !var32; -var30 = var33; -goto RET_LABEL31; -RET_LABEL31:(void)0; } -if (var30){ -{ /* Inline kernel#Char#< (var_my_curr_char,var_its_curr_char) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var36 = 1; /* easy isa OTHER*/ -if (!var36) { -var_class_name39 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 437); +{ +var32 = kernel__Char__to_upper(var29); +} +{ +{ /* Inline string#NativeString#[]= (var_outstr,var_out_index,var32) on */ +var_outstr[var_out_index]=var32; +RET_LABEL33:(void)0; +} +} +var34 = 1; +{ +{ /* Inline kernel#Int#+ (var_out_index,var34) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var37 = 1; /* easy isa OTHER*/ +if (unlikely(!var37)) { +var_class_name40 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var40 = var_my_curr_char < var_its_curr_char; -var34 = var40; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var41 = var_out_index + var34; +var35 = var41; +goto RET_LABEL36; +RET_LABEL36:(void)0; } -if (var34){ -var41 = 1; -var = var41; -goto RET_LABEL; -} else { } -var42 = 0; -var = var42; -goto RET_LABEL; -} else { +var_out_index = var35; +var42 = 1; +{ +{ /* Inline kernel#Int#+ (var_index_from,var42) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var45 = 1; /* easy isa OTHER*/ +if (unlikely(!var45)) { +var_class_name48 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -var43 = 1; -{ /* Inline kernel#Int#+ (var_curr_id_self,var43) */ -var46 = var_curr_id_self + var43; -var44 = var46; -goto RET_LABEL45; -RET_LABEL45:(void)0; +var49 = var_index_from + var42; +var43 = var49; +goto RET_LABEL44; +RET_LABEL44:(void)0; } -var_curr_id_self = var44; -var47 = 1; -{ /* Inline kernel#Int#+ (var_curr_id_other,var47) */ -var50 = var_curr_id_other + var47; -var48 = var50; -goto RET_LABEL49; -RET_LABEL49:(void)0; } -var_curr_id_other = var48; -CONTINUE_label: (void)0; +var_index_from = var43; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; -{ /* Inline kernel#Int#< (var_my_length,var_its_length) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var53 = 1; /* easy isa OTHER*/ -if (!var53) { -var_class_name56 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); +{ +{ /* Inline string#FlatText#length (self) on */ +var52 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var50 = var52; +RET_LABEL51:(void)0; +} +} +var53 = '\0'; +{ +{ /* Inline string#NativeString#[]= (var_outstr,var50,var53) on */ +var_outstr[var50]=var53; +RET_LABEL54:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var57 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var55 = var57; +RET_LABEL56:(void)0; } -var57 = var_my_length < var_its_length; -var51 = var57; -goto RET_LABEL52; -RET_LABEL52:(void)0; } -var = var51; +{ +var58 = string__NativeString__to_s_with_length(var_outstr, var55); +} +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype60 = type_struct->color; +idtype61 = type_struct->id; +if(cltype60 >= var58->type->table_size) { +var59 = 0; +} else { +var59 = var58->type->type_table[cltype60] == idtype61; +} +if (unlikely(!var59)) { +var_class_name62 = var58 == NULL ? "null" : var58->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name62); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1009); +show_backtrace(1); +} +var = var58; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#< for (self: Object, Comparable): Bool */ -short int VIRTUAL_string__String___60d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = string__String___60d(self, p0); +/* method string#FlatString#to_upper for (self: Object): String */ +val* VIRTUAL_string__FlatString__to_upper(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = string__FlatString__to_upper(self); var = var1; RET_LABEL:; return var; } -/* method string#String#+ for (self: String, String): String */ -val* string__String___43d(val* self, val* p0) { +/* method string#FlatString#to_lower for (self: FlatString): String */ +val* string__FlatString__to_lower(val* self) { val* var /* : String */; -val* var_s /* var s: String */; long var1 /* : Int */; -long var_my_length /* var my_length: Int */; -long var2 /* : Int */; -long var_its_length /* var its_length: Int */; long var3 /* : Int */; +long var4 /* : Int */; long var5 /* : Int */; -long var_total_length /* var total_length: Int */; -long var6 /* : Int */; +short int var7 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; long var8 /* : Int */; -long var9 /* : Int */; -long var10 /* : Int */; +char* var9 /* : NativeString */; +char* var11 /* : NativeString */; +char* var_outstr /* var outstr: NativeString */; long var12 /* : Int */; +long var_out_index /* var out_index: Int */; char* var13 /* : NativeString */; -char* var_target_string /* var target_string: NativeString */; -char* var14 /* : NativeString */; -long var15 /* : Int */; +char* var15 /* : NativeString */; +char* var_myitems /* var myitems: NativeString */; long var16 /* : Int */; -char* var18 /* : NativeString */; +long var18 /* : Int */; +long var_index_from /* var index_from: Int */; long var19 /* : Int */; -char var21 /* : Char */; -val* var23 /* : String */; -var_s = p0; -var1 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var_my_length = var1; -var2 = var_s->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var_its_length = var2; -{ /* Inline kernel#Int#+ (var_my_length,var_its_length) */ -var5 = var_my_length + var_its_length; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -var_total_length = var3; -{ /* Inline kernel#Int#+ (var_my_length,var_its_length) */ -var8 = var_my_length + var_its_length; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +long var21 /* : Int */; +long var_max /* var max: Int */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +short int var28 /* : Bool */; +char var29 /* : Char */; +char var31 /* : Char */; +char var32 /* : Char */; +long var34 /* : Int */; +long var35 /* : Int */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +const char* var_class_name40; +long var41 /* : Int */; +long var42 /* : Int */; +long var43 /* : Int */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +const char* var_class_name48; +long var49 /* : Int */; +long var50 /* : Int */; +long var52 /* : Int */; +char var53 /* : Char */; +long var55 /* : Int */; +long var57 /* : Int */; +val* var58 /* : FlatString */; +short int var59 /* : Bool */; +int cltype60; +int idtype61; +const struct type* type_struct; +const char* var_class_name62; +{ +{ /* Inline string#FlatText#length (self) on */ +var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; } -var9 = 1; -{ /* Inline kernel#Int#+ (var6,var9) */ -var12 = var6 + var9; -var10 = var12; -goto RET_LABEL11; -RET_LABEL11:(void)0; } -var13 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var10) /* calloc_string on */; -var_target_string = var13; -var14 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var15 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var16 = 0; -{ /* Inline string#NativeString#copy_to (var14,var_target_string,var_my_length,var15,var16) */ -memcpy(var_target_string+var16,var14+var15,var_my_length); -RET_LABEL17:(void)0; +var4 = 1; +{ +{ /* Inline kernel#Int#+ (var1,var4) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var7 = 1; /* easy isa OTHER*/ +if (unlikely(!var7)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -var18 = var_s->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var19 = var_s->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -{ /* Inline string#NativeString#copy_to (var18,var_target_string,var_its_length,var19,var_my_length) */ -memcpy(var_target_string+var_my_length,var18+var19,var_its_length); -RET_LABEL20:(void)0; +var8 = var1 + var4; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var21 = '\0'; -{ /* Inline string#NativeString#[]= (var_target_string,var_total_length,var21) */ -var_target_string[var_total_length]=var21; -RET_LABEL22:(void)0; } -var23 = string__NativeString__to_s_with_length(var_target_string, var_total_length); -var = var23; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +{ /* Inline string#StringCapable#calloc_string (self,var5) on */ +var11 = (char*)nit_alloc(var5); +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; } -/* method string#String#+ for (self: Object, String): String */ -val* VIRTUAL_string__String___43d(val* self, val* p0) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String___43d(self, p0); -var = var1; -RET_LABEL:; -return var; } -/* method string#String#* for (self: String, Int): String */ -val* string__String___42d(val* self, long p0) { -val* var /* : String */; -long var_i /* var i: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var5 /* : Bool */; -long var6 /* : Int */; -long var_my_length /* var my_length: Int */; -long var7 /* : Int */; -long var9 /* : Int */; -long var_final_length /* var final_length: Int */; -char* var10 /* : NativeString */; -char* var_my_items /* var my_items: NativeString */; -long var11 /* : Int */; -long var12 /* : Int */; -long var14 /* : Int */; -char* var15 /* : NativeString */; -char* var_target_string /* var target_string: NativeString */; -char var16 /* : Char */; -long var18 /* : Int */; -long var_current_last /* var current_last: Int */; -val* var19 /* : Range[Int] */; -long var20 /* : Int */; -val* var21 /* : Discrete */; -val* var22 /* : Discrete */; -val* var23 /* : Iterator[nullable Object] */; -short int var24 /* : Bool */; -val* var25 /* : nullable Object */; -long var_iteration /* var iteration: Int */; -long var26 /* : Int */; -long var27 /* : Int */; -long var29 /* : Int */; -long var31 /* : Int */; -val* var32 /* : String */; -var_i = p0; -var1 = 0; -{ /* Inline kernel#Int#>= (var_i,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); -show_backtrace(1); +var_outstr = var9; +var12 = 0; +var_out_index = var12; +{ +{ /* Inline string#FlatText#items (self) on */ +var15 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var13 = var15; +RET_LABEL14:(void)0; } -var5 = var_i >= var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; } -if (!var2) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 635); -show_backtrace(1); +var_myitems = var13; +{ +{ /* Inline string#FlatString#index_from (self) on */ +var18 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var16 = var18; +RET_LABEL17:(void)0; } -var6 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var_my_length = var6; -{ /* Inline kernel#Int#* (var_my_length,var_i) */ -var9 = var_my_length * var_i; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; } -var_final_length = var7; -var10 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_my_items = var10; -var11 = 1; -{ /* Inline kernel#Int#+ (var_final_length,var11) */ -var14 = var_final_length + var11; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var_index_from = var16; +{ +{ /* Inline string#FlatString#index_to (self) on */ +var21 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var19 = var21; +RET_LABEL20:(void)0; } -var15 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var12) /* calloc_string on */; -var_target_string = var15; -var16 = '\0'; -{ /* Inline string#NativeString#[]= (var_target_string,var_final_length,var16) */ -var_target_string[var_final_length]=var16; -RET_LABEL17:(void)0; } -var18 = 0; -var_current_last = var18; -var19 = NEW_range__Range(&type_range__Rangekernel__Int); -var20 = 1; -var21 = BOX_kernel__Int(var20); /* autobox from Int to Discrete */ -var22 = BOX_kernel__Int(var_i); /* autobox from Int to Discrete */ -((void (*)(val*, val*, val*))(var19->class->vft[COLOR_range__Range__init]))(var19, var21, var22) /* init on */; -var23 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__iterator]))(var19) /* iterator on */; +var_max = var19; for(;;) { -var24 = ((short int (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var23) /* is_ok on */; -if(!var24) break; -var25 = ((val* (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__item]))(var23) /* item on */; -var26 = ((struct instance_kernel__Int*)var25)->value; /* autounbox from nullable Object to Int */; -var_iteration = var26; -var27 = 0; -{ /* Inline string#NativeString#copy_to (var_my_items,var_target_string,var_my_length,var27,var_current_last) */ -memcpy(var_target_string+var_current_last,var_my_items+var27,var_my_length); -RET_LABEL28:(void)0; +{ +{ /* Inline kernel#Int#<= (var_index_from,var_max) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var24 = 1; /* easy isa OTHER*/ +if (unlikely(!var24)) { +var_class_name27 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var28 = var_index_from <= var_max; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -{ /* Inline kernel#Int#+ (var_current_last,var_my_length) */ -var31 = var_current_last + var_my_length; +} +if (var22){ +{ +{ /* Inline string#NativeString#[] (var_myitems,var_index_from) on */ +var31 = var_myitems[var_index_from]; var29 = var31; goto RET_LABEL30; RET_LABEL30:(void)0; } -var_current_last = var29; -CONTINUE_label: (void)0; -((void (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__next]))(var23) /* next on */; } -BREAK_label: (void)0; -var32 = string__NativeString__to_s_with_length(var_target_string, var_final_length); -var = var32; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +var32 = kernel__Char__to_lower(var29); } -/* method string#String#* for (self: Object, Int): String */ -val* VIRTUAL_string__String___42d(val* self, long p0) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String___42d(self, p0); -var = var1; -RET_LABEL:; -return var; +{ +{ /* Inline string#NativeString#[]= (var_outstr,var_out_index,var32) on */ +var_outstr[var_out_index]=var32; +RET_LABEL33:(void)0; } -/* method string#String#to_s for (self: String): String */ -val* string__String__to_s(val* self) { -val* var /* : String */; -var = self; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#String#to_s for (self: Object): String */ -val* VIRTUAL_string__String__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__String__to_s(self); -var = var1; -RET_LABEL:; -return var; +var34 = 1; +{ +{ /* Inline kernel#Int#+ (var_out_index,var34) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var37 = 1; /* easy isa OTHER*/ +if (unlikely(!var37)) { +var_class_name40 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -/* method string#String#hash for (self: String): Int */ -long string__String__hash(val* self) { -long var /* : Int */; -long var1 /* : Int */; -long var_h /* var h: Int */; -long var2 /* : Int */; -long var3 /* : Int */; -long var4 /* : Int */; -long var6 /* : Int */; -long var_i /* var i: Int */; -char* var7 /* : NativeString */; -char* var_myitems /* var myitems: NativeString */; -long var8 /* : Int */; -long var_strStart /* var strStart: Int */; -long var9 /* : Int */; -long var11 /* : Int */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var15 /* : Bool */; -long var16 /* : Int */; -long var17 /* : Int */; -long var19 /* : Int */; -long var20 /* : Int */; -long var22 /* : Int */; -char* var23 /* : NativeString */; -char var24 /* : Char */; -char var26 /* : Char */; -long var27 /* : Int */; -long var29 /* : Int */; -long var30 /* : Int */; -long var32 /* : Int */; -long var33 /* : Int */; -long var34 /* : Int */; -long var36 /* : Int */; -var1 = 5381; -var_h = var1; -var2 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var3 = 1; -{ /* Inline kernel#Int#- (var2,var3) */ -var6 = var2 - var3; -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var41 = var_out_index + var34; +var35 = var41; +goto RET_LABEL36; +RET_LABEL36:(void)0; } -var_i = var4; -var7 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_myitems = var7; -var8 = self->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var_strStart = var8; -{ /* Inline kernel#Int#+ (var_i,var_strStart) */ -var11 = var_i + var_strStart; -var9 = var11; -goto RET_LABEL10; -RET_LABEL10:(void)0; } -var_i = var9; -for(;;) { -{ /* Inline kernel#Int#>= (var_i,var_strStart) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var14 = 1; /* easy isa OTHER*/ -if (!var14) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); +var_out_index = var35; +var42 = 1; +{ +{ /* Inline kernel#Int#+ (var_index_from,var42) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var45 = 1; /* easy isa OTHER*/ +if (unlikely(!var45)) { +var_class_name48 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var15 = var_i >= var_strStart; -var12 = var15; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var49 = var_index_from + var42; +var43 = var49; +goto RET_LABEL44; +RET_LABEL44:(void)0; } -if (!var12) break; -var16 = 32; -{ /* Inline kernel#Int#* (var_h,var16) */ -var19 = var_h * var16; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; } -{ /* Inline kernel#Int#+ (var17,var_h) */ -var22 = var17 + var_h; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +var_index_from = var43; +} else { +goto BREAK_label; } -var23 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[] (var23,var_i) */ -var26 = var23[var_i]; -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; } -{ /* Inline kernel#Char#ascii (var24) */ -var29 = (unsigned char)var24; -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; +BREAK_label: (void)0; +{ +{ /* Inline string#FlatText#length (self) on */ +var52 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var50 = var52; +RET_LABEL51:(void)0; } -{ /* Inline kernel#Int#+ (var20,var27) */ -var32 = var20 + var27; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; } -var_h = var30; -var33 = 1; -{ /* Inline kernel#Int#- (var_i,var33) */ -var36 = var_i - var33; -var34 = var36; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var53 = '\0'; +{ +{ /* Inline string#NativeString#[]= (var_outstr,var50,var53) on */ +var_outstr[var50]=var53; +RET_LABEL54:(void)0; } -var_i = var34; -CONTINUE_label: (void)0; } -BREAK_label: (void)0; -var = var_h; +{ +{ /* Inline string#FlatText#length (self) on */ +var57 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var55 = var57; +RET_LABEL56:(void)0; +} +} +{ +var58 = string__NativeString__to_s_with_length(var_outstr, var55); +} +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype60 = type_struct->color; +idtype61 = type_struct->id; +if(cltype60 >= var58->type->table_size) { +var59 = 0; +} else { +var59 = var58->type->type_table[cltype60] == idtype61; +} +if (unlikely(!var59)) { +var_class_name62 = var58 == NULL ? "null" : var58->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name62); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1029); +show_backtrace(1); +} +var = var58; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#String#hash for (self: Object): Int */ -long VIRTUAL_string__String__hash(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = string__String__hash(self); +/* method string#FlatString#to_lower for (self: Object): String */ +val* VIRTUAL_string__FlatString__to_lower(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = string__FlatString__to_lower(self); var = var1; RET_LABEL:; return var; } -/* method string#Buffer#[]= for (self: Buffer, Int, Char) */ -void string__Buffer___91d_93d_61d(val* self, long p0, char p1) { -short int var /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -long var_index /* var index: Int */; -char var_item /* var item: Char */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -val* var5 /* : nullable Object */; -short int var6 /* : Bool */; -long var7 /* : Int */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -const char* var_class_name13; -short int var14 /* : Bool */; -short int var_ /* var : Bool */; -long var15 /* : Int */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -const char* var_class_name21; -short int var22 /* : Bool */; -char* var23 /* : NativeString */; -/* Covariant cast for argument 1 (item) isa Sequence#0 */ -/* isa Sequence#0 */ -var = 1; /* easy isa Sequence#0*/ -if (!var) { -var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 688); -show_backtrace(1); -} -var_index = p0; -var_item = p1; -var1 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#== (var_index,var1) */ -var4 = var_index == var1; -var2 = var4; -goto RET_LABEL3; -RET_LABEL3:(void)0; +/* method string#FlatString#with_infos for (self: FlatString, NativeString, Int, Int, Int) */ +void string__FlatString__with_infos(val* self, char* p0, long p1, long p2, long p3) { +char* var_items /* var items: NativeString */; +long var_len /* var len: Int */; +long var_from /* var from: Int */; +long var_to /* var to: Int */; +{ +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; } -if (var2){ -var5 = BOX_kernel__Char(var_item); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(self, var5) /* add on */; -goto RET_LABEL; -} else { +var_items = p0; +var_len = p1; +var_from = p2; +var_to = p3; +{ +{ /* Inline string#FlatText#items= (self,var_items) on */ +self->attrs[COLOR_string__FlatText___items].str = var_items; /* _items on */ +RET_LABEL1:(void)0; } -var7 = 0; -{ /* Inline kernel#Int#>= (var_index,var7) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var10 = 1; /* easy isa OTHER*/ -if (!var10) { -var_class_name13 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); -show_backtrace(1); } -var14 = var_index >= var7; -var8 = var14; -goto RET_LABEL9; -RET_LABEL9:(void)0; +{ +{ /* Inline string#FlatText#length= (self,var_len) on */ +self->attrs[COLOR_string__FlatText___length].l = var_len; /* _length on */ +RET_LABEL2:(void)0; } -var_ = var8; -if (var8){ -var15 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#< (var_index,var15) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var18 = 1; /* easy isa OTHER*/ -if (!var18) { -var_class_name21 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); } -var22 = var_index < var15; -var16 = var22; -goto RET_LABEL17; -RET_LABEL17:(void)0; +{ +{ /* Inline string#FlatString#index_from= (self,var_from) on */ +self->attrs[COLOR_string__FlatString___index_from].l = var_from; /* _index_from on */ +RET_LABEL3:(void)0; } -var6 = var16; -} else { -var6 = var_; } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 694); -show_backtrace(1); +{ +{ /* Inline string#FlatString#index_to= (self,var_to) on */ +self->attrs[COLOR_string__FlatString___index_to].l = var_to; /* _index_to on */ +RET_LABEL4:(void)0; } -var23 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -{ /* Inline string#NativeString#[]= (var23,var_index,var_item) */ -var23[var_index]=var_item; -RET_LABEL24:(void)0; } RET_LABEL:; } -/* method string#Buffer#[]= for (self: Object, Int, nullable Object) */ -void VIRTUAL_string__Buffer___91d_93d_61d(val* self, long p0, val* p1) { -char var /* : Char */; -var = ((struct instance_kernel__Char*)p1)->value; /* autounbox from nullable Object to Char */; -string__Buffer___91d_93d_61d(self, p0, var); +/* method string#FlatString#with_infos for (self: Object, NativeString, Int, Int, Int) */ +void VIRTUAL_string__FlatString__with_infos(val* self, char* p0, long p1, long p2, long p3) { +string__FlatString__with_infos(self, p0, p1, p2, p3); /* Direct call string#FlatString#with_infos on */ RET_LABEL:; } -/* method string#Buffer#add for (self: Buffer, Char) */ -void string__Buffer__add(val* self, char p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -char var_c /* var c: Char */; -long var1 /* : Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; +/* method string#FlatString#to_cstring for (self: FlatString): NativeString */ +char* string__FlatString__to_cstring(val* self) { +char* var /* : NativeString */; +val* var1 /* : nullable NativeString */; +val* var3 /* : nullable NativeString */; +val* var4 /* : null */; short int var5 /* : Bool */; -int cltype6; -int idtype7; -const char* var_class_name8; -short int var9 /* : Bool */; -long var10 /* : Int */; -long var11 /* : Int */; -long var12 /* : Int */; -long var14 /* : Int */; -char* var15 /* : NativeString */; -long var16 /* : Int */; -val* var_ /* var : Buffer */; -long var18 /* : Int */; +short int var6 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var8 /* : Bool */; +val* var_other10 /* var other: nullable Object */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +val* var15 /* : nullable NativeString */; +val* var17 /* : nullable NativeString */; +char* var18 /* : NativeString */; long var19 /* : Int */; -long var20 /* : Int */; +long var21 /* : Int */; long var22 /* : Int */; -/* Covariant cast for argument 0 (c) isa SimpleCollection#0 */ -/* isa SimpleCollection#0 */ -var = 1; /* easy isa SimpleCollection#0*/ -if (!var) { -var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SimpleCollection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 698); -show_backtrace(1); +long var23 /* : Int */; +short int var25 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var26 /* : Int */; +char* var27 /* : NativeString */; +char* var29 /* : NativeString */; +char* var_newItems /* var newItems: NativeString */; +char* var30 /* : NativeString */; +char* var32 /* : NativeString */; +long var33 /* : Int */; +long var35 /* : Int */; +long var36 /* : Int */; +long var38 /* : Int */; +long var39 /* : Int */; +long var41 /* : Int */; +long var43 /* : Int */; +char var44 /* : Char */; +val* var47 /* : nullable NativeString */; +{ +{ /* Inline string#FlatText#real_items (self) on */ +var3 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on */ +var1 = var3; +RET_LABEL2:(void)0; } -var_c = p0; -var1 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on */ -var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline kernel#Int#<= (var1,var2) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (!var5) { -var_class_name8 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); -show_backtrace(1); } -var9 = var1 <= var2; -var3 = var9; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var4 = NULL; +if (var1 == NULL) { +var5 = 0; /* is null */ +} else { +var5 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var1,var4) on */ +var_other = var4; +{ /* Inline kernel#Object#== (var1,var_other) on */ +var_other10 = var_other; +{ +{ /* Inline kernel#Object#is_same_instance (var1,var_other10) on */ +var13 = var1 == var_other10 || (var_other10 != NULL && var1->class == var_other10->class && ((struct instance_string__NativeString*)var1)->value == ((struct instance_string__NativeString*)var_other10)->value); +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -if (var3){ -var10 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var11 = 5; -{ /* Inline kernel#Int#+ (var10,var11) */ -var14 = var10 + var11; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; } -((void (*)(val*, long))(self->class->vft[COLOR_array__AbstractArray__enlarge]))(self, var12) /* enlarge on */; -} else { +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; } -var15 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var16 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -{ /* Inline string#NativeString#[]= (var15,var16,var_c) */ -var15[var16]=var_c; -RET_LABEL17:(void)0; +var14 = !var8; +var6 = var14; +goto RET_LABEL7; +RET_LABEL7:(void)0; } -var_ = self; -var18 = var_->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var19 = 1; -{ /* Inline kernel#Int#+ (var18,var19) */ -var22 = var18 + var19; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +var5 = var6; } -var_->attrs[COLOR_array__AbstractArrayRead___length].l = var20; /* _length on */ -RET_LABEL:; +if (var5){ +{ +{ /* Inline string#FlatText#real_items (self) on */ +var17 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on */ +var15 = var17; +RET_LABEL16:(void)0; } -/* method string#Buffer#add for (self: Object, nullable Object) */ -void VIRTUAL_string__Buffer__add(val* self, val* p0) { -char var /* : Char */; -var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */; -string__Buffer__add(self, var); -RET_LABEL:; } -/* method string#Buffer#enlarge for (self: Buffer, Int) */ -void string__Buffer__enlarge(val* self, long p0) { -long var_cap /* var cap: Int */; -long var /* : Int */; -long var_c /* var c: Int */; -short int var1 /* : Bool */; -short int var3 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -const char* var_class_name10; -short int var11 /* : Bool */; -long var12 /* : Int */; -long var13 /* : Int */; -long var15 /* : Int */; -long var16 /* : Int */; -long var17 /* : Int */; -long var19 /* : Int */; -long var20 /* : Int */; -long var21 /* : Int */; -long var23 /* : Int */; -char* var24 /* : NativeString */; -char* var_a /* var a: NativeString */; -char* var25 /* : NativeString */; -long var26 /* : Int */; -long var27 /* : Int */; -long var28 /* : Int */; -var_cap = p0; -var = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on */ -var_c = var; -{ /* Inline kernel#Int#<= (var_cap,var_c) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var3 = 1; /* easy isa OTHER*/ -if (!var3) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1057); show_backtrace(1); } -var4 = var_cap <= var_c; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -if (var1){ +var18 = ((struct instance_string__NativeString*)var15)->value; /* autounbox from nullable NativeString to NativeString */; +var = var18; goto RET_LABEL; } else { +{ +{ /* Inline string#FlatText#length (self) on */ +var21 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var19 = var21; +RET_LABEL20:(void)0; } -for(;;) { -{ /* Inline kernel#Int#<= (var_c,var_cap) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var7 = 1; /* easy isa OTHER*/ -if (!var7) { -var_class_name10 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260); +} +var22 = 1; +{ +{ /* Inline kernel#Int#+ (var19,var22) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var25 = 1; /* easy isa OTHER*/ +if (unlikely(!var25)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var11 = var_c <= var_cap; -var5 = var11; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var26 = var19 + var22; +var23 = var26; +goto RET_LABEL24; +RET_LABEL24:(void)0; } -if (!var5) break; -var12 = 2; -{ /* Inline kernel#Int#* (var_c,var12) */ -var15 = var_c * var12; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; } -var16 = 2; -{ /* Inline kernel#Int#+ (var13,var16) */ -var19 = var13 + var16; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; +{ +{ /* Inline string#StringCapable#calloc_string (self,var23) on */ +var29 = (char*)nit_alloc(var23); +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; } -var_c = var17; -CONTINUE_label: (void)0; } -BREAK_label: (void)0; -var20 = 1; -{ /* Inline kernel#Int#+ (var_c,var20) */ -var23 = var_c + var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; +var_newItems = var27; +{ +{ /* Inline string#FlatText#items (self) on */ +var32 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var30 = var32; +RET_LABEL31:(void)0; } -var24 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var21) /* calloc_string on */; -var_a = var24; -var25 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var26 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var27 = 0; -var28 = 0; -{ /* Inline string#NativeString#copy_to (var25,var_a,var26,var27,var28) */ -memcpy(var_a+var28,var25+var27,var26); -RET_LABEL29:(void)0; } -self->attrs[COLOR_string__AbstractString___items].str = var_a; /* _items on */ -self->attrs[COLOR_string__Buffer___capacity].l = var_c; /* _capacity on */ +{ +{ /* Inline string#FlatText#length (self) on */ +var35 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var33 = var35; +RET_LABEL34:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (self) on */ +var38 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var36 = var38; +RET_LABEL37:(void)0; +} +} +var39 = 0; +{ +{ /* Inline string#NativeString#copy_to (var30,var_newItems,var33,var36,var39) on */ +memmove(var_newItems+var39,var30+var36,var33); +RET_LABEL40:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var43 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var41 = var43; +RET_LABEL42:(void)0; +} +} +var44 = '\0'; +{ +{ /* Inline string#NativeString#[]= (var_newItems,var41,var44) on */ +var_newItems[var41]=var44; +RET_LABEL45:(void)0; +} +} +{ +{ /* Inline string#FlatText#real_items= (self,var_newItems) on */ +var47 = BOX_string__NativeString(var_newItems); /* autobox from NativeString to nullable NativeString */ +self->attrs[COLOR_string__FlatText___real_items].val = var47; /* _real_items on */ +RET_LABEL46:(void)0; +} +} +var = var_newItems; +goto RET_LABEL; +} RET_LABEL:; +return var; } -/* method string#Buffer#enlarge for (self: Object, Int) */ -void VIRTUAL_string__Buffer__enlarge(val* self, long p0) { -string__Buffer__enlarge(self, p0); +/* method string#FlatString#to_cstring for (self: Object): NativeString */ +char* VIRTUAL_string__FlatString__to_cstring(val* self) { +char* var /* : NativeString */; +char* var1 /* : NativeString */; +var1 = string__FlatString__to_cstring(self); +var = var1; RET_LABEL:; +return var; } -/* method string#Buffer#append for (self: Buffer, Collection[Char]) */ -void string__Buffer__append(val* self, val* p0) { +/* method string#FlatString#== for (self: FlatString, nullable Object): Bool */ +short int string__FlatString___61d_61d(val* self, val* p0) { short int var /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var1 /* : Bool */; int cltype; int idtype; -const char* var_class_name; -val* var_s /* var s: Collection[Char] */; -short int var1 /* : Bool */; -int cltype2; -int idtype3; -long var4 /* : Int */; -long var_sl /* var sl: Int */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; long var5 /* : Int */; -long var6 /* : Int */; long var7 /* : Int */; -long var9 /* : Int */; -short int var10 /* : Bool */; +long var8 /* : Int */; +long var10 /* : Int */; +short int var11 /* : Bool */; short int var12 /* : Bool */; -int cltype13; -int idtype14; -const char* var_class_name15; -short int var16 /* : Bool */; -long var17 /* : Int */; -long var18 /* : Int */; -long var20 /* : Int */; -char* var21 /* : NativeString */; -char* var22 /* : NativeString */; -long var23 /* : Int */; -long var24 /* : Int */; -val* var_ /* var : Buffer */; -long var26 /* : Int */; -long var27 /* : Int */; -long var29 /* : Int */; -/* Covariant cast for argument 0 (s) isa Collection[Sequence#0] */ -/* isa Collection[Sequence#0] */ -var = 1; /* easy isa Collection[Sequence#0]*/ -if (!var) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Sequence#0]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 716); -show_backtrace(1); -} -var_s = p0; -/* isa String */ -cltype2 = type_string__String.color; -idtype3 = type_string__String.id; -if(cltype2 >= var_s->type->table_size) { +short int var14 /* : Bool */; +short int var15 /* : Bool */; +long var16 /* : Int */; +long var18 /* : Int */; +long var_my_length /* var my_length: Int */; +long var19 /* : Int */; +long var21 /* : Int */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +short int var27 /* : Bool */; +long var28 /* : Int */; +long var30 /* : Int */; +long var_my_index /* var my_index: Int */; +long var31 /* : Int */; +long var33 /* : Int */; +long var_its_index /* var its_index: Int */; +long var34 /* : Int */; +short int var36 /* : Bool */; +int cltype37; +int idtype38; +const char* var_class_name; +long var39 /* : Int */; +long var_last_iteration /* var last_iteration: Int */; +char* var40 /* : NativeString */; +char* var42 /* : NativeString */; +char* var_itsitems /* var itsitems: NativeString */; +char* var43 /* : NativeString */; +char* var45 /* : NativeString */; +char* var_myitems /* var myitems: NativeString */; +short int var46 /* : Bool */; +short int var48 /* : Bool */; +int cltype49; +int idtype50; +const char* var_class_name51; +short int var52 /* : Bool */; +char var53 /* : Char */; +char var55 /* : Char */; +char var56 /* : Char */; +char var58 /* : Char */; +short int var59 /* : Bool */; +short int var60 /* : Bool */; +short int var62 /* : Bool */; +short int var63 /* : Bool */; +short int var64 /* : Bool */; +long var65 /* : Int */; +long var66 /* : Int */; +short int var68 /* : Bool */; +int cltype69; +int idtype70; +const char* var_class_name71; +long var72 /* : Int */; +long var73 /* : Int */; +long var74 /* : Int */; +short int var76 /* : Bool */; +int cltype77; +int idtype78; +const char* var_class_name79; +long var80 /* : Int */; +short int var81 /* : Bool */; +var_other = p0; +/* isa FlatString */ +cltype = type_string__FlatString.color; +idtype = type_string__FlatString.id; +if(var_other == NULL) { var1 = 0; } else { -var1 = var_s->type->type_table[cltype2] == idtype3; -} -if (var1){ -var4 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -var_sl = var4; -var5 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on */ -var6 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline kernel#Int#+ (var6,var_sl) */ -var9 = var6 + var_sl; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; -} -{ /* Inline kernel#Int#< (var5,var7) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var12 = 1; /* easy isa OTHER*/ -if (!var12) { -var_class_name15 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); -} -var16 = var5 < var7; -var10 = var16; -goto RET_LABEL11; -RET_LABEL11:(void)0; -} -if (var10){ -var17 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline kernel#Int#+ (var17,var_sl) */ -var20 = var17 + var_sl; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; -} -((void (*)(val*, long))(self->class->vft[COLOR_array__AbstractArray__enlarge]))(self, var18) /* enlarge on */; +if(cltype >= var_other->type->table_size) { +var1 = 0; } else { +var1 = var_other->type->type_table[cltype] == idtype; } -var21 = ((char* (*)(val*))(var_s->class->vft[COLOR_string__AbstractString__items]))(var_s) /* items on */; -var22 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var23 = var_s->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var24 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline string#NativeString#copy_to (var21,var22,var_sl,var23,var24) */ -memcpy(var22+var24,var21+var23,var_sl); -RET_LABEL25:(void)0; } -var_ = self; -var26 = var_->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -{ /* Inline kernel#Int#+ (var26,var_sl) */ -var29 = var26 + var_sl; -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; +var2 = !var1; +if (var2){ +{ +var4 = ((short int (*)(val*, val*))(self->class->vft[COLOR_string__FlatString___61d_61d]))(self, p0) /* == on */; +var3 = var4; } -var_->attrs[COLOR_array__AbstractArrayRead___length].l = var27; /* _length on */ +var = var3; +goto RET_LABEL; } else { -((void (*)(val*, val*))(self->class->vft[COLOR_string__Buffer__append]))(self, p0) /* append on */; } -RET_LABEL:; +{ +{ /* Inline kernel#Object#object_id (self) on */ +var7 = (long)self; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -/* method string#Buffer#append for (self: Object, Collection[nullable Object]) */ -void VIRTUAL_string__Buffer__append(val* self, val* p0) { -string__Buffer__append(self, p0); -RET_LABEL:; } -/* method string#Buffer#to_s for (self: Buffer): String */ -val* string__Buffer__to_s(val* self) { -val* var /* : String */; -long var1 /* : Int */; -long var_l /* var l: Int */; -long var2 /* : Int */; -long var3 /* : Int */; -long var5 /* : Int */; -char* var6 /* : NativeString */; -char* var_a /* var a: NativeString */; -char* var7 /* : NativeString */; -long var8 /* : Int */; -long var9 /* : Int */; -long var11 /* : Int */; -char var12 /* : Char */; -long var14 /* : Int */; -val* var15 /* : String */; -var1 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var_l = var1; -var2 = 1; -{ /* Inline kernel#Int#+ (var_l,var2) */ -var5 = var_l + var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +{ +{ /* Inline kernel#Object#object_id (var_other) on */ +var10 = (long)var_other; +var8 = var10; +goto RET_LABEL9; +RET_LABEL9:(void)0; } -var6 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var3) /* calloc_string on */; -var_a = var6; -var7 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var8 = 0; -var9 = 0; -{ /* Inline string#NativeString#copy_to (var7,var_a,var_l,var8,var9) */ -memcpy(var_a+var9,var7+var8,var_l); -RET_LABEL10:(void)0; } -var11 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var12 = '\0'; -{ /* Inline string#NativeString#[]= (var_a,var11,var12) */ -var_a[var11]=var12; +{ +{ /* Inline kernel#Int#== (var5,var8) on */ +var14 = var5 == var8; +var12 = var14; +goto RET_LABEL13; RET_LABEL13:(void)0; } -var14 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var15 = string__NativeString__to_s_with_length(var_a, var14); +var11 = var12; +} +if (var11){ +var15 = 1; var = var15; goto RET_LABEL; -RET_LABEL:; -return var; +} else { } -/* method string#Buffer#to_s for (self: Object): String */ -val* VIRTUAL_string__Buffer__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Buffer__to_s(self); -var = var1; -RET_LABEL:; -return var; +{ +{ /* Inline string#FlatText#length (self) on */ +var18 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var16 = var18; +RET_LABEL17:(void)0; } -/* method string#Buffer#< for (self: Buffer, String): Bool */ -short int string__Buffer___60d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -const char* var_class_name; -val* var_s /* var s: String */; -long var2 /* : Int */; -long var_i /* var i: Int */; -long var3 /* : Int */; -long var_l1 /* var l1: Int */; -long var4 /* : Int */; -long var_l2 /* var l2: Int */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -const char* var_class_name11; -short int var12 /* : Bool */; -short int var_ /* var : Bool */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -const char* var_class_name18; -short int var19 /* : Bool */; -val* var20 /* : nullable Object */; -long var21 /* : Int */; -char var23 /* : Char */; -long var24 /* : Int */; -long var_c1 /* var c1: Int */; -val* var25 /* : nullable Object */; -long var26 /* : Int */; -char var28 /* : Char */; -long var29 /* : Int */; -long var_c2 /* var c2: Int */; -short int var30 /* : Bool */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -const char* var_class_name35; -short int var36 /* : Bool */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -short int var40 /* : Bool */; -int cltype41; -int idtype42; -const char* var_class_name43; -short int var44 /* : Bool */; -short int var45 /* : Bool */; -long var46 /* : Int */; -long var47 /* : Int */; -long var49 /* : Int */; -short int var50 /* : Bool */; -short int var52 /* : Bool */; -int cltype53; -int idtype54; -const char* var_class_name55; -short int var56 /* : Bool */; -short int var57 /* : Bool */; -short int var58 /* : Bool */; -/* Covariant cast for argument 0 (s) isa OTHER */ -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 740); -show_backtrace(1); +var_my_length = var16; +{ +{ /* Inline string#FlatText#length (var_other) on */ +var21 = var_other->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var19 = var21; +RET_LABEL20:(void)0; } -var_s = p0; -var2 = 0; -var_i = var2; -var3 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var_l1 = var3; -var4 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -var_l2 = var4; -for(;;) { -{ /* Inline kernel#Int#< (var_i,var_l1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (!var8) { -var_class_name11 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); } -var12 = var_i < var_l1; -var6 = var12; -goto RET_LABEL7; -RET_LABEL7:(void)0; +{ +{ /* Inline kernel#Int#!= (var19,var_my_length) on */ +var25 = var19 == var_my_length; +var26 = !var25; +var23 = var26; +goto RET_LABEL24; +RET_LABEL24:(void)0; } -var_ = var6; -if (var6){ -{ /* Inline kernel#Int#< (var_i,var_l2) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var15 = 1; /* easy isa OTHER*/ -if (!var15) { -var_class_name18 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); -} -var19 = var_i < var_l2; -var13 = var19; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var22 = var23; } -var5 = var13; +if (var22){ +var27 = 0; +var = var27; +goto RET_LABEL; } else { -var5 = var_; } -if (!var5) break; -var20 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_i) /* [] on */; -{ /* Inline kernel#Char#ascii (var20) */ -var23 = ((struct instance_kernel__Char*)var20)->value; /* autounbox from nullable Object to Char */; -var24 = (unsigned char)var23; -var21 = var24; -goto RET_LABEL22; -RET_LABEL22:(void)0; +{ +{ /* Inline string#FlatString#index_from (self) on */ +var30 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var28 = var30; +RET_LABEL29:(void)0; } -var_c1 = var21; -var25 = ((val* (*)(val*, long))(var_s->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_s, var_i) /* [] on */; -{ /* Inline kernel#Char#ascii (var25) */ -var28 = ((struct instance_kernel__Char*)var25)->value; /* autounbox from nullable Object to Char */; -var29 = (unsigned char)var28; -var26 = var29; -goto RET_LABEL27; -RET_LABEL27:(void)0; } -var_c2 = var26; -{ /* Inline kernel#Int#< (var_c1,var_c2) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var32 = 1; /* easy isa OTHER*/ -if (!var32) { -var_class_name35 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); +var_my_index = var28; +{ +{ /* Inline string#FlatString#index_from (var_other) on */ +var33 = var_other->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var31 = var33; +RET_LABEL32:(void)0; } -var36 = var_c1 < var_c2; -var30 = var36; -goto RET_LABEL31; -RET_LABEL31:(void)0; } -if (var30){ -var37 = 1; -var = var37; -goto RET_LABEL; -} else { -{ /* Inline kernel#Int#< (var_c2,var_c1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var40 = 1; /* easy isa OTHER*/ -if (!var40) { -var_class_name43 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +var_its_index = var31; +{ +{ /* Inline kernel#Int#+ (var_my_index,var_my_length) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var36 = 1; /* easy isa OTHER*/ +if (unlikely(!var36)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var44 = var_c2 < var_c1; -var38 = var44; -goto RET_LABEL39; -RET_LABEL39:(void)0; +var39 = var_my_index + var_my_length; +var34 = var39; +goto RET_LABEL35; +RET_LABEL35:(void)0; } -if (var38){ -var45 = 0; -var = var45; -goto RET_LABEL; -} else { } +var_last_iteration = var34; +{ +{ /* Inline string#FlatText#items (var_other) on */ +var42 = var_other->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var40 = var42; +RET_LABEL41:(void)0; } -var46 = 1; -{ /* Inline kernel#Int#+ (var_i,var46) */ -var49 = var_i + var46; -var47 = var49; -goto RET_LABEL48; -RET_LABEL48:(void)0; } -var_i = var47; -CONTINUE_label: (void)0; +var_itsitems = var40; +{ +{ /* Inline string#FlatText#items (self) on */ +var45 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var43 = var45; +RET_LABEL44:(void)0; } -BREAK_label: (void)0; -{ /* Inline kernel#Int#< (var_l1,var_l2) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var52 = 1; /* easy isa OTHER*/ -if (!var52) { -var_class_name55 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +} +var_myitems = var43; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_my_index,var_last_iteration) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var48 = 1; /* easy isa OTHER*/ +if (unlikely(!var48)) { +var_class_name51 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); show_backtrace(1); } -var56 = var_l1 < var_l2; -var50 = var56; -goto RET_LABEL51; -RET_LABEL51:(void)0; +var52 = var_my_index < var_last_iteration; +var46 = var52; +goto RET_LABEL47; +RET_LABEL47:(void)0; } -if (var50){ -var57 = 1; -var = var57; -goto RET_LABEL; -} else { -var58 = 0; -var = var58; -goto RET_LABEL; } -RET_LABEL:; -return var; +if (var46){ +{ +{ /* Inline string#NativeString#[] (var_myitems,var_my_index) on */ +var55 = var_myitems[var_my_index]; +var53 = var55; +goto RET_LABEL54; +RET_LABEL54:(void)0; } -/* method string#Buffer#< for (self: Object, Comparable): Bool */ -short int VIRTUAL_string__Buffer___60d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = string__Buffer___60d(self, p0); -var = var1; -RET_LABEL:; -return var; } -/* method string#Buffer#init for (self: Buffer) */ -void string__Buffer__init(val* self) { -long var /* : Int */; -var = 5; -((void (*)(val*, long))(self->class->vft[COLOR_string__Buffer__with_capacity]))(self, var) /* with_capacity on */; -RET_LABEL:; +{ +{ /* Inline string#NativeString#[] (var_itsitems,var_its_index) on */ +var58 = var_itsitems[var_its_index]; +var56 = var58; +goto RET_LABEL57; +RET_LABEL57:(void)0; } -/* method string#Buffer#init for (self: Object) */ -void VIRTUAL_string__Buffer__init(val* self) { -string__Buffer__init(self); -RET_LABEL:; } -/* method string#Buffer#from for (self: Buffer, String) */ -void string__Buffer__from(val* self, val* p0) { -val* var_s /* var s: String */; -long var /* : Int */; -long var1 /* : Int */; -long var2 /* : Int */; -long var4 /* : Int */; -long var5 /* : Int */; -long var6 /* : Int */; -char* var7 /* : NativeString */; -char* var8 /* : NativeString */; -char* var9 /* : NativeString */; -long var10 /* : Int */; -long var11 /* : Int */; -long var12 /* : Int */; -var_s = p0; -((void (*)(val*))(self->class->vft[COLOR_string__AbstractString__init]))(self) /* init on */; -((void (*)(val*))(self->class->vft[COLOR_array__AbstractArray__init]))(self) /* init on */; -var = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -var1 = 1; -{ /* Inline kernel#Int#+ (var,var1) */ -var4 = var + var1; -var2 = var4; -goto RET_LABEL3; -RET_LABEL3:(void)0; +{ +{ /* Inline kernel#Char#!= (var53,var56) on */ +var62 = var53 == var56; +var63 = !var62; +var60 = var63; +goto RET_LABEL61; +RET_LABEL61:(void)0; } -self->attrs[COLOR_string__Buffer___capacity].l = var2; /* _capacity on */ -var5 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -self->attrs[COLOR_array__AbstractArrayRead___length].l = var5; /* _length on */ -var6 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on */ -var7 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var6) /* calloc_string on */; -self->attrs[COLOR_string__AbstractString___items].str = var7; /* _items on */ -var8 = ((char* (*)(val*))(var_s->class->vft[COLOR_string__AbstractString__items]))(var_s) /* items on */; -var9 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var10 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ -var11 = var_s->attrs[COLOR_string__String___index_from].l; /* _index_from on */ -var12 = 0; -{ /* Inline string#NativeString#copy_to (var8,var9,var10,var11,var12) */ -memcpy(var9+var12,var8+var11,var10); -RET_LABEL13:(void)0; +var59 = var60; } -RET_LABEL:; +if (var59){ +var64 = 0; +var = var64; +goto RET_LABEL; +} else { } -/* method string#Buffer#from for (self: Object, String) */ -void VIRTUAL_string__Buffer__from(val* self, val* p0) { -string__Buffer__from(self, p0); -RET_LABEL:; +var65 = 1; +{ +{ /* Inline kernel#Int#+ (var_my_index,var65) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var68 = 1; /* easy isa OTHER*/ +if (unlikely(!var68)) { +var_class_name71 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -/* method string#Buffer#with_capacity for (self: Buffer, Int) */ -void string__Buffer__with_capacity(val* self, long p0) { -long var_cap /* var cap: Int */; -long var /* : Int */; -short int var1 /* : Bool */; -short int var3 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var4 /* : Bool */; -long var5 /* : Int */; -long var6 /* : Int */; -long var8 /* : Int */; -char* var9 /* : NativeString */; -long var10 /* : Int */; -var_cap = p0; -((void (*)(val*))(self->class->vft[COLOR_string__AbstractString__init]))(self) /* init on */; -((void (*)(val*))(self->class->vft[COLOR_array__AbstractArray__init]))(self) /* init on */; -var = 0; -{ /* Inline kernel#Int#>= (var_cap,var) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var3 = 1; /* easy isa OTHER*/ -if (!var3) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); +var72 = var_my_index + var65; +var66 = var72; +goto RET_LABEL67; +RET_LABEL67:(void)0; +} +} +var_my_index = var66; +var73 = 1; +{ +{ /* Inline kernel#Int#+ (var_its_index,var73) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var76 = 1; /* easy isa OTHER*/ +if (unlikely(!var76)) { +var_class_name79 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var4 = var_cap >= var; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; +var80 = var_its_index + var73; +var74 = var80; +goto RET_LABEL75; +RET_LABEL75:(void)0; } -if (!var1) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 779); -show_backtrace(1); } -var5 = 1; -{ /* Inline kernel#Int#+ (var_cap,var5) */ -var8 = var_cap + var5; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var_its_index = var74; +} else { +goto BREAK_label; } -var9 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var6) /* calloc_string on */; -self->attrs[COLOR_string__AbstractString___items].str = var9; /* _items on */ -self->attrs[COLOR_string__Buffer___capacity].l = var_cap; /* _capacity on */ -var10 = 0; -self->attrs[COLOR_array__AbstractArrayRead___length].l = var10; /* _length on */ +} +BREAK_label: (void)0; +var81 = 1; +var = var81; +goto RET_LABEL; RET_LABEL:; +return var; } -/* method string#Buffer#with_capacity for (self: Object, Int) */ -void VIRTUAL_string__Buffer__with_capacity(val* self, long p0) { -string__Buffer__with_capacity(self, p0); +/* method string#FlatString#== for (self: Object, nullable Object): Bool */ +short int VIRTUAL_string__FlatString___61d_61d(val* self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__FlatString___61d_61d(self, p0); +var = var1; RET_LABEL:; +return var; } -/* method string#Buffer#== for (self: Buffer, nullable Object): Bool */ -short int string__Buffer___61d_61d(val* self, val* p0) { +/* method string#FlatString#< for (self: FlatString, Text): Bool */ +short int string__FlatString___60d(val* self, val* p0) { short int var /* : Bool */; -val* var_o /* var o: nullable Object */; short int var1 /* : Bool */; int cltype; int idtype; +const struct type* type_struct; +const char* var_class_name; +val* var_other /* var other: Text */; short int var2 /* : Bool */; -short int var3 /* : Bool */; -long var4 /* : Int */; -long var_l /* var l: Int */; -long var5 /* : Int */; +int cltype3; +int idtype4; +short int var5 /* : Bool */; short int var6 /* : Bool */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -long var11 /* : Int */; -long var_i /* var i: Int */; -char* var12 /* : NativeString */; -char* var_it /* var it: NativeString */; -char* var13 /* : NativeString */; -char* var_oit /* var oit: NativeString */; +long var7 /* : Int */; +long var9 /* : Int */; +long var10 /* : Int */; +long var12 /* : Int */; +short int var13 /* : Bool */; short int var14 /* : Bool */; short int var16 /* : Bool */; -int cltype17; -int idtype18; -const char* var_class_name; -short int var19 /* : Bool */; -char var20 /* : Char */; -char var22 /* : Char */; -char var23 /* : Char */; -char var25 /* : Char */; -short int var26 /* : Bool */; -short int var28 /* : Bool */; -short int var29 /* : Bool */; -short int var30 /* : Bool */; -long var31 /* : Int */; +short int var17 /* : Bool */; +long var18 /* : Int */; +long var20 /* : Int */; +long var_curr_id_self /* var curr_id_self: Int */; +long var21 /* : Int */; +long var23 /* : Int */; +long var_curr_id_other /* var curr_id_other: Int */; +char* var24 /* : NativeString */; +char* var26 /* : NativeString */; +char* var_my_items /* var my_items: NativeString */; +char* var27 /* : NativeString */; +char* var29 /* : NativeString */; +char* var_its_items /* var its_items: NativeString */; +long var30 /* : Int */; long var32 /* : Int */; -long var34 /* : Int */; -short int var35 /* : Bool */; -var_o = p0; -/* isa Buffer */ -cltype = type_string__Buffer.color; -idtype = type_string__Buffer.id; -if(var_o == NULL) { -var1 = 0; -} else { -if(cltype >= var_o->type->table_size) { +long var_my_length /* var my_length: Int */; +long var33 /* : Int */; +long var35 /* : Int */; +long var_its_length /* var its_length: Int */; +long var36 /* : Int */; +short int var38 /* : Bool */; +int cltype39; +int idtype40; +const char* var_class_name41; +long var42 /* : Int */; +long var_max_iterations /* var max_iterations: Int */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +const char* var_class_name48; +short int var49 /* : Bool */; +char var50 /* : Char */; +char var52 /* : Char */; +char var_my_curr_char /* var my_curr_char: Char */; +char var53 /* : Char */; +char var55 /* : Char */; +char var_its_curr_char /* var its_curr_char: Char */; +short int var56 /* : Bool */; +short int var57 /* : Bool */; +short int var59 /* : Bool */; +short int var60 /* : Bool */; +short int var61 /* : Bool */; +short int var63 /* : Bool */; +int cltype64; +int idtype65; +const char* var_class_name66; +short int var67 /* : Bool */; +short int var68 /* : Bool */; +short int var69 /* : Bool */; +long var70 /* : Int */; +long var71 /* : Int */; +short int var73 /* : Bool */; +int cltype74; +int idtype75; +const char* var_class_name76; +long var77 /* : Int */; +long var78 /* : Int */; +long var79 /* : Int */; +short int var81 /* : Bool */; +int cltype82; +int idtype83; +const char* var_class_name84; +long var85 /* : Int */; +short int var86 /* : Bool */; +short int var88 /* : Bool */; +int cltype89; +int idtype90; +const char* var_class_name91; +short int var92 /* : Bool */; +/* Covariant cast for argument 0 (other) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { var1 = 0; } else { -var1 = var_o->type->type_table[cltype] == idtype; +var1 = p0->type->type_table[cltype] == idtype; } +if (unlikely(!var1)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1094); +show_backtrace(1); } -var2 = !var1; -if (var2){ -var3 = 0; -var = var3; -goto RET_LABEL; +var_other = p0; +/* isa FlatString */ +cltype3 = type_string__FlatString.color; +idtype4 = type_string__FlatString.id; +if(cltype3 >= var_other->type->table_size) { +var2 = 0; } else { +var2 = var_other->type->type_table[cltype3] == idtype4; } -var4 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var_l = var4; -var5 = ((long (*)(val*))(var_o->class->vft[COLOR_abstract_collection__Collection__length]))(var_o) /* length on */; -{ /* Inline kernel#Int#!= (var5,var_l) */ -var8 = var5 == var_l; -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var5 = !var2; +if (var5){ +{ +var6 = ((short int (*)(val*, val*))(self->class->vft[COLOR_string__FlatString___60d]))(self, p0) /* < on */; } -if (var6){ -var10 = 0; -var = var10; +var = var6; goto RET_LABEL; } else { } -var11 = 0; -var_i = var11; -var12 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_it = var12; -var13 = var_o->attrs[COLOR_string__AbstractString___items].str; /* _items on */ -var_oit = var13; -for(;;) { -{ /* Inline kernel#Int#< (var_i,var_l) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var16 = 1; /* easy isa OTHER*/ -if (!var16) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -show_backtrace(1); +{ +{ /* Inline kernel#Object#object_id (self) on */ +var9 = (long)self; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; } -var19 = var_i < var_l; -var14 = var19; -goto RET_LABEL15; -RET_LABEL15:(void)0; } -if (!var14) break; -{ /* Inline string#NativeString#[] (var_it,var_i) */ -var22 = var_it[var_i]; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +{ +{ /* Inline kernel#Object#object_id (var_other) on */ +var12 = (long)var_other; +var10 = var12; +goto RET_LABEL11; +RET_LABEL11:(void)0; } -{ /* Inline string#NativeString#[] (var_oit,var_i) */ -var25 = var_oit[var_i]; -var23 = var25; -goto RET_LABEL24; -RET_LABEL24:(void)0; } -{ /* Inline kernel#Char#!= (var20,var23) */ -var28 = var20 == var23; -var29 = !var28; -var26 = var29; -goto RET_LABEL27; -RET_LABEL27:(void)0; +{ +{ /* Inline kernel#Int#== (var7,var10) on */ +var16 = var7 == var10; +var14 = var16; +goto RET_LABEL15; +RET_LABEL15:(void)0; } -if (var26){ -var30 = 0; -var = var30; +var13 = var14; +} +if (var13){ +var17 = 0; +var = var17; goto RET_LABEL; } else { } -var31 = 1; -{ /* Inline kernel#Int#+ (var_i,var31) */ -var34 = var_i + var31; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +{ +{ /* Inline string#FlatString#index_from (self) on */ +var20 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var18 = var20; +RET_LABEL19:(void)0; } -var_i = var32; -CONTINUE_label: (void)0; } -BREAK_label: (void)0; -var35 = 1; -var = var35; -goto RET_LABEL; -RET_LABEL:; -return var; +var_curr_id_self = var18; +{ +{ /* Inline string#FlatString#index_from (var_other) on */ +var23 = var_other->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var21 = var23; +RET_LABEL22:(void)0; } -/* method string#Buffer#== for (self: Object, nullable Object): Bool */ -short int VIRTUAL_string__Buffer___61d_61d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = string__Buffer___61d_61d(self, p0); -var = var1; -RET_LABEL:; -return var; } -/* method string#Buffer#capacity for (self: Buffer): Int */ -long string__Buffer__capacity(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on */ -var = var1; -RET_LABEL:; -return var; +var_curr_id_other = var21; +{ +{ /* Inline string#FlatText#items (self) on */ +var26 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var24 = var26; +RET_LABEL25:(void)0; } -/* method string#Buffer#capacity for (self: Object): Int */ -long VIRTUAL_string__Buffer__capacity(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = string__Buffer__capacity(self); -var = var1; -RET_LABEL:; -return var; } -/* method string#Object#to_s for (self: Object): String */ -val* string__Object__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__inspect]))(self) /* inspect on */; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +var_my_items = var24; +{ +{ /* Inline string#FlatText#items (var_other) on */ +var29 = var_other->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var27 = var29; +RET_LABEL28:(void)0; } -/* method string#Object#to_s for (self: Object): String */ -val* VIRTUAL_string__Object__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Object__to_s(self); -var = var1; -RET_LABEL:; -return var; } -/* method string#Object#native_class_name for (self: Object): NativeString */ -char* string__Object__native_class_name(val* self) { -char* var /* : NativeString */; -const char* var_class_name; -char* var1 /* : NativeString */; -var_class_name = self == NULL ? "null" : self->type->name; -var1 = (char*)var_class_name; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +var_its_items = var27; +{ +{ /* Inline string#FlatText#length (self) on */ +var32 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var30 = var32; +RET_LABEL31:(void)0; } -/* method string#Object#native_class_name for (self: Object): NativeString */ -char* VIRTUAL_string__Object__native_class_name(val* self) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -const char* var_class_name; -char* var3 /* : NativeString */; -{ /* Inline string#Object#native_class_name (self) */ -var_class_name = self == NULL ? "null" : self->type->name; -var3 = (char*)var_class_name; -var1 = var3; -goto RET_LABEL2; -RET_LABEL2:(void)0; } -var = var1; -RET_LABEL:; -return var; +var_my_length = var30; +{ +{ /* Inline string#FlatText#length (var_other) on */ +var35 = var_other->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var33 = var35; +RET_LABEL34:(void)0; } -/* method string#Object#class_name for (self: Object): String */ -val* string__Object__class_name(val* self) { -val* var /* : String */; -char* var1 /* : NativeString */; -val* var2 /* : String */; -var1 = ((char* (*)(val*))(self->class->vft[COLOR_string__Object__native_class_name]))(self) /* native_class_name on */; -var2 = string__NativeString__to_s(var1); -var = var2; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method string#Object#class_name for (self: Object): String */ -val* VIRTUAL_string__Object__class_name(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Object__class_name(self); -var = var1; -RET_LABEL:; -return var; -} -/* method string#Object#inspect for (self: Object): String */ -val* string__Object__inspect(val* self) { -val* var /* : String */; -val* var1 /* : Array[Object] */; -long var2 /* : Int */; -val* var_ /* var : Array[Object] */; -static val* varonce; -val* var3 /* : String */; -char* var4 /* : NativeString */; -long var5 /* : Int */; -val* var6 /* : String */; -val* var7 /* : String */; -static val* varonce8; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : String */; -val* var13 /* : String */; -var1 = NEW_array__Array(&type_array__Arraykernel__Object); -var2 = 3; -((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -var_ = var1; -if (varonce) { -var3 = varonce; -} else { -var4 = "<"; -var5 = 1; -var6 = string__NativeString__to_s_with_length(var4, var5); -var3 = var6; -varonce = var3; -} -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on */; -var7 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__inspect_head]))(self) /* inspect_head on */; -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on */; -if (varonce8) { -var9 = varonce8; -} else { -var10 = ">"; -var11 = 1; -var12 = string__NativeString__to_s_with_length(var10, var11); -var9 = var12; -varonce8 = var9; -} -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on */; -var13 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on */; -var = var13; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method string#Object#inspect for (self: Object): String */ -val* VIRTUAL_string__Object__inspect(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Object__inspect(self); -var = var1; -RET_LABEL:; -return var; } -/* method string#Object#inspect_head for (self: Object): String */ -val* string__Object__inspect_head(val* self) { -val* var /* : String */; -val* var1 /* : Array[Object] */; -long var2 /* : Int */; -val* var_ /* var : Array[Object] */; -static val* varonce; -val* var3 /* : String */; -char* var4 /* : NativeString */; -long var5 /* : Int */; -val* var6 /* : String */; -val* var7 /* : String */; -static val* varonce8; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : String */; -long var13 /* : Int */; -val* var14 /* : String */; -static val* varonce15; -val* var16 /* : String */; -char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : String */; -val* var20 /* : String */; -var1 = NEW_array__Array(&type_array__Arraykernel__Object); -var2 = 5; -((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -var_ = var1; -if (varonce) { -var3 = varonce; -} else { -var4 = ""; -var5 = 0; -var6 = string__NativeString__to_s_with_length(var4, var5); -var3 = var6; -varonce = var3; -} -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on */; -var7 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on */; -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on */; -if (varonce8) { -var9 = varonce8; -} else { -var10 = ":#"; -var11 = 2; -var12 = string__NativeString__to_s_with_length(var10, var11); -var9 = var12; -varonce8 = var9; -} -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on */; -var13 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on */; -var14 = string__Int__to_hex(var13); -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var14) /* add on */; -if (varonce15) { -var16 = varonce15; -} else { -var17 = ""; -var18 = 0; -var19 = string__NativeString__to_s_with_length(var17, var18); -var16 = var19; -varonce15 = var16; +var_its_length = var33; +{ +{ /* Inline kernel#Int#+ (var_curr_id_self,var_my_length) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var38 = 1; /* easy isa OTHER*/ +if (unlikely(!var38)) { +var_class_name41 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var16) /* add on */; -var20 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on */; -var = var20; -goto RET_LABEL; -RET_LABEL:; -return var; +var42 = var_curr_id_self + var_my_length; +var36 = var42; +goto RET_LABEL37; +RET_LABEL37:(void)0; } -/* method string#Object#inspect_head for (self: Object): String */ -val* VIRTUAL_string__Object__inspect_head(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Object__inspect_head(self); -var = var1; -RET_LABEL:; -return var; } -/* method string#Object#args for (self: Object): Sequence[String] */ -val* string__Object__args(val* self) { -val* var /* : Sequence[String] */; -val* var1 /* : Sys */; -val* var2 /* : Sequence[String] */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_kernel__Object__sys]))(self) /* sys on */; -var2 = ((val* (*)(val*))(var1->class->vft[COLOR_string__Object__args]))(var1) /* args on */; -var = var2; -goto RET_LABEL; -RET_LABEL:; -return var; +var_max_iterations = var36; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_curr_id_self,var_max_iterations) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var45 = 1; /* easy isa OTHER*/ +if (unlikely(!var45)) { +var_class_name48 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -/* method string#Object#args for (self: Object): Sequence[String] */ -val* VIRTUAL_string__Object__args(val* self) { -val* var /* : Sequence[String] */; -val* var1 /* : Sequence[String] */; -var1 = string__Object__args(self); -var = var1; -RET_LABEL:; -return var; +var49 = var_curr_id_self < var_max_iterations; +var43 = var49; +goto RET_LABEL44; +RET_LABEL44:(void)0; } -/* method string#Bool#to_s for (self: Bool): String */ -val* string__Bool__to_s(short int self) { -val* var /* : String */; -static val* varonce; -static int varonce_guard; -val* var1 /* : String */; -static val* varonce2; -val* var3 /* : String */; -char* var4 /* : NativeString */; -long var5 /* : Int */; -val* var6 /* : String */; -static val* varonce7; -static int varonce7_guard; -val* var8 /* : String */; -static val* varonce9; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : String */; -if (self){ -if (varonce_guard) { -var1 = varonce; -} else { -if (varonce2) { -var3 = varonce2; -} else { -var4 = "true"; -var5 = 4; -var6 = string__NativeString__to_s_with_length(var4, var5); -var3 = var6; -varonce2 = var3; } -var1 = var3; -varonce = var1; -varonce_guard = 1; +if (var43){ +{ +{ /* Inline string#NativeString#[] (var_my_items,var_curr_id_self) on */ +var52 = var_my_items[var_curr_id_self]; +var50 = var52; +goto RET_LABEL51; +RET_LABEL51:(void)0; } -var = var1; -goto RET_LABEL; -} else { -if (varonce7_guard) { -var8 = varonce7; -} else { -if (varonce9) { -var10 = varonce9; -} else { -var11 = "false"; -var12 = 5; -var13 = string__NativeString__to_s_with_length(var11, var12); -var10 = var13; -varonce9 = var10; } -var8 = var10; -varonce7 = var8; -varonce7_guard = 1; +var_my_curr_char = var50; +{ +{ /* Inline string#NativeString#[] (var_its_items,var_curr_id_other) on */ +var55 = var_its_items[var_curr_id_other]; +var53 = var55; +goto RET_LABEL54; +RET_LABEL54:(void)0; } -var = var8; -goto RET_LABEL; } -RET_LABEL:; -return var; +var_its_curr_char = var53; +{ +{ /* Inline kernel#Char#!= (var_my_curr_char,var_its_curr_char) on */ +var59 = var_my_curr_char == var_its_curr_char; +var60 = !var59; +var57 = var60; +goto RET_LABEL58; +RET_LABEL58:(void)0; } -/* method string#Bool#to_s for (self: Object): String */ -val* VIRTUAL_string__Bool__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -short int var2 /* : Bool */; -var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; -var1 = string__Bool__to_s(var2); -var = var1; -RET_LABEL:; -return var; +var56 = var57; } -/* method string#Int#fill_buffer for (self: Int, Buffer, Int, Bool) */ -void string__Int__fill_buffer(long self, val* p0, long p1, short int p2) { -val* var_s /* var s: Buffer */; -long var_base /* var base: Int */; -short int var_signed /* var signed: Bool */; -long var /* : Int */; -short int var1 /* : Bool */; -short int var3 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var4 /* : Bool */; -long var5 /* : Int */; -long var7 /* : Int */; -long var_n /* var n: Int */; -long var8 /* : Int */; -char var9 /* : Char */; -val* var10 /* : nullable Object */; -long var11 /* : Int */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -long var15 /* : Int */; -char var16 /* : Char */; -val* var17 /* : nullable Object */; -long var18 /* : Int */; -long var19 /* : Int */; -long var20 /* : Int */; -long var22 /* : Int */; -long var_pos /* var pos: Int */; -short int var23 /* : Bool */; -long var24 /* : Int */; -short int var25 /* : Bool */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -const char* var_class_name30; -short int var31 /* : Bool */; -short int var_ /* var : Bool */; -long var32 /* : Int */; -short int var33 /* : Bool */; -short int var35 /* : Bool */; -int cltype36; -int idtype37; -const char* var_class_name38; -short int var39 /* : Bool */; -long var40 /* : Int */; -long var42 /* : Int */; -char var43 /* : Char */; -val* var44 /* : nullable Object */; -long var45 /* : Int */; -long var47 /* : Int */; -long var48 /* : Int */; -long var49 /* : Int */; -long var51 /* : Int */; -var_s = p0; -var_base = p1; -var_signed = p2; -var = 0; -{ /* Inline kernel#Int#< (self,var) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var3 = 1; /* easy isa OTHER*/ -if (!var3) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +if (var56){ +{ +{ /* Inline kernel#Char#< (var_my_curr_char,var_its_curr_char) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var63 = 1; /* easy isa OTHER*/ +if (unlikely(!var63)) { +var_class_name66 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 546); show_backtrace(1); } -var4 = self < var; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; +var67 = var_my_curr_char < var_its_curr_char; +var61 = var67; +goto RET_LABEL62; +RET_LABEL62:(void)0; } -if (var1){ -{ /* Inline kernel#Int#unary - (self) */ -var7 = -self; -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; } -var_n = var5; -var8 = 0; -var9 = '-'; -var10 = BOX_kernel__Char(var9); /* autobox from Char to nullable Object */ -((void (*)(val*, long, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_s, var8, var10) /* []= on */; +if (var61){ +var68 = 1; +var = var68; +goto RET_LABEL; } else { -var11 = 0; -{ /* Inline kernel#Int#== (self,var11) */ -var14 = self == var11; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; } -if (var12){ -var15 = 0; -var16 = '0'; -var17 = BOX_kernel__Char(var16); /* autobox from Char to nullable Object */ -((void (*)(val*, long, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_s, var15, var17) /* []= on */; +var69 = 0; +var = var69; goto RET_LABEL; } else { -var_n = self; -} -} -var18 = kernel__Int__digit_count(self, var_base); -var19 = 1; -{ /* Inline kernel#Int#- (var18,var19) */ -var22 = var18 - var19; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; } -var_pos = var20; -for(;;) { -var24 = 0; -{ /* Inline kernel#Int#>= (var_pos,var24) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var27 = 1; /* easy isa OTHER*/ -if (!var27) { -var_class_name30 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); +var70 = 1; +{ +{ /* Inline kernel#Int#+ (var_curr_id_self,var70) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var73 = 1; /* easy isa OTHER*/ +if (unlikely(!var73)) { +var_class_name76 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var31 = var_pos >= var24; -var25 = var31; -goto RET_LABEL26; -RET_LABEL26:(void)0; -} -var_ = var25; -if (var25){ -var32 = 0; -{ /* Inline kernel#Int#> (var_n,var32) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var35 = 1; /* easy isa OTHER*/ -if (!var35) { -var_class_name38 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -show_backtrace(1); +var77 = var_curr_id_self + var70; +var71 = var77; +goto RET_LABEL72; +RET_LABEL72:(void)0; } -var39 = var_n > var32; -var33 = var39; -goto RET_LABEL34; -RET_LABEL34:(void)0; } -var23 = var33; -} else { -var23 = var_; +var_curr_id_self = var71; +var78 = 1; +{ +{ /* Inline kernel#Int#+ (var_curr_id_other,var78) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var81 = 1; /* easy isa OTHER*/ +if (unlikely(!var81)) { +var_class_name84 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -if (!var23) break; -{ /* Inline kernel#Int#% (var_n,var_base) */ -var42 = var_n % var_base; -var40 = var42; -goto RET_LABEL41; -RET_LABEL41:(void)0; +var85 = var_curr_id_other + var78; +var79 = var85; +goto RET_LABEL80; +RET_LABEL80:(void)0; } -var43 = kernel__Int__to_c(var40); -var44 = BOX_kernel__Char(var43); /* autobox from Char to nullable Object */ -((void (*)(val*, long, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_s, var_pos, var44) /* []= on */; -{ /* Inline kernel#Int#/ (var_n,var_base) */ -var47 = var_n / var_base; -var45 = var47; -goto RET_LABEL46; -RET_LABEL46:(void)0; } -var_n = var45; -var48 = 1; -{ /* Inline kernel#Int#- (var_pos,var48) */ -var51 = var_pos - var48; -var49 = var51; -goto RET_LABEL50; -RET_LABEL50:(void)0; +var_curr_id_other = var79; +} else { +goto BREAK_label; } -var_pos = var49; -CONTINUE_label: (void)0; } BREAK_label: (void)0; -RET_LABEL:; -} -/* method string#Int#fill_buffer for (self: Object, Buffer, Int, Bool) */ -void VIRTUAL_string__Int__fill_buffer(val* self, val* p0, long p1, short int p2) { -long var /* : Int */; -var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -string__Int__fill_buffer(var, p0, p1, p2); -RET_LABEL:; +{ +{ /* Inline kernel#Int#< (var_my_length,var_its_length) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var88 = 1; /* easy isa OTHER*/ +if (unlikely(!var88)) { +var_class_name91 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -/* method string#Int#native_int_to_s for (self: Int, Int): NativeString */ -char* string__Int__native_int_to_s(long self, long p0) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -var1 = native_int_to_s(self, p0); -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +var92 = var_my_length < var_its_length; +var86 = var92; +goto RET_LABEL87; +RET_LABEL87:(void)0; } -/* method string#Int#native_int_to_s for (self: Object, Int): NativeString */ -char* VIRTUAL_string__Int__native_int_to_s(val* self, long p0) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -long var2 /* : Int */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var1 = string__Int__native_int_to_s(var2, p0); -var = var1; -RET_LABEL:; -return var; } -/* method string#Int#to_s for (self: Int): String */ -val* string__Int__to_s(long self) { -val* var /* : String */; -long var1 /* : Int */; -long var2 /* : Int */; -long var_len /* var len: Int */; -char* var3 /* : NativeString */; -val* var4 /* : String */; -var1 = 10; -var2 = kernel__Int__digit_count(self, var1); -var_len = var2; -var3 = string__Int__native_int_to_s(self, var_len); -var4 = string__NativeString__to_s_with_length(var3, var_len); -var = var4; +var = var86; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#Int#to_s for (self: Object): String */ -val* VIRTUAL_string__Int__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -long var2 /* : Int */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var1 = string__Int__to_s(var2); +/* method string#FlatString#< for (self: Object, Comparable): Bool */ +short int VIRTUAL_string__FlatString___60d(val* self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__FlatString___60d(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#Int#to_hex for (self: Int): String */ -val* string__Int__to_hex(long self) { +/* method string#FlatString#+ for (self: FlatString, Text): String */ +val* string__FlatString___43d(val* self, val* p0) { val* var /* : String */; +val* var_s /* var s: Text */; long var1 /* : Int */; -short int var2 /* : Bool */; -val* var3 /* : String */; -var1 = 16; -var2 = 0; -var3 = string__Int__to_base(self, var1, var2); -var = var3; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method string#Int#to_hex for (self: Object): String */ -val* VIRTUAL_string__Int__to_hex(val* self) { -val* var /* : String */; -val* var1 /* : String */; -long var2 /* : Int */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var1 = string__Int__to_hex(var2); -var = var1; -RET_LABEL:; -return var; -} -/* method string#Int#to_base for (self: Int, Int, Bool): String */ -val* string__Int__to_base(long self, long p0, short int p1) { -val* var /* : String */; -long var_base /* var base: Int */; -short int var_signed /* var signed: Bool */; -long var1 /* : Int */; -long var_l /* var l: Int */; -val* var2 /* : Buffer */; -static val* varonce; -val* var3 /* : String */; -char* var4 /* : NativeString */; -long var5 /* : Int */; -val* var6 /* : String */; -val* var7 /* : String */; -val* var_s /* var s: Buffer */; -val* var8 /* : String */; -var_base = p0; -var_signed = p1; -var1 = kernel__Int__digit_count(self, var_base); -var_l = var1; -var2 = NEW_string__Buffer(&type_string__Buffer); -if (varonce) { -var3 = varonce; -} else { -var4 = " "; -var5 = 1; -var6 = string__NativeString__to_s_with_length(var4, var5); -var3 = var6; -varonce = var3; -} -var7 = ((val* (*)(val*, long))(var3->class->vft[COLOR_string__String___42d]))(var3, var_l) /* * on */; -((void (*)(val*, val*))(var2->class->vft[COLOR_string__Buffer__from]))(var2, var7) /* from on */; -var_s = var2; -string__Int__fill_buffer(self, var_s, var_base, var_signed); -var8 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var8; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method string#Int#to_base for (self: Object, Int, Bool): String */ -val* VIRTUAL_string__Int__to_base(val* self, long p0, short int p1) { -val* var /* : String */; -val* var1 /* : String */; -long var2 /* : Int */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var1 = string__Int__to_base(var2, p0, p1); -var = var1; -RET_LABEL:; -return var; -} -/* method string#Float#to_s for (self: Float): String */ -val* string__Float__to_s(double self) { -val* var /* : String */; -long var1 /* : Int */; -val* var2 /* : String */; -val* var_str /* var str: String */; long var3 /* : Int */; -long var_len /* var len: Int */; -val* var4 /* : Range[Int] */; -long var5 /* : Int */; +long var_my_length /* var my_length: Int */; +long var4 /* : Int */; long var6 /* : Int */; +long var_its_length /* var its_length: Int */; long var7 /* : Int */; -long var9 /* : Int */; -val* var10 /* : Discrete */; -val* var11 /* : Discrete */; -val* var12 /* : Iterator[nullable Object] */; +short int var9 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var10 /* : Int */; +long var_total_length /* var total_length: Int */; +long var11 /* : Int */; short int var13 /* : Bool */; -val* var14 /* : nullable Object */; -long var_i /* var i: Int */; -long var15 /* : Int */; -long var16 /* : Int */; +int cltype14; +int idtype15; +const char* var_class_name16; long var17 /* : Int */; +long var18 /* : Int */; long var19 /* : Int */; -long var20 /* : Int */; -long var22 /* : Int */; -long var_j /* var j: Int */; -val* var23 /* : nullable Object */; -char var24 /* : Char */; -char var_c /* var c: Char */; -char var25 /* : Char */; -short int var26 /* : Bool */; -short int var28 /* : Bool */; -char var29 /* : Char */; -short int var30 /* : Bool */; -short int var32 /* : Bool */; -long var33 /* : Int */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +const char* var_class_name24; +long var25 /* : Int */; +char* var26 /* : NativeString */; +char* var28 /* : NativeString */; +char* var_target_string /* var target_string: NativeString */; +char* var29 /* : NativeString */; +char* var31 /* : NativeString */; +long var32 /* : Int */; long var34 /* : Int */; long var35 /* : Int */; -long var37 /* : Int */; -val* var38 /* : String */; -long var39 /* : Int */; -long var40 /* : Int */; -long var41 /* : Int */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +char* var40 /* : NativeString */; +char* var42 /* : NativeString */; long var43 /* : Int */; -val* var44 /* : String */; -var1 = 3; -var2 = string__Float__to_precision(self, var1); -var_str = var2; -var3 = ((long (*)(val*))(var_str->class->vft[COLOR_abstract_collection__Collection__length]))(var_str) /* length on */; -var_len = var3; -var4 = NEW_range__Range(&type_range__Rangekernel__Int); -var5 = 0; -var6 = 1; -{ /* Inline kernel#Int#- (var_len,var6) */ -var9 = var_len - var6; -var7 = var9; +long var45 /* : Int */; +short int var47 /* : Bool */; +int cltype48; +int idtype49; +char* var50 /* : NativeString */; +char* var52 /* : NativeString */; +long var53 /* : Int */; +long var_curr_pos /* var curr_pos: Int */; +long var55 /* : Int */; +long var_i /* var i: Int */; +long var56 /* : Int */; +long var58 /* : Int */; +long var_ /* var : Int */; +short int var59 /* : Bool */; +short int var61 /* : Bool */; +int cltype62; +int idtype63; +const char* var_class_name64; +short int var65 /* : Bool */; +val* var66 /* : SequenceRead[Char] */; +val* var67 /* : nullable Object */; +char var68 /* : Char */; +char var_c /* var c: Char */; +long var70 /* : Int */; +long var71 /* : Int */; +short int var73 /* : Bool */; +int cltype74; +int idtype75; +const char* var_class_name76; +long var77 /* : Int */; +long var78 /* : Int */; +long var79 /* : Int */; +char var80 /* : Char */; +val* var82 /* : FlatString */; +short int var83 /* : Bool */; +int cltype84; +int idtype85; +const struct type* type_struct; +const char* var_class_name86; +var_s = p0; +{ +{ /* Inline string#FlatText#length (self) on */ +var3 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +var_my_length = var1; +{ +{ /* Inline string#FlatText#length (var_s) on */ +var6 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +var_its_length = var4; +{ +{ /* Inline kernel#Int#+ (var_my_length,var_its_length) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var10 = var_my_length + var_its_length; +var7 = var10; goto RET_LABEL8; RET_LABEL8:(void)0; } -var10 = BOX_kernel__Int(var5); /* autobox from Int to Discrete */ -var11 = BOX_kernel__Int(var7); /* autobox from Int to Discrete */ -((void (*)(val*, val*, val*))(var4->class->vft[COLOR_range__Range__init]))(var4, var10, var11) /* init on */; -var12 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on */; -for(;;) { -var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on */; -if(!var13) break; -var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on */; -var15 = ((struct instance_kernel__Int*)var14)->value; /* autounbox from nullable Object to Int */; -var_i = var15; -var16 = 1; -{ /* Inline kernel#Int#- (var_len,var16) */ -var19 = var_len - var16; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; } -{ /* Inline kernel#Int#- (var17,var_i) */ -var22 = var17 - var_i; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +var_total_length = var7; +{ +{ /* Inline kernel#Int#+ (var_my_length,var_its_length) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var13 = 1; /* easy isa OTHER*/ +if (unlikely(!var13)) { +var_class_name16 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var17 = var_my_length + var_its_length; +var11 = var17; +goto RET_LABEL12; +RET_LABEL12:(void)0; +} +} +var18 = 1; +{ +{ /* Inline kernel#Int#+ (var11,var18) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var21 = 1; /* easy isa OTHER*/ +if (unlikely(!var21)) { +var_class_name24 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var25 = var11 + var18; +var19 = var25; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} } -var_j = var20; -var23 = ((val* (*)(val*, long))(var_str->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_str, var_j) /* [] on */; -var24 = ((struct instance_kernel__Char*)var23)->value; /* autounbox from nullable Object to Char */; -var_c = var24; -var25 = '0'; -{ /* Inline kernel#Char#== (var_c,var25) */ -var28 = var_c == var25; +{ +{ /* Inline string#StringCapable#calloc_string (self,var19) on */ +var28 = (char*)nit_alloc(var19); var26 = var28; goto RET_LABEL27; RET_LABEL27:(void)0; } -if (var26){ -goto CONTINUE_label; -} else { -var29 = '.'; -{ /* Inline kernel#Char#== (var_c,var29) */ -var32 = var_c == var29; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; } -if (var30){ -var33 = 0; -var34 = 2; -{ /* Inline kernel#Int#+ (var_j,var34) */ -var37 = var_j + var34; -var35 = var37; -goto RET_LABEL36; +var_target_string = var26; +{ +{ /* Inline string#FlatText#items (self) on */ +var31 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var29 = var31; +RET_LABEL30:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (self) on */ +var34 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var32 = var34; +RET_LABEL33:(void)0; +} +} +var35 = 0; +{ +{ /* Inline string#NativeString#copy_to (var29,var_target_string,var_my_length,var32,var35) on */ +memmove(var_target_string+var35,var29+var32,var_my_length); RET_LABEL36:(void)0; } -var38 = ((val* (*)(val*, long, long))(var_str->class->vft[COLOR_string__AbstractString__substring]))(var_str, var33, var35) /* substring on */; -var = var38; -goto RET_LABEL; +} +/* isa FlatString */ +cltype38 = type_string__FlatString.color; +idtype39 = type_string__FlatString.id; +if(cltype38 >= var_s->type->table_size) { +var37 = 0; } else { -var39 = 0; -var40 = 1; -{ /* Inline kernel#Int#+ (var_j,var40) */ -var43 = var_j + var40; -var41 = var43; -goto RET_LABEL42; -RET_LABEL42:(void)0; +var37 = var_s->type->type_table[cltype38] == idtype39; } -var44 = ((val* (*)(val*, long, long))(var_str->class->vft[COLOR_string__AbstractString__substring]))(var_str, var39, var41) /* substring on */; -var = var44; -goto RET_LABEL; +if (var37){ +{ +{ /* Inline string#FlatText#items (var_s) on */ +var42 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var40 = var42; +RET_LABEL41:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (var_s) on */ +var45 = var_s->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var43 = var45; +RET_LABEL44:(void)0; +} +} +{ +{ /* Inline string#NativeString#copy_to (var40,var_target_string,var_its_length,var43,var_my_length) on */ +memmove(var_target_string+var_my_length,var40+var43,var_its_length); +RET_LABEL46:(void)0; +} +} +} else { +/* isa FlatBuffer */ +cltype48 = type_string__FlatBuffer.color; +idtype49 = type_string__FlatBuffer.id; +if(cltype48 >= var_s->type->table_size) { +var47 = 0; +} else { +var47 = var_s->type->type_table[cltype48] == idtype49; +} +if (var47){ +{ +{ /* Inline string#FlatText#items (var_s) on */ +var52 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var50 = var52; +RET_LABEL51:(void)0; +} +} +var53 = 0; +{ +{ /* Inline string#NativeString#copy_to (var50,var_target_string,var_its_length,var53,var_my_length) on */ +memmove(var_target_string+var_my_length,var50+var53,var_its_length); +RET_LABEL54:(void)0; +} +} +} else { +var_curr_pos = var_my_length; +var55 = 0; +var_i = var55; +{ +{ /* Inline string#FlatText#length (var_s) on */ +var58 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var56 = var58; +RET_LABEL57:(void)0; +} +} +var_ = var56; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var61 = 1; /* easy isa OTHER*/ +if (unlikely(!var61)) { +var_class_name64 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name64); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var65 = var_i < var_; +var59 = var65; +goto RET_LABEL60; +RET_LABEL60:(void)0; +} +} +if (var59){ +{ +var66 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on */; +} +{ +var67 = ((val* (*)(val*, long))(var66->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var66, var_i) /* [] on */; +} +var68 = ((struct instance_kernel__Char*)var67)->value; /* autounbox from nullable Object to Char */; +var_c = var68; +{ +{ /* Inline string#NativeString#[]= (var_target_string,var_curr_pos,var_c) on */ +var_target_string[var_curr_pos]=var_c; +RET_LABEL69:(void)0; +} +} +var70 = 1; +{ +{ /* Inline kernel#Int#+ (var_curr_pos,var70) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var73 = 1; /* easy isa OTHER*/ +if (unlikely(!var73)) { +var_class_name76 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var77 = var_curr_pos + var70; +var71 = var77; +goto RET_LABEL72; +RET_LABEL72:(void)0; +} +} +var_curr_pos = var71; +var78 = 1; +{ +var79 = kernel__Int__successor(var_i, var78); } +var_i = var79; +} else { +goto BREAK_label; } -CONTINUE_label: (void)0; -((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on */; } BREAK_label: (void)0; -var = var_str; +} +} +var80 = '\0'; +{ +{ /* Inline string#NativeString#[]= (var_target_string,var_total_length,var80) on */ +var_target_string[var_total_length]=var80; +RET_LABEL81:(void)0; +} +} +{ +var82 = string__NativeString__to_s_with_length(var_target_string, var_total_length); +} +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype84 = type_struct->color; +idtype85 = type_struct->id; +if(cltype84 >= var82->type->table_size) { +var83 = 0; +} else { +var83 = var82->type->type_table[cltype84] == idtype85; +} +if (unlikely(!var83)) { +var_class_name86 = var82 == NULL ? "null" : var82->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name86); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1155); +show_backtrace(1); +} +var = var82; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#Float#to_s for (self: Object): String */ -val* VIRTUAL_string__Float__to_s(val* self) { +/* method string#FlatString#+ for (self: Object, Text): String */ +val* VIRTUAL_string__FlatString___43d(val* self, val* p0) { val* var /* : String */; val* var1 /* : String */; -double var2 /* : Float */; -var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var1 = string__Float__to_s(var2); +var1 = string__FlatString___43d(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#Float#to_precision for (self: Float, Int): String */ -val* string__Float__to_precision(double self, long p0) { +/* method string#FlatString#* for (self: FlatString, Int): String */ +val* string__FlatString___42d(val* self, long p0) { val* var /* : String */; -long var_nb /* var nb: Int */; +long var_i /* var i: Int */; long var1 /* : Int */; short int var2 /* : Bool */; short int var4 /* : Bool */; -long var5 /* : Int */; -long var7 /* : Int */; -val* var8 /* : String */; -double var_f /* var f: Float */; -val* var9 /* : Range[Int] */; -long var10 /* : Int */; -val* var11 /* : Discrete */; -val* var12 /* : Discrete */; -val* var13 /* : Iterator[nullable Object] */; -short int var14 /* : Bool */; -val* var15 /* : nullable Object */; -long var_i /* var i: Int */; -long var16 /* : Int */; -double var17 /* : Float */; -double var18 /* : Float */; -double var20 /* : Float */; -double var21 /* : Float */; -short int var22 /* : Bool */; -short int var24 /* : Bool */; -double var25 /* : Float */; -double var26 /* : Float */; -double var28 /* : Float */; -double var29 /* : Float */; -double var30 /* : Float */; -double var32 /* : Float */; -long var33 /* : Int */; -long var35 /* : Int */; -long var_i36 /* var i: Int */; -long var37 /* : Int */; -short int var38 /* : Bool */; -short int var40 /* : Bool */; -static val* varonce; -val* var41 /* : String */; -char* var42 /* : NativeString */; -long var43 /* : Int */; -val* var44 /* : String */; -val* var45 /* : String */; -val* var_s /* var s: String */; -long var46 /* : Int */; -long var_sl /* var sl: Int */; -short int var47 /* : Bool */; -short int var49 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var50 /* : Bool */; -long var51 /* : Int */; -long var52 /* : Int */; -long var53 /* : Int */; -long var55 /* : Int */; -val* var56 /* : String */; -val* var_p1 /* var p1: String */; -long var57 /* : Int */; -long var58 /* : Int */; -long var60 /* : Int */; -val* var61 /* : String */; -val* var_p2 /* var p2: String */; -static val* varonce62; -val* var63 /* : String */; -char* var64 /* : NativeString */; -long var65 /* : Int */; -val* var66 /* : String */; -val* var67 /* : String */; -val* var68 /* : String */; -static val* varonce69; -val* var70 /* : String */; -char* var71 /* : NativeString */; -long var72 /* : Int */; -val* var73 /* : String */; -static val* varonce74; -val* var75 /* : String */; -char* var76 /* : NativeString */; -long var77 /* : Int */; -val* var78 /* : String */; -long var79 /* : Int */; -long var81 /* : Int */; -val* var82 /* : String */; -val* var83 /* : String */; -val* var84 /* : String */; -var_nb = p0; +short int var5 /* : Bool */; +long var6 /* : Int */; +long var8 /* : Int */; +long var_my_length /* var my_length: Int */; +long var9 /* : Int */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; +long var15 /* : Int */; +long var_final_length /* var final_length: Int */; +char* var16 /* : NativeString */; +char* var18 /* : NativeString */; +char* var_my_items /* var my_items: NativeString */; +long var19 /* : Int */; +long var20 /* : Int */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +const char* var_class_name25; +long var26 /* : Int */; +char* var27 /* : NativeString */; +char* var29 /* : NativeString */; +char* var_target_string /* var target_string: NativeString */; +char var30 /* : Char */; +long var32 /* : Int */; +long var_current_last /* var current_last: Int */; +long var33 /* : Int */; +long var_iteration /* var iteration: Int */; +long var_ /* var : Int */; +short int var34 /* : Bool */; +short int var36 /* : Bool */; +int cltype37; +int idtype38; +const char* var_class_name39; +short int var40 /* : Bool */; +long var41 /* : Int */; +long var43 /* : Int */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +const char* var_class_name48; +long var49 /* : Int */; +long var50 /* : Int */; +long var51 /* : Int */; +val* var52 /* : FlatString */; +short int var53 /* : Bool */; +int cltype54; +int idtype55; +const struct type* type_struct; +const char* var_class_name56; +var_i = p0; var1 = 0; -{ /* Inline kernel#Int#== (var_nb,var1) */ -var4 = var_nb == var1; -var2 = var4; +{ +{ /* Inline kernel#Int#>= (var_i,var1) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var5 = var_i >= var1; +var2 = var5; goto RET_LABEL3; RET_LABEL3:(void)0; } -if (var2){ -{ /* Inline kernel#Float#to_i (self) */ -var7 = (long)self; -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; } -var8 = string__Int__to_s(var5); -var = var8; +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1160); +show_backtrace(1); +} +{ +{ /* Inline string#FlatText#length (self) on */ +var8 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +var_my_length = var6; +{ +{ /* Inline kernel#Int#* (var_my_length,var_i) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var11 = 1; /* easy isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378); +show_backtrace(1); +} +var15 = var_my_length * var_i; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +} +var_final_length = var9; +{ +{ /* Inline string#FlatText#items (self) on */ +var18 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +var_my_items = var16; +var19 = 1; +{ +{ /* Inline kernel#Int#+ (var_final_length,var19) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var22 = 1; /* easy isa OTHER*/ +if (unlikely(!var22)) { +var_class_name25 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var26 = var_final_length + var19; +var20 = var26; +goto RET_LABEL21; +RET_LABEL21:(void)0; +} +} +{ +{ /* Inline string#StringCapable#calloc_string (self,var20) on */ +var29 = (char*)nit_alloc(var20); +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +} +var_target_string = var27; +var30 = '\0'; +{ +{ /* Inline string#NativeString#[]= (var_target_string,var_final_length,var30) on */ +var_target_string[var_final_length]=var30; +RET_LABEL31:(void)0; +} +} +var32 = 0; +var_current_last = var32; +var33 = 1; +var_iteration = var33; +var_ = var_i; +for(;;) { +{ +{ /* Inline kernel#Int#<= (var_iteration,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var36 = 1; /* easy isa OTHER*/ +if (unlikely(!var36)) { +var_class_name39 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var40 = var_iteration <= var_; +var34 = var40; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +} +if (var34){ +var41 = 0; +{ +{ /* Inline string#NativeString#copy_to (var_my_items,var_target_string,var_my_length,var41,var_current_last) on */ +memmove(var_target_string+var_current_last,var_my_items+var41,var_my_length); +RET_LABEL42:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var_current_last,var_my_length) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var45 = 1; /* easy isa OTHER*/ +if (unlikely(!var45)) { +var_class_name48 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var49 = var_current_last + var_my_length; +var43 = var49; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +} +var_current_last = var43; +var50 = 1; +{ +var51 = kernel__Int__successor(var_iteration, var50); +} +var_iteration = var51; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +var52 = string__NativeString__to_s_with_length(var_target_string, var_final_length); +} +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype54 = type_struct->color; +idtype55 = type_struct->id; +if(cltype54 >= var52->type->table_size) { +var53 = 0; +} else { +var53 = var52->type->type_table[cltype54] == idtype55; +} +if (unlikely(!var53)) { +var_class_name56 = var52 == NULL ? "null" : var52->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name56); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1179); +show_backtrace(1); +} +var = var52; goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatString#* for (self: Object, Int): String */ +val* VIRTUAL_string__FlatString___42d(val* self, long p0) { +val* var /* : String */; +val* var1 /* : String */; +var1 = string__FlatString___42d(self, p0); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatString#hash for (self: FlatString): Int */ +long string__FlatString__hash(val* self) { +long var /* : Int */; +val* var1 /* : nullable Int */; +val* var3 /* : nullable Int */; +val* var4 /* : null */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +long var9 /* : Int */; +long var_h /* var h: Int */; +long var10 /* : Int */; +long var12 /* : Int */; +long var_i /* var i: Int */; +char* var13 /* : NativeString */; +char* var15 /* : NativeString */; +char* var_myitems /* var myitems: NativeString */; +long var16 /* : Int */; +long var18 /* : Int */; +short int var19 /* : Bool */; +short int var21 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var22 /* : Bool */; +long var23 /* : Int */; +long var24 /* : Int */; +long var26 /* : Int */; +long var27 /* : Int */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +const char* var_class_name32; +long var33 /* : Int */; +char var34 /* : Char */; +char var36 /* : Char */; +long var37 /* : Int */; +long var39 /* : Int */; +long var40 /* : Int */; +short int var42 /* : Bool */; +int cltype43; +int idtype44; +const char* var_class_name45; +long var46 /* : Int */; +long var47 /* : Int */; +long var48 /* : Int */; +short int var50 /* : Bool */; +int cltype51; +int idtype52; +const char* var_class_name53; +long var54 /* : Int */; +val* var56 /* : nullable Int */; +val* var57 /* : nullable Int */; +val* var59 /* : nullable Int */; +long var60 /* : Int */; +{ +{ /* Inline string#Text#hash_cache (self) on */ +var3 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +var4 = NULL; +if (var1 == NULL) { +var5 = 1; /* is null */ } else { +var5 = 0; /* arg is null but recv is not */ } -var_f = self; -var9 = NEW_range__Range(&type_range__Rangekernel__Int); -var10 = 0; -var11 = BOX_kernel__Int(var10); /* autobox from Int to Discrete */ -var12 = BOX_kernel__Int(var_nb); /* autobox from Int to Discrete */ -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_range__Range__without_last]))(var9, var11, var12) /* without_last on */; -var13 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on */; +if (0) { +{ /* Inline kernel#Int#== (var1,var4) on */ +var8 = 0; /* incompatible types Int vs. null; cannot be NULL */ +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +var5 = var6; +} +if (var5){ +var9 = 5381; +var_h = var9; +{ +{ /* Inline string#FlatString#index_from (self) on */ +var12 = self->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var10 = var12; +RET_LABEL11:(void)0; +} +} +var_i = var10; +{ +{ /* Inline string#FlatText#items (self) on */ +var15 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var13 = var15; +RET_LABEL14:(void)0; +} +} +var_myitems = var13; +for(;;) { +{ +{ /* Inline string#FlatString#index_to (self) on */ +var18 = self->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline kernel#Int#<= (var_i,var16) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var21 = 1; /* easy isa OTHER*/ +if (unlikely(!var21)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var22 = var_i <= var16; +var19 = var22; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +} +if (var19){ +var23 = 5; +{ +{ /* Inline kernel#Int#lshift (var_h,var23) on */ +var26 = var_h << var23; +var24 = var26; +goto RET_LABEL25; +RET_LABEL25:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var24,var_h) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var29 = 1; /* easy isa OTHER*/ +if (unlikely(!var29)) { +var_class_name32 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var33 = var24 + var_h; +var27 = var33; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +} +{ +{ /* Inline string#NativeString#[] (var_myitems,var_i) on */ +var36 = var_myitems[var_i]; +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +} +{ +{ /* Inline kernel#Char#ascii (var34) on */ +var39 = (unsigned char)var34; +var37 = var39; +goto RET_LABEL38; +RET_LABEL38:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var27,var37) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var42 = 1; /* easy isa OTHER*/ +if (unlikely(!var42)) { +var_class_name45 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var46 = var27 + var37; +var40 = var46; +goto RET_LABEL41; +RET_LABEL41:(void)0; +} +} +var_h = var40; +var47 = 1; +{ +{ /* Inline kernel#Int#+ (var_i,var47) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var50 = 1; /* easy isa OTHER*/ +if (unlikely(!var50)) { +var_class_name53 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var54 = var_i + var47; +var48 = var54; +goto RET_LABEL49; +RET_LABEL49:(void)0; +} +} +var_i = var48; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +{ /* Inline string#Text#hash_cache= (self,var_h) on */ +var56 = BOX_kernel__Int(var_h); /* autobox from Int to nullable Int */ +self->attrs[COLOR_string__Text___hash_cache].val = var56; /* _hash_cache on */ +RET_LABEL55:(void)0; +} +} +} else { +} +{ +{ /* Inline string#Text#hash_cache (self) on */ +var59 = self->attrs[COLOR_string__Text___hash_cache].val; /* _hash_cache on */ +var57 = var59; +RET_LABEL58:(void)0; +} +} +if (unlikely(var57 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1199); +show_backtrace(1); +} +var60 = ((struct instance_kernel__Int*)var57)->value; /* autounbox from nullable Int to Int */; +var = var60; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatString#hash for (self: Object): Int */ +long VIRTUAL_string__FlatString__hash(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = string__FlatString__hash(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatString#substrings for (self: FlatString): Iterator[Text] */ +val* string__FlatString__substrings(val* self) { +val* var /* : Iterator[Text] */; +val* var1 /* : FlatSubstringsIter */; +var1 = NEW_string__FlatSubstringsIter(&type_string__FlatSubstringsIter); +{ +string__FlatSubstringsIter__init(var1, self); /* Direct call string#FlatSubstringsIter#init on */ +} +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatString#substrings for (self: Object): Iterator[Text] */ +val* VIRTUAL_string__FlatString__substrings(val* self) { +val* var /* : Iterator[Text] */; +val* var1 /* : Iterator[Text] */; +var1 = string__FlatString__substrings(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#target for (self: FlatStringIterator): FlatString */ +val* string__FlatStringIterator__target(val* self) { +val* var /* : FlatString */; +val* var1 /* : FlatString */; +var1 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1234); +show_backtrace(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#target for (self: Object): FlatString */ +val* VIRTUAL_string__FlatStringIterator__target(val* self) { +val* var /* : FlatString */; +val* var1 /* : FlatString */; +val* var3 /* : FlatString */; +{ /* Inline string#FlatStringIterator#target (self) on */ +var3 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1234); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#target= for (self: FlatStringIterator, FlatString) */ +void string__FlatStringIterator__target_61d(val* self, val* p0) { +self->attrs[COLOR_string__FlatStringIterator___target].val = p0; /* _target on */ +RET_LABEL:; +} +/* method string#FlatStringIterator#target= for (self: Object, FlatString) */ +void VIRTUAL_string__FlatStringIterator__target_61d(val* self, val* p0) { +{ /* Inline string#FlatStringIterator#target= (self,p0) on */ +self->attrs[COLOR_string__FlatStringIterator___target].val = p0; /* _target on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatStringIterator#target_items for (self: FlatStringIterator): NativeString */ +char* string__FlatStringIterator__target_items(val* self) { +char* var /* : NativeString */; +char* var1 /* : NativeString */; +var1 = self->attrs[COLOR_string__FlatStringIterator___target_items].str; /* _target_items on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#target_items for (self: Object): NativeString */ +char* VIRTUAL_string__FlatStringIterator__target_items(val* self) { +char* var /* : NativeString */; +char* var1 /* : NativeString */; +char* var3 /* : NativeString */; +{ /* Inline string#FlatStringIterator#target_items (self) on */ +var3 = self->attrs[COLOR_string__FlatStringIterator___target_items].str; /* _target_items on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#target_items= for (self: FlatStringIterator, NativeString) */ +void string__FlatStringIterator__target_items_61d(val* self, char* p0) { +self->attrs[COLOR_string__FlatStringIterator___target_items].str = p0; /* _target_items on */ +RET_LABEL:; +} +/* method string#FlatStringIterator#target_items= for (self: Object, NativeString) */ +void VIRTUAL_string__FlatStringIterator__target_items_61d(val* self, char* p0) { +{ /* Inline string#FlatStringIterator#target_items= (self,p0) on */ +self->attrs[COLOR_string__FlatStringIterator___target_items].str = p0; /* _target_items on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatStringIterator#curr_pos for (self: FlatStringIterator): Int */ +long string__FlatStringIterator__curr_pos(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#curr_pos for (self: Object): Int */ +long VIRTUAL_string__FlatStringIterator__curr_pos(val* self) { +long var /* : Int */; +long var1 /* : Int */; +long var3 /* : Int */; +{ /* Inline string#FlatStringIterator#curr_pos (self) on */ +var3 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#curr_pos= for (self: FlatStringIterator, Int) */ +void string__FlatStringIterator__curr_pos_61d(val* self, long p0) { +self->attrs[COLOR_string__FlatStringIterator___curr_pos].l = p0; /* _curr_pos on */ +RET_LABEL:; +} +/* method string#FlatStringIterator#curr_pos= for (self: Object, Int) */ +void VIRTUAL_string__FlatStringIterator__curr_pos_61d(val* self, long p0) { +{ /* Inline string#FlatStringIterator#curr_pos= (self,p0) on */ +self->attrs[COLOR_string__FlatStringIterator___curr_pos].l = p0; /* _curr_pos on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatStringIterator#with_pos for (self: FlatStringIterator, FlatString, Int) */ +void string__FlatStringIterator__with_pos(val* self, val* p0, long p1) { +val* var_tgt /* var tgt: FlatString */; +long var_pos /* var pos: Int */; +char* var /* : NativeString */; +char* var3 /* : NativeString */; +val* var5 /* : FlatString */; +val* var7 /* : FlatString */; +long var8 /* : Int */; +long var10 /* : Int */; +long var11 /* : Int */; +short int var13 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var14 /* : Int */; +var_tgt = p0; +var_pos = p1; +{ +{ /* Inline string#FlatStringIterator#target= (self,var_tgt) on */ +self->attrs[COLOR_string__FlatStringIterator___target].val = var_tgt; /* _target on */ +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline string#FlatText#items (var_tgt) on */ +var3 = var_tgt->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline string#FlatStringIterator#target_items= (self,var) on */ +self->attrs[COLOR_string__FlatStringIterator___target_items].str = var; /* _target_items on */ +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline string#FlatStringIterator#target (self) on */ +var7 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on */ +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1234); +show_backtrace(1); +} +var5 = var7; +RET_LABEL6:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (var5) on */ +var10 = var5->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var8 = var10; +RET_LABEL9:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var_pos,var8) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var13 = 1; /* easy isa OTHER*/ +if (unlikely(!var13)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var14 = var_pos + var8; +var11 = var14; +goto RET_LABEL12; +RET_LABEL12:(void)0; +} +} +{ +{ /* Inline string#FlatStringIterator#curr_pos= (self,var11) on */ +self->attrs[COLOR_string__FlatStringIterator___curr_pos].l = var11; /* _curr_pos on */ +RET_LABEL15:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatStringIterator#with_pos for (self: Object, FlatString, Int) */ +void VIRTUAL_string__FlatStringIterator__with_pos(val* self, val* p0, long p1) { +string__FlatStringIterator__with_pos(self, p0, p1); /* Direct call string#FlatStringIterator#with_pos on */ +RET_LABEL:; +} +/* method string#FlatStringIterator#is_ok for (self: FlatStringIterator): Bool */ +short int string__FlatStringIterator__is_ok(val* self) { +short int var /* : Bool */; +long var1 /* : Int */; +long var3 /* : Int */; +val* var4 /* : FlatString */; +val* var6 /* : FlatString */; +long var7 /* : Int */; +long var9 /* : Int */; +short int var10 /* : Bool */; +short int var12 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var13 /* : Bool */; +{ +{ /* Inline string#FlatStringIterator#curr_pos (self) on */ +var3 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline string#FlatStringIterator#target (self) on */ +var6 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1234); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_to (var4) on */ +var9 = var4->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline kernel#Int#<= (var1,var7) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var12 = 1; /* easy isa OTHER*/ +if (unlikely(!var12)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var13 = var1 <= var7; +var10 = var13; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +} +var = var10; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#is_ok for (self: Object): Bool */ +short int VIRTUAL_string__FlatStringIterator__is_ok(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = string__FlatStringIterator__is_ok(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#item for (self: FlatStringIterator): Char */ +char string__FlatStringIterator__item(val* self) { +char var /* : Char */; +char* var1 /* : NativeString */; +char* var3 /* : NativeString */; +long var4 /* : Int */; +long var6 /* : Int */; +char var7 /* : Char */; +char var9 /* : Char */; +{ +{ /* Inline string#FlatStringIterator#target_items (self) on */ +var3 = self->attrs[COLOR_string__FlatStringIterator___target_items].str; /* _target_items on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline string#FlatStringIterator#curr_pos (self) on */ +var6 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline string#NativeString#[] (var1,var4) on */ +var9 = var1[var4]; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +var = var7; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#item for (self: Object): nullable Object */ +val* VIRTUAL_string__FlatStringIterator__item(val* self) { +val* var /* : nullable Object */; +char var1 /* : Char */; +val* var2 /* : nullable Object */; +var1 = string__FlatStringIterator__item(self); +var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */ +var = var2; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#next for (self: FlatStringIterator) */ +void string__FlatStringIterator__next(val* self) { +val* var_ /* var : FlatStringIterator */; +long var /* : Int */; +long var2 /* : Int */; +long var3 /* : Int */; +long var4 /* : Int */; +short int var6 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var7 /* : Int */; +var_ = self; +{ +{ /* Inline string#FlatStringIterator#curr_pos (var_) on */ +var2 = var_->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on */ +var = var2; +RET_LABEL1:(void)0; +} +} +var3 = 1; +{ +{ /* Inline kernel#Int#+ (var,var3) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var6 = 1; /* easy isa OTHER*/ +if (unlikely(!var6)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var7 = var + var3; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline string#FlatStringIterator#curr_pos= (var_,var4) on */ +var_->attrs[COLOR_string__FlatStringIterator___curr_pos].l = var4; /* _curr_pos on */ +RET_LABEL8:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatStringIterator#next for (self: Object) */ +void VIRTUAL_string__FlatStringIterator__next(val* self) { +string__FlatStringIterator__next(self); /* Direct call string#FlatStringIterator#next on */ +RET_LABEL:; +} +/* method string#FlatStringIterator#index for (self: FlatStringIterator): Int */ +long string__FlatStringIterator__index(val* self) { +long var /* : Int */; +long var1 /* : Int */; +long var3 /* : Int */; +val* var4 /* : FlatString */; +val* var6 /* : FlatString */; +long var7 /* : Int */; +long var9 /* : Int */; +long var10 /* : Int */; +short int var12 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var13 /* : Int */; +{ +{ /* Inline string#FlatStringIterator#curr_pos (self) on */ +var3 = self->attrs[COLOR_string__FlatStringIterator___curr_pos].l; /* _curr_pos on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline string#FlatStringIterator#target (self) on */ +var6 = self->attrs[COLOR_string__FlatStringIterator___target].val; /* _target on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1234); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (var4) on */ +var9 = var4->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline kernel#Int#- (var1,var7) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var12 = 1; /* easy isa OTHER*/ +if (unlikely(!var12)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var13 = var1 - var7; +var10 = var13; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +} +var = var10; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#index for (self: Object): Int */ +long VIRTUAL_string__FlatStringIterator__index(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = string__FlatStringIterator__index(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatStringIterator#init for (self: FlatStringIterator) */ +void string__FlatStringIterator__init(val* self) { +{ +((void (*)(val*))(self->class->vft[COLOR_string__FlatStringIterator__init]))(self) /* init on */; +} +RET_LABEL:; +} +/* method string#FlatStringIterator#init for (self: Object) */ +void VIRTUAL_string__FlatStringIterator__init(val* self) { +{ /* Inline string#FlatStringIterator#init (self) on */ +{ +((void (*)(val*))(self->class->vft[COLOR_string__FlatStringIterator__init]))(self) /* init on */; +} +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatStringCharView#[] for (self: FlatStringCharView, Int): Char */ +char string__FlatStringCharView___91d_93d(val* self, long p0) { +char var /* : Char */; +long var_index /* var index: Int */; +long var1 /* : Int */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var5 /* : Bool */; +val* var6 /* : Text */; +val* var8 /* : Text */; +val* var_target /* var target: FlatString */; +long var9 /* : Int */; +long var11 /* : Int */; +long var12 /* : Int */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; +long var18 /* : Int */; +long var19 /* : Int */; +long var21 /* : Int */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +short int var28 /* : Bool */; +char* var29 /* : NativeString */; +char* var31 /* : NativeString */; +long var32 /* : Int */; +long var34 /* : Int */; +long var35 /* : Int */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +const char* var_class_name40; +long var41 /* : Int */; +char var42 /* : Char */; +char var44 /* : Char */; +var_index = p0; +var1 = 0; +{ +{ /* Inline kernel#Int#>= (var_index,var1) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var5 = var_index >= var1; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1266); +show_backtrace(1); +} +{ +{ /* Inline string#StringCharView#target (self) on */ +var8 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} +} +var_target = var6; +{ +{ /* Inline string#FlatString#index_from (var_target) on */ +var11 = var_target->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var_index,var9) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var14 = 1; /* easy isa OTHER*/ +if (unlikely(!var14)) { +var_class_name17 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var18 = var_index + var9; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_to (var_target) on */ +var21 = var_target->attrs[COLOR_string__FlatString___index_to].l; /* _index_to on */ +var19 = var21; +RET_LABEL20:(void)0; +} +} +{ +{ /* Inline kernel#Int#<= (var12,var19) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var24 = 1; /* easy isa OTHER*/ +if (unlikely(!var24)) { +var_class_name27 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var28 = var12 <= var19; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; +} +} +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1268); +show_backtrace(1); +} +{ +{ /* Inline string#FlatText#items (var_target) on */ +var31 = var_target->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var29 = var31; +RET_LABEL30:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (var_target) on */ +var34 = var_target->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var32 = var34; +RET_LABEL33:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var_index,var32) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var37 = 1; /* easy isa OTHER*/ +if (unlikely(!var37)) { +var_class_name40 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var41 = var_index + var32; +var35 = var41; +goto RET_LABEL36; +RET_LABEL36:(void)0; +} +} +{ +{ /* Inline string#NativeString#[] (var29,var35) on */ +var44 = var29[var35]; +var42 = var44; +goto RET_LABEL43; +RET_LABEL43:(void)0; +} +} +var = var42; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatStringCharView#[] for (self: Object, Int): nullable Object */ +val* VIRTUAL_string__FlatStringCharView___91d_93d(val* self, long p0) { +val* var /* : nullable Object */; +char var1 /* : Char */; +val* var2 /* : nullable Object */; +var1 = string__FlatStringCharView___91d_93d(self, p0); +var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */ +var = var2; +RET_LABEL:; +return var; +} +/* method string#FlatStringCharView#iterator_from for (self: FlatStringCharView, Int): IndexedIterator[Char] */ +val* string__FlatStringCharView__iterator_from(val* self, long p0) { +val* var /* : IndexedIterator[Char] */; +long var_start /* var start: Int */; +val* var1 /* : FlatStringIterator */; +val* var2 /* : Text */; +val* var4 /* : Text */; +var_start = p0; +var1 = NEW_string__FlatStringIterator(&type_string__FlatStringIterator); +{ +{ /* Inline string#StringCharView#target (self) on */ +var4 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var4 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); +} +var2 = var4; +RET_LABEL3:(void)0; +} +} +{ +string__FlatStringIterator__with_pos(var1, var2, var_start); /* Direct call string#FlatStringIterator#with_pos on */ +} +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatStringCharView#iterator_from for (self: Object, Int): IndexedIterator[nullable Object] */ +val* VIRTUAL_string__FlatStringCharView__iterator_from(val* self, long p0) { +val* var /* : IndexedIterator[nullable Object] */; +val* var1 /* : IndexedIterator[Char] */; +var1 = string__FlatStringCharView__iterator_from(self, p0); +var = var1; +RET_LABEL:; +return var; +} +/* method string#Buffer#is_dirty for (self: Buffer): Bool */ +short int string__Buffer__is_dirty(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#Buffer#is_dirty for (self: Object): Bool */ +short int VIRTUAL_string__Buffer__is_dirty(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +{ /* Inline string#Buffer#is_dirty (self) on */ +var3 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#Buffer#is_dirty= for (self: Buffer, Bool) */ +void string__Buffer__is_dirty_61d(val* self, short int p0) { +self->attrs[COLOR_string__Buffer___is_dirty].s = p0; /* _is_dirty on */ +RET_LABEL:; +} +/* method string#Buffer#is_dirty= for (self: Object, Bool) */ +void VIRTUAL_string__Buffer__is_dirty_61d(val* self, short int p0) { +{ /* Inline string#Buffer#is_dirty= (self,p0) on */ +self->attrs[COLOR_string__Buffer___is_dirty].s = p0; /* _is_dirty on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#Buffer#written for (self: Buffer): Bool */ +short int string__Buffer__written(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_string__Buffer___written].s; /* _written on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#Buffer#written for (self: Object): Bool */ +short int VIRTUAL_string__Buffer__written(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +{ /* Inline string#Buffer#written (self) on */ +var3 = self->attrs[COLOR_string__Buffer___written].s; /* _written on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#Buffer#written= for (self: Buffer, Bool) */ +void string__Buffer__written_61d(val* self, short int p0) { +self->attrs[COLOR_string__Buffer___written].s = p0; /* _written on */ +RET_LABEL:; +} +/* method string#Buffer#written= for (self: Object, Bool) */ +void VIRTUAL_string__Buffer__written_61d(val* self, short int p0) { +{ /* Inline string#Buffer#written= (self,p0) on */ +self->attrs[COLOR_string__Buffer___written].s = p0; /* _written on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#Buffer#hash for (self: Buffer): Int */ +long string__Buffer__hash(val* self) { +long var /* : Int */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +val* var4 /* : null */; +long var6 /* : Int */; +{ +{ /* Inline string#Buffer#is_dirty (self) on */ +var3 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +if (var1){ +var4 = NULL; +{ +{ /* Inline string#Text#hash_cache= (self,var4) on */ +self->attrs[COLOR_string__Text___hash_cache].val = var4; /* _hash_cache on */ +RET_LABEL5:(void)0; +} +} +} else { +} +{ +var6 = ((long (*)(val*))(self->class->vft[COLOR_string__Buffer__hash]))(self) /* hash on */; +} +var = var6; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#Buffer#hash for (self: Object): Int */ +long VIRTUAL_string__Buffer__hash(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = string__Buffer__hash(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#chars for (self: FlatBuffer): Sequence[Char] */ +val* string__FlatBuffer__chars(val* self) { +val* var /* : Sequence[Char] */; +val* var1 /* : Sequence[Char] */; +var1 = self->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1406); +show_backtrace(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#chars for (self: Object): SequenceRead[Char] */ +val* VIRTUAL_string__FlatBuffer__chars(val* self) { +val* var /* : SequenceRead[Char] */; +val* var1 /* : Sequence[Char] */; +val* var3 /* : Sequence[Char] */; +{ /* Inline string#FlatBuffer#chars (self) on */ +var3 = self->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1406); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#capacity for (self: FlatBuffer): Int */ +long string__FlatBuffer__capacity(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#capacity for (self: Object): Int */ +long VIRTUAL_string__FlatBuffer__capacity(val* self) { +long var /* : Int */; +long var1 /* : Int */; +long var3 /* : Int */; +{ /* Inline string#FlatBuffer#capacity (self) on */ +var3 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#capacity= for (self: FlatBuffer, Int) */ +void string__FlatBuffer__capacity_61d(val* self, long p0) { +self->attrs[COLOR_string__FlatBuffer___capacity].l = p0; /* _capacity on */ +RET_LABEL:; +} +/* method string#FlatBuffer#capacity= for (self: Object, Int) */ +void VIRTUAL_string__FlatBuffer__capacity_61d(val* self, long p0) { +{ /* Inline string#FlatBuffer#capacity= (self,p0) on */ +self->attrs[COLOR_string__FlatBuffer___capacity].l = p0; /* _capacity on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatBuffer#substrings for (self: FlatBuffer): Iterator[Text] */ +val* string__FlatBuffer__substrings(val* self) { +val* var /* : Iterator[Text] */; +val* var1 /* : FlatSubstringsIter */; +var1 = NEW_string__FlatSubstringsIter(&type_string__FlatSubstringsIter); +{ +string__FlatSubstringsIter__init(var1, self); /* Direct call string#FlatSubstringsIter#init on */ +} +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#substrings for (self: Object): Iterator[Text] */ +val* VIRTUAL_string__FlatBuffer__substrings(val* self) { +val* var /* : Iterator[Text] */; +val* var1 /* : Iterator[Text] */; +var1 = string__FlatBuffer__substrings(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#reset for (self: FlatBuffer) */ +void string__FlatBuffer__reset(val* self) { +char* var /* : NativeString */; +long var1 /* : Int */; +long var3 /* : Int */; +char* var4 /* : NativeString */; +char* var6 /* : NativeString */; +char* var_nns /* var nns: NativeString */; +char* var7 /* : NativeString */; +char* var9 /* : NativeString */; +long var10 /* : Int */; +long var12 /* : Int */; +long var13 /* : Int */; +long var14 /* : Int */; +short int var17 /* : Bool */; +var = NULL/*special!*/; +{ +{ /* Inline string#FlatBuffer#capacity (self) on */ +var3 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline string#NativeString#new (var,var1) on */ +var6 = (char*)nit_alloc(var1); +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +} +var_nns = var4; +{ +{ /* Inline string#FlatText#items (self) on */ +var9 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var12 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var10 = var12; +RET_LABEL11:(void)0; +} +} +var13 = 0; +var14 = 0; +{ +{ /* Inline string#NativeString#copy_to (var7,var_nns,var10,var13,var14) on */ +memmove(var_nns+var14,var7+var13,var10); +RET_LABEL15:(void)0; +} +} +{ +{ /* Inline string#FlatText#items= (self,var_nns) on */ +self->attrs[COLOR_string__FlatText___items].str = var_nns; /* _items on */ +RET_LABEL16:(void)0; +} +} +var17 = 0; +{ +{ /* Inline string#Buffer#written= (self,var17) on */ +self->attrs[COLOR_string__Buffer___written].s = var17; /* _written on */ +RET_LABEL18:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatBuffer#reset for (self: Object) */ +void VIRTUAL_string__FlatBuffer__reset(val* self) { +string__FlatBuffer__reset(self); /* Direct call string#FlatBuffer#reset on */ +RET_LABEL:; +} +/* method string#FlatBuffer#[] for (self: FlatBuffer, Int): Char */ +char string__FlatBuffer___91d_93d(val* self, long p0) { +char var /* : Char */; +long var_index /* var index: Int */; +long var1 /* : Int */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var5 /* : Bool */; +long var6 /* : Int */; +long var8 /* : Int */; +short int var9 /* : Bool */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; +short int var15 /* : Bool */; +char* var16 /* : NativeString */; +char* var18 /* : NativeString */; +char var19 /* : Char */; +char var21 /* : Char */; +var_index = p0; +var1 = 0; +{ +{ /* Inline kernel#Int#>= (var_index,var1) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var5 = var_index >= var1; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1425); +show_backtrace(1); +} +{ +{ /* Inline string#FlatText#length (self) on */ +var8 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +{ /* Inline kernel#Int#< (var_index,var6) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var11 = 1; /* easy isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var15 = var_index < var6; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1426); +show_backtrace(1); +} +{ +{ /* Inline string#FlatText#items (self) on */ +var18 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline string#NativeString#[] (var16,var_index) on */ +var21 = var16[var_index]; +var19 = var21; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +} +var = var19; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#[] for (self: Object, Int): Char */ +char VIRTUAL_string__FlatBuffer___91d_93d(val* self, long p0) { +char var /* : Char */; +char var1 /* : Char */; +var1 = string__FlatBuffer___91d_93d(self, p0); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#add for (self: FlatBuffer, Char) */ +void string__FlatBuffer__add(val* self, char p0) { +char var_c /* var c: Char */; +short int var /* : Bool */; +long var2 /* : Int */; +long var4 /* : Int */; +long var5 /* : Int */; +long var7 /* : Int */; +short int var8 /* : Bool */; +short int var10 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var11 /* : Bool */; +long var12 /* : Int */; +long var14 /* : Int */; +long var15 /* : Int */; +long var16 /* : Int */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const char* var_class_name21; +long var22 /* : Int */; +char* var23 /* : NativeString */; +char* var25 /* : NativeString */; +long var26 /* : Int */; +long var28 /* : Int */; +val* var_ /* var : FlatBuffer */; +long var30 /* : Int */; +long var32 /* : Int */; +long var33 /* : Int */; +long var34 /* : Int */; +short int var36 /* : Bool */; +int cltype37; +int idtype38; +const char* var_class_name39; +long var40 /* : Int */; +var_c = p0; +var = 1; +{ +{ /* Inline string#Buffer#is_dirty= (self,var) on */ +self->attrs[COLOR_string__Buffer___is_dirty].s = var; /* _is_dirty on */ +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline string#FlatBuffer#capacity (self) on */ +var4 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var2 = var4; +RET_LABEL3:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var7 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var5 = var7; +RET_LABEL6:(void)0; +} +} +{ +{ /* Inline kernel#Int#<= (var2,var5) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var10 = 1; /* easy isa OTHER*/ +if (unlikely(!var10)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var11 = var2 <= var5; +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; +} +} +if (var8){ +{ +{ /* Inline string#FlatText#length (self) on */ +var14 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var12 = var14; +RET_LABEL13:(void)0; +} +} +var15 = 5; +{ +{ /* Inline kernel#Int#+ (var12,var15) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var18 = 1; /* easy isa OTHER*/ +if (unlikely(!var18)) { +var_class_name21 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var22 = var12 + var15; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; +} +} +{ +string__FlatBuffer__enlarge(self, var16); /* Direct call string#FlatBuffer#enlarge on */ +} +} else { +} +{ +{ /* Inline string#FlatText#items (self) on */ +var25 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var23 = var25; +RET_LABEL24:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var28 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var26 = var28; +RET_LABEL27:(void)0; +} +} +{ +{ /* Inline string#NativeString#[]= (var23,var26,var_c) on */ +var23[var26]=var_c; +RET_LABEL29:(void)0; +} +} +var_ = self; +{ +{ /* Inline string#FlatText#length (var_) on */ +var32 = var_->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var30 = var32; +RET_LABEL31:(void)0; +} +} +var33 = 1; +{ +{ /* Inline kernel#Int#+ (var30,var33) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var36 = 1; /* easy isa OTHER*/ +if (unlikely(!var36)) { +var_class_name39 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var40 = var30 + var33; +var34 = var40; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +} +{ +{ /* Inline string#FlatText#length= (var_,var34) on */ +var_->attrs[COLOR_string__FlatText___length].l = var34; /* _length on */ +RET_LABEL41:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatBuffer#add for (self: Object, Char) */ +void VIRTUAL_string__FlatBuffer__add(val* self, char p0) { +string__FlatBuffer__add(self, p0); /* Direct call string#FlatBuffer#add on */ +RET_LABEL:; +} +/* method string#FlatBuffer#clear for (self: FlatBuffer) */ +void string__FlatBuffer__clear(val* self) { +short int var /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +long var5 /* : Int */; +var = 1; +{ +{ /* Inline string#Buffer#is_dirty= (self,var) on */ +self->attrs[COLOR_string__Buffer___is_dirty].s = var; /* _is_dirty on */ +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline string#Buffer#written (self) on */ +var4 = self->attrs[COLOR_string__Buffer___written].s; /* _written on */ +var2 = var4; +RET_LABEL3:(void)0; +} +} +if (var2){ +{ +string__FlatBuffer__reset(self); /* Direct call string#FlatBuffer#reset on */ +} +} else { +} +var5 = 0; +{ +{ /* Inline string#FlatText#length= (self,var5) on */ +self->attrs[COLOR_string__FlatText___length].l = var5; /* _length on */ +RET_LABEL6:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatBuffer#clear for (self: Object) */ +void VIRTUAL_string__FlatBuffer__clear(val* self) { +string__FlatBuffer__clear(self); /* Direct call string#FlatBuffer#clear on */ +RET_LABEL:; +} +/* method string#FlatBuffer#empty for (self: FlatBuffer): FlatBuffer */ +val* string__FlatBuffer__empty(val* self) { +val* var /* : FlatBuffer */; +val* var1 /* : FlatBuffer */; +short int var2 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer); +{ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; +} +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= var1->type->table_size) { +var2 = 0; +} else { +var2 = var1->type->type_table[cltype] == idtype; +} +if (unlikely(!var2)) { +var_class_name = var1 == NULL ? "null" : var1->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1456); +show_backtrace(1); +} +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#empty for (self: Object): Text */ +val* VIRTUAL_string__FlatBuffer__empty(val* self) { +val* var /* : Text */; +val* var1 /* : FlatBuffer */; +var1 = string__FlatBuffer__empty(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#enlarge for (self: FlatBuffer, Int) */ +void string__FlatBuffer__enlarge(val* self, long p0) { +long var_cap /* var cap: Int */; +long var /* : Int */; +long var2 /* : Int */; +long var_c /* var c: Int */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +const char* var_class_name12; +short int var13 /* : Bool */; +long var14 /* : Int */; +long var15 /* : Int */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +const char* var_class_name20; +long var21 /* : Int */; +long var22 /* : Int */; +long var23 /* : Int */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +const char* var_class_name28; +long var29 /* : Int */; +short int var30 /* : Bool */; +long var32 /* : Int */; +long var33 /* : Int */; +short int var35 /* : Bool */; +int cltype36; +int idtype37; +const char* var_class_name38; +long var39 /* : Int */; +char* var40 /* : NativeString */; +char* var42 /* : NativeString */; +char* var_a /* var a: NativeString */; +long var43 /* : Int */; +long var45 /* : Int */; +long var46 /* : Int */; +short int var47 /* : Bool */; +short int var49 /* : Bool */; +int cltype50; +int idtype51; +const char* var_class_name52; +short int var53 /* : Bool */; +char* var54 /* : NativeString */; +char* var56 /* : NativeString */; +long var57 /* : Int */; +long var59 /* : Int */; +long var60 /* : Int */; +long var61 /* : Int */; +var_cap = p0; +{ +{ /* Inline string#FlatBuffer#capacity (self) on */ +var2 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var = var2; +RET_LABEL1:(void)0; +} +} +var_c = var; +{ +{ /* Inline kernel#Int#<= (var_cap,var_c) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var5 = 1; /* easy isa OTHER*/ +if (unlikely(!var5)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var6 = var_cap <= var_c; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +} +if (var3){ +goto RET_LABEL; +} else { +} +for(;;) { +{ +{ /* Inline kernel#Int#<= (var_c,var_cap) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { +var_class_name12 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var13 = var_c <= var_cap; +var7 = var13; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +if (var7){ +var14 = 2; +{ +{ /* Inline kernel#Int#* (var_c,var14) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var17 = 1; /* easy isa OTHER*/ +if (unlikely(!var17)) { +var_class_name20 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378); +show_backtrace(1); +} +var21 = var_c * var14; +var15 = var21; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +} +var22 = 2; +{ +{ /* Inline kernel#Int#+ (var15,var22) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var25 = 1; /* easy isa OTHER*/ +if (unlikely(!var25)) { +var_class_name28 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var29 = var15 + var22; +var23 = var29; +goto RET_LABEL24; +RET_LABEL24:(void)0; +} +} +var_c = var23; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +var30 = 0; +{ +{ /* Inline string#Buffer#written= (self,var30) on */ +self->attrs[COLOR_string__Buffer___written].s = var30; /* _written on */ +RET_LABEL31:(void)0; +} +} +var32 = 1; +{ +{ /* Inline kernel#Int#+ (var_c,var32) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var35 = 1; /* easy isa OTHER*/ +if (unlikely(!var35)) { +var_class_name38 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var39 = var_c + var32; +var33 = var39; +goto RET_LABEL34; +RET_LABEL34:(void)0; +} +} +{ +{ /* Inline string#StringCapable#calloc_string (self,var33) on */ +var42 = (char*)nit_alloc(var33); +var40 = var42; +goto RET_LABEL41; +RET_LABEL41:(void)0; +} +} +var_a = var40; +{ +{ /* Inline string#FlatText#length (self) on */ +var45 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var43 = var45; +RET_LABEL44:(void)0; +} +} +var46 = 0; +{ +{ /* Inline kernel#Int#> (var43,var46) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var49 = 1; /* easy isa OTHER*/ +if (unlikely(!var49)) { +var_class_name52 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var53 = var43 > var46; +var47 = var53; +goto RET_LABEL48; +RET_LABEL48:(void)0; +} +} +if (var47){ +{ +{ /* Inline string#FlatText#items (self) on */ +var56 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var54 = var56; +RET_LABEL55:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var59 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var57 = var59; +RET_LABEL58:(void)0; +} +} +var60 = 0; +var61 = 0; +{ +{ /* Inline string#NativeString#copy_to (var54,var_a,var57,var60,var61) on */ +memmove(var_a+var61,var54+var60,var57); +RET_LABEL62:(void)0; +} +} +} else { +} +{ +{ /* Inline string#FlatText#items= (self,var_a) on */ +self->attrs[COLOR_string__FlatText___items].str = var_a; /* _items on */ +RET_LABEL63:(void)0; +} +} +{ +{ /* Inline string#FlatBuffer#capacity= (self,var_c) on */ +self->attrs[COLOR_string__FlatBuffer___capacity].l = var_c; /* _capacity on */ +RET_LABEL64:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatBuffer#enlarge for (self: Object, Int) */ +void VIRTUAL_string__FlatBuffer__enlarge(val* self, long p0) { +string__FlatBuffer__enlarge(self, p0); /* Direct call string#FlatBuffer#enlarge on */ +RET_LABEL:; +} +/* method string#FlatBuffer#to_s for (self: FlatBuffer): String */ +val* string__FlatBuffer__to_s(val* self) { +val* var /* : String */; +short int var1 /* : Bool */; +long var3 /* : Int */; +long var5 /* : Int */; +long var6 /* : Int */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +short int var10 /* : Bool */; +char* var11 /* : NativeString */; +long var12 /* : Int */; +char* var13 /* : NativeString */; +char* var15 /* : NativeString */; +val* var17 /* : FlatString */; +char* var18 /* : NativeString */; +char* var20 /* : NativeString */; +long var21 /* : Int */; +long var23 /* : Int */; +long var24 /* : Int */; +long var25 /* : Int */; +long var27 /* : Int */; +long var28 /* : Int */; +long var29 /* : Int */; +short int var31 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var32 /* : Int */; +var1 = 1; +{ +{ /* Inline string#Buffer#written= (self,var1) on */ +self->attrs[COLOR_string__Buffer___written].s = var1; /* _written on */ +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var5 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var3 = var5; +RET_LABEL4:(void)0; +} +} +var6 = 0; +{ +{ /* Inline kernel#Int#== (var3,var6) on */ +var10 = var3 == var6; +var8 = var10; +goto RET_LABEL9; +RET_LABEL9:(void)0; +} +var7 = var8; +} +if (var7){ +var11 = NULL/*special!*/; +var12 = 1; +{ +{ /* Inline string#NativeString#new (var11,var12) on */ +var15 = (char*)nit_alloc(var12); +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; +} +} +{ +{ /* Inline string#FlatText#items= (self,var13) on */ +self->attrs[COLOR_string__FlatText___items].str = var13; /* _items on */ +RET_LABEL16:(void)0; +} +} +} else { +} +var17 = NEW_string__FlatString(&type_string__FlatString); +{ +{ /* Inline string#FlatText#items (self) on */ +var20 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var18 = var20; +RET_LABEL19:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var23 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var21 = var23; +RET_LABEL22:(void)0; +} +} +var24 = 0; +{ +{ /* Inline string#FlatText#length (self) on */ +var27 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var25 = var27; +RET_LABEL26:(void)0; +} +} +var28 = 1; +{ +{ /* Inline kernel#Int#- (var25,var28) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var31 = 1; /* easy isa OTHER*/ +if (unlikely(!var31)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var32 = var25 - var28; +var29 = var32; +goto RET_LABEL30; +RET_LABEL30:(void)0; +} +} +{ +string__FlatString__with_infos(var17, var18, var21, var24, var29); /* Direct call string#FlatString#with_infos on */ +} +var = var17; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#to_s for (self: Object): String */ +val* VIRTUAL_string__FlatBuffer__to_s(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = string__FlatBuffer__to_s(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#to_cstring for (self: FlatBuffer): NativeString */ +char* string__FlatBuffer__to_cstring(val* self) { +char* var /* : NativeString */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +long var4 /* : Int */; +long var6 /* : Int */; +long var7 /* : Int */; +long var8 /* : Int */; +short int var10 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var11 /* : Int */; +char* var12 /* : NativeString */; +char* var14 /* : NativeString */; +char* var_new_native /* var new_native: NativeString */; +long var15 /* : Int */; +long var17 /* : Int */; +char var18 /* : Char */; +long var20 /* : Int */; +long var22 /* : Int */; +long var23 /* : Int */; +short int var24 /* : Bool */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const char* var_class_name29; +short int var30 /* : Bool */; +char* var31 /* : NativeString */; +char* var33 /* : NativeString */; +long var34 /* : Int */; +long var36 /* : Int */; +long var37 /* : Int */; +long var38 /* : Int */; +val* var41 /* : nullable NativeString */; +short int var42 /* : Bool */; +val* var44 /* : nullable NativeString */; +val* var46 /* : nullable NativeString */; +char* var47 /* : NativeString */; +{ +{ /* Inline string#Buffer#is_dirty (self) on */ +var3 = self->attrs[COLOR_string__Buffer___is_dirty].s; /* _is_dirty on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +if (var1){ +{ +{ /* Inline string#FlatText#length (self) on */ +var6 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +var7 = 1; +{ +{ /* Inline kernel#Int#+ (var4,var7) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var10 = 1; /* easy isa OTHER*/ +if (unlikely(!var10)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var11 = var4 + var7; +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; +} +} +{ +{ /* Inline string#StringCapable#calloc_string (self,var8) on */ +var14 = (char*)nit_alloc(var8); +var12 = var14; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +} +var_new_native = var12; +{ +{ /* Inline string#FlatText#length (self) on */ +var17 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var15 = var17; +RET_LABEL16:(void)0; +} +} +var18 = '\0'; +{ +{ /* Inline string#NativeString#[]= (var_new_native,var15,var18) on */ +var_new_native[var15]=var18; +RET_LABEL19:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var22 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var20 = var22; +RET_LABEL21:(void)0; +} +} +var23 = 0; +{ +{ /* Inline kernel#Int#> (var20,var23) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var26 = 1; /* easy isa OTHER*/ +if (unlikely(!var26)) { +var_class_name29 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var30 = var20 > var23; +var24 = var30; +goto RET_LABEL25; +RET_LABEL25:(void)0; +} +} +if (var24){ +{ +{ /* Inline string#FlatText#items (self) on */ +var33 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var31 = var33; +RET_LABEL32:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var36 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var34 = var36; +RET_LABEL35:(void)0; +} +} +var37 = 0; +var38 = 0; +{ +{ /* Inline string#NativeString#copy_to (var31,var_new_native,var34,var37,var38) on */ +memmove(var_new_native+var38,var31+var37,var34); +RET_LABEL39:(void)0; +} +} +} else { +} +{ +{ /* Inline string#FlatText#real_items= (self,var_new_native) on */ +var41 = BOX_string__NativeString(var_new_native); /* autobox from NativeString to nullable NativeString */ +self->attrs[COLOR_string__FlatText___real_items].val = var41; /* _real_items on */ +RET_LABEL40:(void)0; +} +} +var42 = 0; +{ +{ /* Inline string#Buffer#is_dirty= (self,var42) on */ +self->attrs[COLOR_string__Buffer___is_dirty].s = var42; /* _is_dirty on */ +RET_LABEL43:(void)0; +} +} +} else { +} +{ +{ /* Inline string#FlatText#real_items (self) on */ +var46 = self->attrs[COLOR_string__FlatText___real_items].val; /* _real_items on */ +var44 = var46; +RET_LABEL45:(void)0; +} +} +if (unlikely(var44 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1488); +show_backtrace(1); +} +var47 = ((struct instance_string__NativeString*)var44)->value; /* autounbox from nullable NativeString to NativeString */; +var = var47; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#to_cstring for (self: Object): NativeString */ +char* VIRTUAL_string__FlatBuffer__to_cstring(val* self) { +char* var /* : NativeString */; +char* var1 /* : NativeString */; +var1 = string__FlatBuffer__to_cstring(self); +var = var1; +RET_LABEL:; +return var; +} +/* method string#FlatBuffer#init for (self: FlatBuffer) */ +void string__FlatBuffer__init(val* self) { +{ +((void (*)(val*))(self->class->vft[COLOR_string__FlatBuffer__init]))(self) /* init on */; +} +RET_LABEL:; +} +/* method string#FlatBuffer#init for (self: Object) */ +void VIRTUAL_string__FlatBuffer__init(val* self) { +{ /* Inline string#FlatBuffer#init (self) on */ +{ +((void (*)(val*))(self->class->vft[COLOR_string__FlatBuffer__init]))(self) /* init on */; +} +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatBuffer#from for (self: FlatBuffer, Text) */ +void string__FlatBuffer__from(val* self, val* p0) { +val* var_s /* var s: Text */; +long var /* : Int */; +long var2 /* : Int */; +long var3 /* : Int */; +long var4 /* : Int */; +short int var6 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var7 /* : Int */; +long var9 /* : Int */; +long var11 /* : Int */; +long var13 /* : Int */; +long var15 /* : Int */; +char* var16 /* : NativeString */; +char* var18 /* : NativeString */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +char* var23 /* : NativeString */; +char* var25 /* : NativeString */; +char* var26 /* : NativeString */; +char* var28 /* : NativeString */; +long var29 /* : Int */; +long var31 /* : Int */; +long var32 /* : Int */; +long var34 /* : Int */; +long var35 /* : Int */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +char* var40 /* : NativeString */; +char* var42 /* : NativeString */; +char* var43 /* : NativeString */; +char* var45 /* : NativeString */; +long var46 /* : Int */; +long var48 /* : Int */; +long var49 /* : Int */; +long var50 /* : Int */; +long var52 /* : Int */; +long var_curr_pos /* var curr_pos: Int */; +long var53 /* : Int */; +long var_i /* var i: Int */; +long var54 /* : Int */; +long var56 /* : Int */; +long var_ /* var : Int */; +short int var57 /* : Bool */; +short int var59 /* : Bool */; +int cltype60; +int idtype61; +const char* var_class_name62; +short int var63 /* : Bool */; +val* var64 /* : SequenceRead[Char] */; +val* var65 /* : nullable Object */; +char var66 /* : Char */; +char var_c /* var c: Char */; +char* var67 /* : NativeString */; +char* var69 /* : NativeString */; +long var71 /* : Int */; +long var72 /* : Int */; +short int var74 /* : Bool */; +int cltype75; +int idtype76; +const char* var_class_name77; +long var78 /* : Int */; +long var79 /* : Int */; +long var80 /* : Int */; +{ +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; +} +var_s = p0; +{ +{ /* Inline string#FlatText#length (var_s) on */ +var2 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var = var2; +RET_LABEL1:(void)0; +} +} +var3 = 1; +{ +{ /* Inline kernel#Int#+ (var,var3) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var6 = 1; /* easy isa OTHER*/ +if (unlikely(!var6)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var7 = var + var3; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline string#FlatBuffer#capacity= (self,var4) on */ +self->attrs[COLOR_string__FlatBuffer___capacity].l = var4; /* _capacity on */ +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (var_s) on */ +var11 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +{ /* Inline string#FlatText#length= (self,var9) on */ +self->attrs[COLOR_string__FlatText___length].l = var9; /* _length on */ +RET_LABEL12:(void)0; +} +} +{ +{ /* Inline string#FlatBuffer#capacity (self) on */ +var15 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +{ /* Inline string#StringCapable#calloc_string (self,var13) on */ +var18 = (char*)nit_alloc(var13); +var16 = var18; +goto RET_LABEL17; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline string#FlatText#items= (self,var16) on */ +self->attrs[COLOR_string__FlatText___items].str = var16; /* _items on */ +RET_LABEL19:(void)0; +} +} +/* isa FlatString */ +cltype21 = type_string__FlatString.color; +idtype22 = type_string__FlatString.id; +if(cltype21 >= var_s->type->table_size) { +var20 = 0; +} else { +var20 = var_s->type->type_table[cltype21] == idtype22; +} +if (var20){ +{ +{ /* Inline string#FlatText#items (var_s) on */ +var25 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var23 = var25; +RET_LABEL24:(void)0; +} +} +{ +{ /* Inline string#FlatText#items (self) on */ +var28 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var26 = var28; +RET_LABEL27:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var31 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var29 = var31; +RET_LABEL30:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (var_s) on */ +var34 = var_s->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var32 = var34; +RET_LABEL33:(void)0; +} +} +var35 = 0; +{ +{ /* Inline string#NativeString#copy_to (var23,var26,var29,var32,var35) on */ +memmove(var26+var35,var23+var32,var29); +RET_LABEL36:(void)0; +} +} +} else { +/* isa FlatBuffer */ +cltype38 = type_string__FlatBuffer.color; +idtype39 = type_string__FlatBuffer.id; +if(cltype38 >= var_s->type->table_size) { +var37 = 0; +} else { +var37 = var_s->type->type_table[cltype38] == idtype39; +} +if (var37){ +{ +{ /* Inline string#FlatText#items (var_s) on */ +var42 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var40 = var42; +RET_LABEL41:(void)0; +} +} +{ +{ /* Inline string#FlatText#items (self) on */ +var45 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var43 = var45; +RET_LABEL44:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var48 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var46 = var48; +RET_LABEL47:(void)0; +} +} +var49 = 0; +var50 = 0; +{ +{ /* Inline string#NativeString#copy_to (var40,var43,var46,var49,var50) on */ +memmove(var43+var50,var40+var49,var46); +RET_LABEL51:(void)0; +} +} +} else { +var52 = 0; +var_curr_pos = var52; +var53 = 0; +var_i = var53; +{ +{ /* Inline string#FlatText#length (var_s) on */ +var56 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var54 = var56; +RET_LABEL55:(void)0; +} +} +var_ = var54; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var59 = 1; /* easy isa OTHER*/ +if (unlikely(!var59)) { +var_class_name62 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var63 = var_i < var_; +var57 = var63; +goto RET_LABEL58; +RET_LABEL58:(void)0; +} +} +if (var57){ +{ +var64 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on */; +} +{ +var65 = ((val* (*)(val*, long))(var64->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var64, var_i) /* [] on */; +} +var66 = ((struct instance_kernel__Char*)var65)->value; /* autounbox from nullable Object to Char */; +var_c = var66; +{ +{ /* Inline string#FlatText#items (self) on */ +var69 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var67 = var69; +RET_LABEL68:(void)0; +} +} +{ +{ /* Inline string#NativeString#[]= (var67,var_curr_pos,var_c) on */ +var67[var_curr_pos]=var_c; +RET_LABEL70:(void)0; +} +} +var71 = 1; +{ +{ /* Inline kernel#Int#+ (var_curr_pos,var71) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var74 = 1; /* easy isa OTHER*/ +if (unlikely(!var74)) { +var_class_name77 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var78 = var_curr_pos + var71; +var72 = var78; +goto RET_LABEL73; +RET_LABEL73:(void)0; +} +} +var_curr_pos = var72; +var79 = 1; +{ +var80 = kernel__Int__successor(var_i, var79); +} +var_i = var80; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +} +} +RET_LABEL:; +} +/* method string#FlatBuffer#from for (self: Object, Text) */ +void VIRTUAL_string__FlatBuffer__from(val* self, val* p0) { +string__FlatBuffer__from(self, p0); /* Direct call string#FlatBuffer#from on */ +RET_LABEL:; +} +/* method string#FlatBuffer#with_capacity for (self: FlatBuffer, Int) */ +void string__FlatBuffer__with_capacity(val* self, long p0) { +long var_cap /* var cap: Int */; +long var /* : Int */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var4 /* : Bool */; +long var5 /* : Int */; +long var6 /* : Int */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +const char* var_class_name11; +long var12 /* : Int */; +char* var13 /* : NativeString */; +char* var15 /* : NativeString */; +long var18 /* : Int */; +{ +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; +} +var_cap = p0; +var = 0; +{ +{ /* Inline kernel#Int#>= (var_cap,var) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var3 = 1; /* easy isa OTHER*/ +if (unlikely(!var3)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var4 = var_cap >= var; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +} +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1516); +show_backtrace(1); +} +var5 = 1; +{ +{ /* Inline kernel#Int#+ (var_cap,var5) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var8 = 1; /* easy isa OTHER*/ +if (unlikely(!var8)) { +var_class_name11 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var12 = var_cap + var5; +var6 = var12; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +} +{ +{ /* Inline string#StringCapable#calloc_string (self,var6) on */ +var15 = (char*)nit_alloc(var6); +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; +} +} +{ +{ /* Inline string#FlatText#items= (self,var13) on */ +self->attrs[COLOR_string__FlatText___items].str = var13; /* _items on */ +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline string#FlatBuffer#capacity= (self,var_cap) on */ +self->attrs[COLOR_string__FlatBuffer___capacity].l = var_cap; /* _capacity on */ +RET_LABEL17:(void)0; +} +} +var18 = 0; +{ +{ /* Inline string#FlatText#length= (self,var18) on */ +self->attrs[COLOR_string__FlatText___length].l = var18; /* _length on */ +RET_LABEL19:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatBuffer#with_capacity for (self: Object, Int) */ +void VIRTUAL_string__FlatBuffer__with_capacity(val* self, long p0) { +string__FlatBuffer__with_capacity(self, p0); /* Direct call string#FlatBuffer#with_capacity on */ +RET_LABEL:; +} +/* method string#FlatBuffer#append for (self: FlatBuffer, Text) */ +void string__FlatBuffer__append(val* self, val* p0) { +val* var_s /* var s: Text */; +short int var /* : Bool */; +short int var1 /* : Bool */; +long var3 /* : Int */; +long var5 /* : Int */; +long var_sl /* var sl: Int */; +long var6 /* : Int */; +long var8 /* : Int */; +long var9 /* : Int */; +long var11 /* : Int */; +long var12 /* : Int */; +short int var14 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var15 /* : Int */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const char* var_class_name21; +short int var22 /* : Bool */; +long var23 /* : Int */; +long var25 /* : Int */; +long var26 /* : Int */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +const char* var_class_name31; +long var32 /* : Int */; +short int var33 /* : Bool */; +int cltype34; +int idtype35; +char* var36 /* : NativeString */; +char* var38 /* : NativeString */; +char* var39 /* : NativeString */; +char* var41 /* : NativeString */; +long var42 /* : Int */; +long var44 /* : Int */; +long var45 /* : Int */; +long var47 /* : Int */; +short int var49 /* : Bool */; +int cltype50; +int idtype51; +char* var52 /* : NativeString */; +char* var54 /* : NativeString */; +char* var55 /* : NativeString */; +char* var57 /* : NativeString */; +long var58 /* : Int */; +long var59 /* : Int */; +long var61 /* : Int */; +long var63 /* : Int */; +long var65 /* : Int */; +long var_curr_pos /* var curr_pos: Int */; +long var66 /* : Int */; +long var_i /* var i: Int */; +long var67 /* : Int */; +long var69 /* : Int */; +long var_ /* var : Int */; +short int var70 /* : Bool */; +short int var72 /* : Bool */; +int cltype73; +int idtype74; +const char* var_class_name75; +short int var76 /* : Bool */; +val* var77 /* : SequenceRead[Char] */; +val* var78 /* : nullable Object */; +char var79 /* : Char */; +char var_c /* var c: Char */; +char* var80 /* : NativeString */; +char* var82 /* : NativeString */; +long var84 /* : Int */; +long var85 /* : Int */; +short int var87 /* : Bool */; +int cltype88; +int idtype89; +const char* var_class_name90; +long var91 /* : Int */; +long var92 /* : Int */; +long var93 /* : Int */; +val* var_94 /* var : FlatBuffer */; +long var95 /* : Int */; +long var97 /* : Int */; +long var98 /* : Int */; +short int var100 /* : Bool */; +int cltype101; +int idtype102; +const char* var_class_name103; +long var104 /* : Int */; +var_s = p0; +{ +var = string__Text__is_empty(var_s); +} +if (var){ +goto RET_LABEL; +} else { +} +var1 = 1; +{ +{ /* Inline string#Buffer#is_dirty= (self,var1) on */ +self->attrs[COLOR_string__Buffer___is_dirty].s = var1; /* _is_dirty on */ +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (var_s) on */ +var5 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var3 = var5; +RET_LABEL4:(void)0; +} +} +var_sl = var3; +{ +{ /* Inline string#FlatBuffer#capacity (self) on */ +var8 = self->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var11 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var9,var_sl) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var14 = 1; /* easy isa OTHER*/ +if (unlikely(!var14)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var15 = var9 + var_sl; +var12 = var15; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +} +{ +{ /* Inline kernel#Int#< (var6,var12) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var18 = 1; /* easy isa OTHER*/ +if (unlikely(!var18)) { +var_class_name21 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var22 = var6 < var12; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; +} +} +if (var16){ +{ +{ /* Inline string#FlatText#length (self) on */ +var25 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var23 = var25; +RET_LABEL24:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var23,var_sl) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var28 = 1; /* easy isa OTHER*/ +if (unlikely(!var28)) { +var_class_name31 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var32 = var23 + var_sl; +var26 = var32; +goto RET_LABEL27; +RET_LABEL27:(void)0; +} +} +{ +string__FlatBuffer__enlarge(self, var26); /* Direct call string#FlatBuffer#enlarge on */ +} +} else { +} +/* isa FlatString */ +cltype34 = type_string__FlatString.color; +idtype35 = type_string__FlatString.id; +if(cltype34 >= var_s->type->table_size) { +var33 = 0; +} else { +var33 = var_s->type->type_table[cltype34] == idtype35; +} +if (var33){ +{ +{ /* Inline string#FlatText#items (var_s) on */ +var38 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var36 = var38; +RET_LABEL37:(void)0; +} +} +{ +{ /* Inline string#FlatText#items (self) on */ +var41 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var39 = var41; +RET_LABEL40:(void)0; +} +} +{ +{ /* Inline string#FlatString#index_from (var_s) on */ +var44 = var_s->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on */ +var42 = var44; +RET_LABEL43:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (self) on */ +var47 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var45 = var47; +RET_LABEL46:(void)0; +} +} +{ +{ /* Inline string#NativeString#copy_to (var36,var39,var_sl,var42,var45) on */ +memmove(var39+var45,var36+var42,var_sl); +RET_LABEL48:(void)0; +} +} +} else { +/* isa FlatBuffer */ +cltype50 = type_string__FlatBuffer.color; +idtype51 = type_string__FlatBuffer.id; +if(cltype50 >= var_s->type->table_size) { +var49 = 0; +} else { +var49 = var_s->type->type_table[cltype50] == idtype51; +} +if (var49){ +{ +{ /* Inline string#FlatText#items (var_s) on */ +var54 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var52 = var54; +RET_LABEL53:(void)0; +} +} +{ +{ /* Inline string#FlatText#items (self) on */ +var57 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var55 = var57; +RET_LABEL56:(void)0; +} +} +var58 = 0; +{ +{ /* Inline string#FlatText#length (self) on */ +var61 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var59 = var61; +RET_LABEL60:(void)0; +} +} +{ +{ /* Inline string#NativeString#copy_to (var52,var55,var_sl,var58,var59) on */ +memmove(var55+var59,var52+var58,var_sl); +RET_LABEL62:(void)0; +} +} +} else { +{ +{ /* Inline string#FlatText#length (self) on */ +var65 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var63 = var65; +RET_LABEL64:(void)0; +} +} +var_curr_pos = var63; +var66 = 0; +var_i = var66; +{ +{ /* Inline string#FlatText#length (var_s) on */ +var69 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var67 = var69; +RET_LABEL68:(void)0; +} +} +var_ = var67; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var72 = 1; /* easy isa OTHER*/ +if (unlikely(!var72)) { +var_class_name75 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var76 = var_i < var_; +var70 = var76; +goto RET_LABEL71; +RET_LABEL71:(void)0; +} +} +if (var70){ +{ +var77 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Text__chars]))(var_s) /* chars on */; +} +{ +var78 = ((val* (*)(val*, long))(var77->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var77, var_i) /* [] on */; +} +var79 = ((struct instance_kernel__Char*)var78)->value; /* autounbox from nullable Object to Char */; +var_c = var79; +{ +{ /* Inline string#FlatText#items (self) on */ +var82 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var80 = var82; +RET_LABEL81:(void)0; +} +} +{ +{ /* Inline string#NativeString#[]= (var80,var_curr_pos,var_c) on */ +var80[var_curr_pos]=var_c; +RET_LABEL83:(void)0; +} +} +var84 = 1; +{ +{ /* Inline kernel#Int#+ (var_curr_pos,var84) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var87 = 1; /* easy isa OTHER*/ +if (unlikely(!var87)) { +var_class_name90 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name90); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var91 = var_curr_pos + var84; +var85 = var91; +goto RET_LABEL86; +RET_LABEL86:(void)0; +} +} +var_curr_pos = var85; +var92 = 1; +{ +var93 = kernel__Int__successor(var_i, var92); +} +var_i = var93; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +} +} +var_94 = self; +{ +{ /* Inline string#FlatText#length (var_94) on */ +var97 = var_94->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var95 = var97; +RET_LABEL96:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var95,var_sl) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var100 = 1; /* easy isa OTHER*/ +if (unlikely(!var100)) { +var_class_name103 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name103); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var104 = var95 + var_sl; +var98 = var104; +goto RET_LABEL99; +RET_LABEL99:(void)0; +} +} +{ +{ /* Inline string#FlatText#length= (var_94,var98) on */ +var_94->attrs[COLOR_string__FlatText___length].l = var98; /* _length on */ +RET_LABEL105:(void)0; +} +} +RET_LABEL:; +} +/* method string#FlatBuffer#append for (self: Object, Text) */ +void VIRTUAL_string__FlatBuffer__append(val* self, val* p0) { +string__FlatBuffer__append(self, p0); /* Direct call string#FlatBuffer#append on */ +RET_LABEL:; +} +/* method string#FlatBuffer#substring for (self: FlatBuffer, Int, Int): FlatBuffer */ +val* string__FlatBuffer__substring(val* self, long p0, long p1) { +val* var /* : FlatBuffer */; +long var_from /* var from: Int */; +long var_count /* var count: Int */; +long var1 /* : Int */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var5 /* : Bool */; +long var6 /* : Int */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +const char* var_class_name11; +long var12 /* : Int */; +long var13 /* : Int */; +short int var14 /* : Bool */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const char* var_class_name19; +short int var20 /* : Bool */; +long var21 /* : Int */; +long var22 /* : Int */; +long var24 /* : Int */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +const char* var_class_name30; +short int var31 /* : Bool */; +long var32 /* : Int */; +long var34 /* : Int */; +short int var35 /* : Bool */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +const char* var_class_name40; +short int var41 /* : Bool */; +val* var42 /* : FlatBuffer */; +long var43 /* : Int */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +const char* var_class_name48; +long var49 /* : Int */; +val* var_r /* var r: FlatBuffer */; +short int var50 /* : Bool */; +short int var52 /* : Bool */; +int cltype53; +int idtype54; +const char* var_class_name55; +short int var56 /* : Bool */; +val* var57 /* : Sequence[Char] */; +val* var59 /* : Sequence[Char] */; +char* var60 /* : NativeString */; +char* var62 /* : NativeString */; +char var63 /* : Char */; +char var65 /* : Char */; +val* var66 /* : nullable Object */; +long var67 /* : Int */; +long var68 /* : Int */; +short int var70 /* : Bool */; +int cltype71; +int idtype72; +const char* var_class_name73; +long var74 /* : Int */; +short int var75 /* : Bool */; +int cltype76; +int idtype77; +const struct type* type_struct; +const char* var_class_name78; +val* var79 /* : FlatBuffer */; +short int var80 /* : Bool */; +int cltype81; +int idtype82; +const struct type* type_struct83; +const char* var_class_name84; +var_from = p0; +var_count = p1; +var1 = 0; +{ +{ /* Inline kernel#Int#>= (var_count,var1) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var5 = var_count >= var1; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1556); +show_backtrace(1); +} +{ +{ /* Inline kernel#Int#+ (var_count,var_from) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var8 = 1; /* easy isa OTHER*/ +if (unlikely(!var8)) { +var_class_name11 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var12 = var_count + var_from; +var6 = var12; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +} +var_count = var6; +var13 = 0; +{ +{ /* Inline kernel#Int#< (var_from,var13) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var16 = 1; /* easy isa OTHER*/ +if (unlikely(!var16)) { +var_class_name19 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var20 = var_from < var13; +var14 = var20; +goto RET_LABEL15; +RET_LABEL15:(void)0; +} +} +if (var14){ +var21 = 0; +var_from = var21; +} else { +} +{ +{ /* Inline string#FlatText#length (self) on */ +var24 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var22 = var24; +RET_LABEL23:(void)0; +} +} +{ +{ /* Inline kernel#Int#> (var_count,var22) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var27 = 1; /* easy isa OTHER*/ +if (unlikely(!var27)) { +var_class_name30 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var31 = var_count > var22; +var25 = var31; +goto RET_LABEL26; +RET_LABEL26:(void)0; +} +} +if (var25){ +{ +{ /* Inline string#FlatText#length (self) on */ +var34 = self->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var32 = var34; +RET_LABEL33:(void)0; +} +} +var_count = var32; +} else { +} +{ +{ /* Inline kernel#Int#< (var_from,var_count) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var37 = 1; /* easy isa OTHER*/ +if (unlikely(!var37)) { +var_class_name40 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var41 = var_from < var_count; +var35 = var41; +goto RET_LABEL36; +RET_LABEL36:(void)0; +} +} +if (var35){ +var42 = NEW_string__FlatBuffer(&type_string__FlatBuffer); +{ +{ /* Inline kernel#Int#- (var_count,var_from) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var45 = 1; /* easy isa OTHER*/ +if (unlikely(!var45)) { +var_class_name48 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var49 = var_count - var_from; +var43 = var49; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +} +{ +string__FlatBuffer__with_capacity(var42, var43); /* Direct call string#FlatBuffer#with_capacity on */ +} +var_r = var42; for(;;) { -var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on */; -if(!var14) break; -var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on */; -var16 = ((struct instance_kernel__Int*)var15)->value; /* autounbox from nullable Object to Int */; -var_i = var16; -var17 = 10.0; -{ /* Inline kernel#Float#* (var_f,var17) */ -var20 = var_f * var17; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; +{ +{ /* Inline kernel#Int#< (var_from,var_count) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var52 = 1; /* easy isa OTHER*/ +if (unlikely(!var52)) { +var_class_name55 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -var_f = var18; -CONTINUE_label: (void)0; -((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on */; +var56 = var_from < var_count; +var50 = var56; +goto RET_LABEL51; +RET_LABEL51:(void)0; } -BREAK_label: (void)0; -var21 = 0.0; -{ /* Inline kernel#Float#> (self,var21) */ -var24 = self > var21; -var22 = var24; -goto RET_LABEL23; -RET_LABEL23:(void)0; } -if (var22){ -var25 = 0.5; -{ /* Inline kernel#Float#+ (var_f,var25) */ -var28 = var_f + var25; -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; +if (var50){ +{ +{ /* Inline string#FlatBuffer#chars (var_r) on */ +var59 = var_r->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on */ +if (unlikely(var59 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1406); +show_backtrace(1); } -var_f = var26; -} else { -var29 = 0.5; -{ /* Inline kernel#Float#- (var_f,var29) */ -var32 = var_f - var29; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; +var57 = var59; +RET_LABEL58:(void)0; } -var_f = var30; } -{ /* Inline kernel#Float#to_i (var_f) */ -var35 = (long)var_f; -var33 = var35; -goto RET_LABEL34; -RET_LABEL34:(void)0; +{ +{ /* Inline string#FlatText#items (self) on */ +var62 = self->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var60 = var62; +RET_LABEL61:(void)0; } -var_i36 = var33; -var37 = 0; -{ /* Inline kernel#Int#== (var_i36,var37) */ -var40 = var_i36 == var37; -var38 = var40; -goto RET_LABEL39; -RET_LABEL39:(void)0; } -if (var38){ -if (varonce) { -var41 = varonce; -} else { -var42 = "0.0"; -var43 = 3; -var44 = string__NativeString__to_s_with_length(var42, var43); -var41 = var44; -varonce = var41; +{ +{ /* Inline string#NativeString#[] (var60,var_from) on */ +var65 = var60[var_from]; +var63 = var65; +goto RET_LABEL64; +RET_LABEL64:(void)0; } -var = var41; -goto RET_LABEL; -} else { } -var45 = string__Int__to_s(var_i36); -var_s = var45; -var46 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -var_sl = var46; -{ /* Inline kernel#Int#> (var_sl,var_nb) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var49 = 1; /* easy isa OTHER*/ -if (!var49) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); +{ +var66 = BOX_kernel__Char(var63); /* autobox from Char to nullable Object */ +((void (*)(val*, val*))(var57->class->vft[COLOR_abstract_collection__Sequence__push]))(var57, var66) /* push on */; +} +var67 = 1; +{ +{ /* Inline kernel#Int#+ (var_from,var67) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var70 = 1; /* easy isa OTHER*/ +if (unlikely(!var70)) { +var_class_name73 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var50 = var_sl > var_nb; -var47 = var50; -goto RET_LABEL48; -RET_LABEL48:(void)0; -} -if (var47){ -var51 = 0; -var52 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -{ /* Inline kernel#Int#- (var52,var_nb) */ -var55 = var52 - var_nb; -var53 = var55; -goto RET_LABEL54; -RET_LABEL54:(void)0; +var74 = var_from + var67; +var68 = var74; +goto RET_LABEL69; +RET_LABEL69:(void)0; } -var56 = ((val* (*)(val*, long, long))(var_s->class->vft[COLOR_string__AbstractString__substring]))(var_s, var51, var53) /* substring on */; -var_p1 = var56; -var57 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -{ /* Inline kernel#Int#- (var57,var_nb) */ -var60 = var57 - var_nb; -var58 = var60; -goto RET_LABEL59; -RET_LABEL59:(void)0; -} -var61 = ((val* (*)(val*, long, long))(var_s->class->vft[COLOR_string__AbstractString__substring]))(var_s, var58, var_nb) /* substring on */; -var_p2 = var61; -if (varonce62) { -var63 = varonce62; -} else { -var64 = "."; -var65 = 1; -var66 = string__NativeString__to_s_with_length(var64, var65); -var63 = var66; -varonce62 = var63; } -var67 = ((val* (*)(val*, val*))(var_p1->class->vft[COLOR_string__String___43d]))(var_p1, var63) /* + on */; -var68 = ((val* (*)(val*, val*))(var67->class->vft[COLOR_string__String___43d]))(var67, var_p2) /* + on */; -var = var68; -goto RET_LABEL; +var_from = var68; } else { -if (varonce69) { -var70 = varonce69; -} else { -var71 = "0."; -var72 = 2; -var73 = string__NativeString__to_s_with_length(var71, var72); -var70 = var73; -varonce69 = var70; +goto BREAK_label; } -if (varonce74) { -var75 = varonce74; -} else { -var76 = "0"; -var77 = 1; -var78 = string__NativeString__to_s_with_length(var76, var77); -var75 = var78; -varonce74 = var75; } -{ /* Inline kernel#Int#- (var_nb,var_sl) */ -var81 = var_nb - var_sl; -var79 = var81; -goto RET_LABEL80; -RET_LABEL80:(void)0; +BREAK_label: (void)0; +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype76 = type_struct->color; +idtype77 = type_struct->id; +if(cltype76 >= var_r->type->table_size) { +var75 = 0; +} else { +var75 = var_r->type->type_table[cltype76] == idtype77; +} +if (unlikely(!var75)) { +var_class_name78 = var_r == NULL ? "null" : var_r->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name78); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1566); +show_backtrace(1); } -var82 = ((val* (*)(val*, long))(var75->class->vft[COLOR_string__String___42d]))(var75, var79) /* * on */; -var83 = ((val* (*)(val*, val*))(var70->class->vft[COLOR_string__String___43d]))(var70, var82) /* + on */; -var84 = ((val* (*)(val*, val*))(var83->class->vft[COLOR_string__String___43d]))(var83, var_s) /* + on */; -var = var84; +var = var_r; goto RET_LABEL; +} else { +var79 = NEW_string__FlatBuffer(&type_string__FlatBuffer); +{ +((void (*)(val*))(var79->class->vft[COLOR_kernel__Object__init]))(var79) /* init on */; } -RET_LABEL:; -return var; -} -/* method string#Float#to_precision for (self: Object, Int): String */ -val* VIRTUAL_string__Float__to_precision(val* self, long p0) { -val* var /* : String */; -val* var1 /* : String */; -double var2 /* : Float */; -var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var1 = string__Float__to_precision(var2, p0); -var = var1; -RET_LABEL:; -return var; +/* isa SELFTYPE */ +type_struct83 = self->type->resolution_table->types[COLOR_string__Text_VTSELFTYPE]; +cltype81 = type_struct83->color; +idtype82 = type_struct83->id; +if(cltype81 >= var79->type->table_size) { +var80 = 0; +} else { +var80 = var79->type->type_table[cltype81] == idtype82; } -/* method string#Float#to_precision_native for (self: Float, Int): String */ -val* string__Float__to_precision_native(double self, long p0) { -val* var /* : String */; -fprintf(stderr, "NOT YET IMPLEMENTED nitni for string#Float#to_precision_native at lib/standard/string.nit:946,2--955,3\n"); +if (unlikely(!var80)) { +var_class_name84 = var79 == NULL ? "null" : var79->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name84); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1568); show_backtrace(1); -RET_LABEL:; -return var; -} -/* method string#Float#to_precision_native for (self: Object, Int): String */ -val* VIRTUAL_string__Float__to_precision_native(val* self, long p0) { -val* var /* : String */; -val* var1 /* : String */; -double var2 /* : Float */; -var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var1 = string__Float__to_precision_native(var2, p0); -var = var1; -RET_LABEL:; -return var; } -/* method string#Char#to_s for (self: Char): String */ -val* string__Char__to_s(char self) { -val* var /* : String */; -val* var1 /* : Buffer */; -long var2 /* : Int */; -val* var_s /* var s: Buffer */; -long var3 /* : Int */; -val* var4 /* : nullable Object */; -val* var5 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -var2 = 1; -((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var2) /* with_capacity on */; -var_s = var1; -var3 = 0; -var4 = BOX_kernel__Char(self); /* autobox from Char to nullable Object */ -((void (*)(val*, long, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_s, var3, var4) /* []= on */; -var5 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var5; +var = var79; goto RET_LABEL; +} RET_LABEL:; return var; } -/* method string#Char#to_s for (self: Object): String */ -val* VIRTUAL_string__Char__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -char var2 /* : Char */; -var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var1 = string__Char__to_s(var2); +/* method string#FlatBuffer#substring for (self: Object, Int, Int): Text */ +val* VIRTUAL_string__FlatBuffer__substring(val* self, long p0, long p1) { +val* var /* : Text */; +val* var1 /* : FlatBuffer */; +var1 = string__FlatBuffer__substring(self, p0, p1); var = var1; RET_LABEL:; return var; } -/* method string#Char#is_numeric for (self: Char): Bool */ -short int string__Char__is_numeric(char self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -char var2 /* : Char */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var6 /* : Bool */; -short int var_ /* var : Bool */; +/* method string#FlatBufferCharView#[] for (self: FlatBufferCharView, Int): Char */ +char string__FlatBufferCharView___91d_93d(val* self, long p0) { +char var /* : Char */; +long var_index /* var index: Int */; +val* var1 /* : Text */; +val* var3 /* : Text */; +char* var4 /* : NativeString */; +char* var6 /* : NativeString */; char var7 /* : Char */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -const char* var_class_name13; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -var2 = '0'; -{ /* Inline kernel#Char#>= (self,var2) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (!var5) { -var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 438); +char var9 /* : Char */; +var_index = p0; +{ +{ /* Inline string#StringCharView#target (self) on */ +var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); show_backtrace(1); } -var6 = self >= var2; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var1 = var3; +RET_LABEL2:(void)0; } -var_ = var3; -if (var3){ -var7 = '9'; -{ /* Inline kernel#Char#<= (self,var7) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var10 = 1; /* easy isa OTHER*/ -if (!var10) { -var_class_name13 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 436); -show_backtrace(1); -} -var14 = self <= var7; -var8 = var14; -goto RET_LABEL9; -RET_LABEL9:(void)0; } -var1 = var8; -} else { -var1 = var_; +{ +{ /* Inline string#FlatText#items (var1) on */ +var6 = var1->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var4 = var6; +RET_LABEL5:(void)0; } -if (var1){ -var15 = 1; -var = var15; -goto RET_LABEL; -} else { } -var16 = 0; -var = var16; +{ +{ /* Inline string#NativeString#[] (var4,var_index) on */ +var9 = var4[var_index]; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +var = var7; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#Char#is_numeric for (self: Object): Bool */ -short int VIRTUAL_string__Char__is_numeric(val* self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -char var2 /* : Char */; -var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var1 = string__Char__is_numeric(var2); -var = var1; +/* method string#FlatBufferCharView#[] for (self: Object, Int): nullable Object */ +val* VIRTUAL_string__FlatBufferCharView___91d_93d(val* self, long p0) { +val* var /* : nullable Object */; +char var1 /* : Char */; +val* var2 /* : nullable Object */; +var1 = string__FlatBufferCharView___91d_93d(self, p0); +var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */ +var = var2; RET_LABEL:; return var; } -/* method string#Char#is_alpha for (self: Char): Bool */ -short int string__Char__is_alpha(char self) { +/* method string#FlatBufferCharView#[]= for (self: FlatBufferCharView, Int, Char) */ +void string__FlatBufferCharView___91d_93d_61d(val* self, long p0, char p1) { short int var /* : Bool */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; -char var3 /* : Char */; -short int var4 /* : Bool */; -short int var6 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var7 /* : Bool */; -short int var_ /* var : Bool */; -char var8 /* : Char */; +long var_index /* var index: Int */; +char var_item /* var item: Char */; +short int var1 /* : Bool */; +long var2 /* : Int */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +const char* var_class_name8; short int var9 /* : Bool */; +short int var_ /* var : Bool */; +long var10 /* : Int */; short int var11 /* : Bool */; -int cltype12; -int idtype13; -const char* var_class_name14; -short int var15 /* : Bool */; -short int var_16 /* var : Bool */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +const char* var_class_name16; short int var17 /* : Bool */; -char var18 /* : Char */; +long var18 /* : Int */; short int var19 /* : Bool */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -const char* var_class_name24; -short int var25 /* : Bool */; -short int var_26 /* var : Bool */; -char var27 /* : Char */; -short int var28 /* : Bool */; -short int var30 /* : Bool */; -int cltype31; -int idtype32; -const char* var_class_name33; -short int var34 /* : Bool */; -short int var35 /* : Bool */; -short int var36 /* : Bool */; -var3 = 'a'; -{ /* Inline kernel#Char#>= (self,var3) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (!var6) { +short int var20 /* : Bool */; +short int var22 /* : Bool */; +val* var23 /* : Text */; +val* var25 /* : Text */; +char* var26 /* : NativeString */; +char* var28 /* : NativeString */; +/* Covariant cast for argument 1 (item) isa E */ +/* isa E */ +var = 1; /* easy isa E*/ +if (unlikely(!var)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 438); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1652); show_backtrace(1); } -var7 = self >= var3; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; -} -var_ = var4; -if (var4){ -var8 = 'z'; -{ /* Inline kernel#Char#<= (self,var8) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (!var11) { -var_class_name14 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 436); -show_backtrace(1); -} -var15 = self <= var8; -var9 = var15; -goto RET_LABEL10; -RET_LABEL10:(void)0; -} -var2 = var9; -} else { -var2 = var_; -} -var_16 = var2; -if (var2){ -var1 = var_16; -} else { -var18 = 'A'; -{ /* Inline kernel#Char#>= (self,var18) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var21 = 1; /* easy isa OTHER*/ -if (!var21) { -var_class_name24 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 438); +var_index = p0; +var_item = p1; +var2 = 0; +{ +{ /* Inline kernel#Int#>= (var_index,var2) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var5 = 1; /* easy isa OTHER*/ +if (unlikely(!var5)) { +var_class_name8 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); show_backtrace(1); } -var25 = self >= var18; -var19 = var25; -goto RET_LABEL20; -RET_LABEL20:(void)0; -} -var_26 = var19; -if (var19){ -var27 = 'Z'; -{ /* Inline kernel#Char#<= (self,var27) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var30 = 1; /* easy isa OTHER*/ -if (!var30) { -var_class_name33 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 436); -show_backtrace(1); -} -var34 = self <= var27; -var28 = var34; -goto RET_LABEL29; -RET_LABEL29:(void)0; -} -var17 = var28; -} else { -var17 = var_26; -} -var1 = var17; -} -if (var1){ -var35 = 1; -var = var35; -goto RET_LABEL; -} else { -} -var36 = 0; -var = var36; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method string#Char#is_alpha for (self: Object): Bool */ -short int VIRTUAL_string__Char__is_alpha(val* self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -char var2 /* : Char */; -var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var1 = string__Char__is_alpha(var2); -var = var1; -RET_LABEL:; -return var; +var9 = var_index >= var2; +var3 = var9; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -/* method string#Char#is_alphanumeric for (self: Char): Bool */ -short int string__Char__is_alphanumeric(char self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; -short int var_ /* var : Bool */; -short int var3 /* : Bool */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -var2 = string__Char__is_numeric(self); -var_ = var2; -if (var2){ -var1 = var_; -} else { -var3 = string__Char__is_alpha(self); -var1 = var3; } -if (var1){ -var4 = 1; -var = var4; -goto RET_LABEL; -} else { +var_ = var3; +if (var3){ +{ +var10 = string__StringCharView__length(self); } -var5 = 0; -var = var5; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +{ /* Inline kernel#Int#<= (var_index,var10) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var13 = 1; /* easy isa OTHER*/ +if (unlikely(!var13)) { +var_class_name16 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); } -/* method string#Char#is_alphanumeric for (self: Object): Bool */ -short int VIRTUAL_string__Char__is_alphanumeric(val* self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -char var2 /* : Char */; -var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var1 = string__Char__is_alphanumeric(var2); -var = var1; -RET_LABEL:; -return var; +var17 = var_index <= var10; +var11 = var17; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -/* method string#Collection#to_s for (self: Collection[nullable Object]): String */ -val* string__Collection__to_s(val* self) { -val* var /* : String */; -val* var1 /* : Buffer */; -val* var_s /* var s: Buffer */; -val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; -val* var_e /* var e: nullable Object */; -val* var5 /* : null */; -short int var6 /* : Bool */; -val* var7 /* : String */; -val* var8 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; -var_s = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; -for(;;) { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; -if(!var3) break; -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; -var_e = var4; -var5 = NULL; -if (var_e == NULL) { -var6 = 0; /* is null */ -} else { -var6 = 1; /* arg is null and recv is not */ } -if (var6){ -if (var_e == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 997); -show_backtrace(1); +var1 = var11; } else { -var7 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on */; +var1 = var_; } -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var7) /* append on */; -} else { +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1654); +show_backtrace(1); } -CONTINUE_label: (void)0; -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +{ +var18 = string__StringCharView__length(self); } -BREAK_label: (void)0; -var8 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var8; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +{ /* Inline kernel#Int#== (var_index,var18) on */ +var22 = var_index == var18; +var20 = var22; +goto RET_LABEL21; +RET_LABEL21:(void)0; } -/* method string#Collection#to_s for (self: Object): String */ -val* VIRTUAL_string__Collection__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Collection__to_s(self); -var = var1; -RET_LABEL:; -return var; +var19 = var20; } -/* method string#Collection#join for (self: Collection[nullable Object], String): String */ -val* string__Collection__join(val* self, val* p0) { -val* var /* : String */; -val* var_sep /* var sep: String */; -short int var1 /* : Bool */; -static val* varonce; -val* var2 /* : String */; -char* var3 /* : NativeString */; -long var4 /* : Int */; -val* var5 /* : String */; -val* var6 /* : Buffer */; -val* var_s /* var s: Buffer */; -val* var7 /* : Iterator[nullable Object] */; -val* var_i /* var i: Iterator[nullable Object] */; -val* var8 /* : nullable Object */; -val* var_e /* var e: nullable Object */; -val* var9 /* : null */; -short int var10 /* : Bool */; -val* var11 /* : String */; -short int var12 /* : Bool */; -val* var13 /* : nullable Object */; -val* var14 /* : null */; -short int var15 /* : Bool */; -val* var16 /* : String */; -val* var17 /* : String */; -var_sep = p0; -var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__is_empty]))(self) /* is_empty on */; -if (var1){ -if (varonce) { -var2 = varonce; -} else { -var3 = ""; -var4 = 0; -var5 = string__NativeString__to_s_with_length(var3, var4); -var2 = var5; -varonce = var2; +if (var19){ +{ +string__FlatBufferCharView__add(self, var_item); /* Direct call string#FlatBufferCharView#add on */ } -var = var2; goto RET_LABEL; } else { } -var6 = NEW_string__Buffer(&type_string__Buffer); -((void (*)(val*))(var6->class->vft[COLOR_string__Buffer__init]))(var6) /* init on */; -var_s = var6; -var7 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; -var_i = var7; -var8 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__item]))(var_i) /* item on */; -var_e = var8; -var9 = NULL; -if (var_e == NULL) { -var10 = 0; /* is null */ -} else { -var10 = 1; /* arg is null and recv is not */ -} -if (var10){ -if (var_e == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 1014); +{ +{ /* Inline string#StringCharView#target (self) on */ +var25 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); show_backtrace(1); -} else { -var11 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on */; } -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var11) /* append on */; -} else { +var23 = var25; +RET_LABEL24:(void)0; } -((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__next]))(var_i) /* next on */; -for(;;) { -var12 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_i) /* is_ok on */; -if (!var12) break; -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var_sep) /* append on */; -var13 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__item]))(var_i) /* item on */; -var_e = var13; -var14 = NULL; -if (var_e == NULL) { -var15 = 0; /* is null */ -} else { -var15 = 1; /* arg is null and recv is not */ } -if (var15){ -if (var_e == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 1021); -show_backtrace(1); -} else { -var16 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on */; +{ +{ /* Inline string#FlatText#items (var23) on */ +var28 = var23->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var26 = var28; +RET_LABEL27:(void)0; } -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var16) /* append on */; -} else { } -((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__next]))(var_i) /* next on */; -CONTINUE_label: (void)0; +{ +{ /* Inline string#NativeString#[]= (var26,var_index,var_item) on */ +var26[var_index]=var_item; +RET_LABEL29:(void)0; +} } -BREAK_label: (void)0; -var17 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var17; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method string#Collection#join for (self: Object, String): String */ -val* VIRTUAL_string__Collection__join(val* self, val* p0) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Collection__join(self, p0); -var = var1; +/* method string#FlatBufferCharView#[]= for (self: Object, Int, nullable Object) */ +void VIRTUAL_string__FlatBufferCharView___91d_93d_61d(val* self, long p0, val* p1) { +char var /* : Char */; +var = ((struct instance_kernel__Char*)p1)->value; /* autounbox from nullable Object to Char */; +string__FlatBufferCharView___91d_93d_61d(self, p0, var); /* Direct call string#FlatBufferCharView#[]= on */ RET_LABEL:; -return var; } -/* method string#Array#to_s for (self: Array[nullable Object]): String */ -val* string__Array__to_s(val* self) { -val* var /* : String */; -val* var1 /* : Buffer */; -val* var_s /* var s: Buffer */; -long var2 /* : Int */; -long var_i /* var i: Int */; -long var3 /* : Int */; -long var_l /* var l: Int */; -short int var4 /* : Bool */; -short int var6 /* : Bool */; +/* method string#FlatBufferCharView#push for (self: FlatBufferCharView, Char) */ +void string__FlatBufferCharView__push(val* self, char p0) { +short int var /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; -val* var_e /* var e: nullable Object */; -val* var9 /* : null */; -short int var10 /* : Bool */; -val* var11 /* : String */; -long var12 /* : Int */; -long var13 /* : Int */; -long var15 /* : Int */; -val* var16 /* : String */; -var1 = NEW_string__Buffer(&type_string__Buffer); -((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; -var_s = var1; -var2 = 0; -var_i = var2; -var3 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; -var_l = var3; -for(;;) { -{ /* Inline kernel#Int#< (var_i,var_l) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (!var6) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +char var_c /* var c: Char */; +val* var1 /* : Text */; +val* var3 /* : Text */; +/* Covariant cast for argument 0 (c) isa E */ +/* isa E */ +var = 1; /* easy isa E*/ +if (unlikely(!var)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1662); show_backtrace(1); } -var7 = var_i < var_l; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; -} -if (!var4) break; -var8 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_i) /* [] on */; -var_e = var8; -var9 = NULL; -if (var_e == NULL) { -var10 = 0; /* is null */ -} else { -var10 = 1; /* arg is null and recv is not */ -} -if (var10){ -if (var_e == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 1037); +var_c = p0; +{ +{ /* Inline string#StringCharView#target (self) on */ +var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); show_backtrace(1); -} else { -var11 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on */; } -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var11) /* append on */; -} else { +var1 = var3; +RET_LABEL2:(void)0; } -var12 = 1; -{ /* Inline kernel#Int#+ (var_i,var12) */ -var15 = var_i + var12; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; } -var_i = var13; -CONTINUE_label: (void)0; +{ +string__FlatBuffer__add(var1, var_c); /* Direct call string#FlatBuffer#add on */ } -BREAK_label: (void)0; -var16 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var16; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method string#Array#to_s for (self: Object): String */ -val* VIRTUAL_string__Array__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Array__to_s(self); -var = var1; +/* method string#FlatBufferCharView#push for (self: Object, nullable Object) */ +void VIRTUAL_string__FlatBufferCharView__push(val* self, val* p0) { +char var /* : Char */; +var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */; +string__FlatBufferCharView__push(self, var); /* Direct call string#FlatBufferCharView#push on */ RET_LABEL:; -return var; } -/* method string#Map#join for (self: Map[Object, nullable Object], String, String): String */ -val* string__Map__join(val* self, val* p0, val* p1) { -val* var /* : String */; -val* var_sep /* var sep: String */; -val* var_couple_sep /* var couple_sep: String */; -short int var1 /* : Bool */; -static val* varonce; -val* var2 /* : String */; -char* var3 /* : NativeString */; -long var4 /* : Int */; -val* var5 /* : String */; -val* var6 /* : Buffer */; -val* var_s /* var s: Buffer */; -val* var7 /* : MapIterator[Object, nullable Object] */; -val* var_i /* var i: MapIterator[Object, nullable Object] */; -val* var8 /* : Object */; -val* var_k /* var k: Object */; -val* var9 /* : nullable Object */; -val* var_e /* var e: nullable Object */; -val* var10 /* : Object */; -static val* varonce11; -val* var12 /* : String */; -char* var13 /* : NativeString */; -long var14 /* : Int */; -val* var15 /* : String */; -val* var16 /* : Array[Object] */; -long var17 /* : Int */; -val* var18 /* : NativeArray[Object] */; -val* var19 /* : String */; -short int var20 /* : Bool */; -val* var21 /* : Object */; -val* var22 /* : nullable Object */; -val* var23 /* : Object */; -static val* varonce24; -val* var25 /* : String */; -char* var26 /* : NativeString */; -long var27 /* : Int */; -val* var28 /* : String */; -val* var29 /* : Array[Object] */; -long var30 /* : Int */; -val* var31 /* : NativeArray[Object] */; -val* var32 /* : String */; -val* var33 /* : String */; -var_sep = p0; -var_couple_sep = p1; -var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__MapRead__is_empty]))(self) /* is_empty on */; -if (var1){ -if (varonce) { -var2 = varonce; -} else { -var3 = ""; -var4 = 0; -var5 = string__NativeString__to_s_with_length(var3, var4); -var2 = var5; -varonce = var2; +/* method string#FlatBufferCharView#add for (self: FlatBufferCharView, Char) */ +void string__FlatBufferCharView__add(val* self, char p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +char var_c /* var c: Char */; +val* var1 /* : Text */; +val* var3 /* : Text */; +/* Covariant cast for argument 0 (c) isa E */ +/* isa E */ +var = 1; /* easy isa E*/ +if (unlikely(!var)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1667); +show_backtrace(1); } -var = var2; -goto RET_LABEL; -} else { +var_c = p0; +{ +{ /* Inline string#StringCharView#target (self) on */ +var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -var6 = NEW_string__Buffer(&type_string__Buffer); -((void (*)(val*))(var6->class->vft[COLOR_string__Buffer__init]))(var6) /* init on */; -var_s = var6; -var7 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__MapRead__iterator]))(self) /* iterator on */; -var_i = var7; -var8 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__MapIterator__key]))(var_i) /* key on */; -var_k = var8; -var9 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__MapIterator__item]))(var_i) /* item on */; -var_e = var9; -if (var_e!=NULL) { -var10 = var_e; -} else { -if (varonce11) { -var12 = varonce11; -} else { -var13 = ""; -var14 = 6; -var15 = string__NativeString__to_s_with_length(var13, var14); -var12 = var15; -varonce11 = var12; +var1 = var3; +RET_LABEL2:(void)0; } -var10 = var12; } -var16 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var16 = array_instance Array[Object] */ -var17 = 3; -var18 = NEW_array__NativeArray(var17, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var18)->values[0] = (val*) var_k; -((struct instance_array__NativeArray*)var18)->values[1] = (val*) var_couple_sep; -((struct instance_array__NativeArray*)var18)->values[2] = (val*) var10; -((void (*)(val*, val*, long))(var16->class->vft[COLOR_array__Array__with_native]))(var16, var18, var17) /* with_native on */; -} -var19 = ((val* (*)(val*))(var16->class->vft[COLOR_string__Object__to_s]))(var16) /* to_s on */; -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var19) /* append on */; -((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__MapIterator__next]))(var_i) /* next on */; -for(;;) { -var20 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var_i) /* is_ok on */; -if (!var20) break; -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var_sep) /* append on */; -var21 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__MapIterator__key]))(var_i) /* key on */; -var_k = var21; -var22 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__MapIterator__item]))(var_i) /* item on */; -var_e = var22; -if (var_e!=NULL) { -var23 = var_e; -} else { -if (varonce24) { -var25 = varonce24; -} else { -var26 = ""; -var27 = 6; -var28 = string__NativeString__to_s_with_length(var26, var27); -var25 = var28; -varonce24 = var25; +{ +string__FlatBuffer__add(var1, var_c); /* Direct call string#FlatBuffer#add on */ } -var23 = var25; +RET_LABEL:; +} +/* method string#FlatBufferCharView#add for (self: Object, nullable Object) */ +void VIRTUAL_string__FlatBufferCharView__add(val* self, val* p0) { +char var /* : Char */; +var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */; +string__FlatBufferCharView__add(self, var); /* Direct call string#FlatBufferCharView#add on */ +RET_LABEL:; +} +/* method string#FlatBufferCharView#enlarge for (self: FlatBufferCharView, Int) */ +void string__FlatBufferCharView__enlarge(val* self, long p0) { +long var_cap /* var cap: Int */; +val* var /* : Text */; +val* var2 /* : Text */; +var_cap = p0; +{ +{ /* Inline string#StringCharView#target (self) on */ +var2 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -var29 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var29 = array_instance Array[Object] */ -var30 = 3; -var31 = NEW_array__NativeArray(var30, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var31)->values[0] = (val*) var_k; -((struct instance_array__NativeArray*)var31)->values[1] = (val*) var_couple_sep; -((struct instance_array__NativeArray*)var31)->values[2] = (val*) var23; -((void (*)(val*, val*, long))(var29->class->vft[COLOR_array__Array__with_native]))(var29, var31, var30) /* with_native on */; +var = var2; +RET_LABEL1:(void)0; } -var32 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) /* to_s on */; -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__append]))(var_s, var32) /* append on */; -((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__MapIterator__next]))(var_i) /* next on */; -CONTINUE_label: (void)0; } -BREAK_label: (void)0; -var33 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var33; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +string__FlatBuffer__enlarge(var, var_cap); /* Direct call string#FlatBuffer#enlarge on */ } -/* method string#Map#join for (self: Object, String, String): String */ -val* VIRTUAL_string__Map__join(val* self, val* p0, val* p1) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Map__join(self, p0, p1); -var = var1; RET_LABEL:; -return var; } -/* method string#NativeString#[] for (self: NativeString, Int): Char */ -char string__NativeString___91d_93d(char* self, long p0) { -char var /* : Char */; -char var1 /* : Char */; -var1 = self[p0]; -var = var1; -goto RET_LABEL; +/* method string#FlatBufferCharView#enlarge for (self: Object, Int) */ +void VIRTUAL_string__FlatBufferCharView__enlarge(val* self, long p0) { +string__FlatBufferCharView__enlarge(self, p0); /* Direct call string#FlatBufferCharView#enlarge on */ RET_LABEL:; -return var; } -/* method string#NativeString#[] for (self: Object, Int): Char */ -char VIRTUAL_string__NativeString___91d_93d(val* self, long p0) { -char var /* : Char */; -char var1 /* : Char */; -char* var3 /* : NativeString */; -char var4 /* : Char */; -{ /* Inline string#NativeString#[] (self,p0) */ -var3 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var4 = var3[p0]; -var1 = var4; -goto RET_LABEL2; +/* method string#FlatBufferCharView#append for (self: FlatBufferCharView, Collection[Char]) */ +void string__FlatBufferCharView__append(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +val* var_s /* var s: Collection[Char] */; +val* var1 /* : Text */; +val* var3 /* : Text */; +char* var4 /* : NativeString */; +char* var6 /* : NativeString */; +char* var_my_items /* var my_items: NativeString */; +long var7 /* : Int */; +long var_s_length /* var s_length: Int */; +val* var8 /* : Text */; +val* var10 /* : Text */; +long var11 /* : Int */; +long var13 /* : Int */; +long var14 /* : Int */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +const char* var_class_name20; +short int var21 /* : Bool */; +val* var22 /* : Text */; +val* var24 /* : Text */; +long var25 /* : Int */; +long var27 /* : Int */; +long var28 /* : Int */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +const char* var_class_name33; +long var34 /* : Int */; +/* Covariant cast for argument 0 (s) isa Collection[E] */ +/* isa Collection[E] */ +var = 1; /* easy isa Collection[E]*/ +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1677); +show_backtrace(1); +} +var_s = p0; +{ +{ /* Inline string#StringCharView#target (self) on */ +var3 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); +} +var1 = var3; RET_LABEL2:(void)0; } -var = var1; -RET_LABEL:; -return var; } -/* method string#NativeString#[]= for (self: NativeString, Int, Char) */ -void string__NativeString___91d_93d_61d(char* self, long p0, char p1) { -self[p0]=p1; -RET_LABEL:; +{ +{ /* Inline string#FlatText#items (var1) on */ +var6 = var1->attrs[COLOR_string__FlatText___items].str; /* _items on */ +var4 = var6; +RET_LABEL5:(void)0; } -/* method string#NativeString#[]= for (self: Object, Int, Char) */ -void VIRTUAL_string__NativeString___91d_93d_61d(val* self, long p0, char p1) { -char* var /* : NativeString */; -{ /* Inline string#NativeString#[]= (self,p0,p1) */ -var = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var[p0]=p1; -RET_LABEL1:(void)0; } -RET_LABEL:; +var_my_items = var4; +{ +var7 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; } -/* method string#NativeString#copy_to for (self: NativeString, NativeString, Int, Int, Int) */ -void string__NativeString__copy_to(char* self, char* p0, long p1, long p2, long p3) { -memcpy(p0+p3,self+p2,p1); -RET_LABEL:; +var_s_length = var7; +{ +{ /* Inline string#StringCharView#target (self) on */ +var10 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var10 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -/* method string#NativeString#copy_to for (self: Object, NativeString, Int, Int, Int) */ -void VIRTUAL_string__NativeString__copy_to(val* self, char* p0, long p1, long p2, long p3) { -char* var /* : NativeString */; -{ /* Inline string#NativeString#copy_to (self,p0,p1,p2,p3) */ -var = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -memcpy(p0+p3,var+p2,p1); -RET_LABEL1:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } -RET_LABEL:; } -/* method string#NativeString#cstring_length for (self: NativeString): Int */ -long string__NativeString__cstring_length(char* self) { -long var /* : Int */; -long var1 /* : Int */; -long var_l /* var l: Int */; -char var2 /* : Char */; -char var4 /* : Char */; -char var5 /* : Char */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; -long var10 /* : Int */; -long var11 /* : Int */; -long var13 /* : Int */; -var1 = 0; -var_l = var1; -for(;;) { -{ /* Inline string#NativeString#[] (self,var_l) */ -var4 = self[var_l]; -var2 = var4; -goto RET_LABEL3; -RET_LABEL3:(void)0; +{ +{ /* Inline string#FlatBuffer#capacity (var8) on */ +var13 = var8->attrs[COLOR_string__FlatBuffer___capacity].l; /* _capacity on */ +var11 = var13; +RET_LABEL12:(void)0; +} +} +{ +var14 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; +} +{ +{ /* Inline kernel#Int#< (var11,var14) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var17 = 1; /* easy isa OTHER*/ +if (unlikely(!var17)) { +var_class_name20 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var21 = var11 < var14; +var15 = var21; +goto RET_LABEL16; +RET_LABEL16:(void)0; } -var5 = '\0'; -{ /* Inline kernel#Char#!= (var2,var5) */ -var8 = var2 == var5; -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; } -if (!var6) break; -var10 = 1; -{ /* Inline kernel#Int#+ (var_l,var10) */ -var13 = var_l + var10; -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; +if (var15){ +{ +{ /* Inline string#StringCharView#target (self) on */ +var24 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var24 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); +show_backtrace(1); } -var_l = var11; -CONTINUE_label: (void)0; +var22 = var24; +RET_LABEL23:(void)0; } -BREAK_label: (void)0; -var = var_l; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#NativeString#cstring_length for (self: Object): Int */ -long VIRTUAL_string__NativeString__cstring_length(val* self) { -long var /* : Int */; -long var1 /* : Int */; -char* var2 /* : NativeString */; -var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var1 = string__NativeString__cstring_length(var2); -var = var1; -RET_LABEL:; -return var; +{ +{ /* Inline string#FlatText#length (var22) on */ +var27 = var22->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var25 = var27; +RET_LABEL26:(void)0; } -/* method string#NativeString#atoi for (self: NativeString): Int */ -long string__NativeString__atoi(char* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = atoi(self);; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#NativeString#atoi for (self: Object): Int */ -long VIRTUAL_string__NativeString__atoi(val* self) { -long var /* : Int */; -long var1 /* : Int */; -char* var3 /* : NativeString */; -long var4 /* : Int */; -{ /* Inline string#NativeString#atoi (self) */ -var3 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var4 = atoi(var3);; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; +{ +{ /* Inline kernel#Int#+ (var_s_length,var25) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var30 = 1; /* easy isa OTHER*/ +if (unlikely(!var30)) { +var_class_name33 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -var = var1; -RET_LABEL:; -return var; +var34 = var_s_length + var25; +var28 = var34; +goto RET_LABEL29; +RET_LABEL29:(void)0; } -/* method string#NativeString#atof for (self: NativeString): Float */ -double string__NativeString__atof(char* self) { -double var /* : Float */; -double var1 /* : Float */; -var1 = atof(self); -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method string#NativeString#atof for (self: Object): Float */ -double VIRTUAL_string__NativeString__atof(val* self) { -double var /* : Float */; -double var1 /* : Float */; -char* var2 /* : NativeString */; -var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var1 = string__NativeString__atof(var2); -var = var1; -RET_LABEL:; -return var; +{ +string__FlatBufferCharView__enlarge(self, var28); /* Direct call string#FlatBufferCharView#enlarge on */ +} +} else { } -/* method string#NativeString#to_s for (self: NativeString): String */ -val* string__NativeString__to_s(char* self) { -val* var /* : String */; -long var1 /* : Int */; -val* var2 /* : String */; -var1 = string__NativeString__cstring_length(self); -var2 = string__NativeString__to_s_with_length(self, var1); -var = var2; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method string#NativeString#to_s for (self: Object): String */ -val* VIRTUAL_string__NativeString__to_s(val* self) { -val* var /* : String */; -val* var1 /* : String */; -char* var2 /* : NativeString */; -var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var1 = string__NativeString__to_s(var2); -var = var1; +/* method string#FlatBufferCharView#append for (self: Object, Collection[nullable Object]) */ +void VIRTUAL_string__FlatBufferCharView__append(val* self, val* p0) { +string__FlatBufferCharView__append(self, p0); /* Direct call string#FlatBufferCharView#append on */ RET_LABEL:; -return var; } -/* method string#NativeString#to_s_with_length for (self: NativeString, Int): String */ -val* string__NativeString__to_s_with_length(char* self, long p0) { -val* var /* : String */; -long var_length /* var length: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var5 /* : Bool */; -val* var6 /* : String */; -long var7 /* : Int */; -long var8 /* : Int */; -long var9 /* : Int */; -long var11 /* : Int */; -var_length = p0; -var1 = 0; -{ /* Inline kernel#Int#>= (var_length,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262); +/* method string#FlatBufferCharView#iterator_from for (self: FlatBufferCharView, Int): IndexedIterator[Char] */ +val* string__FlatBufferCharView__iterator_from(val* self, long p0) { +val* var /* : IndexedIterator[Char] */; +long var_pos /* var pos: Int */; +val* var1 /* : FlatBufferIterator */; +val* var2 /* : Text */; +val* var4 /* : Text */; +var_pos = p0; +var1 = NEW_string__FlatBufferIterator(&type_string__FlatBufferIterator); +{ +{ /* Inline string#StringCharView#target (self) on */ +var4 = self->attrs[COLOR_string__StringCharView___target].val; /* _target on */ +if (unlikely(var4 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 738); show_backtrace(1); } -var5 = var_length >= var1; -var2 = var5; -goto RET_LABEL3; +var2 = var4; RET_LABEL3:(void)0; } -if (!var2) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 1107); -show_backtrace(1); } -var6 = NEW_string__String(&type_string__String); -var7 = 0; -var8 = 1; -{ /* Inline kernel#Int#- (var_length,var8) */ -var11 = var_length - var8; -var9 = var11; -goto RET_LABEL10; -RET_LABEL10:(void)0; +{ +string__FlatBufferIterator__with_pos(var1, var2, var_pos); /* Direct call string#FlatBufferIterator#with_pos on */ } -((void (*)(val*, char*, long, long, long))(var6->class->vft[COLOR_string__String__with_infos]))(var6, self, var_length, var7, var9) /* with_infos on */; -var = var6; +var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method string#NativeString#to_s_with_length for (self: Object, Int): String */ -val* VIRTUAL_string__NativeString__to_s_with_length(val* self, long p0) { -val* var /* : String */; -val* var1 /* : String */; -char* var2 /* : NativeString */; -var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var1 = string__NativeString__to_s_with_length(var2, p0); +/* method string#FlatBufferCharView#iterator_from for (self: Object, Int): IndexedIterator[nullable Object] */ +val* VIRTUAL_string__FlatBufferCharView__iterator_from(val* self, long p0) { +val* var /* : IndexedIterator[nullable Object] */; +val* var1 /* : IndexedIterator[Char] */; +var1 = string__FlatBufferCharView__iterator_from(self, p0); var = var1; RET_LABEL:; return var; } -/* method string#NativeString#to_s_with_copy for (self: NativeString): String */ -val* string__NativeString__to_s_with_copy(char* self) { -val* var /* : String */; -long var1 /* : Int */; -long var_length /* var length: Int */; -long var2 /* : Int */; -long var3 /* : Int */; -long var5 /* : Int */; -char* var6 /* : NativeString */; -val* var8 /* : StringCapable */; -char* var9 /* : NativeString */; -char* var_new_self /* var new_self: NativeString */; -long var10 /* : Int */; -long var11 /* : Int */; -val* var13 /* : String */; -long var14 /* : Int */; -long var15 /* : Int */; -long var16 /* : Int */; -long var18 /* : Int */; -var1 = string__NativeString__cstring_length(self); -var_length = var1; -var2 = 1; -{ /* Inline kernel#Int#+ (var_length,var2) */ -var5 = var_length + var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -{ /* Inline string#StringCapable#calloc_string (self,var3) */ -var8 = BOX_string__NativeString(self); /* autobox from NativeString to StringCapable */ -var9 = (char*)nit_alloc(var3); -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; -} -var_new_self = var6; -var10 = 0; -var11 = 0; -{ /* Inline string#NativeString#copy_to (self,var_new_self,var_length,var10,var11) */ -memcpy(var_new_self+var11,self+var10,var_length); -RET_LABEL12:(void)0; -} -var13 = NEW_string__String(&type_string__String); -var14 = 0; -var15 = 1; -{ /* Inline kernel#Int#- (var_length,var15) */ -var18 = var_length - var15; -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +/* method string#FlatBufferIterator#target for (self: FlatBufferIterator): FlatBuffer */ +val* string__FlatBufferIterator__target(val* self) { +val* var /* : FlatBuffer */; +val* var1 /* : FlatBuffer */; +var1 = self->attrs[COLOR_string__FlatBufferIterator___target].val; /* _target on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1693); +show_backtrace(1); } -((void (*)(val*, char*, long, long, long))(var13->class->vft[COLOR_string__String__with_infos]))(var13, var_new_self, var_length, var14, var16) /* with_infos on */; -var = var13; -goto RET_LABEL; +var = var1; RET_LABEL:; return var; } -/* method string#NativeString#to_s_with_copy for (self: Object): String */ -val* VIRTUAL_string__NativeString__to_s_with_copy(val* self) { -val* var /* : String */; -val* var1 /* : String */; -char* var2 /* : NativeString */; -var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -var1 = string__NativeString__to_s_with_copy(var2); +/* method string#FlatBufferIterator#target for (self: Object): FlatBuffer */ +val* VIRTUAL_string__FlatBufferIterator__target(val* self) { +val* var /* : FlatBuffer */; +val* var1 /* : FlatBuffer */; +val* var3 /* : FlatBuffer */; +{ /* Inline string#FlatBufferIterator#target (self) on */ +var3 = self->attrs[COLOR_string__FlatBufferIterator___target].val; /* _target on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1693); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method string#NativeString#init for (self: NativeString) */ -void string__NativeString__init(char* self) { +/* method string#FlatBufferIterator#target= for (self: FlatBufferIterator, FlatBuffer) */ +void string__FlatBufferIterator__target_61d(val* self, val* p0) { +self->attrs[COLOR_string__FlatBufferIterator___target].val = p0; /* _target on */ RET_LABEL:; } -/* method string#NativeString#init for (self: Object) */ -void VIRTUAL_string__NativeString__init(val* self) { -char* var /* : NativeString */; -var = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */; -string__NativeString__init(var); +/* method string#FlatBufferIterator#target= for (self: Object, FlatBuffer) */ +void VIRTUAL_string__FlatBufferIterator__target_61d(val* self, val* p0) { +{ /* Inline string#FlatBufferIterator#target= (self,p0) on */ +self->attrs[COLOR_string__FlatBufferIterator___target].val = p0; /* _target on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } -/* method string#StringCapable#calloc_string for (self: StringCapable, Int): NativeString */ -char* string__StringCapable__calloc_string(val* self, long p0) { +/* method string#FlatBufferIterator#target_items for (self: FlatBufferIterator): NativeString */ +char* string__FlatBufferIterator__target_items(val* self) { char* var /* : NativeString */; char* var1 /* : NativeString */; -var1 = (char*)nit_alloc(p0); +var1 = self->attrs[COLOR_string__FlatBufferIterator___target_items].str; /* _target_items on */ var = var1; -goto RET_LABEL; RET_LABEL:; return var; } -/* method string#StringCapable#calloc_string for (self: Object, Int): NativeString */ -char* VIRTUAL_string__StringCapable__calloc_string(val* self, long p0) { +/* method string#FlatBufferIterator#target_items for (self: Object): NativeString */ +char* VIRTUAL_string__FlatBufferIterator__target_items(val* self) { char* var /* : NativeString */; char* var1 /* : NativeString */; char* var3 /* : NativeString */; -{ /* Inline string#StringCapable#calloc_string (self,p0) */ -var3 = (char*)nit_alloc(p0); +{ /* Inline string#FlatBufferIterator#target_items (self) on */ +var3 = self->attrs[COLOR_string__FlatBufferIterator___target_items].str; /* _target_items on */ var1 = var3; -goto RET_LABEL2; RET_LABEL2:(void)0; } var = var1; RET_LABEL:; return var; } -/* method string#Sys#args for (self: Sys): Sequence[String] */ -val* string__Sys__args(val* self) { -val* var /* : Sequence[String] */; -val* var1 /* : nullable Sequence[String] */; -val* var2 /* : null */; -short int var3 /* : Bool */; -val* var4 /* : nullable Sequence[String] */; -var1 = self->attrs[COLOR_string__Sys___args_cache].val; /* _args_cache on */ -var2 = NULL; -if (var1 == NULL) { -var3 = 1; /* is null */ -} else { -var3 = 0; /* arg is null but recv is not */ -} -if (var3){ -((void (*)(val*))(self->class->vft[COLOR_string__Sys__init_args]))(self) /* init_args on */; -} else { +/* method string#FlatBufferIterator#target_items= for (self: FlatBufferIterator, NativeString) */ +void string__FlatBufferIterator__target_items_61d(val* self, char* p0) { +self->attrs[COLOR_string__FlatBufferIterator___target_items].str = p0; /* _target_items on */ +RET_LABEL:; } -var4 = self->attrs[COLOR_string__Sys___args_cache].val; /* _args_cache on */ -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 1132); -show_backtrace(1); +/* method string#FlatBufferIterator#target_items= for (self: Object, NativeString) */ +void VIRTUAL_string__FlatBufferIterator__target_items_61d(val* self, char* p0) { +{ /* Inline string#FlatBufferIterator#target_items= (self,p0) on */ +self->attrs[COLOR_string__FlatBufferIterator___target_items].str = p0; /* _target_items on */ +RET_LABEL1:(void)0; } -var = var4; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method string#Sys#args for (self: Object): Sequence[String] */ -val* VIRTUAL_string__Sys__args(val* self) { -val* var /* : Sequence[String] */; -val* var1 /* : Sequence[String] */; -var1 = string__Sys__args(self); +/* method string#FlatBufferIterator#curr_pos for (self: FlatBufferIterator): Int */ +long string__FlatBufferIterator__curr_pos(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on */ var = var1; RET_LABEL:; return var; } -/* method string#Sys#program_name for (self: Sys): String */ -val* string__Sys__program_name(val* self) { -val* var /* : String */; +/* method string#FlatBufferIterator#curr_pos for (self: Object): Int */ +long VIRTUAL_string__FlatBufferIterator__curr_pos(val* self) { +long var /* : Int */; long var1 /* : Int */; -char* var2 /* : NativeString */; -val* var3 /* : String */; -var1 = 0; -var2 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__Sys__native_argv]))(self, var1) /* native_argv on */; -var3 = string__NativeString__to_s(var2); -var = var3; -goto RET_LABEL; -RET_LABEL:; -return var; +long var3 /* : Int */; +{ /* Inline string#FlatBufferIterator#curr_pos (self) on */ +var3 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on */ +var1 = var3; +RET_LABEL2:(void)0; } -/* method string#Sys#program_name for (self: Object): String */ -val* VIRTUAL_string__Sys__program_name(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = string__Sys__program_name(self); var = var1; RET_LABEL:; return var; } -/* method string#Sys#init_args for (self: Sys) */ -void string__Sys__init_args(val* self) { +/* method string#FlatBufferIterator#curr_pos= for (self: FlatBufferIterator, Int) */ +void string__FlatBufferIterator__curr_pos_61d(val* self, long p0) { +self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = p0; /* _curr_pos on */ +RET_LABEL:; +} +/* method string#FlatBufferIterator#curr_pos= for (self: Object, Int) */ +void VIRTUAL_string__FlatBufferIterator__curr_pos_61d(val* self, long p0) { +{ /* Inline string#FlatBufferIterator#curr_pos= (self,p0) on */ +self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = p0; /* _curr_pos on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method string#FlatBufferIterator#with_pos for (self: FlatBufferIterator, FlatBuffer, Int) */ +void string__FlatBufferIterator__with_pos(val* self, val* p0, long p1) { +val* var_tgt /* var tgt: FlatBuffer */; +long var_pos /* var pos: Int */; long var /* : Int */; -long var_argc /* var argc: Int */; -val* var1 /* : Array[String] */; -long var2 /* : Int */; -val* var_args /* var args: Array[String] */; long var3 /* : Int */; -long var_i /* var i: Int */; -short int var4 /* : Bool */; -short int var6 /* : Bool */; +long var4 /* : Int */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var7 /* : Bool */; -long var8 /* : Int */; -long var9 /* : Int */; -long var11 /* : Int */; -char* var12 /* : NativeString */; -val* var13 /* : String */; -long var14 /* : Int */; -long var15 /* : Int */; -long var17 /* : Int */; -var = ((long (*)(val*))(self->class->vft[COLOR_string__Sys__native_argc]))(self) /* native_argc on */; -var_argc = var; -var1 = NEW_array__Array(&type_array__Arraystring__String); -var2 = 0; -((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -var_args = var1; -var3 = 1; -var_i = var3; -for(;;) { -{ /* Inline kernel#Int#< (var_i,var_argc) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (!var6) { +short int var8 /* : Bool */; +char* var9 /* : NativeString */; +char* var11 /* : NativeString */; +var_tgt = p0; +var_pos = p1; +{ +{ /* Inline string#FlatBufferIterator#target= (self,var_tgt) on */ +self->attrs[COLOR_string__FlatBufferIterator___target].val = var_tgt; /* _target on */ +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline string#FlatText#length (var_tgt) on */ +var3 = var_tgt->attrs[COLOR_string__FlatText___length].l; /* _length on */ +var = var3; +RET_LABEL2:(void)0; +} +} +var4 = 0; +{ +{ /* Inline kernel#Int#> (var,var4) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var7 = 1; /* easy isa OTHER*/ +if (unlikely(!var7)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } -var7 = var_i < var_argc; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var8 = var > var4; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} } -if (!var4) break; -var8 = 1; -{ /* Inline kernel#Int#- (var_i,var8) */ -var11 = var_i - var8; +if (var5){ +{ +{ /* Inline string#FlatText#items (var_tgt) on */ +var11 = var_tgt->attrs[COLOR_string__FlatText___items].str; /* _items on */ var9 = var11; -goto RET_LABEL10; RET_LABEL10:(void)0; } -var12 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__Sys__native_argv]))(self, var_i) /* native_argv on */; -var13 = string__NativeString__to_s(var12); -((void (*)(val*, long, val*))(var_args->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_args, var9, var13) /* []= on */; -var14 = 1; -{ /* Inline kernel#Int#+ (var_i,var14) */ -var17 = var_i + var14; -var15 = var17; -goto RET_LABEL16; -RET_LABEL16:(void)0; -} -var_i = var15; -CONTINUE_label: (void)0; } -BREAK_label: (void)0; -self->attrs[COLOR_string__Sys___args_cache].val = var_args; /* _args_cache on */ -RET_LABEL:; +{ +{ /* Inline string#FlatBufferIterator#target_items= (self,var9) on */ +self->attrs[COLOR_string__FlatBufferIterator___target_items].str = var9; /* _target_items on */ +RET_LABEL12:(void)0; } -/* method string#Sys#init_args for (self: Object) */ -void VIRTUAL_string__Sys__init_args(val* self) { -string__Sys__init_args(self); -RET_LABEL:; } -/* method string#Sys#native_argc for (self: Sys): Int */ -long string__Sys__native_argc(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = glob_argc; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +} else { } -/* method string#Sys#native_argc for (self: Object): Int */ -long VIRTUAL_string__Sys__native_argc(val* self) { -long var /* : Int */; -long var1 /* : Int */; -long var3 /* : Int */; -{ /* Inline string#Sys#native_argc (self) */ -var3 = glob_argc; -var1 = var3; -goto RET_LABEL2; -RET_LABEL2:(void)0; +{ +{ /* Inline string#FlatBufferIterator#curr_pos= (self,var_pos) on */ +self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = var_pos; /* _curr_pos on */ +RET_LABEL13:(void)0; } -var = var1; -RET_LABEL:; -return var; } -/* method string#Sys#native_argv for (self: Sys, Int): NativeString */ -char* string__Sys__native_argv(val* self, long p0) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -var1 = glob_argv[p0]; -var = var1; -goto RET_LABEL; RET_LABEL:; -return var; -} -/* method string#Sys#native_argv for (self: Object, Int): NativeString */ -char* VIRTUAL_string__Sys__native_argv(val* self, long p0) { -char* var /* : NativeString */; -char* var1 /* : NativeString */; -char* var3 /* : NativeString */; -{ /* Inline string#Sys#native_argv (self,p0) */ -var3 = glob_argv[p0]; -var1 = var3; -goto RET_LABEL2; -RET_LABEL2:(void)0; } -var = var1; +/* method string#FlatBufferIterator#with_pos for (self: Object, FlatBuffer, Int) */ +void VIRTUAL_string__FlatBufferIterator__with_pos(val* self, val* p0, long p1) { +string__FlatBufferIterator__with_pos(self, p0, p1); /* Direct call string#FlatBufferIterator#with_pos on */ RET_LABEL:; -return var; }