+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)<UNTAG_Int(REGB1));
+ /* ./../lib/standard//string.nit:332 */
+ if (UNTAG_Bool(REGB3)) {
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
+ } else {
+ /* ./../lib/standard//string.nit:332 */
+ REGB4 = TAG_Bool(false);
+ REGB3 = REGB4;
+ }
+ if (UNTAG_Bool(REGB3)) {
+ /* ./../lib/standard//string.nit:333 */
+ REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
+ /* ./../lib/standard//kernel.nit:382 */
+ REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
+ /* ./../lib/standard//string.nit:334 */
+ REGB4 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
+ /* ./../lib/standard//kernel.nit:382 */
+ REGB4 = TAG_Int((unsigned char)UNTAG_Char(REGB4));
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
+ /* ./../lib/standard//string.nit:335 */
+ if (UNTAG_Bool(REGB5)) {
+ /* ./../lib/standard//string.nit:336 */
+ REGB5 = TAG_Bool(true);
+ goto label1;
+ } else {
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB3 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
+ /* ./../lib/standard//string.nit:337 */
+ if (UNTAG_Bool(REGB3)) {
+ /* ./../lib/standard//string.nit:338 */
+ REGB3 = TAG_Bool(false);
+ REGB5 = REGB3;
+ goto label1;
+ }
+ }
+ /* ./../lib/standard//string.nit:340 */
+ REGB3 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
+ /* ./../lib/standard//string.nit:340 */
+ REGB0 = REGB3;
+ } else {
+ /* ./../lib/standard//string.nit:332 */
+ goto label2;
+ }
+ }
+ label2: while(0);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
+ /* ./../lib/standard//string.nit:342 */
+ if (UNTAG_Bool(REGB2)) {
+ /* ./../lib/standard//string.nit:343 */
+ REGB2 = TAG_Bool(true);
+ REGB5 = REGB2;
+ goto label1;
+ } else {
+ /* ./../lib/standard//string.nit:345 */
+ REGB2 = TAG_Bool(false);
+ REGB5 = REGB2;
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB5;
+}
+void string___Buffer___init(val_t p0, int* init_table){
+ int itpos2 = VAL2OBJ(p0)->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;