X-Git-Url: http://nitlanguage.org diff --git a/c_src/string._sep.c b/c_src/string._sep.c index 7ae7824..095c6a0 100644 --- a/c_src/string._sep.c +++ b/c_src/string._sep.c @@ -1,1521 +1,3351 @@ /* This C file is generated by NIT to compile module string. */ #include "string._sep.h" -val_t string___String_____eqeq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 294, LOCATE_string___String_____eqeq}; - val_t variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Bool(( variable[1] /*o*/==NIT_NULL) || VAL_ISA( variable[1] /*o*/, COLOR_String, ID_String)) /*cast String*/; - variable[3] = TAG_Bool(!UNTAG_Bool(variable[3])); - if (!UNTAG_Bool(variable[3])) { /* or */ - variable[3] = TAG_Bool(IS_EQUAL_NN( variable[1] /*o*/, NIT_NULL /*null*/)); - } - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[2] = TAG_Bool(false); - goto return_label0; - } - variable[3] = TAG_Bool(( variable[1] /*o*/==NIT_NULL) || VAL_ISA( variable[1] /*o*/, COLOR_String, ID_String)) /*cast String*/; - if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String_____eqeq, LOCATE_string, 297); nit_exit(1);} - variable[4] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/; - variable[3] = variable[4]; - variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*o*/,COLOR_abstract_collection___Collection___length))( variable[1] /*o*/) /*AbstractArray::length*/; - variable[4] = TAG_Bool((variable[4])!=( variable[3] /*l*/)); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[2] = TAG_Bool(false); - goto return_label0; - } - variable[4] = TAG_Int(0); - variable[6] = variable[0]; - variable[6] = ATTR_string___String____items(variable[6]) /*String::_items*/; - variable[5] = variable[6]; - variable[7] = ATTR_string___String____items( variable[1] /*o*/) /*String::_items*/; - variable[6] = variable[7]; - while (true) { /*while*/ - variable[7] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)=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; + } + } + 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; } -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 variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/; - variable[4] = TAG_Bool(( variable[1] /*index*/)==(variable[4])); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - ((string___String___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[2] /*item*/) /*String::add*/; - goto return_label5; - } - variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable[5] = variable[4]; - if (UNTAG_Bool(variable[5])) { /* and */ - variable[5] = variable[0]; - variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/; - variable[5] = TAG_Bool(UNTAG_Int( variable[1] /*index*/)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_____l(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 209, LOCATE_string___String_____l}; - val_t variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Int(0); - variable[5] = variable[0]; - variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/; - variable[4] = variable[5]; - variable[6] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/; - variable[5] = variable[6]; - while (true) { /*while*/ - variable[6] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)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 { + /* ./../lib/standard//string.nit:121 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)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; } } - variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*i*/; - continue_12: while(0); - } - break_12: while(0); - variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*l1*/)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_____plus(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 73, LOCATE_string___String_____plus}; - val_t variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[4] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/; - variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/; - variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int(variable[5])); - variable[5] = NEW_String_string___String___with_capacity(variable[4]); /*new String*/ - variable[4] = variable[5]; - variable[3] = variable[4]; - variable[4] = variable[0]; - ((string___String___append_t)CALL( variable[3] /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*r*/, variable[4]) /*String::append*/; - ((string___String___append_t)CALL( variable[3] /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*r*/, variable[1] /*s*/) /*String::append*/; - variable[2] = variable[3] /*r*/; - goto return_label13; - return_label13: while(false); - tracehead = trace.prev; - return variable[2]; + void OC_string___AbstractString___to_lower_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:146 */ + 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_lower; + 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_lower(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(closctx->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); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String_____star, LOCATE_string, 85); nit_exit(1);} - variable[4] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/; - variable[4] = TAG_Int(UNTAG_Int(variable[4])*UNTAG_Int( variable[1] /*i*/)); - variable[5] = NEW_String_string___String___with_capacity(variable[4]); /*new String*/ - variable[4] = variable[5]; - variable[3] = variable[4]; - while (true) { /*while*/ - variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)>UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[4])) break; /* while*/ - variable[4] = variable[0]; - ((string___String___append_t)CALL( variable[3] /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*r*/, variable[4]) /*String::append*/; - variable[1] = TAG_Int(UNTAG_Int(variable[1])-UNTAG_Int( TAG_Int(1))) /*i*/; - continue_15: while(0); - } - break_15: while(0); - variable[2] = variable[3] /*r*/; - goto return_label14; - return_label14: while(false); - tracehead = trace.prev; - return variable[2]; +void string___String___with_native(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos0 = 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 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___to_i(val_t self) { - struct trace_t trace = {NULL, NULL, 97, LOCATE_string___String___to_i}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((string___String___to_cstring_t)CALL(variable[2],COLOR_string___String___to_cstring))(variable[2]) /*String::to_cstring*/; - variable[2] = TAG_Int(atoi(UNBOX_NativeString(variable[2]))); - variable[1] = variable[2]; - goto return_label16; - return_label16: while(false); - tracehead = trace.prev; - return variable[1]; +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___to_hex(val_t self) { - struct trace_t trace = {NULL, NULL, 104, LOCATE_string___String___to_hex}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((string___String___a_to_t)CALL(variable[2],COLOR_string___String___a_to))(variable[2], TAG_Int(16)) /*String::a_to*/; - variable[1] = variable[2]; - goto return_label17; - return_label17: while(false); - tracehead = trace.prev; - return variable[1]; +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___a_to(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 107, LOCATE_string___String___a_to}; - val_t variable[10]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Int(0); - variable[4] = TAG_Bool(false); - variable[5] = variable[0]; - variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/; - variable[7] = variable[6]; - variable[9] = ((kernel___Char___to_i_t)CALL( variable[7] /*c*/,COLOR_kernel___Char___to_i))( variable[7] /*c*/) /*Char::to_i*/; - variable[8] = variable[9]; - variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*v*/)>UNTAG_Int( variable[1] /*base*/)); - if (UNTAG_Bool(variable[9])) { /*if*/ - if (UNTAG_Bool( variable[4] /*neg*/)) { /*if*/ - variable[9] = TAG_Int(-UNTAG_Int( variable[3] /*i*/)); - variable[2] = variable[9]; - goto return_label18; - } else { /*if*/ - variable[2] = variable[3] /*i*/; - goto return_label18; +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( TAG_Int(0))); - if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String___substring, LOCATE_string, 151); nit_exit(1);} - variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int( variable[1] /*from*/)) /*count*/; - variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*from*/)UNTAG_Int(variable[4])); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/; - variable[2] = variable[4] /*count=*/; - } - variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*from*/)UNTAG_Int(variable[8])); - variable[9] = variable[8]; - if (!UNTAG_Bool(variable[9])) { /* or */ - variable[9] = TAG_Bool(UNTAG_Int( variable[4] /*itsindex*/)>UNTAG_Int( variable[5] /*myindex*/)); - } - variable[8] = variable[9]; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[3] = TAG_Bool(false); - goto return_label24; - } - while (true) { /*while*/ - variable[8] = TAG_Bool(UNTAG_Int( variable[4] /*itsindex*/)>UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[8])) break; /* while*/ - variable[8] = TAG_Char(UNBOX_NativeString( variable[6] /*myitems*/)[UNTAG_Int( variable[5] /*myindex*/)]); - variable[9] = TAG_Char(UNBOX_NativeString( variable[7] /*itsitems*/)[UNTAG_Int( variable[4] /*itsindex*/)]); - variable[8] = TAG_Bool((variable[8])!=(variable[9])); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[3] = TAG_Bool(false); - goto return_label24; +val_t string___String_____star(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 = 237; + fra.me.meth = LOCATE_string___String_____star; + 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:240 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=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; } - variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int( variable[5] /*myindex*/)) /*myindex*/; - variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( variable[4] /*itsindex*/)) /*itsindex*/; - continue_25: while(0); - } - break_25: while(0); - variable[3] = TAG_Bool(true); - goto return_label24; - return_label24: while(false); - tracehead = trace.prev; - return variable[3]; + } + 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___has_prefix(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 197, LOCATE_string___String___has_prefix}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ((string___String___has_substring_t)CALL(variable[3],COLOR_string___String___has_substring))(variable[3], variable[1] /*prefix*/, TAG_Int(0)) /*String::has_substring*/; - variable[2] = variable[3]; - goto return_label26; - return_label26: while(false); - tracehead = trace.prev; - return variable[2]; +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___has_suffix(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 203, LOCATE_string___String___has_suffix}; - val_t variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[4] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/; - variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*suffix*/,COLOR_abstract_collection___Collection___length))( variable[1] /*suffix*/) /*AbstractArray::length*/; - variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int(variable[5])); - variable[3] = ((string___String___has_substring_t)CALL(variable[3],COLOR_string___String___has_substring))(variable[3], variable[1] /*suffix*/, variable[4]) /*String::has_substring*/; - variable[2] = variable[3]; - goto return_label27; - return_label27: while(false); - tracehead = trace.prev; - return variable[2]; +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; + } + } + label1: while(0); + /* ./../lib/standard//string.nit:261 */ + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -void string___String___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 231, LOCATE_string___String___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return; - variable[2] = variable[0]; - ((string___String___with_capacity_t)CALL(variable[2],COLOR_string___String___with_capacity))(variable[2], TAG_Int(5), init_table /*YYY*/) /*String::with_capacity*/; - return_label28: while(false); - init_table[VAL2OBJ(variable[0])->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; - variable[3] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/; - variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))); - ATTR_string___String____capacity(variable[3]) /*String::_capacity*/ = variable[4]; - variable[3] = variable[0]; - variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/; - ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/ = variable[4]; - variable[3] = variable[0]; - variable[4] = variable[0]; - variable[5] = variable[0]; - variable[5] = ATTR_string___String____capacity(variable[5]) /*String::_capacity*/; - variable[4] = BOX_NativeString((char*)malloc((UNTAG_Int(variable[5]) * sizeof(char)))); - ATTR_string___String____items(variable[3]) /*String::_items*/ = variable[4]; - variable[3] = ((string___String___items_t)CALL( variable[1] /*s*/,COLOR_string___String___items))( variable[1] /*s*/) /*String::items*/; - variable[4] = variable[0]; - variable[4] = ATTR_string___String____items(variable[4]) /*String::_items*/; - variable[5] = variable[0]; - variable[5] = ATTR_array___AbstractArray____length(variable[5]) /*AbstractArray::_length*/; - (void)memcpy(UNBOX_NativeString(variable[4])+UNTAG_Int( TAG_Int(0)), UNBOX_NativeString(variable[3])+UNTAG_Int( TAG_Int(0)), UNTAG_Int(variable[5])); - return_label29: while(false); - init_table[VAL2OBJ(variable[0])->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 variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return; - variable[3] = TAG_Bool(UNTAG_Int( variable[1] /*cap*/)>=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String___with_capacity, LOCATE_string, 248); nit_exit(1);} - variable[3] = variable[0]; - variable[4] = variable[0]; - variable[4] = BOX_NativeString((char*)malloc((UNTAG_Int( variable[1] /*cap*/) * sizeof(char)))); - ATTR_string___String____items(variable[3]) /*String::_items*/ = variable[4]; - variable[3] = variable[0]; - ATTR_string___String____capacity(variable[3]) /*String::_capacity*/ = variable[1] /*cap*/; - variable[3] = variable[0]; - ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/ = TAG_Int(0); - return_label30: while(false); - init_table[VAL2OBJ(variable[0])->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 variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return; - variable[4] = TAG_Bool(UNTAG_Int( variable[2] /*size*/)>=UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String___with_native, LOCATE_string, 258); nit_exit(1);} - variable[4] = variable[0]; - ATTR_string___String____items(variable[4]) /*String::_items*/ = variable[1] /*nat*/; - variable[4] = variable[0]; - ATTR_string___String____capacity(variable[4]) /*String::_capacity*/ = variable[2] /*size*/; - variable[4] = variable[0]; - ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/ = variable[2] /*size*/; - return_label31: while(false); - init_table[VAL2OBJ(variable[0])->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; - variable[4] = ((string___NativeString___cstring_length_t)CALL( variable[1] /*str*/,COLOR_string___NativeString___cstring_length))( variable[1] /*str*/) /*NativeString::cstring_length*/; - variable[3] = variable[4]; - variable[4] = variable[0]; - ATTR_string___String____items(variable[4]) /*String::_items*/ = variable[1] /*str*/; - variable[4] = variable[0]; - variable[5] = TAG_Int(UNTAG_Int( variable[3] /*size*/)+UNTAG_Int( TAG_Int(1))); - ATTR_string___String____capacity(variable[4]) /*String::_capacity*/ = variable[5]; - variable[4] = variable[0]; - ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/ = variable[3] /*size*/; - return_label32: while(false); - init_table[VAL2OBJ(variable[0])->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 variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return; - variable[4] = variable[0]; - ((string___String___with_capacity_t)CALL(variable[4],COLOR_string___String___with_capacity))(variable[4], variable[2] /*count*/, init_table /*YYY*/) /*String::with_capacity*/; - variable[4] = TAG_Int(0); - while (true) { /*while*/ - variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*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; } -val_t string___String___to_upper(val_t self) { - struct trace_t trace = {NULL, NULL, 310, LOCATE_string___String___to_upper}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[3] = variable[0]; - variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/; - variable[4] = NEW_String_string___String___with_capacity(variable[3]); /*new String*/ - variable[3] = variable[4]; - variable[2] = variable[3]; - variable[3] = variable[0]; - variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/; - variable[5] = variable[4]; - variable[6] = ((kernel___Char___to_upper_t)CALL( variable[5] /*i*/,COLOR_kernel___Char___to_upper))( variable[5] /*i*/) /*Char::to_upper*/; - ((string___String___add_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*s*/, variable[6]) /*String::add*/; - continue_36: while(0); - ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/; - } - break_36: while(0); - variable[1] = variable[2] /*s*/; - goto return_label35; - return_label35: while(false); - tracehead = trace.prev; - return variable[1]; +void string___Buffer___with_capacity(val_t p0, val_t p1, int* init_table){ + int itpos4 = VAL2OBJ(p0)->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___to_lower(val_t self) { - struct trace_t trace = {NULL, NULL, 318, LOCATE_string___String___to_lower}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[3] = variable[0]; - variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/; - variable[4] = NEW_String_string___String___with_capacity(variable[3]); /*new String*/ - variable[3] = variable[4]; - variable[2] = variable[3]; - variable[3] = variable[0]; - variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/; - variable[5] = variable[4]; - variable[6] = ((kernel___Char___to_lower_t)CALL( variable[5] /*i*/,COLOR_kernel___Char___to_lower))( variable[5] /*i*/) /*Char::to_lower*/; - ((string___String___add_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*s*/, variable[6]) /*String::add*/; - continue_38: while(0); - ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/; - } - break_38: while(0); - variable[1] = variable[2] /*s*/; - goto return_label37; - return_label37: while(false); - tracehead = trace.prev; - return variable[1]; +val_t string___Buffer_____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 = 373; + fra.me.meth = LOCATE_string___Buffer_____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:375 */ + REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Buffer, ID_Buffer)) /*cast Buffer*/; + 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:377 */ + REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_string, 377); + } + /* ./../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:377 */ + 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:377 */ + REGB3 = REGB2; + } + REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Bool(false); + REGB0 = REGB3; + goto label1; + } + /* ./../lib/standard//string.nit:378 */ + REGB3 = TAG_Int(0); + /* ./../lib/standard//string.nit:379 */ + 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, 379); + } + fra.me.REG[0] = ATTR_string___AbstractString____items(fra.me.REG[0]); + /* ./../lib/standard//string.nit:380 */ + 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, 380); + } + fra.me.REG[1] = ATTR_string___AbstractString____items(fra.me.REG[1]); + /* ./../lib/standard//string.nit:381 */ + while(1) { + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB3)')) /*String::add*/; - variable[1] = variable[2] /*r*/; - goto return_label40; - return_label40: while(false); - tracehead = trace.prev; - return variable[1]; +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 variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = NEW_String_string___String___init(); /*new String*/ - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/ - variable[4] = variable[3]; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/; - variable[5] = variable[0]; - variable[5] = TAG_Int((bigint)variable[5]); - variable[5] = ((string___Int___to_hex_t)CALL(variable[5],COLOR_string___Int___to_hex))(variable[5]) /*Int::to_hex*/; - variable[6] = variable[5]; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/; - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/; - variable[1] = variable[2]; - goto return_label41; - return_label41: while(false); - tracehead = trace.prev; - return variable[1]; +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 variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = (G_sys); - variable[2] = ((string___Sys___args_t)CALL(variable[2],COLOR_string___Object___args))(variable[2]) /*Sys::args*/; - variable[1] = variable[2]; - goto return_label42; - return_label42: while(false); - tracehead = trace.prev; - return variable[1]; +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}; - static val_t once_value_44; static int once_bool_44; /* Once value for variable[2]*/ - static val_t once_value_45; static int once_bool_45; /* Once value for variable[2]*/ - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - if (UNTAG_Bool(variable[2])) { /*if*/ - if (once_bool_44) variable[2] = once_value_44; - else { - variable[2] = NEW_String_string___String___with_native(BOX_NativeString("true"), TAG_Int(4)); /*new String*/ - once_value_44 = variable[2]; - once_bool_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; } - } - variable[7] = variable[0]; - variable[7] = ((kernel___Int___digit_count_t)CALL(variable[7],COLOR_kernel___Int___digit_count))(variable[7], variable[2] /*base*/) /*Int::digit_count*/; - variable[7] = TAG_Int(UNTAG_Int(variable[7])-UNTAG_Int( TAG_Int(1))); - variable[6] = variable[7]; - while (true) { /*while*/ - variable[7] = TAG_Bool(UNTAG_Int( variable[6] /*pos*/)>=UNTAG_Int( TAG_Int(0))); - variable[8] = variable[7]; - if (UNTAG_Bool(variable[8])) { /* and */ - variable[8] = TAG_Bool(UNTAG_Int( variable[5] /*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; } - variable[7] = variable[8]; - if (!UNTAG_Bool(variable[7])) break; /* while*/ - variable[7] = TAG_Int(UNTAG_Int( variable[5] /*n*/)%UNTAG_Int( variable[2] /*base*/)); - variable[7] = ((kernel___Int___to_c_t)CALL(variable[7],COLOR_kernel___Int___to_c))(variable[7]) /*Int::to_c*/; - ((string___String_____braeq_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*s*/, variable[6] /*pos*/, variable[7]) /*String::[]=*/; - variable[7] = TAG_Int(UNTAG_Int( variable[5] /*n*/)/UNTAG_Int( variable[2] /*base*/)); - variable[5] = variable[7] /*n=*/; - variable[6] = TAG_Int(UNTAG_Int(variable[6])-UNTAG_Int( TAG_Int(1))) /*pos*/; - continue_48: while(0); - } - break_48: while(0); - return_label47: while(false); - tracehead = trace.prev; + } + label2: while(0); + label1: while(0); + stack_frame_head = fra.me.prev; return; } -val_t string___Int___to_hex(val_t self) { - struct trace_t trace = {NULL, NULL, 401, LOCATE_string___Int___to_hex}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((string___Int___to_base_t)CALL(variable[2],COLOR_string___Int___to_base))(variable[2], TAG_Int(16), TAG_Bool(false)) /*Int::to_base*/; - variable[1] = variable[2]; - goto return_label49; - return_label49: while(false); - tracehead = trace.prev; - return variable[1]; +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_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 variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = variable[0]; - variable[5] = ((kernel___Int___digit_count_t)CALL(variable[5],COLOR_kernel___Int___digit_count))(variable[5], variable[1] /*base*/) /*Int::digit_count*/; - variable[4] = variable[5]; - variable[6] = NEW_String_string___String___filled_with( TAG_Char(' '), variable[4] /*l*/); /*new String*/ - variable[5] = variable[6]; - variable[6] = variable[0]; - ((string___Int___fill_string_t)CALL(variable[6],COLOR_string___Int___fill_string))(variable[6], variable[5] /*s*/, variable[1] /*base*/, variable[2] /*signed*/) /*Int::fill_string*/; - variable[3] = variable[5] /*s*/; - goto return_label50; - return_label50: while(false); - tracehead = trace.prev; - return variable[3]; +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 variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((string___Float___to_precision_t)CALL(variable[2],COLOR_string___Float___to_precision))(variable[2], TAG_Int(6)) /*Float::to_precision*/; - variable[1] = variable[2]; - goto return_label51; - return_label51: while(false); - tracehead = trace.prev; - return variable[1]; +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 variable[15]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Bool(( variable[1] /*nb*/)==( TAG_Int(0))); - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[3] = variable[0]; - variable[3] = TAG_Int((bigint)UNBOX_Float(variable[3])); - variable[3] = ((string___Int___to_s_t)CALL(variable[3],COLOR_string___Object___to_s))(variable[3]) /*Int::to_s*/; - variable[2] = variable[3]; - goto return_label52; - } - variable[4] = variable[0]; - variable[4] = TAG_Int((bigint)UNBOX_Float(variable[4])); - variable[3] = variable[4]; - variable[5] = BOX_Float(1.0); - variable[4] = variable[5]; - while (true) { /*while*/ - variable[5] = TAG_Bool(UNTAG_Int( variable[1] /*nb*/)>UNTAG_Int( TAG_Int(0))); - if (!UNTAG_Bool(variable[5])) break; /* while*/ - variable[5] = BOX_Float(10.0); - variable[5] = BOX_Float(UNBOX_Float( variable[4] /*dec*/)*UNBOX_Float(variable[5])); - variable[4] = variable[5] /*dec=*/; - variable[1] = TAG_Int(UNTAG_Int(variable[1])-UNTAG_Int( TAG_Int(1))) /*nb*/; - continue_53: while(0); - } - break_53: while(0); - variable[6] = variable[0]; - variable[7] = BOX_Float((float)UNTAG_Int( variable[3] /*i*/)); - variable[6] = BOX_Float(UNBOX_Float(variable[6])-UNBOX_Float(variable[7])); - variable[6] = BOX_Float(UNBOX_Float(variable[6])*UNBOX_Float( variable[4] /*dec*/)); - variable[6] = TAG_Int((bigint)UNBOX_Float(variable[6])); - variable[5] = variable[6]; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[3] /*i*/; - variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/; - variable[12] = variable[5] /*d*/; - variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[14] = variable[13]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/; - variable[2] = variable[6]; - goto return_label52; - return_label52: while(false); - tracehead = trace.prev; - return variable[2]; +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 variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[3] = NEW_String_string___String___with_capacity( TAG_Int(1)); /*new String*/ - variable[2] = variable[3]; - variable[3] = variable[0]; - ((string___String_____braeq_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*s*/, TAG_Int(0), variable[3]) /*String::[]=*/; - variable[1] = variable[2] /*s*/; - goto return_label54; - return_label54: while(false); - tracehead = trace.prev; - return variable[1]; +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 variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[2] = variable[3]; - variable[3] = variable[0]; - variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/; - while (true) { /*for*/ - variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/; - variable[5] = variable[4]; - variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ == NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = ((string___Object___to_s_t)CALL( variable[5] /*e*/,COLOR_string___Object___to_s))( variable[5] /*e*/) /*Object::to_s*/; - ((string___String___append_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*s*/, variable[6]) /*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; + } } - continue_56: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/; - } - break_56: while(0); - variable[1] = variable[2] /*s*/; - goto return_label55; - return_label55: while(false); - tracehead = trace.prev; - return variable[1]; + 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]); + } + 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 variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ((abstract_collection___Collection___is_empty_t)CALL(variable[3],COLOR_abstract_collection___Collection___is_empty))(variable[3]) /*Collection::is_empty*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[2] = variable[3]; - goto return_label57; - } - variable[4] = NEW_String_string___String___init(); /*new String*/ - variable[3] = variable[4]; - variable[5] = variable[0]; - variable[5] = ((abstract_collection___Collection___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Collection::iterator*/; - variable[4] = variable[5]; - variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[4] /*i*/) /*Iterator::item*/; - variable[5] = variable[6]; - variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ == NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = ((string___Object___to_s_t)CALL( variable[5] /*e*/,COLOR_string___Object___to_s))( variable[5] /*e*/) /*Object::to_s*/; - ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[6]) /*String::append*/; - } - ((abstract_collection___Iterator___next_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[4] /*i*/) /*Iterator::next*/; - while (true) { /*while*/ - variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[4] /*i*/) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /* while*/ - ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[1] /*sep*/) /*String::append*/; - variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[4] /*i*/) /*Iterator::item*/; - variable[5] = variable[6] /*e=*/; - variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ == NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = ((string___Object___to_s_t)CALL( variable[5] /*e*/,COLOR_string___Object___to_s))( variable[5] /*e*/) /*Object::to_s*/; - ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[6]) /*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( variable[4] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[4] /*i*/) /*Iterator::next*/; - continue_58: while(0); - } - break_58: while(0); - variable[2] = variable[3] /*s*/; - goto return_label57; - return_label57: while(false); - tracehead = trace.prev; - return variable[2]; + } + 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 variable[20]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = variable[0]; - variable[4] = ((abstract_collection___Collection___is_empty_t)CALL(variable[4],COLOR_abstract_collection___Collection___is_empty))(variable[4]) /*Collection::is_empty*/; - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[3] = variable[4]; - goto return_label59; - } - variable[5] = NEW_String_string___String___init(); /*new String*/ - variable[4] = variable[5]; - variable[6] = variable[0]; - variable[6] = ((abstract_collection___Map___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Map::iterator*/; - variable[5] = variable[6]; - variable[7] = ((abstract_collection___MapIterator___key_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[5] /*i*/) /*MapIterator::key*/; - variable[6] = variable[7]; - variable[8] = ((abstract_collection___Iterator___item_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[5] /*i*/) /*Iterator::item*/; - variable[7] = variable[8]; - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*e*/ == NIT_NULL /*null*/) || (( variable[7] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))( variable[7] /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_String_string___String___init(); /*new String*/ - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[10] = variable[9]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/; - variable[11] = variable[6] /*k*/; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/; - variable[14] = variable[2] /*couple_sep*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/; - variable[17] = variable[7] /*e*/; - variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[19]) /*String::append*/; - ((string___String___append_t)CALL( variable[4] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[4] /*s*/, variable[8]) /*String::append*/; - } - ((abstract_collection___Iterator___next_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[5] /*i*/) /*Iterator::next*/; - while (true) { /*while*/ - variable[8] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[5] /*i*/) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[8])) break; /* while*/ - ((string___String___append_t)CALL( variable[4] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[4] /*s*/, variable[1] /*sep*/) /*String::append*/; - variable[8] = ((abstract_collection___MapIterator___key_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[5] /*i*/) /*MapIterator::key*/; - variable[6] = variable[8] /*k=*/; - variable[8] = ((abstract_collection___Iterator___item_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[5] /*i*/) /*Iterator::item*/; - variable[7] = variable[8] /*e=*/; - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*e*/ == NIT_NULL /*null*/) || (( variable[7] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))( variable[7] /*e*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_String_string___String___init(); /*new String*/ - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[10] = variable[9]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/; - variable[11] = variable[6] /*k*/; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/; - variable[14] = variable[2] /*couple_sep*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/; - variable[17] = variable[7] /*e*/; - variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[19]) /*String::append*/; - ((string___String___append_t)CALL( variable[4] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[4] /*s*/, variable[8]) /*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; } - ((abstract_collection___Iterator___next_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[5] /*i*/) /*Iterator::next*/; - continue_60: while(0); - } - break_60: while(0); - variable[3] = variable[4] /*s*/; - goto return_label59; - return_label59: while(false); - tracehead = trace.prev; - return variable[3]; + } + 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; + } + } + 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}; - val_t *variable = NULL; - void **closurevariable = NULL; - 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}; - val_t *variable = NULL; - void **closurevariable = NULL; - 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}; - val_t *variable = NULL; - void **closurevariable = NULL; - 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 variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = TAG_Int(0); - while (true) { /*while*/ - variable[3] = variable[0]; - variable[3] = TAG_Char(UNBOX_NativeString(variable[3])[UNTAG_Int( variable[2] /*l*/)]); - variable[3] = TAG_Bool((variable[3])!=( TAG_Char('\0'))); - if (!UNTAG_Bool(variable[3])) break; /* while*/ - variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int( TAG_Int(1))) /*l*/; - continue_62: while(0); - } - break_62: while(0); - variable[1] = variable[2] /*l*/; - goto return_label61; - return_label61: while(false); - tracehead = trace.prev; - return variable[1]; +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}; - val_t *variable = NULL; - void **closurevariable = NULL; - 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}; - val_t *variable = NULL; - void **closurevariable = NULL; - 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}; - val_t *variable = NULL; - void **closurevariable = NULL; - 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}; - val_t *variable = NULL; - void **closurevariable = NULL; - 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 variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_string___Sys____args_cache(variable[2]) /*Sys::_args_cache*/; - variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[2])) { /*if*/ - variable[2] = variable[0]; - ((string___Sys___init_args_t)CALL(variable[2],COLOR_string___Sys___init_args))(variable[2]) /*Sys::init_args*/; - } - variable[2] = variable[0]; - variable[2] = ATTR_string___Sys____args_cache(variable[2]) /*Sys::_args_cache*/; - variable[1] = variable[2]; - goto return_label63; - return_label63: while(false); - tracehead = trace.prev; - return variable[1]; +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 variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ((string___Sys___native_argv_t)CALL(variable[2],COLOR_string___Sys___native_argv))(variable[2], TAG_Int(0)) /*Sys::native_argv*/; - variable[3] = NEW_String_string___String___from_cstring(variable[2]); /*new String*/ - variable[2] = variable[3]; - variable[1] = variable[2]; - goto return_label64; - return_label64: while(false); - tracehead = trace.prev; - return variable[1]; +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 variable[8]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_string; - variable[0] = self; - variable[3] = variable[0]; - variable[3] = ((string___Sys___native_argc_t)CALL(variable[3],COLOR_string___Sys___native_argc))(variable[3]) /*Sys::native_argc*/; - variable[2] = variable[3]; - variable[4] = NEW_Array_array___Array___with_capacity( TAG_Int(0)); /*new Array[String]*/ - variable[3] = variable[4]; - variable[4] = TAG_Int(1); - while (true) { /*while*/ - variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)