X-Git-Url: http://nitlanguage.org diff --git a/c_src/string._sep.c b/c_src/string._sep.c index a7ce642..095c6a0 100644 --- a/c_src/string._sep.c +++ b/c_src/string._sep.c @@ -1,1388 +1,3351 @@ /* This C file is generated by NIT to compile module string. */ #include "string._sep.h" -val_t string___String_____bra(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 31, LOCATE_string___String_____bra}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = ATTR_string___String____items( self) /*String::_items*/; - variable1 = TAG_Char(UNBOX_NativeString(variable1)[UNTAG_Int( variable0 /*index*/)]); - goto return_label0; - return_label0: while(false); - tracehead = trace.prev; - return variable1; +val_t string___AbstractString___items(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 26; + fra.me.meth = LOCATE_string___AbstractString___items; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:26 */ + REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 26); + } + fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void string___String_____braeq(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 33, LOCATE_string___String_____braeq}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = param1; - variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable2 = TAG_Bool(( variable0 /*index*/)==(variable2)); - if (UNTAG_Bool(variable2)) { /*if*/ - ((string___String___add_t)CALL( self,COLOR_abstract_collection___SimpleCollection___add))( self, variable1 /*item*/) /*String::add*/; - goto return_label1; - } - variable2 = TAG_Bool(UNTAG_Int( variable0 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable3 = variable2; - if (UNTAG_Bool(variable3)) { /* and */ - variable3 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable3 = TAG_Bool(UNTAG_Int( variable0 /*index*/)=UNTAG_Int(REGB2)); + /* ./../lib/standard//string.nit:38 */ + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_string, 38); + } + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:39 */ + REGB1 = REGB2; + /* ./../lib/standard//string.nit:40 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)UNTAG_Int(REGB2)); + /* ./../lib/standard//string.nit:41 */ + if (UNTAG_Bool(REGB2)) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:41 */ + REGB1 = REGB2; + } + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:75 */ + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(true); + } else { + /* ./../lib/standard//kernel.nit:214 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:75 */ + REGB1 = REGB3; + } + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + goto label1; + } + /* ./../lib/standard//string.nit:76 */ + while(1) { + REGB3 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3)); + /* ./../lib/standard//string.nit:76 */ + if (UNTAG_Bool(REGB3)) { + /* ./../lib/standard//string.nit:585 */ + REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[2])[UNTAG_Int(REGB0)]); + REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB2)]); + /* ./../lib/standard//string.nit:77 */ + REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4)); + if (UNTAG_Bool(REGB5)) { + } else { + /* ./../lib/standard//kernel.nit:347 */ + REGB4 = TAG_Bool((REGB3)==(REGB4)); + /* ./../lib/standard//string.nit:77 */ + REGB5 = REGB4; + } + REGB5 = TAG_Bool(!UNTAG_Bool(REGB5)); + if (UNTAG_Bool(REGB5)) { + REGB5 = TAG_Bool(false); + REGB1 = REGB5; + goto label1; + } + /* ./../lib/standard//string.nit:78 */ + REGB5 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB5 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB5)); + /* ./../lib/standard//string.nit:78 */ + REGB0 = REGB5; + /* ./../lib/standard//string.nit:79 */ + REGB5 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB5 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB5)); + /* ./../lib/standard//string.nit:79 */ + REGB2 = REGB5; + } else { + /* ./../lib/standard//string.nit:76 */ + goto label2; } - variable2 = ((string___String___items_t)CALL( variable0 /*s*/,COLOR_string___String___items))( variable0 /*s*/) /*String::items*/; - variable3 = ATTR_string___String____items( self) /*String::_items*/; - variable4 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - (void)memcpy(UNBOX_NativeString(variable3)+UNTAG_Int(variable4), UNBOX_NativeString(variable2)+UNTAG_Int( TAG_Int(0)), UNTAG_Int( variable1 /*sl*/)); - ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/)+UNTAG_Int( variable1 /*sl*/)); - } else { /*if*/ - ((string___String___append_t)CALL( self,COLOR_SUPER_string___String___append))( self, param0) /*super String::append*/; - } - tracehead = trace.prev; - return; + } + label2: while(0); + /* ./../lib/standard//string.nit:81 */ + REGB2 = TAG_Bool(true); + REGB1 = REGB2; + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB1; } -val_t string___String_____plus(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 73, LOCATE_string___String_____plus}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*AbstractArray::length*/; - variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int(variable3)); - variable3 = NEW_String_string___String___with_capacity(variable2); /*new String*/ - variable2 = variable3; - variable1 = variable2; - ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/, self) /*String::append*/; - ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/, variable0 /*s*/) /*String::append*/; - variable1 = variable1 /*r*/; - goto return_label6; - return_label6: while(false); - tracehead = trace.prev; - return variable1; +val_t string___AbstractString___has_prefix(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 84; + fra.me.meth = LOCATE_string___AbstractString___has_prefix; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//string.nit:88 */ + REGB0 = TAG_Int(0); + REGB0 = CALL_string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -val_t string___String_____star(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 82, LOCATE_string___String_____star}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String_____star, LOCATE_string, 85); nit_exit(1);} - variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable2 = TAG_Int(UNTAG_Int(variable2)*UNTAG_Int( variable0 /*i*/)); - variable3 = NEW_String_string___String___with_capacity(variable2); /*new String*/ - variable2 = variable3; - variable1 = variable2; - while (true) { /*while*/ - variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable2)) break; /* while*/ - ((string___String___append_t)CALL( variable1 /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*r*/, self) /*String::append*/; - variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/; - continue_8: while(0); - } - break_8: while(0); - variable1 = variable1 /*r*/; - goto return_label7; - return_label7: while(false); - tracehead = trace.prev; - return variable1; +val_t string___AbstractString___has_suffix(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 90; + fra.me.meth = LOCATE_string___AbstractString___has_suffix; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:217 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:94 */ + REGB1 = CALL_string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB1; } -val_t string___String___to_s(val_t self) { - struct trace_t trace = {NULL, NULL, 94, LOCATE_string___String___to_s}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = NEW_String_string___String___from( self); /*new String*/ - goto return_label9; - return_label9: while(false); - tracehead = trace.prev; - return variable0; +val_t string___AbstractString___to_i(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 96; + fra.me.meth = LOCATE_string___AbstractString___to_i; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:100 */ + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:596 */ + REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0]))); + /* ./../lib/standard//string.nit:100 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -val_t string___String___to_i(val_t self) { - struct trace_t trace = {NULL, NULL, 97, LOCATE_string___String___to_i}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ((string___String___to_cstring_t)CALL( self,COLOR_string___String___to_cstring))( self) /*String::to_cstring*/; - variable0 = TAG_Int(atoi(UNBOX_NativeString(variable0))); - goto return_label10; - return_label10: while(false); - tracehead = trace.prev; - return variable0; +val_t string___AbstractString___to_hex(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 103; + fra.me.meth = LOCATE_string___AbstractString___to_hex; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:104 */ + REGB0 = TAG_Int(16); + REGB0 = CALL_string___AbstractString___a_to(fra.me.REG[0])(fra.me.REG[0], REGB0); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -val_t string___String___to_hex(val_t self) { - struct trace_t trace = {NULL, NULL, 104, LOCATE_string___String___to_hex}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ((string___String___a_to_t)CALL( self,COLOR_string___String___a_to))( self, TAG_Int(16)) /*String::a_to*/; - goto return_label11; - return_label11: while(false); - tracehead = trace.prev; - return variable0; +val_t string___AbstractString___a_to(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 106; + fra.me.meth = LOCATE_string___AbstractString___a_to; + fra.me.has_broke = 0; + fra.me.REG_size = 4; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/standard//string.nit:106 */ + fra.me.REG[1] = REGB0; + /* ./../lib/standard//string.nit:109 */ + REGB0 = TAG_Int(0); + fra.me.REG[2] = REGB0; + /* ./../lib/standard//string.nit:110 */ + REGB0 = TAG_Bool(false); + fra.me.REG[3] = REGB0; + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_string___AbstractString___a_to_1)); + switch ((&(fra.me))->has_broke) { + case 0: break; + case 1: (&(fra.me))->has_broke = 0; goto label3; + } + /* ./../lib/standard//string.nit:127 */ + if (UNTAG_Bool(fra.me.REG[3])) { + /* ./../lib/standard//kernel.nit:216 */ + REGB0 = TAG_Int(-UNTAG_Int(fra.me.REG[2])); + /* ./../lib/standard//string.nit:128 */ + fra.me.REG[0] = REGB0; + goto label3; + } else { + /* ./../lib/standard//string.nit:130 */ + fra.me.REG[0] = fra.me.REG[2]; + goto label3; + } + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___String___a_to(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 107, LOCATE_string___String___a_to}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = TAG_Int(0); - variable2 = TAG_Bool(false); - variable3 = ((array___AbstractArray___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable4)) break; /*for*/ - variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/; - variable6 = ((kernel___Char___to_i_t)CALL( variable4 /*c*/,COLOR_kernel___Char___to_i))( variable4 /*c*/) /*Char::to_i*/; - variable5 = variable6; - variable6 = TAG_Bool(UNTAG_Int( variable5 /*v*/)>UNTAG_Int( variable0 /*base*/)); - if (UNTAG_Bool(variable6)) { /*if*/ - if (UNTAG_Bool( variable2 /*neg*/)) { /*if*/ - variable6 = TAG_Int(-UNTAG_Int( variable1 /*i*/)); - variable1 = variable6; - goto return_label12; - } else { /*if*/ - variable1 = variable1 /*i*/; - goto return_label12; + void OC_string___AbstractString___a_to_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + fun_t CREG[1]; + val_t tmp; + /* ./../lib/standard//string.nit:112 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 0; + fra.me.meth = LOCATE_string___AbstractString___a_to; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.closure_ctx = closctx_param; + fra.me.closure_funs = CREG; + fra.me.REG[0] = p0; + CREG[0] = clos_fun0; + REGB0 = fra.me.REG[0]; + /* ./../lib/standard//string.nit:114 */ + REGB0 = CALL_kernel___Char___to_i(REGB0)(REGB0); + /* ./../lib/standard//kernel.nit:214 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(closctx->REG[1])); + /* ./../lib/standard//string.nit:115 */ + if (UNTAG_Bool(REGB1)) { + /* ./../lib/standard//string.nit:116 */ + if (UNTAG_Bool(closctx->REG[3])) { + /* ./../lib/standard//kernel.nit:216 */ + REGB1 = TAG_Int(-UNTAG_Int(closctx->REG[2])); + /* ./../lib/standard//string.nit:117 */ + closctx->REG[0] = REGB1; + closctx->has_broke = 1; + goto label2; + } else { + /* ./../lib/standard//string.nit:119 */ + closctx->REG[0] = closctx->REG[2]; + closctx->has_broke = 1; + goto label2; } - } else { /*if*/ - variable6 = TAG_Bool(UNTAG_Int( variable5 /*v*/)REG[3] = REGB1; + } else { + /* ./../lib/standard//kernel.nit:218 */ + REGB1 = TAG_Int(UNTAG_Int(closctx->REG[2])*UNTAG_Int(closctx->REG[1])); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:124 */ + closctx->REG[2] = REGB0; } } - continue_13: while(0); - ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/; - } - break_13: while(0); - if (UNTAG_Bool( variable2 /*neg*/)) { /*if*/ - variable3 = TAG_Int(-UNTAG_Int( variable1 /*i*/)); - variable1 = variable3; - goto return_label12; - } else { /*if*/ - variable1 = variable1 /*i*/; - goto return_label12; - } - return_label12: while(false); - tracehead = trace.prev; - return variable1; + label2: while(0); + stack_frame_head = fra.me.prev; + return; + } +val_t string___AbstractString___to_upper(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 134; + fra.me.meth = LOCATE_string___AbstractString___to_upper; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:137 */ + fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB0); + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_string___AbstractString___to_upper_1)); + /* ./../lib/standard//string.nit:139 */ + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t string___String___to_cstring(val_t self) { - struct trace_t trace = {NULL, NULL, 135, LOCATE_string___String___to_cstring}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - ((string___String_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable0, TAG_Char('\0')) /*String::[]=*/; - ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/)-UNTAG_Int( TAG_Int(1))); - variable0 = ATTR_string___String____items( self) /*String::_items*/; - goto return_label14; - return_label14: while(false); - tracehead = trace.prev; - return variable0; + void OC_string___AbstractString___to_upper_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + fun_t CREG[1]; + val_t tmp; + /* ./../lib/standard//string.nit:138 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 0; + fra.me.meth = LOCATE_string___AbstractString___to_upper; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.closure_ctx = closctx_param; + fra.me.closure_funs = CREG; + fra.me.REG[0] = p0; + CREG[0] = clos_fun0; + REGB0 = fra.me.REG[0]; + REGB0 = CALL_kernel___Char___to_upper(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], REGB0); + stack_frame_head = fra.me.prev; + return; + } +val_t string___AbstractString___to_lower(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 142; + fra.me.meth = LOCATE_string___AbstractString___to_lower; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:145 */ + fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB0); + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_string___AbstractString___to_lower_1)); + /* ./../lib/standard//string.nit:147 */ + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t string___String___substring(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 143, LOCATE_string___String___substring}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = param1; - variable2 = TAG_Bool(UNTAG_Int( variable1 /*count*/)>=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String___substring, LOCATE_string, 151); nit_exit(1);} - variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( variable0 /*from*/)) /*count*/; - variable2 = TAG_Bool(UNTAG_Int( variable0 /*from*/)UNTAG_Int(variable2)); - if (UNTAG_Bool(variable2)) { /*if*/ - variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable1 = variable2 /*count=*/; - } - variable2 = TAG_Bool(UNTAG_Int( variable0 /*from*/)REG[1])(closctx->REG[1], REGB0); + stack_frame_head = fra.me.prev; + return; + } +void string___AbstractString___output(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 151; + fra.me.meth = LOCATE_string___AbstractString___output; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:153 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//string.nit:154 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); } - break_16: while(0); - variable2 = variable2 /*r*/; - goto return_label15; - } else { /*if*/ - variable2 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - goto return_label15; - } - return_label15: while(false); - tracehead = trace.prev; - return variable2; + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)vft[INIT_TABLE_POS_String].i; + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + if (init_table[itpos0]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 167; + fra.me.meth = LOCATE_string___String___with_native; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + REGB0 = p2; + /* ./../lib/standard//string.nit:170 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:170 */ + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_string, 170); + } + /* ./../lib/standard//string.nit:171 */ + ATTR_string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1]; + /* ./../lib/standard//string.nit:172 */ + ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; + init_table[itpos0] = 1; + return; } -val_t string___String___has_substring(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 178, LOCATE_string___String___has_substring}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - val_t variable7; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = param1; - variable3 = ((array___AbstractArray___length_t)CALL( variable0 /*str*/,COLOR_abstract_collection___Collection___length))( variable0 /*str*/) /*AbstractArray::length*/; - variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1))); - variable2 = variable3; - variable4 = TAG_Int(UNTAG_Int( variable1 /*pos*/)+UNTAG_Int( variable2 /*itsindex*/)); - variable3 = variable4; - variable5 = ATTR_string___String____items( self) /*String::_items*/; - variable4 = variable5; - variable6 = ATTR_string___String____items( variable0 /*str*/) /*String::_items*/; - variable5 = variable6; - variable6 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable6 = TAG_Bool(UNTAG_Int( variable3 /*myindex*/)>UNTAG_Int(variable6)); - variable7 = variable6; - if (!UNTAG_Bool(variable7)) { /* or */ - variable7 = TAG_Bool(UNTAG_Int( variable2 /*itsindex*/)>UNTAG_Int( variable3 /*myindex*/)); - } - variable6 = variable7; - if (UNTAG_Bool(variable6)) { /*if*/ - variable2 = TAG_Bool(false); - goto return_label18; - } - while (true) { /*while*/ - variable6 = TAG_Bool(UNTAG_Int( variable2 /*itsindex*/)>UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable6)) break; /* while*/ - variable6 = TAG_Char(UNBOX_NativeString( variable4 /*myitems*/)[UNTAG_Int( variable3 /*myindex*/)]); - variable7 = TAG_Char(UNBOX_NativeString( variable5 /*itsitems*/)[UNTAG_Int( variable2 /*itsindex*/)]); - variable6 = TAG_Bool((variable6)!=(variable7)); - if (UNTAG_Bool(variable6)) { /*if*/ - variable2 = TAG_Bool(false); - goto return_label18; - } - variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( variable3 /*myindex*/)) /*myindex*/; - variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( variable2 /*itsindex*/)) /*itsindex*/; - continue_19: while(0); - } - break_19: while(0); - variable2 = TAG_Bool(true); - goto return_label18; - return_label18: while(false); - tracehead = trace.prev; - return variable2; +void string___String___from_cstring(val_t p0, val_t p1, int* init_table){ + int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_String].i; + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos1]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 175; + fra.me.meth = LOCATE_string___String___from_cstring; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//string.nit:178 */ + REGB0 = CALL_string___NativeString___cstring_length(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/standard//string.nit:179 */ + ATTR_string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1]; + /* ./../lib/standard//string.nit:180 */ + ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; + init_table[itpos1] = 1; + return; } -val_t string___String___has_prefix(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 197, LOCATE_string___String___has_prefix}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = ((string___String___has_substring_t)CALL( self,COLOR_string___String___has_substring))( self, variable0 /*prefix*/, TAG_Int(0)) /*String::has_substring*/; - goto return_label20; - return_label20: while(false); - tracehead = trace.prev; - return variable1; +val_t string___String___to_cstring(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 183; + fra.me.meth = LOCATE_string___String___to_cstring; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:186 */ + REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 186); + } + fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___String___has_suffix(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 203, LOCATE_string___String___has_suffix}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*suffix*/,COLOR_abstract_collection___Collection___length))( variable0 /*suffix*/) /*AbstractArray::length*/; - variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int(variable2)); - variable1 = ((string___String___has_substring_t)CALL( self,COLOR_string___String___has_substring))( self, variable0 /*suffix*/, variable1) /*String::has_substring*/; - goto return_label21; - return_label21: while(false); - tracehead = trace.prev; - return variable1; +val_t string___String_____eqeq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t REGB5; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 189; + fra.me.meth = LOCATE_string___String_____eqeq; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//string.nit:191 */ + REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_String, ID_String)) /*cast String*/; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + goto label1; + } + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:193 */ + REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_string, 193); + } + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//string.nit:193 */ + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1)); + if (UNTAG_Bool(REGB3)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB2 = TAG_Bool((REGB2)==(REGB1)); + /* ./../lib/standard//string.nit:193 */ + REGB3 = REGB2; + } + REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Bool(false); + REGB0 = REGB3; + goto label1; + } + /* ./../lib/standard//string.nit:194 */ + REGB3 = TAG_Int(0); + /* ./../lib/standard//string.nit:195 */ + REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 195); + } + fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]); + /* ./../lib/standard//string.nit:196 */ + REGB2 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 196); + } + fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[1]); + /* ./../lib/standard//string.nit:197 */ + while(1) { + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB3)=UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:240 */ + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_string, 240); + } + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:218 */ + REGB1 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:241 */ + fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB1); + /* ./../lib/standard//string.nit:242 */ + while(1) { + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:242 */ + if (UNTAG_Bool(REGB1)) { + /* ./../lib/standard//string.nit:243 */ + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./../lib/standard//string.nit:244 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:244 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//string.nit:242 */ + goto label1; + } + } + label1: while(0); + /* ./../lib/standard//string.nit:246 */ + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +val_t string___String___to_s(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 249; + fra.me.meth = LOCATE_string___String___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:249 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t string___String___hash(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 251; + fra.me.meth = LOCATE_string___String___hash; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:254 */ + REGB0 = TAG_Int(5381); + /* ./../lib/standard//string.nit:255 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_string, 255); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2)); + /* ./../lib/standard//string.nit:256 */ + REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 256); + } + fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]); + /* ./../lib/standard//string.nit:257 */ + while(1) { + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:257 */ + if (UNTAG_Bool(REGB1)) { + /* ./../lib/standard//string.nit:258 */ + REGB1 = TAG_Int(32); + /* ./../lib/standard//kernel.nit:218 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1)); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:585 */ + REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB2)]); + /* ./../lib/standard//kernel.nit:382 */ + REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3)); + /* ./../lib/standard//kernel.nit:215 */ + REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3)); + /* ./../lib/standard//string.nit:258 */ + REGB0 = REGB3; + /* ./../lib/standard//string.nit:259 */ + REGB3 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3)); + /* ./../lib/standard//string.nit:259 */ + REGB2 = REGB3; + } else { + /* ./../lib/standard//string.nit:257 */ + goto label1; } - variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/; - continue_23: while(0); - } - break_23: while(0); - variable4 = TAG_Bool(UNTAG_Int( variable2 /*l1*/)vft[INIT_TABLE_POS_String].i]) return; - ((string___String___with_capacity_t)CALL( self,COLOR_string___String___with_capacity))( self, TAG_Int(5), init_table /*YYY*/) /*String::with_capacity*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1; - tracehead = trace.prev; +void string___Buffer_____braeq(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 275; + fra.me.meth = LOCATE_string___Buffer_____braeq; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + REGB1 = p2; + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:277 */ + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2)); + if (UNTAG_Bool(REGB3)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB2 = TAG_Bool((REGB0)==(REGB2)); + /* ./../lib/standard//string.nit:277 */ + REGB3 = REGB2; + } + if (UNTAG_Bool(REGB3)) { + /* ./../lib/standard//string.nit:278 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1); + /* ./../lib/standard//string.nit:279 */ + goto label1; + } + /* ./../lib/standard//string.nit:281 */ + REGB3 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB3)); + /* ./../lib/standard//string.nit:281 */ + if (UNTAG_Bool(REGB3)) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB3)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:212 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB0)vft[INIT_TABLE_POS_String].i]) return; - variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*AbstractArray::length*/; - variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))); - ATTR_string___String____capacity( self) /*String::_capacity*/ = variable1; - variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*AbstractArray::length*/; - ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = variable1; - variable1 = ATTR_string___String____capacity( self) /*String::_capacity*/; - variable1 = BOX_NativeString((char*)malloc((UNTAG_Int(variable1) * sizeof(char)))); - ATTR_string___String____items( self) /*String::_items*/ = variable1; - variable1 = ((string___String___items_t)CALL( variable0 /*s*/,COLOR_string___String___items))( variable0 /*s*/) /*String::items*/; - variable2 = ATTR_string___String____items( self) /*String::_items*/; - variable3 = ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/; - (void)memcpy(UNBOX_NativeString(variable2)+UNTAG_Int( TAG_Int(0)), UNBOX_NativeString(variable1)+UNTAG_Int( TAG_Int(0)), UNTAG_Int(variable3)); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1; - tracehead = trace.prev; +void string___Buffer___add(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 285; + fra.me.meth = LOCATE_string___Buffer___add; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/standard//string.nit:287 */ + REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_string, 287); + } + REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:211 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB2)); + /* ./../lib/standard//string.nit:287 */ + if (UNTAG_Bool(REGB2)) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:287 */ + REGB1 = TAG_Int(5); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:287 */ + CALL_array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1); + } + /* ./../lib/standard//string.nit:288 */ + REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 288); + } + fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:586 */ + UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB1)]=UNTAG_Char(REGB0);; + /* ./../lib/standard//string.nit:289 */ + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:289 */ + ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1; + stack_frame_head = fra.me.prev; return; } -void string___String___with_capacity(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 245, LOCATE_string___String___with_capacity}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return; - variable1 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)>=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String___with_capacity, LOCATE_string, 248); nit_exit(1);} - variable1 = BOX_NativeString((char*)malloc((UNTAG_Int( variable0 /*cap*/) * sizeof(char)))); - ATTR_string___String____items( self) /*String::_items*/ = variable1; - ATTR_string___String____capacity( self) /*String::_capacity*/ = variable0 /*cap*/; - ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = TAG_Int(0); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1; - tracehead = trace.prev; +void string___Buffer___enlarge(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 292; + fra.me.meth = LOCATE_string___Buffer___enlarge; + fra.me.has_broke = 0; + fra.me.REG_size = 3; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/standard//string.nit:294 */ + REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_string, 294); + } + REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:211 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:295 */ + if (UNTAG_Bool(REGB2)) { + goto label1; + } + /* ./../lib/standard//string.nit:296 */ + while(1) { + /* ./../lib/standard//kernel.nit:211 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:296 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(2); + /* ./../lib/standard//kernel.nit:218 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2)); + /* ./../lib/standard//string.nit:296 */ + REGB3 = TAG_Int(2); + /* ./../lib/standard//kernel.nit:215 */ + REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3)); + /* ./../lib/standard//string.nit:296 */ + REGB1 = REGB3; + } else { + goto label2; + } + } + label2: while(0); + /* ./../lib/standard//string.nit:297 */ + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:601 */ + fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char)))); + /* ./../lib/standard//string.nit:298 */ + REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 298); + } + fra.me.REG[2] = ATTR_string___AbstractString____items(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:298 */ + REGB3 = TAG_Int(0); + REGB2 = TAG_Int(0); + /* ./../lib/standard//string.nit:587 */ + (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB3), UNTAG_Int(REGB0));; + /* ./../lib/standard//string.nit:299 */ + ATTR_string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1]; + /* ./../lib/standard//string.nit:300 */ + ATTR_string___Buffer____capacity(fra.me.REG[0]) = REGB1; + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void string___String___with_native(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 255, LOCATE_string___String___with_native}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = param1; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return; - variable2 = TAG_Bool(UNTAG_Int( variable1 /*size*/)>=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String___with_native, LOCATE_string, 258); nit_exit(1);} - ATTR_string___String____items( self) /*String::_items*/ = variable0 /*nat*/; - ATTR_string___String____capacity( self) /*String::_capacity*/ = variable1 /*size*/; - ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = variable1 /*size*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1; - tracehead = trace.prev; +void string___Buffer___append(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 303; + fra.me.meth = LOCATE_string___Buffer___append; + fra.me.has_broke = 0; + fra.me.REG_size = 5; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//string.nit:303 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./../lib/standard//string.nit:305 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_String, ID_String)) /*cast String*/; + if (UNTAG_Bool(REGB0)) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//string.nit:307 */ + REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_string, 307); + } + REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[2]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0)); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)vft[INIT_TABLE_POS_String].i]) return; - variable2 = ((string___NativeString___cstring_length_t)CALL( variable0 /*str*/,COLOR_string___NativeString___cstring_length))( variable0 /*str*/) /*NativeString::cstring_length*/; - variable1 = variable2; - ATTR_string___String____items( self) /*String::_items*/ = variable0 /*str*/; - variable2 = TAG_Int(UNTAG_Int( variable1 /*size*/)+UNTAG_Int( TAG_Int(1))); - ATTR_string___String____capacity( self) /*String::_capacity*/ = variable2; - ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/ = variable1 /*size*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i] = 1; - tracehead = trace.prev; +val_t string___Buffer___to_s(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 315; + fra.me.meth = LOCATE_string___Buffer___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 3; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:318 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:601 */ + fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char)))); + /* ./../lib/standard//string.nit:319 */ + REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 319); + } + fra.me.REG[2] = ATTR_string___AbstractString____items(fra.me.REG[0]); + REGB1 = TAG_Int(0); + REGB2 = TAG_Int(0); + /* ./../lib/standard//string.nit:587 */ + (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));; + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:322 */ + REGB1 = TAG_Char('\0'); + /* ./../lib/standard//string.nit:586 */ + UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB2)]=UNTAG_Char(REGB1);; + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:324 */ + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +val_t string___Buffer_____l(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t REGB5; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 327; + fra.me.meth = LOCATE_string___Buffer_____l; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//string.nit:329 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//string.nit:332 */ + while(1) { + /* ./../lib/standard//kernel.nit:212 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB0)vft[INIT_TABLE_POS_Buffer].i; + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos2]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 349; + fra.me.meth = LOCATE_string___Buffer___init; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:352 */ + REGB0 = TAG_Int(5); + CALL_string___Buffer___with_capacity(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table); + stack_frame_head = fra.me.prev; + init_table[itpos2] = 1; return; } -void string___String___filled_with(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 273, LOCATE_string___String___filled_with}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = param1; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_String].i]) return; - ((string___String___with_capacity_t)CALL( self,COLOR_string___String___with_capacity))( self, variable1 /*count*/, init_table /*YYY*/) /*String::with_capacity*/; - variable2 = TAG_Int(0); - while (true) { /*while*/ - variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)vft[INIT_TABLE_POS_String].i] = 1; - tracehead = trace.prev; +void string___Buffer___from(val_t p0, val_t p1, int* init_table){ + int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Buffer].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + if (init_table[itpos3]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 355; + fra.me.meth = LOCATE_string___Buffer___from; + fra.me.has_broke = 0; + fra.me.REG_size = 3; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//string.nit:355 */ + fra.me.REG[2] = fra.me.REG[0]; + CALL_string___StringCapable___init(fra.me.REG[0])(fra.me.REG[0], init_table); + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//string.nit:357 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:357 */ + ATTR_string___Buffer____capacity(fra.me.REG[2]) = REGB1; + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//string.nit:358 */ + ATTR_array___AbstractArrayRead____length(fra.me.REG[2]) = REGB1; + /* ./../lib/standard//string.nit:359 */ + REGB1 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_string, 359); + } + REGB1 = ATTR_string___Buffer____capacity(fra.me.REG[2]); + /* ./../lib/standard//string.nit:601 */ + fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char)))); + /* ./../lib/standard//string.nit:359 */ + ATTR_string___AbstractString____items(fra.me.REG[2]) = fra.me.REG[0]; + /* ./../lib/standard//string.nit:360 */ + fra.me.REG[1] = CALL_string___AbstractString___items(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_items", LOCATE_string, 360); + } + fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[2]); + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_string, 360); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + REGB0 = TAG_Int(0); + REGB2 = TAG_Int(0); + /* ./../lib/standard//string.nit:587 */ + (void)memcpy(UNBOX_NativeString(fra.me.REG[0])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB0), UNTAG_Int(REGB1));; + stack_frame_head = fra.me.prev; + init_table[itpos3] = 1; return; } -void string___String___output(val_t self) { - struct trace_t trace = {NULL, NULL, 285, LOCATE_string___String___output}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = TAG_Int(0); - while (true) { /*while*/ - variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)vft[INIT_TABLE_POS_Buffer].i; + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + if (init_table[itpos4]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 363; + fra.me.meth = LOCATE_string___Buffer___with_capacity; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/standard//string.nit:363 */ + fra.me.REG[1] = fra.me.REG[0]; + CALL_string___StringCapable___init(fra.me.REG[0])(fra.me.REG[0], init_table); + /* ./../lib/standard//string.nit:366 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:366 */ + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_string, 366); + } + /* ./../lib/standard//string.nit:368 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:601 */ + fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char)))); + /* ./../lib/standard//string.nit:368 */ + ATTR_string___AbstractString____items(fra.me.REG[1]) = fra.me.REG[0]; + /* ./../lib/standard//string.nit:369 */ + ATTR_string___Buffer____capacity(fra.me.REG[1]) = REGB0; + /* ./../lib/standard//string.nit:370 */ + REGB0 = TAG_Int(0); + ATTR_array___AbstractArrayRead____length(fra.me.REG[1]) = REGB0; + stack_frame_head = fra.me.prev; + init_table[itpos4] = 1; return; } -val_t string___String_____eqeq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 294, LOCATE_string___String_____eqeq}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_String, ID_String)) /*cast String*/; - variable1 = TAG_Bool(!UNTAG_Bool(variable1)); - if (!UNTAG_Bool(variable1)) { /* or */ - variable1 = TAG_Bool(IS_EQUAL_NN( variable0 /*o*/, NIT_NULL /*null*/)); - } - if (UNTAG_Bool(variable1)) { /*if*/ - variable1 = TAG_Bool(false); - goto return_label33; - } - variable1 = TAG_Bool(( variable0 /*o*/==NIT_NULL) || VAL_ISA( variable0 /*o*/, COLOR_String, ID_String)) /*cast String*/; - if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String_____eqeq, LOCATE_string, 297); nit_exit(1);} - variable2 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/; - variable1 = variable2; - variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*o*/,COLOR_abstract_collection___Collection___length))( variable0 /*o*/) /*AbstractArray::length*/; - variable2 = TAG_Bool((variable2)!=( variable1 /*l*/)); - if (UNTAG_Bool(variable2)) { /*if*/ - variable1 = TAG_Bool(false); - goto return_label33; - } - variable2 = TAG_Int(0); - variable4 = ATTR_string___String____items( self) /*String::_items*/; - variable3 = variable4; - variable5 = ATTR_string___String____items( variable0 /*o*/) /*String::_items*/; - variable4 = variable5; - while (true) { /*while*/ - variable5 = TAG_Bool(UNTAG_Int( variable2 /*i*/)')) /*String::add*/; - variable0 = variable0 /*r*/; - goto return_label40; - return_label40: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Object___inspect_head(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 410; + fra.me.meth = LOCATE_string___Object___inspect_head; + fra.me.has_broke = 0; + fra.me.REG_size = 3; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:414 */ + REGB0 = TAG_Int(3); + fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("<"); + REGB0 = TAG_Int(1); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_1 = fra.me.REG[2]; + register_static_object(&once_value_1); + } else fra.me.REG[2] = once_value_1; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + REGB0 = CALL_kernel___Object___object_id(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Int___to_hex(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label3; + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t string___Object___inspect_head(val_t self) { - struct trace_t trace = {NULL, NULL, 349, LOCATE_string___Object___inspect_head}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = NEW_String_string___String___init(); /*new String*/ - variable1 = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/ - variable2 = variable1; - ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/; - variable3 = TAG_Int((bigint) self); - variable3 = ((string___Int___to_hex_t)CALL(variable3,COLOR_string___Int___to_hex))(variable3) /*Int::to_hex*/; - variable4 = variable3; - ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/; - variable5 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable6 = variable5; - ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/; - goto return_label41; - return_label41: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Object___args(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 417; + fra.me.meth = LOCATE_string___Object___args; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:419 */ + fra.me.REG[0] = CALL_kernel___Object___sys(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___args(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___Object___args(val_t self) { - struct trace_t trace = {NULL, NULL, 356, LOCATE_string___Object___args}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = (G_sys); - variable0 = ((string___Sys___args_t)CALL(variable0,COLOR_string___Object___args))(variable0) /*Sys::args*/; - goto return_label42; - return_label42: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Bool___to_s(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 424; + fra.me.meth = LOCATE_string___Bool___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + REGB0 = p0; + /* ./../lib/standard//string.nit:426 */ + if (UNTAG_Bool(REGB0)) { + /* ./../lib/standard//string.nit:427 */ + if (!once_value_1) { + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString("true"); + REGB0 = TAG_Int(4); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + once_value_1 = fra.me.REG[0]; + register_static_object(&once_value_1); + } else fra.me.REG[0] = once_value_1; + fra.me.REG[0] = fra.me.REG[0]; + goto label3; + } else { + /* ./../lib/standard//string.nit:429 */ + if (!once_value_4) { + if (!once_value_5) { + fra.me.REG[1] = BOX_NativeString("false"); + REGB0 = TAG_Int(5); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_5 = fra.me.REG[1]; + register_static_object(&once_value_5); + } else fra.me.REG[1] = once_value_5; + fra.me.REG[1] = fra.me.REG[1]; + once_value_4 = fra.me.REG[1]; + register_static_object(&once_value_4); + } else fra.me.REG[1] = once_value_4; + fra.me.REG[1] = fra.me.REG[1]; + fra.me.REG[0] = fra.me.REG[1]; + goto label3; + } + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___Bool___to_s(val_t self) { - struct trace_t trace = {NULL, NULL, 363, LOCATE_string___Bool___to_s}; - val_t variable0; - static val_t once_value_variable0_44; static int once_bool_variable0_44; - static val_t once_value_variable0_45; static int once_bool_variable0_45; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - if (UNTAG_Bool( self)) { /*if*/ - if (once_bool_variable0_44) variable0 = once_value_variable0_44; - else { - variable0 = NEW_String_string___String___with_native(BOX_NativeString("true"), TAG_Int(4)); /*new String*/ - once_value_variable0_44 = variable0; - once_bool_variable0_44 = true; +void string___Int___fill_buffer(val_t p0, val_t p1, val_t p2, val_t p3){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 435; + fra.me.meth = LOCATE_string___Int___fill_buffer; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + REGB0 = p0; + fra.me.REG[0] = p1; + REGB1 = p2; + REGB2 = p3; + /* ./../lib/standard//string.nit:441 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:452 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0)); + } else { + /* ./../lib/standard//string.nit:452 */ + REGB3 = TAG_Bool(false); + REGB0 = REGB3; } - } - variable5 = ((kernel___Int___digit_count_t)CALL( self,COLOR_kernel___Int___digit_count))( self, variable1 /*base*/) /*Int::digit_count*/; - variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1))); - variable4 = variable5; - while (true) { /*while*/ - variable5 = TAG_Bool(UNTAG_Int( variable4 /*pos*/)>=UNTAG_Int( TAG_Int(0))); - variable6 = variable5; - if (UNTAG_Bool(variable6)) { /* and */ - variable6 = TAG_Bool(UNTAG_Int( variable3 /*n*/)>UNTAG_Int( TAG_Int(0))); + if (UNTAG_Bool(REGB0)) { + /* ./../lib/standard//kernel.nit:220 */ + REGB0 = TAG_Int(UNTAG_Int(REGB2)%UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:453 */ + REGB0 = CALL_kernel___Int___to_c(REGB0)(REGB0); + CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB4, REGB0); + /* ./../lib/standard//kernel.nit:219 */ + REGB0 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:454 */ + REGB2 = REGB0; + /* ./../lib/standard//string.nit:455 */ + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB0 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB0)); + /* ./../lib/standard//string.nit:455 */ + REGB4 = REGB0; + } else { + /* ./../lib/standard//string.nit:452 */ + goto label2; } - variable5 = variable6; - if (!UNTAG_Bool(variable5)) break; /* while*/ - variable5 = TAG_Int(UNTAG_Int( variable3 /*n*/)%UNTAG_Int( variable1 /*base*/)); - variable5 = ((kernel___Int___to_c_t)CALL(variable5,COLOR_kernel___Int___to_c))(variable5) /*Int::to_c*/; - ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/, variable4 /*pos*/, variable5) /*String::[]=*/; - variable5 = TAG_Int(UNTAG_Int( variable3 /*n*/)/UNTAG_Int( variable1 /*base*/)); - variable3 = variable5 /*n=*/; - variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1))) /*pos*/; - continue_47: while(0); - } - break_47: while(0); - return_label46: while(false); - tracehead = trace.prev; + } + label2: while(0); + label1: while(0); + stack_frame_head = fra.me.prev; return; } -val_t string___Int___to_s(val_t self) { - struct trace_t trace = {NULL, NULL, 398, LOCATE_string___Int___to_s}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ((string___Int___to_base_t)CALL( self,COLOR_string___Int___to_base))( self, TAG_Int(10), TAG_Bool(true)) /*Int::to_base*/; - goto return_label48; - return_label48: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Int___to_s(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 459; + fra.me.meth = LOCATE_string___Int___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + REGB0 = p0; + /* ./../lib/standard//string.nit:460 */ + REGB1 = TAG_Int(10); + REGB2 = TAG_Bool(true); + fra.me.REG[0] = CALL_string___Int___to_base(REGB0)(REGB0, REGB1, REGB2); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t string___Int___to_hex(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 462; + fra.me.meth = LOCATE_string___Int___to_hex; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + REGB0 = p0; + /* ./../lib/standard//string.nit:463 */ + REGB1 = TAG_Int(16); + REGB2 = TAG_Bool(false); + fra.me.REG[0] = CALL_string___Int___to_base(REGB0)(REGB0, REGB1, REGB2); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___Int___to_hex(val_t self) { - struct trace_t trace = {NULL, NULL, 401, LOCATE_string___Int___to_hex}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ((string___Int___to_base_t)CALL( self,COLOR_string___Int___to_base))( self, TAG_Int(16), TAG_Bool(false)) /*Int::to_base*/; - goto return_label49; - return_label49: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Int___to_base(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t tmp; + static val_t once_value_1; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 465; + fra.me.meth = LOCATE_string___Int___to_base; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + REGB0 = p0; + REGB1 = p1; + REGB2 = p2; + /* ./../lib/standard//string.nit:468 */ + REGB3 = CALL_kernel___Int___digit_count(REGB0)(REGB0, REGB1); + /* ./../lib/standard//string.nit:469 */ + if (!once_value_1) { + fra.me.REG[0] = BOX_NativeString(" "); + REGB4 = TAG_Int(1); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB4); + once_value_1 = fra.me.REG[0]; + register_static_object(&once_value_1); + } else fra.me.REG[0] = once_value_1; + fra.me.REG[0] = fra.me.REG[0]; + fra.me.REG[0] = CALL_string___String_____star(fra.me.REG[0])(fra.me.REG[0], REGB3); + fra.me.REG[0] = NEW_Buffer_string___Buffer___from(fra.me.REG[0]); + /* ./../lib/standard//string.nit:470 */ + CALL_string___Int___fill_buffer(REGB0)(REGB0, fra.me.REG[0], REGB1, REGB2); + /* ./../lib/standard//string.nit:471 */ + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___Int___to_base(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 404, LOCATE_string___Int___to_base}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = param1; - variable3 = ((kernel___Int___digit_count_t)CALL( self,COLOR_kernel___Int___digit_count))( self, variable0 /*base*/) /*Int::digit_count*/; - variable2 = variable3; - variable4 = NEW_String_string___String___filled_with( TAG_Char(' '), variable2 /*l*/); /*new String*/ - variable3 = variable4; - ((string___Int___fill_string_t)CALL( self,COLOR_string___Int___fill_string))( self, variable3 /*s*/, variable0 /*base*/, variable1 /*signed*/) /*Int::fill_string*/; - variable2 = variable3 /*s*/; - goto return_label50; - return_label50: while(false); - tracehead = trace.prev; - return variable2; +val_t string___Float___to_s(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 476; + fra.me.meth = LOCATE_string___Float___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:476 */ + REGB0 = TAG_Int(6); + fra.me.REG[0] = CALL_string___Float___to_precision(fra.me.REG[0])(fra.me.REG[0], REGB0); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___Float___to_s(val_t self) { - struct trace_t trace = {NULL, NULL, 415, LOCATE_string___Float___to_s}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ((string___Float___to_precision_t)CALL( self,COLOR_string___Float___to_precision))( self, TAG_Int(6)) /*Float::to_precision*/; - goto return_label51; - return_label51: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Float___to_precision(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 478; + fra.me.meth = LOCATE_string___Float___to_precision; + fra.me.has_broke = 0; + fra.me.REG_size = 4; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/standard//string.nit:481 */ + REGB1 = TAG_Int(0); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); + if (UNTAG_Bool(REGB2)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB1 = TAG_Bool((REGB0)==(REGB1)); + /* ./../lib/standard//string.nit:481 */ + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + /* ./../lib/standard//kernel.nit:196 */ + REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0])); + /* ./../lib/standard//string.nit:481 */ + fra.me.REG[1] = CALL_string___Object___to_s(REGB2)(REGB2); + goto label1; + } + /* ./../lib/standard//kernel.nit:196 */ + REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0])); + /* ./../lib/standard//string.nit:484 */ + fra.me.REG[2] = BOX_Float(1.0); + /* ./../lib/standard//string.nit:485 */ + while(1) { + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:485 */ + if (UNTAG_Bool(REGB1)) { + /* ./../lib/standard//string.nit:486 */ + fra.me.REG[3] = BOX_Float(10.0); + /* ./../lib/standard//kernel.nit:193 */ + fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[2])*UNBOX_Float(fra.me.REG[3])); + /* ./../lib/standard//string.nit:486 */ + fra.me.REG[2] = fra.me.REG[3]; + /* ./../lib/standard//string.nit:487 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); + /* ./../lib/standard//string.nit:487 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//string.nit:485 */ + goto label2; + } + } + label2: while(0); + /* ./../lib/standard//kernel.nit:224 */ + fra.me.REG[3] = BOX_Float((float)UNTAG_Int(REGB2)); + /* ./../lib/standard//kernel.nit:192 */ + fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[0])-UNBOX_Float(fra.me.REG[3])); + /* ./../lib/standard//kernel.nit:193 */ + fra.me.REG[2] = BOX_Float(UNBOX_Float(fra.me.REG[3])*UNBOX_Float(fra.me.REG[2])); + /* ./../lib/standard//kernel.nit:196 */ + REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[2])); + /* ./../lib/standard//string.nit:490 */ + REGB1 = TAG_Int(5); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_3) { + fra.me.REG[3] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); + once_value_3 = fra.me.REG[3]; + register_static_object(&once_value_3); + } else fra.me.REG[3] = once_value_3; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + if (!once_value_4) { + fra.me.REG[3] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2); + once_value_4 = fra.me.REG[3]; + register_static_object(&once_value_4); + } else fra.me.REG[3] = once_value_4; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + if (!once_value_5) { + fra.me.REG[3] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_5 = fra.me.REG[3]; + register_static_object(&once_value_5); + } else fra.me.REG[3] = once_value_5; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[1] = fra.me.REG[2]; + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t string___Float___to_precision(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 417, LOCATE_string___Float___to_precision}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - val_t variable7; - val_t variable8; - val_t variable9; - val_t variable10; - val_t variable11; - val_t variable12; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = TAG_Bool(( variable0 /*nb*/)==( TAG_Int(0))); - if (UNTAG_Bool(variable1)) { /*if*/ - variable1 = TAG_Int((bigint)UNBOX_Float( self)); - variable1 = ((string___Int___to_s_t)CALL(variable1,COLOR_string___Object___to_s))(variable1) /*Int::to_s*/; - goto return_label52; - } - variable2 = TAG_Int((bigint)UNBOX_Float( self)); - variable1 = variable2; - variable3 = BOX_Float(1.0); - variable2 = variable3; - while (true) { /*while*/ - variable3 = TAG_Bool(UNTAG_Int( variable0 /*nb*/)>UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable3)) break; /* while*/ - variable3 = BOX_Float(10.0); - variable3 = BOX_Float(UNBOX_Float( variable2 /*dec*/)*UNBOX_Float(variable3)); - variable2 = variable3 /*dec=*/; - variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*nb*/; - continue_53: while(0); - } - break_53: while(0); - variable4 = BOX_Float((float)UNTAG_Int( variable1 /*i*/)); - variable4 = BOX_Float(UNBOX_Float( self)-UNBOX_Float(variable4)); - variable4 = BOX_Float(UNBOX_Float(variable4)*UNBOX_Float( variable2 /*dec*/)); - variable4 = TAG_Int((bigint)UNBOX_Float(variable4)); - variable3 = variable4; - variable4 = NEW_String_string___String___init(); /*new String*/ - variable5 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable6 = variable5; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/; - variable7 = variable1 /*i*/; - variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/; - variable8 = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable9 = variable8; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/; - variable10 = variable3 /*d*/; - variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/; - variable11 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable12 = variable11; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/; - variable1 = variable4; - goto return_label52; - return_label52: while(false); - tracehead = trace.prev; - return variable1; +val_t string___Char___to_s(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 495; + fra.me.meth = LOCATE_string___Char___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + REGB0 = p0; + /* ./../lib/standard//string.nit:497 */ + REGB1 = TAG_Int(1); + fra.me.REG[0] = NEW_Buffer_string___Buffer___with_capacity(REGB1); + /* ./../lib/standard//string.nit:498 */ + REGB1 = TAG_Int(0); + CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB0); + /* ./../lib/standard//string.nit:499 */ + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___Char___to_s(val_t self) { - struct trace_t trace = {NULL, NULL, 434, LOCATE_string___Char___to_s}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable1 = NEW_String_string___String___with_capacity( TAG_Int(1)); /*new String*/ - variable0 = variable1; - ((string___String_____braeq_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*s*/, TAG_Int(0), self) /*String::[]=*/; - variable0 = variable0 /*s*/; - goto return_label54; - return_label54: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Collection___to_s(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 504; + fra.me.meth = LOCATE_string___Collection___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:507 */ + fra.me.REG[1] = NEW_Buffer_string___Buffer___init(); + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_string___Collection___to_s_1)); + /* ./../lib/standard//string.nit:509 */ + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t string___Collection___to_s(val_t self) { - struct trace_t trace = {NULL, NULL, 443, LOCATE_string___Collection___to_s}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable1 = NEW_String_string___String___init(); /*new String*/ - variable0 = variable1; - variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/; - while (true) { /*for*/ - variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable2)) break; /*for*/ - variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/; - variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*e*/ == NIT_NULL /*null*/) || (( variable2 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*e*/,COLOR_kernel___Object_____eqeq))( variable2 /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable3)) { /*if*/ - variable3 = ((string___Object___to_s_t)CALL( variable2 /*e*/,COLOR_string___Object___to_s))( variable2 /*e*/) /*Object::to_s*/; - ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable3) /*String::append*/; + void OC_string___Collection___to_s_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + fun_t CREG[1]; + val_t tmp; + /* ./../lib/standard//string.nit:508 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 0; + fra.me.meth = LOCATE_string___Collection___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.closure_ctx = closctx_param; + fra.me.closure_funs = CREG; + fra.me.REG[0] = p0; + CREG[0] = clos_fun0; + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_string, 508); + } + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Sequence___append(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]); } - continue_56: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/; - } - break_56: while(0); - variable0 = variable0 /*s*/; - goto return_label55; - return_label55: while(false); - tracehead = trace.prev; - return variable0; + stack_frame_head = fra.me.prev; + return; + } +val_t string___Collection___join(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 512; + fra.me.meth = LOCATE_string___Collection___join; + fra.me.has_broke = 0; + fra.me.REG_size = 6; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/standard//string.nit:515 */ + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_1 = fra.me.REG[2]; + register_static_object(&once_value_1); + } else fra.me.REG[2] = once_value_1; + fra.me.REG[2] = fra.me.REG[2]; + goto label2; + } + /* ./../lib/standard//string.nit:517 */ + fra.me.REG[3] = NEW_Buffer_string___Buffer___init(); + /* ./../lib/standard//string.nit:520 */ + fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:521 */ + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:522 */ + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_string, 522); + } + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + } + /* ./../lib/standard//string.nit:525 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:526 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + /* ./../lib/standard//string.nit:527 */ + CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + /* ./../lib/standard//string.nit:528 */ + fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = fra.me.REG[5]; + /* ./../lib/standard//string.nit:529 */ + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_string, 529); + } + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + } + /* ./../lib/standard//string.nit:530 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + } else { + /* ./../lib/standard//string.nit:526 */ + goto label3; + } + } + label3: while(0); + /* ./../lib/standard//string.nit:532 */ + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[2] = fra.me.REG[3]; + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -val_t string___Collection___join(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 451, LOCATE_string___Collection___join}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Collection::is_empty*/; - if (UNTAG_Bool(variable1)) { /*if*/ - variable1 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - goto return_label57; - } - variable2 = NEW_String_string___String___init(); /*new String*/ - variable1 = variable2; - variable3 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/; - variable2 = variable3; - variable4 = ((abstract_collection___Iterator___item_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___item))( variable2 /*i*/) /*Iterator::item*/; - variable3 = variable4; - variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*e*/ == NIT_NULL /*null*/) || (( variable3 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))( variable3 /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable4)) { /*if*/ - variable4 = ((string___Object___to_s_t)CALL( variable3 /*e*/,COLOR_string___Object___to_s))( variable3 /*e*/) /*Object::to_s*/; - ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/; - } - ((abstract_collection___Iterator___next_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___next))( variable2 /*i*/) /*Iterator::next*/; - while (true) { /*while*/ - variable4 = ((abstract_collection___Iterator___is_ok_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable2 /*i*/) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable4)) break; /* while*/ - ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable0 /*sep*/) /*String::append*/; - variable4 = ((abstract_collection___Iterator___item_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___item))( variable2 /*i*/) /*Iterator::item*/; - variable3 = variable4 /*e=*/; - variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*e*/ == NIT_NULL /*null*/) || (( variable3 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*e*/,COLOR_kernel___Object_____eqeq))( variable3 /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable4)) { /*if*/ - variable4 = ((string___Object___to_s_t)CALL( variable3 /*e*/,COLOR_string___Object___to_s))( variable3 /*e*/) /*Object::to_s*/; - ((string___String___append_t)CALL( variable1 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*s*/, variable4) /*String::append*/; +val_t string___Array___to_s(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 537; + fra.me.meth = LOCATE_string___Array___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 3; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:540 */ + fra.me.REG[1] = NEW_Buffer_string___Buffer___init(); + /* ./../lib/standard//string.nit:541 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//string.nit:543 */ + while(1) { + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB3)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB3)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label1; + label1: while(0); + /* ./../lib/standard//string.nit:545 */ + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Bool(false); + REGB2 = REGB3; + } else { + REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB2 = REGB3; + } + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_string, 545); + } + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + } + /* ./../lib/standard//string.nit:546 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./../lib/standard//string.nit:546 */ + REGB0 = REGB2; + } else { + /* ./../lib/standard//string.nit:543 */ + goto label2; } - ((abstract_collection___Iterator___next_t)CALL( variable2 /*i*/,COLOR_abstract_collection___Iterator___next))( variable2 /*i*/) /*Iterator::next*/; - continue_58: while(0); - } - break_58: while(0); - variable1 = variable1 /*s*/; - goto return_label57; - return_label57: while(false); - tracehead = trace.prev; - return variable1; + } + label2: while(0); + /* ./../lib/standard//string.nit:548 */ + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label3; + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t string___Map___map_join(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 476, LOCATE_string___Map___map_join}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - val_t variable7; - val_t variable8; - val_t variable9; - val_t variable10; - val_t variable11; - val_t variable12; - val_t variable13; - val_t variable14; - val_t variable15; - val_t variable16; - val_t variable17; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = param0; - variable1 = param1; - variable2 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Collection::is_empty*/; - if (UNTAG_Bool(variable2)) { /*if*/ - variable2 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - goto return_label59; - } - variable3 = NEW_String_string___String___init(); /*new String*/ - variable2 = variable3; - variable4 = ((abstract_collection___Map___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Map::iterator*/; - variable3 = variable4; - variable5 = ((abstract_collection___MapIterator___key_t)CALL( variable3 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable3 /*i*/) /*MapIterator::key*/; - variable4 = variable5; - variable6 = ((abstract_collection___Iterator___item_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___item))( variable3 /*i*/) /*Iterator::item*/; - variable5 = variable6; - variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*e*/ == NIT_NULL /*null*/) || (( variable5 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))( variable5 /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable6)) { /*if*/ - variable6 = NEW_String_string___String___init(); /*new String*/ - variable7 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable8 = variable7; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/; - variable9 = variable4 /*k*/; - variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/; - variable10 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable11 = variable10; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/; - variable12 = variable1 /*couple_sep*/; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/; - variable13 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable14 = variable13; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/; - variable15 = variable5 /*e*/; - variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/; - variable16 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable17 = variable16; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable17) /*String::append*/; - ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable6) /*String::append*/; - } - ((abstract_collection___Iterator___next_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___next))( variable3 /*i*/) /*Iterator::next*/; - while (true) { /*while*/ - variable6 = ((abstract_collection___Iterator___is_ok_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable3 /*i*/) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable6)) break; /* while*/ - ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable0 /*sep*/) /*String::append*/; - variable6 = ((abstract_collection___MapIterator___key_t)CALL( variable3 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable3 /*i*/) /*MapIterator::key*/; - variable4 = variable6 /*k=*/; - variable6 = ((abstract_collection___Iterator___item_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___item))( variable3 /*i*/) /*Iterator::item*/; - variable5 = variable6 /*e=*/; - variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*e*/ == NIT_NULL /*null*/) || (( variable5 /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*e*/,COLOR_kernel___Object_____eqeq))( variable5 /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable6)) { /*if*/ - variable6 = NEW_String_string___String___init(); /*new String*/ - variable7 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable8 = variable7; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/; - variable9 = variable4 /*k*/; - variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/; - variable10 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable11 = variable10; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/; - variable12 = variable1 /*couple_sep*/; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable12) /*String::append*/; - variable13 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable14 = variable13; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable14) /*String::append*/; - variable15 = variable5 /*e*/; - variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/; - variable16 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable17 = variable16; - ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable17) /*String::append*/; - ((string___String___append_t)CALL( variable2 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable2 /*s*/, variable6) /*String::append*/; +val_t string___Map___map_join(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[8];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ + static val_t once_value_8; /* Once value */ + static val_t once_value_9; /* Once value */ + static val_t once_value_10; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 553; + fra.me.meth = LOCATE_string___Map___map_join; + fra.me.has_broke = 0; + fra.me.REG_size = 9; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[7] = NIT_NULL; + fra.me.REG[8] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./../lib/standard//string.nit:556 */ + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_1 = fra.me.REG[3]; + register_static_object(&once_value_1); + } else fra.me.REG[3] = once_value_1; + fra.me.REG[3] = fra.me.REG[3]; + goto label2; + } + /* ./../lib/standard//string.nit:558 */ + fra.me.REG[4] = NEW_Buffer_string___Buffer___init(); + /* ./../lib/standard//string.nit:561 */ + fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:562 */ + fra.me.REG[5] = CALL_abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:563 */ + fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:564 */ + REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(7); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_3) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_3 = fra.me.REG[8]; + register_static_object(&once_value_3); + } else fra.me.REG[8] = once_value_3; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_4) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_4 = fra.me.REG[8]; + register_static_object(&once_value_4); + } else fra.me.REG[8] = once_value_4; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]); + if (!once_value_5) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_5 = fra.me.REG[8]; + register_static_object(&once_value_5); + } else fra.me.REG[8] = once_value_5; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_6) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_6 = fra.me.REG[8]; + register_static_object(&once_value_6); + } else fra.me.REG[8] = once_value_6; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + } + /* ./../lib/standard//string.nit:567 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//string.nit:568 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + /* ./../lib/standard//string.nit:569 */ + CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]); + /* ./../lib/standard//string.nit:570 */ + fra.me.REG[7] = CALL_abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[5] = fra.me.REG[7]; + /* ./../lib/standard//string.nit:571 */ + fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[6] = fra.me.REG[7]; + /* ./../lib/standard//string.nit:572 */ + REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(7); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_7) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_7 = fra.me.REG[8]; + register_static_object(&once_value_7); + } else fra.me.REG[8] = once_value_7; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_8) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_8 = fra.me.REG[8]; + register_static_object(&once_value_8); + } else fra.me.REG[8] = once_value_8; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]); + if (!once_value_9) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_9 = fra.me.REG[8]; + register_static_object(&once_value_9); + } else fra.me.REG[8] = once_value_9; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_10) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_10 = fra.me.REG[8]; + register_static_object(&once_value_10); + } else fra.me.REG[8] = once_value_10; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + } + /* ./../lib/standard//string.nit:573 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + } else { + /* ./../lib/standard//string.nit:568 */ + goto label11; } - ((abstract_collection___Iterator___next_t)CALL( variable3 /*i*/,COLOR_abstract_collection___Iterator___next))( variable3 /*i*/) /*Iterator::next*/; - continue_60: while(0); - } - break_60: while(0); - variable2 = variable2 /*s*/; - goto return_label59; - return_label59: while(false); - tracehead = trace.prev; - return variable2; + } + label11: while(0); + /* ./../lib/standard//string.nit:575 */ + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[3] = fra.me.REG[4]; + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t string___NativeString_____bra(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 508, LOCATE_string___NativeString_____bra}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - tracehead = trace.prev; - return TAG_Char(UNBOX_NativeString( self)[UNTAG_Int( param0)]); +val_t string___NativeString_____bra(val_t p0, val_t p1){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 585; + fra.me.meth = LOCATE_string___NativeString_____bra; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/standard//string.nit:585 */ + REGB0 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]); + stack_frame_head = fra.me.prev; + return REGB0; } -void string___NativeString_____braeq(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 509, LOCATE_string___NativeString_____braeq}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - UNBOX_NativeString( self)[UNTAG_Int( param0)]=UNTAG_Char( param1); - tracehead = trace.prev; +void string___NativeString_____braeq(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 586; + fra.me.meth = LOCATE_string___NativeString_____braeq; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + REGB1 = p2; + /* ./../lib/standard//string.nit:586 */ + UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);; + stack_frame_head = fra.me.prev; return; } -void string___NativeString___copy_to(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) { - struct trace_t trace = {NULL, NULL, 510, LOCATE_string___NativeString___copy_to}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - (void)memcpy(UNBOX_NativeString( param0)+UNTAG_Int( param3), UNBOX_NativeString( self)+UNTAG_Int( param2), UNTAG_Int( param1)); - tracehead = trace.prev; +void string___NativeString___copy_to(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 587; + fra.me.meth = LOCATE_string___NativeString___copy_to; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + REGB0 = p2; + REGB1 = p3; + REGB2 = p4; + /* ./../lib/standard//string.nit:587 */ + (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[0])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));; + stack_frame_head = fra.me.prev; return; } -val_t string___NativeString___cstring_length(val_t self) { - struct trace_t trace = {NULL, NULL, 512, LOCATE_string___NativeString___cstring_length}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = TAG_Int(0); - while (true) { /*while*/ - variable1 = TAG_Char(UNBOX_NativeString( self)[UNTAG_Int( variable0 /*l*/)]); - variable1 = TAG_Bool((variable1)!=( TAG_Char('\0'))); - if (!UNTAG_Bool(variable1)) break; /* while*/ - variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*l*/; - continue_62: while(0); - } - break_62: while(0); - variable0 = variable0 /*l*/; - goto return_label61; - return_label61: while(false); - tracehead = trace.prev; - return variable0; +val_t string___NativeString___cstring_length(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 589; + fra.me.meth = LOCATE_string___NativeString___cstring_length; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:592 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//string.nit:593 */ + while(1) { + /* ./../lib/standard//string.nit:585 */ + REGB1 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]); + /* ./../lib/standard//string.nit:593 */ + REGB2 = TAG_Char('\0'); + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2)); + if (UNTAG_Bool(REGB3)) { + } else { + /* ./../lib/standard//kernel.nit:347 */ + REGB2 = TAG_Bool((REGB1)==(REGB2)); + /* ./../lib/standard//string.nit:593 */ + REGB3 = REGB2; + } + REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3)); + /* ./../lib/standard//string.nit:593 */ + REGB0 = REGB3; + } else { + goto label1; + } + } + label1: while(0); + /* ./../lib/standard//string.nit:594 */ + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -val_t string___NativeString___atoi(val_t self) { - struct trace_t trace = {NULL, NULL, 519, LOCATE_string___NativeString___atoi}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - tracehead = trace.prev; - return TAG_Int(atoi(UNBOX_NativeString( self))); +val_t string___NativeString___atoi(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 596; + fra.me.meth = LOCATE_string___NativeString___atoi; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:596 */ + REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0]))); + stack_frame_head = fra.me.prev; + return REGB0; } -void string___NativeString___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_string___NativeString___init}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - tracehead = trace.prev; +void string___NativeString___init(val_t p0, int* init_table){ + int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_NativeString].i; + struct {struct stack_frame_t me;} fra; + val_t tmp; + if (init_table[itpos5]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 0; + fra.me.meth = LOCATE_string___NativeString___init; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + stack_frame_head = fra.me.prev; + init_table[itpos5] = 1; return; } -val_t string___StringCapable___calloc_string(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 524, LOCATE_string___StringCapable___calloc_string}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - tracehead = trace.prev; - return BOX_NativeString((char*)malloc((UNTAG_Int( param0) * sizeof(char)))); +val_t string___StringCapable___calloc_string(val_t p0, val_t p1){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 601; + fra.me.meth = LOCATE_string___StringCapable___calloc_string; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/standard//string.nit:601 */ + fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char)))); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void string___StringCapable___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_string___StringCapable___init}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - tracehead = trace.prev; +void string___StringCapable___init(val_t p0, int* init_table){ + int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_StringCapable].i; + struct {struct stack_frame_t me;} fra; + val_t tmp; + if (init_table[itpos6]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 0; + fra.me.meth = LOCATE_string___StringCapable___init; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + stack_frame_head = fra.me.prev; + init_table[itpos6] = 1; return; } -val_t string___Sys___args(val_t self) { - struct trace_t trace = {NULL, NULL, 530, LOCATE_string___Sys___args}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/; - variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable0)) { /*if*/ - ((string___Sys___init_args_t)CALL( self,COLOR_string___Sys___init_args))( self) /*Sys::init_args*/; - } - variable0 = ATTR_string___Sys____args_cache( self) /*Sys::_args_cache*/; - goto return_label63; - return_label63: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Sys___args(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 607; + fra.me.meth = LOCATE_string___Sys___args; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:609 */ + fra.me.REG[1] = ATTR_string___Sys____args_cache(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + CALL_string___Sys___init_args(fra.me.REG[0])(fra.me.REG[0]); + } + /* ./../lib/standard//string.nit:610 */ + fra.me.REG[0] = ATTR_string___Sys____args_cache(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_string, 610); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t string___Sys___program_name(val_t self) { - struct trace_t trace = {NULL, NULL, 536, LOCATE_string___Sys___program_name}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable0 = ((string___Sys___native_argv_t)CALL( self,COLOR_string___Sys___native_argv))( self, TAG_Int(0)) /*Sys::native_argv*/; - variable1 = NEW_String_string___String___from_cstring(variable0); /*new String*/ - variable0 = variable1; - goto return_label64; - return_label64: while(false); - tracehead = trace.prev; - return variable0; +val_t string___Sys___program_name(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_string; + fra.me.line = 613; + fra.me.meth = LOCATE_string___Sys___program_name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//string.nit:616 */ + REGB0 = TAG_Int(0); + fra.me.REG[0] = CALL_string___Sys___native_argv(fra.me.REG[0])(fra.me.REG[0], REGB0); + fra.me.REG[0] = NEW_String_string___String___from_cstring(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void string___Sys___init_args(val_t self) { - struct trace_t trace = {NULL, NULL, 542, LOCATE_string___Sys___init_args}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable1 = ((string___Sys___native_argc_t)CALL( self,COLOR_string___Sys___native_argc))( self) /*Sys::native_argc*/; - variable0 = variable1; - variable2 = NEW_Array_array___Array___with_capacity( TAG_Int(0)); /*new Array[String]*/ - variable1 = variable2; - variable2 = TAG_Int(1); - while (true) { /*while*/ - variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)