X-Git-Url: http://nitlanguage.org diff --git a/c_src/compiling_icode._sep.c b/c_src/compiling_icode._sep.c index 3bc7dad..55bf68a 100644 --- a/c_src/compiling_icode._sep.c +++ b/c_src/compiling_icode._sep.c @@ -32,9 +32,9 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ fra.me.REG[7] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:34 */ fra.me.REG[2] = CALL_icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]); REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; - /* ./compiling//compiling_icode.nit:34 */ if (UNTAG_Bool(REGB0)) { if (!once_value_1) { fra.me.REG[2] = BOX_NativeString("NIT_NULL"); @@ -43,19 +43,18 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ 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; } - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:35 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_ids"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 35); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 35); } fra.me.REG[3] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]); - REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]); /* ./compiling//compiling_icode.nit:36 */ + REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]); if (UNTAG_Bool(REGB0)) { REGB0 = CALL_allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); @@ -67,24 +66,23 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_ids2"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 36); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_ids2", LOCATE_compiling_icode, 36); } fra.me.REG[4] = ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]); fra.me.REG[3] = fra.me.REG[4]; } - REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); /* ./compiling//compiling_icode.nit:37 */ + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:38 */ fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); fra.me.REG[2] = fra.me.REG[4]; - /* ./compiling//compiling_icode.nit:38 */ goto label2; } else { + /* ./compiling//compiling_icode.nit:40 */ fra.me.REG[4] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); /* ./compiling//compiling_icode.nit:41 */ + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); @@ -92,9 +90,10 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ REGB1 = TAG_Bool(false); REGB0 = REGB1; } else { + /* ./../lib/standard//kernel.nit:207 */ REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL)); + /* ./compiling//compiling_icode.nit:41 */ REGB0 = REGB1; - /* ./compiling//compiling_icode.nit:41 */ } } if (UNTAG_Bool(REGB0)) { @@ -106,14 +105,15 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_3 = fra.me.REG[5]; register_static_object(&once_value_3); } else fra.me.REG[5] = once_value_3; + fra.me.REG[5] = fra.me.REG[5]; /* ./compiling//compiling_icode.nit:44 */ CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[5]); - fra.me.REG[2] = fra.me.REG[5]; /* ./compiling//compiling_icode.nit:45 */ + fra.me.REG[2] = fra.me.REG[5]; goto label2; } else { - REGB0 = CALL_allocate_iregister_slots___IRegister___in_tag_slots(fra.me.REG[1])(fra.me.REG[1]); /* ./compiling//compiling_icode.nit:49 */ + REGB0 = CALL_allocate_iregister_slots___IRegister___in_tag_slots(fra.me.REG[1])(fra.me.REG[1]); if (UNTAG_Bool(REGB0)) { /* ./compiling//compiling_icode.nit:50 */ if (!once_value_4) { @@ -121,9 +121,10 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_4 = fra.me.REG[5]; register_static_object(&once_value_4); } else fra.me.REG[5] = once_value_4; + fra.me.REG[5] = fra.me.REG[5]; + /* ./compiling//compiling_icode.nit:51 */ REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - /* ./compiling//compiling_icode.nit:51 */ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Int(3); fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0); @@ -134,9 +135,10 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_5 = fra.me.REG[7]; register_static_object(&once_value_5); } else fra.me.REG[7] = once_value_5; - array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - array___Array___add(fra.me.REG[6], fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); if (!once_value_6) { fra.me.REG[7] = BOX_NativeString(""); REGB0 = TAG_Int(0); @@ -144,13 +146,14 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_6 = fra.me.REG[7]; register_static_object(&once_value_6); } else fra.me.REG[7] = once_value_6; - array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]); } } else { - REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]); /* ./compiling//compiling_icode.nit:52 */ + REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]); if (UNTAG_Bool(REGB0)) { REGB0 = CALL_allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); @@ -165,10 +168,11 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_7 = fra.me.REG[0]; register_static_object(&once_value_7); } else fra.me.REG[0] = once_value_7; + fra.me.REG[0] = fra.me.REG[0]; fra.me.REG[5] = fra.me.REG[0]; + /* ./compiling//compiling_icode.nit:54 */ REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - /* ./compiling//compiling_icode.nit:54 */ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Int(3); fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); @@ -179,9 +183,10 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_8 = fra.me.REG[6]; register_static_object(&once_value_8); } else fra.me.REG[6] = once_value_8; - array___Array___add(fra.me.REG[0], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - array___Array___add(fra.me.REG[0], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); if (!once_value_9) { fra.me.REG[6] = BOX_NativeString("]"); REGB0 = TAG_Int(1); @@ -189,7 +194,8 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_9 = fra.me.REG[6]; register_static_object(&once_value_9); } else fra.me.REG[6] = once_value_9; - array___Array___add(fra.me.REG[0], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]); } @@ -200,10 +206,11 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_10 = fra.me.REG[0]; register_static_object(&once_value_10); } else fra.me.REG[0] = once_value_10; + fra.me.REG[0] = fra.me.REG[0]; fra.me.REG[5] = fra.me.REG[0]; + /* ./compiling//compiling_icode.nit:57 */ REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - /* ./compiling//compiling_icode.nit:57 */ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Int(3); fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); @@ -214,9 +221,10 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_11 = fra.me.REG[6]; register_static_object(&once_value_11); } else fra.me.REG[6] = once_value_11; - array___Array___add(fra.me.REG[0], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - array___Array___add(fra.me.REG[0], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); if (!once_value_12) { fra.me.REG[6] = BOX_NativeString("]"); REGB0 = TAG_Int(1); @@ -224,17 +232,19 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ once_value_12 = fra.me.REG[6]; register_static_object(&once_value_12); } else fra.me.REG[6] = once_value_12; - array___Array___add(fra.me.REG[0], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]); } } } + /* ./compiling//compiling_icode.nit:59 */ fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); /* ./compiling//compiling_icode.nit:60 */ CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]); - fra.me.REG[2] = fra.me.REG[4]; /* ./compiling//compiling_icode.nit:61 */ + fra.me.REG[2] = fra.me.REG[4]; goto label2; } } @@ -243,7 +253,7 @@ val_t compiling_icode___I2CCompilerVisitor___register(val_t p0, val_t p1){ return fra.me.REG[2]; } val_t compiling_icode___I2CCompilerVisitor___registers(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; @@ -251,37 +261,44 @@ val_t compiling_icode___I2CCompilerVisitor___registers(val_t p0, val_t p1){ fra.me.line = 66; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___registers; fra.me.has_broke = 0; - fra.me.REG_size = 4; + 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[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:69 */ REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:70 */ - while(1) { - REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:71 */ - array___Array___add(fra.me.REG[2], fra.me.REG[3]); - } else { - /* ./compiling//compiling_icode.nit:70 */ - goto label1; - } - CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); - } - label1: while(0); + CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling_icode___I2CCompilerVisitor___registers_1)); /* ./compiling//compiling_icode.nit:73 */ goto label2; label2: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[2]; } + void OC_compiling_icode___I2CCompilerVisitor___registers_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; + fun_t CREG[1]; + val_t tmp; + /* ./compiling//compiling_icode.nit:70 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_icode; + fra.me.line = 0; + fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___registers; + 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; + /* ./compiling//compiling_icode.nit:71 */ + fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return; + } val_t compiling_icode___I2CCompilerVisitor___new_number(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; @@ -295,18 +312,18 @@ val_t compiling_icode___I2CCompilerVisitor___new_number(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; + /* ./compiling//compiling_icode.nit:80 */ REGB0 = ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]); REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); /* ./compiling//compiling_icode.nit:80 */ ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB1; - REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:81 */ + REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_last_number"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 81); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_last_number", LOCATE_compiling_icode, 81); } REGB1 = ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]); goto label1; @@ -333,32 +350,28 @@ val_t compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1){ fra.me.REG[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:87 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_ids"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 87); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 87); } fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]); REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:88 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_ids"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 88); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 88); } fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]); fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); goto label1; } else { + /* ./compiling//compiling_icode.nit:90 */ REGB0 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:90 */ if (!once_value_2) { fra.me.REG[4] = BOX_NativeString("label"); REGB0 = TAG_Int(5); @@ -366,10 +379,11 @@ val_t compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1){ once_value_2 = fra.me.REG[4]; register_static_object(&once_value_2); } else fra.me.REG[4] = once_value_2; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); REGB0 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_3) { fra.me.REG[4] = BOX_NativeString(""); REGB0 = TAG_Int(0); @@ -377,20 +391,19 @@ val_t compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1){ once_value_3 = fra.me.REG[4]; register_static_object(&once_value_3); } else fra.me.REG[4] = once_value_3; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:91 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_ids"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 91); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 91); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]); CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]); - fra.me.REG[2] = fra.me.REG[3]; /* ./compiling//compiling_icode.nit:92 */ + fra.me.REG[2] = fra.me.REG[3]; goto label1; } label1: while(0); @@ -409,13 +422,11 @@ val_t compiling_icode___I2CCompilerVisitor___closures(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:96 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_closures"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 96); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_closures", LOCATE_compiling_icode, 96); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -433,13 +444,11 @@ val_t compiling_icode___I2CCompilerVisitor___clostypes(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:99 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_clostypes"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 99); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_clostypes", LOCATE_compiling_icode, 99); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -457,13 +466,11 @@ val_t compiling_icode___I2CCompilerVisitor___local_labels(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:102 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_local_labels"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 102); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_local_labels", LOCATE_compiling_icode, 102); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -499,13 +506,11 @@ val_t compiling_icode___I2CCompilerVisitor___escaped_labels(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:105 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_escaped_labels"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 105); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 105); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -546,54 +551,47 @@ val_t compiling_icode___I2CCompilerVisitor___register_escape_label(val_t p0, val fra.me.REG[2] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:112 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_escaped_labels"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 112); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 112); } fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]); REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:113 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_escaped_labels"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 113); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 113); } fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]); fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); REGB0 = fra.me.REG[2]; goto label1; } else { - REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:115 */ + REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_escaped_labels"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 115); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 115); } fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]); REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]); REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); - REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:116 */ + REGB1 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_escaped_labels"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 116); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_escaped_labels", LOCATE_compiling_icode, 116); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]); CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2); - REGB0 = REGB2; /* ./compiling//compiling_icode.nit:117 */ + REGB0 = REGB2; goto label1; } label1: while(0); @@ -618,20 +616,18 @@ void compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:124 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_ids"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 124); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 124); } fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]); REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:125 */ REGB0 = TAG_Int(3); fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:125 */ if (!once_value_1) { fra.me.REG[3] = BOX_NativeString(""); REGB0 = TAG_Int(0); @@ -639,17 +635,16 @@ void compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_t p1){ once_value_1 = fra.me.REG[3]; register_static_object(&once_value_1); } else fra.me.REG[3] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[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]); REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_ids"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 125); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling_icode, 125); } fra.me.REG[3] = ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]); fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - array___Array___add(fra.me.REG[2], fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); if (!once_value_2) { fra.me.REG[1] = BOX_NativeString(": while(0);"); REGB0 = TAG_Int(11); @@ -657,7 +652,8 @@ void compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_t p1){ once_value_2 = fra.me.REG[1]; register_static_object(&once_value_2); } else fra.me.REG[1] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[1]); + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); } @@ -687,13 +683,13 @@ void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:132 */ fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[0])(fra.me.REG[0]); REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:132 */ if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:133 */ REGB0 = TAG_Int(3); fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:133 */ if (!once_value_1) { fra.me.REG[3] = BOX_NativeString("goto "); REGB0 = TAG_Int(5); @@ -701,9 +697,10 @@ void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){ once_value_1 = fra.me.REG[3]; register_static_object(&once_value_1); } else fra.me.REG[3] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[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_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); if (!once_value_2) { fra.me.REG[3] = BOX_NativeString(";"); REGB0 = TAG_Int(1); @@ -711,22 +708,22 @@ void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){ once_value_2 = fra.me.REG[3]; register_static_object(&once_value_2); } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[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[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); } else { - REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]); /* ./compiling//compiling_icode.nit:135 */ + REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Assert failed"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 135); - nit_exit(1); + nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 135); } + /* ./compiling//compiling_icode.nit:136 */ REGB0 = CALL_compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:137 */ REGB1 = TAG_Int(3); fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:137 */ if (!once_value_3) { fra.me.REG[2] = BOX_NativeString("closctx->has_broke = "); REGB1 = TAG_Int(21); @@ -734,9 +731,10 @@ void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){ once_value_3 = fra.me.REG[2]; register_static_object(&once_value_3); } else fra.me.REG[2] = once_value_3; - array___Array___add(fra.me.REG[1], fra.me.REG[2]); + 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]); fra.me.REG[2] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[1], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); if (!once_value_4) { fra.me.REG[2] = BOX_NativeString(";"); REGB0 = TAG_Int(1); @@ -744,12 +742,13 @@ void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){ once_value_4 = fra.me.REG[2]; register_static_object(&once_value_4); } else fra.me.REG[2] = once_value_4; - array___Array___add(fra.me.REG[1], fra.me.REG[2]); + 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]); fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:138 */ REGB0 = TAG_Int(3); fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:138 */ if (!once_value_5) { fra.me.REG[2] = BOX_NativeString("goto "); REGB0 = TAG_Int(5); @@ -757,17 +756,16 @@ void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){ once_value_5 = fra.me.REG[2]; register_static_object(&once_value_5); } else fra.me.REG[2] = once_value_5; - array___Array___add(fra.me.REG[1], fra.me.REG[2]); + 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]); fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[0])(fra.me.REG[0]); REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Cast failed"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 138); - nit_exit(1); + nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 138); } fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); - array___Array___add(fra.me.REG[1], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); if (!once_value_6) { fra.me.REG[2] = BOX_NativeString(";"); REGB0 = TAG_Int(1); @@ -775,7 +773,8 @@ void compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t p1){ once_value_6 = fra.me.REG[2]; register_static_object(&once_value_6); } else fra.me.REG[2] = once_value_6; - array___Array___add(fra.me.REG[1], fra.me.REG[2]); + 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]); fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); } @@ -794,13 +793,11 @@ val_t compiling_icode___I2CCompilerVisitor___marks_to_seq(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:142 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_marks_to_seq"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 142); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_marks_to_seq", LOCATE_compiling_icode, 142); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -818,13 +815,11 @@ val_t compiling_icode___I2CCompilerVisitor___closure(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:145 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_closure"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 145); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_closure", LOCATE_compiling_icode, 145); } REGB0 = ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -860,13 +855,11 @@ val_t compiling_icode___I2CCompilerVisitor___visitor(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:148 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_visitor"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 148); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_compiling_icode, 148); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -884,13 +877,11 @@ val_t compiling_icode___I2CCompilerVisitor___iroutine(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL); /* ./compiling//compiling_icode.nit:151 */ + REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_iroutine"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 151); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_compiling_icode, 151); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -907,8 +898,8 @@ val_t compiling_icode___I2CCompilerVisitor___return_label(val_t p0){ fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]); /* ./compiling//compiling_icode.nit:154 */ + fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]); stack_frame_head = fra.me.prev; return fra.me.REG[0]; } @@ -931,31 +922,26 @@ void compiling_icode___I2CCompilerVisitor___return_label__eq(val_t p0, val_t p1) return; } void compiling_icode___I2CCompilerVisitor___add_decl(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; - val_t REGB0; + 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_compiling_icode; fra.me.line = 157; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_decl; fra.me.has_broke = 0; - fra.me.REG_size = 3; + fra.me.REG_size = 2; 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; - fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Int(0); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); /* ./compiling//compiling_icode.nit:159 */ - array___Array___add(fra.me.REG[2], fra.me.REG[1]); - CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); stack_frame_head = fra.me.prev; return; } -void compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; +val_t compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; val_t REGB1; val_t tmp; @@ -965,20 +951,21 @@ void compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; fra.me.line = 162; - fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_instr; + fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___new_instr; fra.me.has_broke = 0; - fra.me.REG_size = 6; + 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[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; fra.me.REG[0] = p0; - fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:166 */ + fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:167 */ fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:168 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - /* ./compiling//compiling_icode.nit:165 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); @@ -992,61 +979,93 @@ void compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){ } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:169 */ fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Int(4); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:166 */ + CALL_compiling_base___CompilerVisitor___add_indent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:170 */ if (!once_value_1) { - fra.me.REG[5] = BOX_NativeString("/* "); + fra.me.REG[3] = BOX_NativeString("/* "); REGB0 = TAG_Int(3); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_1 = fra.me.REG[5]; + 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[5] = once_value_1; - array___Array___add(fra.me.REG[4], fra.me.REG[5]); + } else fra.me.REG[3] = once_value_1; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:171 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 166); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 171); } - fra.me.REG[5] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]); - array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:172 */ if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString(":"); + fra.me.REG[3] = BOX_NativeString(":"); REGB0 = TAG_Int(1); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_2 = fra.me.REG[5]; + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_2 = fra.me.REG[3]; register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - array___Array___add(fra.me.REG[4], fra.me.REG[5]); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:173 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 166); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 173); } REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]); fra.me.REG[2] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[4], fra.me.REG[2]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:174 */ if (!once_value_3) { - fra.me.REG[2] = BOX_NativeString(" */"); - REGB0 = TAG_Int(3); + fra.me.REG[2] = BOX_NativeString(" */\n"); + REGB0 = TAG_Int(4); fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); once_value_3 = fra.me.REG[2]; register_static_object(&once_value_3); } else fra.me.REG[2] = once_value_3; - array___Array___add(fra.me.REG[4], fra.me.REG[2]); - CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* ./compiling//compiling_icode.nit:167 */ + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:175 */ ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = NIT_NULL; } + /* ./compiling//compiling_icode.nit:177 */ fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = TAG_Int(0); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:169 */ - array___Array___add(fra.me.REG[4], fra.me.REG[1]); - CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + CALL_compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:178 */ + goto label4; + label4: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +void compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_t p1){ + 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_icode; + fra.me.line = 181; + fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_instr; + 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; + /* ./compiling//compiling_icode.nit:183 */ + fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + if (!once_value_1) { + fra.me.REG[0] = BOX_NativeString("\n"); + REGB0 = TAG_Int(1); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + 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]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); stack_frame_head = fra.me.prev; return; } @@ -1055,14 +1074,14 @@ void compiling_icode___I2CCompilerVisitor___indent(val_t p0){ val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 172; + fra.me.line = 186; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___indent; fra.me.has_broke = 0; fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; + /* ./compiling//compiling_icode.nit:188 */ fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:174 */ CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[0])(fra.me.REG[0]); stack_frame_head = fra.me.prev; return; @@ -1072,14 +1091,14 @@ void compiling_icode___I2CCompilerVisitor___unindent(val_t p0){ val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 177; + fra.me.line = 191; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___unindent; fra.me.has_broke = 0; fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; + /* ./compiling//compiling_icode.nit:193 */ fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:179 */ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[0])(fra.me.REG[0]); stack_frame_head = fra.me.prev; return; @@ -1089,7 +1108,7 @@ void compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0, val_t p1, v val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 182; + fra.me.line = 196; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_assignment; fra.me.has_broke = 0; fra.me.REG_size = 3; @@ -1099,8 +1118,8 @@ void compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0, val_t p1, v fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; + /* ./compiling//compiling_icode.nit:198 */ fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:184 */ CALL_compiling_base___CompilerVisitor___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); stack_frame_head = fra.me.prev; return; @@ -1113,7 +1132,7 @@ void compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){ val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 190; + fra.me.line = 204; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___add_location; fra.me.has_broke = 0; fra.me.REG_size = 5; @@ -1124,9 +1143,10 @@ void compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){ fra.me.REG[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:208 */ fra.me.REG[2] = ATTR_compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:209 */ REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1])); - /* ./compiling//compiling_icode.nit:195 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); @@ -1158,10 +1178,10 @@ void compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){ if (UNTAG_Bool(REGB0)) { goto label1; } - /* ./compiling//compiling_icode.nit:196 */ + /* ./compiling//compiling_icode.nit:210 */ ATTR_compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1]; + /* ./compiling//compiling_icode.nit:211 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - /* ./compiling//compiling_icode.nit:197 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); @@ -1177,16 +1197,12 @@ void compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 197); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211); } fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]); REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 197); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211); } fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[1])(fra.me.REG[1]); REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4])); @@ -1202,34 +1218,31 @@ void compiling_icode___I2CCompilerVisitor___add_location(val_t p0, val_t p1){ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 197); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211); } REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]); REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 197); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 211); } REGB1 = CALL_location___Location___line_start(fra.me.REG[1])(fra.me.REG[1]); REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); if (UNTAG_Bool(REGB2)) { } else { + /* ./../lib/standard//kernel.nit:207 */ REGB1 = TAG_Bool((REGB0)==(REGB1)); + /* ./compiling//compiling_icode.nit:211 */ REGB2 = REGB1; - /* ./compiling//compiling_icode.nit:197 */ } } else { REGB1 = TAG_Bool(false); REGB2 = REGB1; } if (UNTAG_Bool(REGB2)) { - /* ./compiling//compiling_icode.nit:198 */ + /* ./compiling//compiling_icode.nit:212 */ goto label1; } else { - /* ./compiling//compiling_icode.nit:200 */ + /* ./compiling//compiling_icode.nit:214 */ ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1]; } label1: while(0); @@ -1242,19 +1255,17 @@ val_t compiling_icode___I2CCompilerVisitor___basecname(val_t p0){ val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 204; + fra.me.line = 218; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___basecname; fra.me.has_broke = 0; fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; + /* ./compiling//compiling_icode.nit:218 */ REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0])!=NIT_NULL); - /* ./compiling//compiling_icode.nit:204 */ if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_basecname"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 204); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_basecname", LOCATE_compiling_icode, 218); } fra.me.REG[0] = ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]); stack_frame_head = fra.me.prev; @@ -1267,7 +1278,7 @@ void compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2, v if (init_table[itpos0]) return; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 207; + fra.me.line = 221; fra.me.meth = LOCATE_compiling_icode___I2CCompilerVisitor___init; fra.me.has_broke = 0; fra.me.REG_size = 4; @@ -1279,21 +1290,24 @@ void compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2, v fra.me.REG[1] = p1; fra.me.REG[2] = p2; fra.me.REG[3] = p3; - /* ./compiling//compiling_icode.nit:209 */ + /* ./compiling//compiling_icode.nit:223 */ ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]) = fra.me.REG[1]; - /* ./compiling//compiling_icode.nit:210 */ + /* ./compiling//compiling_icode.nit:224 */ ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]) = fra.me.REG[2]; - /* ./compiling//compiling_icode.nit:211 */ + /* ./compiling//compiling_icode.nit:225 */ ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]) = fra.me.REG[3]; stack_frame_head = fra.me.prev; init_table[itpos0] = 1; return; } val_t compiling_icode___IRoutine___compile_signature_to_c(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){ - struct {struct stack_frame_t me; val_t MORE_REG[13];} fra; + struct {struct stack_frame_t me; val_t MORE_REG[11];} fra; val_t REGB0; val_t REGB1; val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t REGB5; val_t tmp; static val_t once_value_1; /* Once value */ static val_t once_value_2; /* Once value */ @@ -1333,12 +1347,14 @@ val_t compiling_icode___IRoutine___compile_signature_to_c(val_t p0, val_t p1, va static val_t once_value_39; /* Once value */ static val_t once_value_40; /* Once value */ static val_t once_value_41; /* Once value */ + static val_t once_value_42; /* Once value */ + static val_t once_value_43; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 216; + fra.me.line = 230; fra.me.meth = LOCATE_compiling_icode___IRoutine___compile_signature_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 14; + fra.me.REG_size = 12; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; @@ -1351,18 +1367,18 @@ val_t compiling_icode___IRoutine___compile_signature_to_c(val_t p0, val_t p1, va fra.me.REG[9] = NIT_NULL; fra.me.REG[10] = NIT_NULL; fra.me.REG[11] = NIT_NULL; - fra.me.REG[12] = NIT_NULL; - fra.me.REG[13] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; fra.me.REG[3] = p3; fra.me.REG[4] = p4; fra.me.REG[5] = p5; + /* ./compiling//compiling_icode.nit:236 */ fra.me.REG[6] = NEW_Array_array___Array___init(); + /* ./compiling//compiling_icode.nit:237 */ fra.me.REG[7] = NEW_Array_array___Array___init(); + /* ./compiling//compiling_icode.nit:238 */ REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - /* ./compiling//compiling_icode.nit:224 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); @@ -1376,351 +1392,383 @@ val_t compiling_icode___IRoutine___compile_signature_to_c(val_t p0, val_t p1, va } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { - array___Array___add(fra.me.REG[7], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]); } + /* ./compiling//compiling_icode.nit:239 */ REGB0 = TAG_Int(0); fra.me.REG[4] = CALL_icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]); REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = NEW_Range_range___Range___without_last(REGB0, REGB1); - fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]); - /* ./compiling//compiling_icode.nit:225 */ + /* ./../lib/standard//kernel.nit:332 */ while(1) { - REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); - if (UNTAG_Bool(REGB1)) { - REGB1 = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = TAG_Int(3); - fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:226 */ + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)UNTAG_Int(REGB2)); - /* ./compiling//compiling_icode.nit:272 */ + /* ./compiling//compiling_icode.nit:286 */ if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_icode.nit:287 */ REGB2 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB2); - /* ./compiling//compiling_icode.nit:273 */ if (!once_value_1) { fra.me.REG[4] = BOX_NativeString("struct {struct stack_frame_t me; val_t MORE_REG["); REGB2 = TAG_Int(48); @@ -2034,13 +2123,15 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_1 = fra.me.REG[4]; register_static_object(&once_value_1); } else fra.me.REG[4] = once_value_1; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); REGB2 = CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]); REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ REGB1 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1)); + /* ./compiling//compiling_icode.nit:287 */ fra.me.REG[4] = CALL_string___Object___to_s(REGB1)(REGB1); - /* ./compiling//compiling_icode.nit:273 */ - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_2) { fra.me.REG[4] = BOX_NativeString("];} fra;"); REGB1 = TAG_Int(8); @@ -2048,11 +2139,12 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_2 = fra.me.REG[4]; register_static_object(&once_value_2); } else fra.me.REG[4] = once_value_2; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); } else { - /* ./compiling//compiling_icode.nit:275 */ + /* ./compiling//compiling_icode.nit:289 */ if (!once_value_3) { fra.me.REG[3] = BOX_NativeString("struct {struct stack_frame_t me;} fra;"); REGB1 = TAG_Int(38); @@ -2060,9 +2152,10 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t 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_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); } - /* ./compiling//compiling_icode.nit:277 */ + /* ./compiling//compiling_icode.nit:291 */ if (!once_value_4) { fra.me.REG[3] = BOX_NativeString("fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;"); REGB1 = TAG_Int(59); @@ -2070,10 +2163,11 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t 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_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:292 */ REGB1 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:278 */ if (!once_value_5) { fra.me.REG[4] = BOX_NativeString("fra.me.file = LOCATE_"); REGB1 = TAG_Int(21); @@ -2081,12 +2175,13 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_5 = fra.me.REG[4]; register_static_object(&once_value_5); } else fra.me.REG[4] = once_value_5; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___module(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___mmmodule(fra.me.REG[4])(fra.me.REG[4]); fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]); fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_6) { fra.me.REG[4] = BOX_NativeString(";"); REGB1 = TAG_Int(1); @@ -2094,12 +2189,13 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_6 = fra.me.REG[4]; register_static_object(&once_value_6); } else fra.me.REG[4] = once_value_6; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:293 */ REGB1 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:279 */ if (!once_value_7) { fra.me.REG[4] = BOX_NativeString("fra.me.line = "); REGB1 = TAG_Int(14); @@ -2107,9 +2203,10 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_7 = fra.me.REG[4]; register_static_object(&once_value_7); } else fra.me.REG[4] = once_value_7; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_8) { fra.me.REG[4] = BOX_NativeString(";"); REGB0 = TAG_Int(1); @@ -2117,12 +2214,13 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_8 = fra.me.REG[4]; register_static_object(&once_value_8); } else fra.me.REG[4] = once_value_8; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:294 */ REGB0 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:280 */ if (!once_value_9) { fra.me.REG[4] = BOX_NativeString("fra.me.meth = LOCATE_"); REGB0 = TAG_Int(21); @@ -2130,9 +2228,10 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_9 = fra.me.REG[4]; register_static_object(&once_value_9); } else fra.me.REG[4] = once_value_9; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_10) { fra.me.REG[4] = BOX_NativeString(";"); REGB0 = TAG_Int(1); @@ -2140,10 +2239,11 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_10 = fra.me.REG[4]; register_static_object(&once_value_10); } else fra.me.REG[4] = once_value_10; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:281 */ + /* ./compiling//compiling_icode.nit:295 */ if (!once_value_11) { fra.me.REG[3] = BOX_NativeString("fra.me.has_broke = 0;"); REGB0 = TAG_Int(21); @@ -2151,10 +2251,11 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_11 = fra.me.REG[3]; register_static_object(&once_value_11); } else fra.me.REG[3] = once_value_11; + fra.me.REG[3] = fra.me.REG[3]; CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:296 */ REGB0 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:282 */ if (!once_value_12) { fra.me.REG[4] = BOX_NativeString("fra.me.REG_size = "); REGB0 = TAG_Int(18); @@ -2162,10 +2263,11 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_12 = fra.me.REG[4]; register_static_object(&once_value_12); } else fra.me.REG[4] = once_value_12; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); REGB0 = CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_13) { fra.me.REG[4] = BOX_NativeString(";"); REGB0 = TAG_Int(1); @@ -2173,90 +2275,110 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t once_value_13 = fra.me.REG[4]; register_static_object(&once_value_13); } else fra.me.REG[4] = once_value_13; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:299 */ REGB0 = TAG_Int(0); REGB1 = CALL_allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = NEW_Range_range___Range___without_last(REGB0, REGB1); - fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:285 */ + /* ./../lib/standard//kernel.nit:332 */ while(1) { - REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); - if (UNTAG_Bool(REGB1)) { - REGB1 = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:286 */ + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB2)); - /* ./../lib/standard//collection//array.nit:233 */ - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { - } else { - fprintf(stderr, "Uninitialized attribute %s", "_length"); - fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233); - nit_exit(1); - } - REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); - REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; - /* ./../lib/standard//collection//array.nit:234 */ - goto label24; - label24: while(0); - /* ./compiling//compiling_icode.nit:299 */ - CALL_compiling_icode___I2CCompilerVisitor___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[6]); - } - REGB1 = TAG_Int(1); - REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); - REGB0 = REGB1; - /* ./compiling//compiling_icode.nit:300 */ - } else { - /* ./compiling//compiling_icode.nit:298 */ - goto label25; - } - CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); - } - label25: while(0); + fra.me.REG[4] = REGB0; + /* ./compiling//compiling_icode.nit:312 */ + fra.me.REG[5] = CALL_icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling_icode___IRoutine___compile_inside_to_c_24)); + /* ./compiling//compiling_icode.nit:316 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - /* ./compiling//compiling_icode.nit:302 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); @@ -2412,254 +2464,280 @@ val_t compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val_t p1, val_t } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:317 */ REGB0 = TAG_Int(0); REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - /* ./compiling//compiling_icode.nit:303 */ if (UNTAG_Bool(REGB1)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 303); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 317); } REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = NEW_Range_range___Range___without_last(REGB0, REGB1); - fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:332 */ while(1) { - REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); - if (UNTAG_Bool(REGB1)) { - REGB1 = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - /* ./compiling//compiling_icode.nit:304 */ - if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 304); - nit_exit(1); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB2)); - /* ./../lib/standard//collection//array.nit:233 */ - if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); - if (UNTAG_Bool(REGB2)) { + } else fra.me.REG[6] = once_value_27; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]); + REGB3 = CALL_abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]); + /* ./../lib/standard//kernel.nit:215 */ + REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[6] = fra.me.REG[2]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB4 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { } else { - fprintf(stderr, "Uninitialized attribute %s", "_length"); - fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233); - nit_exit(1); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); } - REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); - REGB2 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./../lib/standard//collection//array.nit:234 */ + /* ./../lib/standard//collection//array.nit:654 */ + fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)]; + /* ./../lib/standard//collection//array.nit:246 */ goto label28; label28: while(0); - /* ./compiling//compiling_icode.nit:305 */ - array___Array___add(fra.me.REG[5], fra.me.REG[7]); + /* ./compiling//compiling_icode.nit:319 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); if (!once_value_29) { - fra.me.REG[7] = BOX_NativeString(";"); - REGB0 = TAG_Int(1); - fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); - once_value_29 = fra.me.REG[7]; + fra.me.REG[6] = BOX_NativeString(";"); + REGB3 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3); + once_value_29 = fra.me.REG[6]; register_static_object(&once_value_29); - } else fra.me.REG[7] = once_value_29; - array___Array___add(fra.me.REG[5], fra.me.REG[7]); + } else fra.me.REG[6] = once_value_29; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:320 */ fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:306 */ - CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6], REGB1); - fra.me.REG[5] = CALL_icode_base___IClosureDecl___closure(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[5] = CALL_static_type___MMClosure___signature(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[7] = NEW_Array_array___Array___init(); - /* ./compiling//compiling_icode.nit:309 */ + fra.me.REG[6] = CALL_string___Object___to_s(REGB2)(REGB2); + CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:321 */ + fra.me.REG[6] = CALL_icode_base___IClosureDecl___closure(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[6] = CALL_static_type___MMClosure___signature(fra.me.REG[6])(fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:322 */ + fra.me.REG[5] = NEW_Array_array___Array___init(); + /* ./compiling//compiling_icode.nit:323 */ if (!once_value_30) { - fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *"); - REGB1 = TAG_Int(22); - fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); - once_value_30 = fra.me.REG[8]; + fra.me.REG[7] = BOX_NativeString("struct stack_frame_t *"); + REGB2 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2); + once_value_30 = fra.me.REG[7]; register_static_object(&once_value_30); - } else fra.me.REG[8] = once_value_30; - array___Array___add(fra.me.REG[7], fra.me.REG[8]); - REGB1 = TAG_Int(0); - REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[8] = NEW_Range_range___Range___without_last(REGB1, REGB0); - fra.me.REG[8] = CALL_abstract_collection___Collection___iterator(fra.me.REG[8])(fra.me.REG[8]); - /* ./compiling//compiling_icode.nit:310 */ + } else fra.me.REG[7] = once_value_30; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]); + /* ./compiling//compiling_icode.nit:324 */ + REGB2 = TAG_Int(0); + REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]); + /* ./../lib/standard//kernel.nit:332 */ while(1) { - REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[8])(fra.me.REG[8]); - if (UNTAG_Bool(REGB0)) { - REGB0 = CALL_abstract_collection___Iterator___item(fra.me.REG[8])(fra.me.REG[8]); - /* ./compiling//compiling_icode.nit:311 */ + /* ./../lib/standard//kernel.nit:212 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB2)REG[1])(closctx->REG[1], fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[1] = closctx->REG[2]; + REGB0 = closctx->REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB1)) { + 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, 245); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label25; + label25: while(0); + /* ./compiling//compiling_icode.nit:313 */ + CALL_compiling_icode___I2CCompilerVisitor___add_assignment(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], fra.me.REG[1]); + } + /* ./compiling//compiling_icode.nit:314 */ + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(closctx->REG[4])+UNTAG_Int(REGB0)); + /* ./compiling//compiling_icode.nit:314 */ + closctx->REG[4] = REGB0; + stack_frame_head = fra.me.prev; + return; + } val_t compiling_icode___IRoutine___compile_to_c(val_t p0, val_t p1, val_t p2, val_t p3){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 338; + fra.me.line = 352; fra.me.meth = LOCATE_compiling_icode___IRoutine___compile_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 5; + 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[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; fra.me.REG[3] = p3; - fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___module(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:343 */ - CALL_analysis___IRoutine___optimize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:356 */ fra.me.REG[2] = NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:357 */ fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:345 */ goto label1; label1: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[3]; } void compiling_icode___ICode___compile_to_c(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + 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_compiling_icode; - fra.me.line = 350; + fra.me.line = 362; fra.me.meth = LOCATE_compiling_icode___ICode___compile_to_c; 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; - fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:353 */ - CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - fra.me.REG[2] = CALL_compiling_icode___ICode___inner_compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:354 */ - CALL_compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + fra.me.REG_size = 0; + /* ./compiling//compiling_icode.nit:362 */ + nit_abort("Deferred method called", NULL, LOCATE_compiling_icode, 362); stack_frame_head = fra.me.prev; return; } @@ -2744,15 +2897,16 @@ val_t compiling_icode___ICode___need_result(val_t p0){ val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 357; + fra.me.line = 365; fra.me.meth = LOCATE_compiling_icode___ICode___need_result; fra.me.has_broke = 0; fra.me.REG_size = 1; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; + /* ./compiling//compiling_icode.nit:368 */ fra.me.REG[0] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:369 */ REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - /* ./compiling//compiling_icode.nit:361 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); @@ -2768,9 +2922,7 @@ val_t compiling_icode___ICode___need_result(val_t p0){ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 361); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 369); } fra.me.REG[0] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]); REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); @@ -2781,9 +2933,10 @@ val_t compiling_icode___ICode___need_result(val_t p0){ REGB1 = TAG_Bool(false); REGB0 = REGB1; } else { + /* ./../lib/standard//kernel.nit:207 */ REGB1 = TAG_Bool((fra.me.REG[0])==(NIT_NULL)); + /* ./compiling//compiling_icode.nit:369 */ REGB0 = REGB1; - /* ./compiling//compiling_icode.nit:361 */ } } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); @@ -2801,10 +2954,12 @@ void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){ val_t REGB0; val_t REGB1; val_t tmp; - static val_t once_value_1; /* Once value */ + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 364; + fra.me.line = 372; fra.me.meth = LOCATE_compiling_icode___ICode___store_result; fra.me.has_broke = 0; fra.me.REG_size = 5; @@ -2816,9 +2971,10 @@ void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){ fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; + /* ./compiling//compiling_icode.nit:375 */ fra.me.REG[3] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:376 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - /* ./compiling//compiling_icode.nit:368 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); @@ -2834,9 +2990,7 @@ void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 368); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 376); } fra.me.REG[4] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[3])(fra.me.REG[3]); REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); @@ -2847,9 +3001,10 @@ void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){ REGB1 = TAG_Bool(false); REGB0 = REGB1; } else { + /* ./../lib/standard//kernel.nit:207 */ REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL)); + /* ./compiling//compiling_icode.nit:376 */ REGB0 = REGB1; - /* ./compiling//compiling_icode.nit:368 */ } } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); @@ -2858,8 +3013,8 @@ void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){ REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:377 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - /* ./compiling//compiling_icode.nit:369 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); @@ -2874,16 +3029,38 @@ void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Assert failed"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 369); - nit_exit(1); + nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 377); } + /* ./compiling//compiling_icode.nit:378 */ + fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:379 */ fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:370 */ - CALL_compiling_icode___I2CCompilerVisitor___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]); + CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:380 */ + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(" = "); + REGB0 = TAG_Int(3); + 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]; + CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:381 */ + CALL_compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:382 */ + if (!once_value_2) { + fra.me.REG[3] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); } else { + /* ./compiling//compiling_icode.nit:383 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - /* ./compiling//compiling_icode.nit:371 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); @@ -2904,52 +3081,142 @@ void compiling_icode___ICode___store_result(val_t p0, val_t p1, val_t p2){ REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { - /* ./compiling//compiling_icode.nit:374 */ - if (!once_value_1) { - fra.me.REG[0] = BOX_NativeString(";"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_1 = fra.me.REG[0]; - register_static_object(&once_value_1); - } else fra.me.REG[0] = once_value_1; - REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 374); - nit_exit(1); - } - fra.me.REG[0] = CALL_string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:386 */ + fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:387 */ + CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:388 */ + if (!once_value_3) { + fra.me.REG[2] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_3 = fra.me.REG[2]; + register_static_object(&once_value_3); + } else fra.me.REG[2] = once_value_3; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); } } stack_frame_head = fra.me.prev; return; } -val_t compiling_icode___ICode___inner_compile_to_c(val_t p0, val_t p1){ - struct {struct stack_frame_t me;} fra; +val_t compiling_icode___ICode___new_result(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 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_compiling_icode; - fra.me.line = 378; - fra.me.meth = LOCATE_compiling_icode___ICode___inner_compile_to_c; + fra.me.line = 392; + fra.me.meth = LOCATE_compiling_icode___ICode___new_result; fra.me.has_broke = 0; - fra.me.REG_size = 0; - /* ./compiling//compiling_icode.nit:378 */ - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 378); - nit_exit(1); + 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; + fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:396 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + REGB1 = CALL_icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 396); + } + /* ./compiling//compiling_icode.nit:397 */ + fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:398 */ + fra.me.REG[0] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:399 */ + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 399); + } + fra.me.REG[3] = CALL_allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL)); + /* ./compiling//compiling_icode.nit:399 */ + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:400 */ + fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:401 */ + if (!once_value_1) { + fra.me.REG[0] = BOX_NativeString(" = "); + REGB0 = TAG_Int(3); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + 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]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + } + /* ./compiling//compiling_icode.nit:403 */ + fra.me.REG[0] = CALL_compiling_writer___Writer___sub(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:404 */ + if (!once_value_2) { + fra.me.REG[1] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_2 = fra.me.REG[1]; + register_static_object(&once_value_2); + } else fra.me.REG[1] = once_value_2; + fra.me.REG[1] = fra.me.REG[1]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:405 */ + goto label3; + label3: while(0); stack_frame_head = fra.me.prev; - return NIT_NULL; + return fra.me.REG[0]; } -val_t compiling_icode___ISeq___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___ISeq___compile_to_c(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 tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 385; - fra.me.meth = LOCATE_compiling_icode___ISeq___inner_compile_to_c; + fra.me.line = 410; + fra.me.meth = LOCATE_compiling_icode___ISeq___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -2958,12 +3225,16 @@ val_t compiling_icode___ISeq___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:412 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:413 */ fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:387 */ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:414 */ fra.me.REG[2] = CALL_icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:415 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - /* ./compiling//compiling_icode.nit:389 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); @@ -2980,32 +3251,35 @@ val_t compiling_icode___ISeq___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]); CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]); } + /* ./compiling//compiling_icode.nit:416 */ fra.me.REG[2] = CALL_icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:390 */ - while(1) { - REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:391 */ - CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - } else { - /* ./compiling//compiling_icode.nit:390 */ - goto label1; - } - CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); - } - label1: while(0); - /* ./compiling//compiling_icode.nit:393 */ + CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling_icode___ISeq___compile_to_c_1)); + /* ./compiling//compiling_icode.nit:419 */ CALL_compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - fra.me.REG[0] = NIT_NULL; - /* ./compiling//compiling_icode.nit:394 */ - goto label2; - label2: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[0]; + return; } -val_t compiling_icode___IIf___inner_compile_to_c(val_t p0, val_t p1){ + void OC_compiling_icode___ISeq___compile_to_c_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; + fun_t CREG[1]; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_icode; + fra.me.line = 0; + fra.me.meth = LOCATE_compiling_icode___ISeq___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:417 */ + CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]); + stack_frame_head = fra.me.prev; + return; + } +void compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; val_t tmp; @@ -3015,8 +3289,8 @@ val_t compiling_icode___IIf___inner_compile_to_c(val_t p0, val_t p1){ static val_t once_value_4; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 399; - fra.me.meth = LOCATE_compiling_icode___IIf___inner_compile_to_c; + fra.me.line = 424; + fra.me.meth = LOCATE_compiling_icode___IIf___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -3025,9 +3299,12 @@ val_t compiling_icode___IIf___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Int(3); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:401 */ + /* ./compiling//compiling_icode.nit:426 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:427 */ + fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:428 */ if (!once_value_1) { fra.me.REG[3] = BOX_NativeString("if (UNTAG_Bool("); REGB0 = TAG_Int(15); @@ -3035,58 +3312,61 @@ val_t compiling_icode___IIf___inner_compile_to_c(val_t p0, val_t p1){ once_value_1 = fra.me.REG[3]; register_static_object(&once_value_1); } else fra.me.REG[3] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:429 */ fra.me.REG[3] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:430 */ if (!once_value_2) { - fra.me.REG[3] = BOX_NativeString(")) {"); - REGB0 = TAG_Int(4); + fra.me.REG[3] = BOX_NativeString(")) {\n"); + REGB0 = TAG_Int(5); fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); once_value_2 = fra.me.REG[3]; register_static_object(&once_value_2); } else fra.me.REG[3] = once_value_2; - array___Array___add(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]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - fra.me.REG[2] = CALL_icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_icode_base___ISeq___icodes(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:431 */ + fra.me.REG[3] = CALL_icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - /* ./compiling//compiling_icode.nit:402 */ if (UNTAG_Bool(REGB0)) { - /* ./compiling//compiling_icode.nit:403 */ + /* ./compiling//compiling_icode.nit:432 */ CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[2] = CALL_icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:404 */ - CALL_compiling_icode___ICode___inner_compile_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:405 */ + /* ./compiling//compiling_icode.nit:433 */ + fra.me.REG[3] = CALL_icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:434 */ CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); } - fra.me.REG[2] = CALL_icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_icode_base___ISeq___icodes(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:436 */ + fra.me.REG[3] = CALL_icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - /* ./compiling//compiling_icode.nit:407 */ if (UNTAG_Bool(REGB0)) { - /* ./compiling//compiling_icode.nit:408 */ + /* ./compiling//compiling_icode.nit:437 */ if (!once_value_3) { - fra.me.REG[2] = BOX_NativeString("} else {"); + fra.me.REG[3] = BOX_NativeString("} else {"); REGB0 = TAG_Int(8); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_3 = fra.me.REG[2]; + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_3 = fra.me.REG[3]; register_static_object(&once_value_3); - } else fra.me.REG[2] = once_value_3; - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:409 */ + } else fra.me.REG[3] = once_value_3; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:438 */ CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:439 */ fra.me.REG[0] = CALL_icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:410 */ - CALL_compiling_icode___ICode___inner_compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:411 */ + CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:440 */ CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); } - /* ./compiling//compiling_icode.nit:413 */ + /* ./compiling//compiling_icode.nit:442 */ if (!once_value_4) { fra.me.REG[0] = BOX_NativeString("}"); REGB0 = TAG_Int(1); @@ -3094,15 +3374,12 @@ val_t compiling_icode___IIf___inner_compile_to_c(val_t p0, val_t p1){ once_value_4 = fra.me.REG[0]; register_static_object(&once_value_4); } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - fra.me.REG[0] = NIT_NULL; - /* ./compiling//compiling_icode.nit:414 */ - goto label5; - label5: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[0]; + return; } -val_t compiling_icode___ILoop___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; val_t REGB1; @@ -3111,8 +3388,8 @@ val_t compiling_icode___ILoop___inner_compile_to_c(val_t p0, val_t p1){ static val_t once_value_3; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 419; - fra.me.meth = LOCATE_compiling_icode___ILoop___inner_compile_to_c; + fra.me.line = 447; + fra.me.meth = LOCATE_compiling_icode___ILoop___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -3121,12 +3398,16 @@ val_t compiling_icode___ILoop___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:449 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:450 */ fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:421 */ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:451 */ fra.me.REG[2] = CALL_icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:452 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); - /* ./compiling//compiling_icode.nit:423 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); @@ -3143,7 +3424,7 @@ val_t compiling_icode___ILoop___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]); CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]); } - /* ./compiling//compiling_icode.nit:424 */ + /* ./compiling//compiling_icode.nit:453 */ if (!once_value_1) { fra.me.REG[2] = BOX_NativeString("while(1) {"); REGB0 = TAG_Int(10); @@ -3151,28 +3432,16 @@ val_t compiling_icode___ILoop___inner_compile_to_c(val_t p0, val_t p1){ 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_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:425 */ + /* ./compiling//compiling_icode.nit:454 */ CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:455 */ fra.me.REG[2] = CALL_icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:426 */ - while(1) { - REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:427 */ - CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - } else { - /* ./compiling//compiling_icode.nit:426 */ - goto label2; - } - CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); - } - label2: while(0); - /* ./compiling//compiling_icode.nit:429 */ + CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling_icode___ILoop___compile_to_c_2)); + /* ./compiling//compiling_icode.nit:458 */ CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:430 */ + /* ./compiling//compiling_icode.nit:459 */ if (!once_value_3) { fra.me.REG[2] = BOX_NativeString("}"); REGB0 = TAG_Int(1); @@ -3180,23 +3449,40 @@ val_t compiling_icode___ILoop___inner_compile_to_c(val_t p0, val_t p1){ once_value_3 = fra.me.REG[2]; register_static_object(&once_value_3); } else fra.me.REG[2] = once_value_3; + fra.me.REG[2] = fra.me.REG[2]; CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:431 */ + /* ./compiling//compiling_icode.nit:460 */ CALL_compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - fra.me.REG[0] = NIT_NULL; - /* ./compiling//compiling_icode.nit:432 */ - goto label4; - label4: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[0]; + return; } -val_t compiling_icode___IEscape___inner_compile_to_c(val_t p0, val_t p1){ + void OC_compiling_icode___ILoop___compile_to_c_2(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; + fun_t CREG[1]; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_icode; + fra.me.line = 0; + fra.me.meth = LOCATE_compiling_icode___ILoop___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:456 */ + CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]); + stack_frame_head = fra.me.prev; + return; + } +void compiling_icode___IEscape___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 437; - fra.me.meth = LOCATE_compiling_icode___IEscape___inner_compile_to_c; + fra.me.line = 465; + fra.me.meth = LOCATE_compiling_icode___IEscape___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 3; fra.me.REG[0] = NIT_NULL; @@ -3204,17 +3490,16 @@ val_t compiling_icode___IEscape___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[2] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:467 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:468 */ fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[0] = CALL_icode_base___IEscape___iescape_mark(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:439 */ CALL_compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - fra.me.REG[0] = NIT_NULL; - /* ./compiling//compiling_icode.nit:440 */ - goto label1; - label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[0]; + return; } void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[8];} fra; @@ -3223,22 +3508,24 @@ void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){ val_t tmp; static val_t once_value_1; /* Once value */ static val_t once_value_2; /* Once value */ - static val_t once_value_3; /* 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 */ - static val_t once_value_11; /* Once value */ - static val_t once_value_12; /* 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 */ + static val_t once_value_11; /* Once value */ + static val_t once_value_12; /* Once value */ static val_t once_value_13; /* Once value */ - static val_t once_value_15; /* Once value */ - static val_t once_value_16; /* Once value */ - static val_t once_value_17; /* Once value */ + static val_t once_value_14; /* Once value */ + static val_t once_value_15; /* Once value */ + static val_t once_value_16; /* Once value */ + static val_t once_value_18; /* Once value */ + static val_t once_value_19; /* Once value */ + static val_t once_value_20; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 445; + fra.me.line = 473; fra.me.meth = LOCATE_compiling_icode___IAbsCall___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 9; @@ -3253,16 +3540,20 @@ void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){ fra.me.REG[8] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:475 */ fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:447 */ CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:476 */ fra.me.REG[2] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:479 */ fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:480 */ fra.me.REG[4] = CALL_icode_base___ICodeN___closure_defs(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:481 */ fra.me.REG[5] = NIT_NULL; + /* ./compiling//compiling_icode.nit:482 */ REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); - /* ./compiling//compiling_icode.nit:454 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); @@ -3276,10 +3567,10 @@ void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){ } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:484 */ REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:456 */ if (UNTAG_Bool(REGB0)) { - /* ./compiling//compiling_icode.nit:457 */ + /* ./compiling//compiling_icode.nit:485 */ if (!once_value_1) { fra.me.REG[6] = BOX_NativeString("closctx"); REGB0 = TAG_Int(7); @@ -3287,9 +3578,10 @@ void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){ once_value_1 = fra.me.REG[6]; register_static_object(&once_value_1); } else fra.me.REG[6] = once_value_1; + fra.me.REG[6] = fra.me.REG[6]; fra.me.REG[5] = fra.me.REG[6]; } else { - /* ./compiling//compiling_icode.nit:459 */ + /* ./compiling//compiling_icode.nit:487 */ if (!once_value_2) { fra.me.REG[6] = BOX_NativeString("(&(fra.me))"); REGB0 = TAG_Int(11); @@ -3297,67 +3589,27 @@ void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){ once_value_2 = fra.me.REG[6]; register_static_object(&once_value_2); } else fra.me.REG[6] = once_value_2; + fra.me.REG[6] = fra.me.REG[6]; fra.me.REG[5] = fra.me.REG[6]; } - /* ./compiling//compiling_icode.nit:463 */ - array___Array___add(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:491 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:494 */ fra.me.REG[6] = NEW_HashMap_hash_collection___HashMap___init(); - /* ./compiling//compiling_icode.nit:466 */ CALL_compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); - fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]); - /* ./compiling//compiling_icode.nit:469 */ - while(1) { - REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); - if (UNTAG_Bool(REGB0)) { - fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); - /* ./compiling//compiling_icode.nit:470 */ - 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_Bool(fra.me.REG[6]==NIT_NULL); - /* ./compiling//compiling_icode.nit:471 */ - if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 471); - nit_exit(1); - } - fra.me.REG[6] = CALL_compiling_icode___IClosureDef___compile_closure(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:472 */ - array___Array___add(fra.me.REG[2], fra.me.REG[6]); - } else { - /* ./compiling//compiling_icode.nit:474 */ - if (!once_value_3) { - fra.me.REG[6] = BOX_NativeString("NULL"); - REGB0 = TAG_Int(4); - fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); - once_value_3 = fra.me.REG[6]; - register_static_object(&once_value_3); - } else fra.me.REG[6] = once_value_3; - array___Array___add(fra.me.REG[2], fra.me.REG[6]); - } - } else { - /* ./compiling//compiling_icode.nit:469 */ - goto label4; - } - CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:497 */ + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 497); } - label4: while(0); + CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_compiling_icode___IAbsCall___compile_to_c_3)); } + /* ./compiling//compiling_icode.nit:508 */ fra.me.REG[2] = CALL_compiling_icode___IAbsCall___compile_call_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:509 */ fra.me.REG[4] = fra.me.REG[2]; + /* ./compiling//compiling_icode.nit:512 */ REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); - /* ./compiling//compiling_icode.nit:484 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); @@ -3371,497 +3623,458 @@ void compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){ } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:513 */ fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:486 */ + /* ./compiling//compiling_icode.nit:514 */ CALL_compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:516 */ REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[6])(fra.me.REG[6]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); - /* ./compiling//compiling_icode.nit:488 */ if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:518 */ + fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:519 */ REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:490 */ if (UNTAG_Bool(REGB0)) { - /* ./compiling//compiling_icode.nit:491 */ + /* ./compiling//compiling_icode.nit:520 */ if (!once_value_5) { - fra.me.REG[3] = BOX_NativeString("tmp"); + fra.me.REG[7] = BOX_NativeString("tmp"); REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_5 = fra.me.REG[3]; + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_5 = fra.me.REG[7]; register_static_object(&once_value_5); - } else fra.me.REG[3] = once_value_5; - fra.me.REG[4] = fra.me.REG[3]; - /* ./compiling//compiling_icode.nit:492 */ - CALL_compiling_icode___I2CCompilerVisitor___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]); - } else { - fra.me.REG[4] = NIT_NULL; - /* ./compiling//compiling_icode.nit:495 */ + } else fra.me.REG[7] = once_value_5; + fra.me.REG[7] = fra.me.REG[7]; + CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); + /* ./compiling//compiling_icode.nit:521 */ if (!once_value_6) { - fra.me.REG[3] = BOX_NativeString(";"); - REGB0 = TAG_Int(1); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_6 = fra.me.REG[3]; + fra.me.REG[7] = BOX_NativeString(" = "); + REGB0 = TAG_Int(3); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_6 = fra.me.REG[7]; register_static_object(&once_value_6); - } else fra.me.REG[3] = once_value_6; - fra.me.REG[3] = CALL_string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + } else fra.me.REG[7] = once_value_6; + fra.me.REG[7] = fra.me.REG[7]; + CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); + /* ./compiling//compiling_icode.nit:522 */ + CALL_compiling_writer___Writer___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:523 */ + if (!once_value_7) { + fra.me.REG[7] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_7 = fra.me.REG[7]; + register_static_object(&once_value_7); + } else fra.me.REG[7] = once_value_7; + fra.me.REG[7] = fra.me.REG[7]; + CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); + /* ./compiling//compiling_icode.nit:524 */ + fra.me.REG[7] = NEW_Writer_compiling_writer___Writer___init(); + fra.me.REG[4] = fra.me.REG[7]; + /* ./compiling//compiling_icode.nit:525 */ + if (!once_value_8) { + fra.me.REG[7] = BOX_NativeString("tmp"); + REGB0 = TAG_Int(3); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_8 = fra.me.REG[7]; + register_static_object(&once_value_8); + } else fra.me.REG[7] = once_value_8; + fra.me.REG[7] = fra.me.REG[7]; + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 525); + } + CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + } else { + /* ./compiling//compiling_icode.nit:527 */ + fra.me.REG[4] = NIT_NULL; + /* ./compiling//compiling_icode.nit:528 */ + CALL_compiling_writer___Writer___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:529 */ + if (!once_value_9) { + fra.me.REG[2] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_9 = fra.me.REG[2]; + register_static_object(&once_value_9); + } else fra.me.REG[2] = once_value_9; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); } - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:498 */ - if (!once_value_7) { - fra.me.REG[2] = BOX_NativeString("switch ("); + /* ./compiling//compiling_icode.nit:532 */ + fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + if (!once_value_10) { + fra.me.REG[3] = BOX_NativeString("switch ("); REGB0 = TAG_Int(8); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_10 = fra.me.REG[3]; + register_static_object(&once_value_10); + } else fra.me.REG[3] = once_value_10; + fra.me.REG[3] = fra.me.REG[3]; + fra.me.REG[3] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + if (!once_value_11) { + fra.me.REG[2] = BOX_NativeString("->has_broke) {\n"); + REGB0 = TAG_Int(15); fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_7 = fra.me.REG[2]; - register_static_object(&once_value_7); - } else fra.me.REG[2] = once_value_7; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - array___Array___add(fra.me.REG[3], fra.me.REG[5]); - if (!once_value_8) { - fra.me.REG[2] = BOX_NativeString("->has_broke) {"); - REGB0 = TAG_Int(14); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_8 = fra.me.REG[2]; - register_static_object(&once_value_8); - } else fra.me.REG[2] = once_value_8; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:499 */ + once_value_11 = fra.me.REG[2]; + register_static_object(&once_value_11); + } else fra.me.REG[2] = once_value_11; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:533 */ CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:501 */ - if (!once_value_9) { - fra.me.REG[3] = BOX_NativeString("case 0: break;"); + /* ./compiling//compiling_icode.nit:535 */ + if (!once_value_12) { + fra.me.REG[2] = BOX_NativeString("case 0: break;"); REGB0 = TAG_Int(14); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_9 = fra.me.REG[3]; - register_static_object(&once_value_9); - } else fra.me.REG[3] = once_value_9; - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_12 = fra.me.REG[2]; + register_static_object(&once_value_12); + } else fra.me.REG[2] = once_value_12; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:536 */ + fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:537 */ fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:538 */ REGB0 = TAG_Bool(false); - /* ./compiling//compiling_icode.nit:505 */ + /* ./compiling//compiling_icode.nit:539 */ while(1) { REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]); if (UNTAG_Bool(REGB1)) { - fra.me.REG[2] = CALL_abstract_collection___MapIterator___key(fra.me.REG[6])(fra.me.REG[6]); - REGB1 = CALL_abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:507 */ + /* ./compiling//compiling_icode.nit:540 */ + fra.me.REG[3] = CALL_abstract_collection___MapIterator___key(fra.me.REG[6])(fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:541 */ + REGB1 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Int(7); - fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:510 */ - if (!once_value_10) { + /* ./compiling//compiling_icode.nit:544 */ + fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + if (!once_value_13) { fra.me.REG[8] = BOX_NativeString("case "); REGB1 = TAG_Int(5); fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); - once_value_10 = fra.me.REG[8]; - register_static_object(&once_value_10); - } else fra.me.REG[8] = once_value_10; - array___Array___add(fra.me.REG[7], fra.me.REG[8]); - fra.me.REG[8] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); - array___Array___add(fra.me.REG[7], fra.me.REG[8]); - if (!once_value_11) { - fra.me.REG[8] = BOX_NativeString(": "); - REGB1 = TAG_Int(2); - fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); - once_value_11 = fra.me.REG[8]; - register_static_object(&once_value_11); - } else fra.me.REG[8] = once_value_11; - array___Array___add(fra.me.REG[7], fra.me.REG[8]); - array___Array___add(fra.me.REG[7], fra.me.REG[5]); - if (!once_value_12) { - fra.me.REG[8] = BOX_NativeString("->has_broke = 0; goto "); - REGB1 = TAG_Int(22); - fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); - once_value_12 = fra.me.REG[8]; - register_static_object(&once_value_12); - } else fra.me.REG[8] = once_value_12; - array___Array___add(fra.me.REG[7], fra.me.REG[8]); - fra.me.REG[8] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - array___Array___add(fra.me.REG[7], fra.me.REG[8]); - if (!once_value_13) { - fra.me.REG[8] = BOX_NativeString(";"); - REGB1 = TAG_Int(1); - fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); once_value_13 = fra.me.REG[8]; register_static_object(&once_value_13); } else fra.me.REG[8] = once_value_13; - array___Array___add(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_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]); - } else { - REGB1 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:513 */ + fra.me.REG[8] = fra.me.REG[8]; + fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - } else { - fprintf(stderr, "Assert failed"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 513); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 544); } - /* ./compiling//compiling_icode.nit:514 */ - CALL_compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - REGB1 = TAG_Bool(true); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[7] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); + if (!once_value_14) { + fra.me.REG[8] = BOX_NativeString(": "); + REGB1 = TAG_Int(2); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_14 = fra.me.REG[8]; + register_static_object(&once_value_14); + } else fra.me.REG[8] = once_value_14; + fra.me.REG[8] = fra.me.REG[8]; + fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]); + if (!once_value_15) { + fra.me.REG[7] = BOX_NativeString("->has_broke = 0; goto "); + REGB1 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_15 = fra.me.REG[7]; + register_static_object(&once_value_15); + } else fra.me.REG[7] = once_value_15; + fra.me.REG[7] = fra.me.REG[7]; + fra.me.REG[7] = CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); + fra.me.REG[8] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + fra.me.REG[8] = CALL_compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_16) { + fra.me.REG[7] = BOX_NativeString(";\n"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_16 = fra.me.REG[7]; + register_static_object(&once_value_16); + } else fra.me.REG[7] = once_value_16; + fra.me.REG[7] = fra.me.REG[7]; + CALL_compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); + } else { + /* ./compiling//compiling_icode.nit:547 */ + REGB1 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 547); + } + /* ./compiling//compiling_icode.nit:548 */ + CALL_compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:549 */ + REGB1 = TAG_Bool(true); REGB0 = REGB1; - /* ./compiling//compiling_icode.nit:515 */ } - /* ./compiling//compiling_icode.nit:517 */ + /* ./compiling//compiling_icode.nit:551 */ CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]); } else { - /* ./compiling//compiling_icode.nit:505 */ - goto label14; + /* ./compiling//compiling_icode.nit:539 */ + goto label17; } } - label14: while(0); - /* ./compiling//compiling_icode.nit:520 */ + label17: while(0); + /* ./compiling//compiling_icode.nit:554 */ if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(3); - fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:523 */ - if (!once_value_15) { + /* ./compiling//compiling_icode.nit:557 */ + fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + if (!once_value_18) { fra.me.REG[5] = BOX_NativeString("default: goto "); REGB0 = TAG_Int(14); fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_15 = fra.me.REG[5]; - register_static_object(&once_value_15); - } else fra.me.REG[5] = once_value_15; - array___Array___add(fra.me.REG[6], fra.me.REG[5]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL); + once_value_18 = fra.me.REG[5]; + register_static_object(&once_value_18); + } else fra.me.REG[5] = once_value_18; + fra.me.REG[5] = fra.me.REG[5]; + fra.me.REG[5] = CALL_compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - fprintf(stderr, "Cast failed"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 523); - nit_exit(1); + nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 557); } - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - array___Array___add(fra.me.REG[6], fra.me.REG[5]); - if (!once_value_16) { - fra.me.REG[5] = BOX_NativeString(";"); - REGB0 = TAG_Int(1); + fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___lab(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); + fra.me.REG[6] = CALL_compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_19) { + fra.me.REG[5] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_16 = fra.me.REG[5]; - register_static_object(&once_value_16); - } else fra.me.REG[5] = once_value_16; - array___Array___add(fra.me.REG[6], fra.me.REG[5]); - fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); + once_value_19 = fra.me.REG[5]; + register_static_object(&once_value_19); + } else fra.me.REG[5] = once_value_19; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); } - /* ./compiling//compiling_icode.nit:525 */ + /* ./compiling//compiling_icode.nit:559 */ CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:526 */ - if (!once_value_17) { - fra.me.REG[6] = BOX_NativeString("}"); + /* ./compiling//compiling_icode.nit:560 */ + if (!once_value_20) { + fra.me.REG[5] = BOX_NativeString("}"); REGB0 = TAG_Int(1); - fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); - once_value_17 = fra.me.REG[6]; - register_static_object(&once_value_17); - } else fra.me.REG[6] = once_value_17; - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_20 = fra.me.REG[5]; + register_static_object(&once_value_20); + } else fra.me.REG[5] = once_value_20; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + } + } + /* ./compiling//compiling_icode.nit:564 */ + 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; } } - /* ./compiling//compiling_icode.nit:530 */ - CALL_compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:565 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:566 */ + CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + } stack_frame_head = fra.me.prev; return; } -val_t compiling_icode___IAbsCall___inner_compile_to_c(val_t p0, val_t p1){ - 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_compiling_icode; - fra.me.line = 533; - fra.me.meth = LOCATE_compiling_icode___IAbsCall___inner_compile_to_c; - 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; - /* ./compiling//compiling_icode.nit:533 */ - fprintf(stderr, "Aborted"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 533); - nit_exit(1); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} + void OC_compiling_icode___IAbsCall___compile_to_c_3(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; + static val_t once_value_4; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_icode; + fra.me.line = 0; + fra.me.meth = LOCATE_compiling_icode___IAbsCall___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:498 */ + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:499 */ + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 499); + } + fra.me.REG[0] = CALL_compiling_icode___IClosureDef___compile_closure(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]); + /* ./compiling//compiling_icode.nit:500 */ + CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]); + } else { + /* ./compiling//compiling_icode.nit:502 */ + if (!once_value_4) { + fra.me.REG[0] = BOX_NativeString("NULL"); + REGB0 = TAG_Int(4); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]); + } + stack_frame_head = fra.me.prev; + return; + } val_t compiling_icode___IAbsCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){ 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_compiling_icode; - fra.me.line = 535; + fra.me.line = 570; fra.me.meth = LOCATE_compiling_icode___IAbsCall___compile_call_to_c; fra.me.has_broke = 0; fra.me.REG_size = 0; - /* ./compiling//compiling_icode.nit:535 */ - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 535); - nit_exit(1); + /* ./compiling//compiling_icode.nit:570 */ + nit_abort("Deferred method called", NULL, LOCATE_compiling_icode, 570); stack_frame_head = fra.me.prev; return NIT_NULL; } val_t compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + 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_1; /* Once value */ static val_t once_value_2; /* 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_11; /* Once value */ - static val_t once_value_12; /* Once value */ - static val_t once_value_14; /* Once value */ - static val_t once_value_15; /* Once value */ - static val_t once_value_16; /* 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 */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 540; + fra.me.line = 575; fra.me.meth = LOCATE_compiling_icode___ICall___compile_call_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 5; + 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[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; + /* ./compiling//compiling_icode.nit:577 */ + fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init(); + /* ./compiling//compiling_icode.nit:578 */ fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:543 */ + /* ./compiling//compiling_icode.nit:579 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); if (UNTAG_Bool(REGB0)) { if (!once_value_1) { - fra.me.REG[1] = BOX_NativeString("init_table"); + fra.me.REG[3] = BOX_NativeString("init_table"); REGB0 = TAG_Int(10); - fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); - once_value_1 = fra.me.REG[1]; + 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[1] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[1]); + } else fra.me.REG[3] = once_value_1; + 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[1] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:544 */ + /* ./compiling//compiling_icode.nit:580 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:581 */ if (!once_value_2) { - if (!once_value_3) { - fra.me.REG[3] = BOX_NativeString("add"); - REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - 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] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]); - once_value_2 = fra.me.REG[3]; + fra.me.REG[0] = BOX_NativeString("("); + REGB0 = TAG_Int(1); + 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[3] = once_value_2; - REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]); - if (!once_value_4) { - if (!once_value_5) { - fra.me.REG[1] = BOX_NativeString("Array"); - 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] = CALL_symbol___String___to_symbol(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; - REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1])); - if (UNTAG_Bool(REGB0)) { - } else { - REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - REGB0 = REGB1; - } - } else { - REGB1 = TAG_Bool(false); - REGB0 = REGB1; - } - if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(5); - fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:545 */ - if (!once_value_6) { - 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_6 = fra.me.REG[3]; - register_static_object(&once_value_6); - } else fra.me.REG[3] = once_value_6; - array___Array___add(fra.me.REG[1], fra.me.REG[3]); - fra.me.REG[3] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[3]); - if (!once_value_7) { - fra.me.REG[3] = BOX_NativeString("("); - REGB0 = TAG_Int(1); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_7 = fra.me.REG[3]; - register_static_object(&once_value_7); - } else fra.me.REG[3] = once_value_7; - array___Array___add(fra.me.REG[1], fra.me.REG[3]); - if (!once_value_8) { - fra.me.REG[3] = BOX_NativeString(", "); - REGB0 = TAG_Int(2); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_8 = fra.me.REG[3]; - register_static_object(&once_value_8); - } else fra.me.REG[3] = once_value_8; - fra.me.REG[3] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - array___Array___add(fra.me.REG[1], fra.me.REG[3]); - if (!once_value_9) { - fra.me.REG[3] = BOX_NativeString(")"); - REGB0 = TAG_Int(1); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_9 = fra.me.REG[3]; - register_static_object(&once_value_9); - } else fra.me.REG[3] = once_value_9; - array___Array___add(fra.me.REG[1], fra.me.REG[3]); - fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); - goto label10; - } else { - REGB0 = TAG_Int(7); - fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:547 */ - if (!once_value_11) { - fra.me.REG[4] = BOX_NativeString(""); - REGB0 = TAG_Int(0); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); - once_value_11 = fra.me.REG[4]; - register_static_object(&once_value_11); - } else fra.me.REG[4] = once_value_11; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - if (!once_value_12) { - fra.me.REG[0] = BOX_NativeString("("); - REGB0 = TAG_Int(1); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_12 = fra.me.REG[0]; - register_static_object(&once_value_12); - } else fra.me.REG[0] = once_value_12; - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - REGB0 = TAG_Int(0); - fra.me.REG[0] = fra.me.REG[2]; - REGB1 = TAG_Int(0); - REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:233 */ - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - fprintf(stderr, "Uninitialized attribute %s", "_length"); - fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233); - nit_exit(1); - } - REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); - REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./../lib/standard//collection//array.nit:234 */ - goto label13; - label13: while(0); - /* ./compiling//compiling_icode.nit:547 */ - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - if (!once_value_14) { - fra.me.REG[0] = BOX_NativeString(")("); - REGB0 = TAG_Int(2); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_14 = fra.me.REG[0]; - register_static_object(&once_value_14); - } else fra.me.REG[0] = once_value_14; - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - if (!once_value_15) { - fra.me.REG[0] = BOX_NativeString(", "); - REGB0 = TAG_Int(2); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_15 = fra.me.REG[0]; - register_static_object(&once_value_15); - } else fra.me.REG[0] = once_value_15; - fra.me.REG[0] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - if (!once_value_16) { - fra.me.REG[0] = BOX_NativeString(")"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_16 = fra.me.REG[0]; - register_static_object(&once_value_16); - } else fra.me.REG[0] = once_value_16; - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[1] = fra.me.REG[3]; - goto label10; - } - label10: while(0); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:582 */ + fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:583 */ + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString(")("); + REGB0 = TAG_Int(2); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_3 = fra.me.REG[0]; + register_static_object(&once_value_3); + } else fra.me.REG[0] = once_value_3; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:584 */ + if (!once_value_4) { + fra.me.REG[0] = BOX_NativeString(", "); + REGB0 = TAG_Int(2); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:585 */ + if (!once_value_5) { + fra.me.REG[0] = BOX_NativeString(")"); + REGB0 = TAG_Int(1); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_5 = fra.me.REG[0]; + register_static_object(&once_value_5); + } else fra.me.REG[0] = once_value_5; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:586 */ + goto label6; + label6: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[1]; } val_t compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; - val_t REGB1; - val_t REGB2; val_t tmp; static val_t once_value_1; /* Once value */ static val_t once_value_2; /* 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 */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 553; + fra.me.line = 591; fra.me.meth = LOCATE_compiling_icode___ISuper___compile_call_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 4; + 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[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; + /* ./compiling//compiling_icode.nit:593 */ fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:594 */ fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:556 */ if (UNTAG_Bool(REGB0)) { if (!once_value_1) { fra.me.REG[1] = BOX_NativeString("init_table"); @@ -3870,97 +4083,60 @@ val_t compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p1, val_t p2) once_value_1 = fra.me.REG[1]; register_static_object(&once_value_1); } else fra.me.REG[1] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[1]); + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); } - REGB0 = TAG_Int(7); - fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:557 */ - if (!once_value_2) { - 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_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:595 */ + fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init(); + /* ./compiling//compiling_icode.nit:596 */ fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[0]); - if (!once_value_3) { + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:597 */ + if (!once_value_2) { fra.me.REG[0] = BOX_NativeString("("); REGB0 = TAG_Int(1); 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_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:598 */ + fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:599 */ + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString(")("); + REGB0 = TAG_Int(2); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); once_value_3 = fra.me.REG[0]; register_static_object(&once_value_3); } else fra.me.REG[0] = once_value_3; - array___Array___add(fra.me.REG[1], fra.me.REG[0]); - REGB0 = TAG_Int(0); - fra.me.REG[0] = fra.me.REG[2]; - REGB1 = TAG_Int(0); - REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:233 */ - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); - if (UNTAG_Bool(REGB1)) { - } else { - fprintf(stderr, "Uninitialized attribute %s", "_length"); - fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233); - nit_exit(1); - } - REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); - REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./../lib/standard//collection//array.nit:234 */ - goto label4; - label4: while(0); - /* ./compiling//compiling_icode.nit:557 */ - array___Array___add(fra.me.REG[1], fra.me.REG[0]); - if (!once_value_5) { - fra.me.REG[0] = BOX_NativeString(")("); - REGB0 = TAG_Int(2); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_5 = fra.me.REG[0]; - register_static_object(&once_value_5); - } else fra.me.REG[0] = once_value_5; - array___Array___add(fra.me.REG[1], fra.me.REG[0]); - if (!once_value_6) { + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:600 */ + if (!once_value_4) { fra.me.REG[0] = BOX_NativeString(", "); REGB0 = TAG_Int(2); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_6 = fra.me.REG[0]; - register_static_object(&once_value_6); - } else fra.me.REG[0] = once_value_6; - fra.me.REG[0] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[0]); - if (!once_value_7) { + once_value_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:601 */ + if (!once_value_5) { fra.me.REG[0] = BOX_NativeString(")"); REGB0 = TAG_Int(1); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_7 = fra.me.REG[0]; - register_static_object(&once_value_7); - } else fra.me.REG[0] = once_value_7; - array___Array___add(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 label8; - label8: while(0); + once_value_5 = fra.me.REG[0]; + register_static_object(&once_value_5); + } else fra.me.REG[0] = once_value_5; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:602 */ + goto label6; + label6: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[1]; } @@ -3975,7 +4151,7 @@ val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){ static val_t once_value_5; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 562; + fra.me.line = 607; fra.me.meth = LOCATE_compiling_icode___INew___compile_call_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; @@ -3986,9 +4162,9 @@ val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){ fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; - REGB0 = TAG_Int(7); - fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:564 */ + /* ./compiling//compiling_icode.nit:609 */ + fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init(); + /* ./compiling//compiling_icode.nit:610 */ if (!once_value_1) { fra.me.REG[3] = BOX_NativeString("NEW_"); REGB0 = TAG_Int(4); @@ -3996,11 +4172,14 @@ val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){ once_value_1 = fra.me.REG[3]; register_static_object(&once_value_1); } else fra.me.REG[3] = once_value_1; - array___Array___add(fra.me.REG[1], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:611 */ fra.me.REG[3] = CALL_icode_base___INew___stype(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - array___Array___add(fra.me.REG[1], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:612 */ if (!once_value_2) { fra.me.REG[3] = BOX_NativeString("_"); REGB0 = TAG_Int(1); @@ -4008,12 +4187,15 @@ val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){ once_value_2 = fra.me.REG[3]; register_static_object(&once_value_2); } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[1], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:613 */ fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:614 */ if (!once_value_3) { fra.me.REG[0] = BOX_NativeString("("); REGB0 = TAG_Int(1); @@ -4021,7 +4203,9 @@ val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){ once_value_3 = fra.me.REG[0]; register_static_object(&once_value_3); } else fra.me.REG[0] = once_value_3; - array___Array___add(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:615 */ if (!once_value_4) { fra.me.REG[0] = BOX_NativeString(", "); REGB0 = TAG_Int(2); @@ -4029,8 +4213,9 @@ val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){ once_value_4 = fra.me.REG[0]; register_static_object(&once_value_4); } else fra.me.REG[0] = once_value_4; - fra.me.REG[0] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:616 */ if (!once_value_5) { fra.me.REG[0] = BOX_NativeString(")"); REGB0 = TAG_Int(1); @@ -4038,14 +4223,15 @@ val_t compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1, val_t p2){ once_value_5 = fra.me.REG[0]; register_static_object(&once_value_5); } else fra.me.REG[0] = once_value_5; - array___Array___add(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]); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:617 */ goto label6; label6: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[1]; } -val_t compiling_icode___IAllocateInstance___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___IAllocateInstance___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; val_t tmp; @@ -4053,8 +4239,8 @@ val_t compiling_icode___IAllocateInstance___inner_compile_to_c(val_t p0, val_t p static val_t once_value_2; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 569; - fra.me.meth = LOCATE_compiling_icode___IAllocateInstance___inner_compile_to_c; + fra.me.line = 622; + fra.me.meth = LOCATE_compiling_icode___IAllocateInstance___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 3; fra.me.REG[0] = NIT_NULL; @@ -4062,9 +4248,12 @@ val_t compiling_icode___IAllocateInstance___inner_compile_to_c(val_t p0, val_t p fra.me.REG[2] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Int(3); - fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:571 */ + /* ./compiling//compiling_icode.nit:624 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:625 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:626 */ if (!once_value_1) { fra.me.REG[2] = BOX_NativeString("NEW_"); REGB0 = TAG_Int(4); @@ -4072,12 +4261,15 @@ val_t compiling_icode___IAllocateInstance___inner_compile_to_c(val_t p0, val_t p once_value_1 = fra.me.REG[2]; register_static_object(&once_value_1); } else fra.me.REG[2] = once_value_1; - array___Array___add(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:627 */ fra.me.REG[0] = CALL_icode_base___IAllocateInstance___stype(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:628 */ if (!once_value_2) { fra.me.REG[0] = BOX_NativeString("()"); REGB0 = TAG_Int(2); @@ -4085,14 +4277,12 @@ val_t compiling_icode___IAllocateInstance___inner_compile_to_c(val_t p0, val_t p once_value_2 = fra.me.REG[0]; register_static_object(&once_value_2); } else fra.me.REG[0] = once_value_2; - array___Array___add(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); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); stack_frame_head = fra.me.prev; - return fra.me.REG[1]; + return; } -val_t compiling_icode___ICheckInstance___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; val_t tmp; @@ -4101,8 +4291,8 @@ val_t compiling_icode___ICheckInstance___inner_compile_to_c(val_t p0, val_t p1){ static val_t once_value_3; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 576; - fra.me.meth = LOCATE_compiling_icode___ICheckInstance___inner_compile_to_c; + fra.me.line = 633; + fra.me.meth = LOCATE_compiling_icode___ICheckInstance___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -4111,9 +4301,12 @@ val_t compiling_icode___ICheckInstance___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Int(5); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:578 */ + /* ./compiling//compiling_icode.nit:635 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:636 */ + fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:637 */ if (!once_value_1) { fra.me.REG[3] = BOX_NativeString("CHECKNEW_"); REGB0 = TAG_Int(9); @@ -4121,12 +4314,15 @@ val_t compiling_icode___ICheckInstance___inner_compile_to_c(val_t p0, val_t p1){ once_value_1 = fra.me.REG[3]; register_static_object(&once_value_1); } else fra.me.REG[3] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:638 */ fra.me.REG[3] = CALL_icode_base___ICheckInstance___stype(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:639 */ if (!once_value_2) { fra.me.REG[3] = BOX_NativeString("("); REGB0 = TAG_Int(1); @@ -4134,10 +4330,13 @@ val_t compiling_icode___ICheckInstance___inner_compile_to_c(val_t p0, val_t p1){ once_value_2 = fra.me.REG[3]; register_static_object(&once_value_2); } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:640 */ fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - array___Array___add(fra.me.REG[2], fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:641 */ if (!once_value_3) { fra.me.REG[0] = BOX_NativeString(")"); REGB0 = TAG_Int(1); @@ -4145,14 +4344,12 @@ val_t compiling_icode___ICheckInstance___inner_compile_to_c(val_t p0, val_t p1){ once_value_3 = fra.me.REG[0]; register_static_object(&once_value_3); } else fra.me.REG[0] = once_value_3; - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - goto label4; - label4: while(0); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); stack_frame_head = fra.me.prev; - return fra.me.REG[2]; + return; } -val_t compiling_icode___IInitAttributes___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; val_t tmp; @@ -4161,8 +4358,8 @@ val_t compiling_icode___IInitAttributes___inner_compile_to_c(val_t p0, val_t p1) static val_t once_value_3; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 583; - fra.me.meth = LOCATE_compiling_icode___IInitAttributes___inner_compile_to_c; + fra.me.line = 646; + fra.me.meth = LOCATE_compiling_icode___IInitAttributes___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -4171,9 +4368,12 @@ val_t compiling_icode___IInitAttributes___inner_compile_to_c(val_t p0, val_t p1) fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Int(5); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:585 */ + /* ./compiling//compiling_icode.nit:648 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:649 */ + fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:650 */ if (!once_value_1) { fra.me.REG[3] = BOX_NativeString("INIT_ATTRIBUTES__"); REGB0 = TAG_Int(17); @@ -4181,12 +4381,15 @@ val_t compiling_icode___IInitAttributes___inner_compile_to_c(val_t p0, val_t p1) once_value_1 = fra.me.REG[3]; register_static_object(&once_value_1); } else fra.me.REG[3] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:651 */ fra.me.REG[3] = CALL_icode_base___IInitAttributes___stype(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:652 */ if (!once_value_2) { fra.me.REG[3] = BOX_NativeString("("); REGB0 = TAG_Int(1); @@ -4194,50 +4397,50 @@ val_t compiling_icode___IInitAttributes___inner_compile_to_c(val_t p0, val_t p1) once_value_2 = fra.me.REG[3]; register_static_object(&once_value_2); } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:653 */ fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - array___Array___add(fra.me.REG[2], fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:654 */ if (!once_value_3) { - fra.me.REG[0] = BOX_NativeString(")"); - REGB0 = TAG_Int(1); + fra.me.REG[0] = BOX_NativeString(");\n"); + REGB0 = TAG_Int(3); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); once_value_3 = fra.me.REG[0]; register_static_object(&once_value_3); } else fra.me.REG[0] = once_value_3; - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - goto label4; - label4: while(0); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); stack_frame_head = fra.me.prev; - return fra.me.REG[2]; + return; } val_t compiling_icode___IStaticCall___compile_call_to_c(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + 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 */ 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_compiling_icode; - fra.me.line = 590; + fra.me.line = 659; fra.me.meth = LOCATE_compiling_icode___IStaticCall___compile_call_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 4; + 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[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; + /* ./compiling//compiling_icode.nit:661 */ fra.me.REG[1] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:662 */ fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]); REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:593 */ if (UNTAG_Bool(REGB0)) { if (!once_value_1) { fra.me.REG[1] = BOX_NativeString("init_table"); @@ -4246,175 +4449,100 @@ val_t compiling_icode___IStaticCall___compile_call_to_c(val_t p0, val_t p1, val_ once_value_1 = fra.me.REG[1]; register_static_object(&once_value_1); } else fra.me.REG[1] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[1]); + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); } - REGB0 = TAG_Int(5); - fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:594 */ - if (!once_value_2) { - 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_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:663 */ + fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init(); + /* ./compiling//compiling_icode.nit:664 */ fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[0]); - if (!once_value_3) { + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:665 */ + if (!once_value_2) { fra.me.REG[0] = BOX_NativeString("("); REGB0 = TAG_Int(1); 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_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:666 */ + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString(", "); + REGB0 = TAG_Int(2); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); once_value_3 = fra.me.REG[0]; register_static_object(&once_value_3); } else fra.me.REG[0] = once_value_3; - array___Array___add(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:667 */ if (!once_value_4) { - fra.me.REG[0] = BOX_NativeString(", "); - REGB0 = TAG_Int(2); + fra.me.REG[0] = BOX_NativeString(")"); + REGB0 = TAG_Int(1); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); once_value_4 = fra.me.REG[0]; register_static_object(&once_value_4); } else fra.me.REG[0] = once_value_4; - fra.me.REG[0] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); - array___Array___add(fra.me.REG[1], fra.me.REG[0]); - if (!once_value_5) { - fra.me.REG[0] = BOX_NativeString(")"); - REGB0 = TAG_Int(1); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_5 = fra.me.REG[0]; - register_static_object(&once_value_5); - } else fra.me.REG[0] = once_value_5; - array___Array___add(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 label6; - label6: while(0); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:668 */ + goto label5; + label5: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[1]; } -val_t compiling_icode___INative___inner_compile_to_c(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; +void compiling_icode___INative___compile_to_c(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 tmp; - static val_t once_value_2; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 599; - fra.me.meth = LOCATE_compiling_icode___INative___inner_compile_to_c; + fra.me.line = 673; + fra.me.meth = LOCATE_compiling_icode___INative___compile_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 7; + 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[3] = NIT_NULL; - fra.me.REG[4] = NIT_NULL; - fra.me.REG[5] = NIT_NULL; - fra.me.REG[6] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - fra.me.REG[2] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]); - REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:601 */ + /* ./compiling//compiling_icode.nit:675 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:676 */ + fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstractmetamodel___MMMethod___is_intern(fra.me.REG[2])(fra.me.REG[2]); if (UNTAG_Bool(REGB0)) { - fra.me.REG[2] = CALL_icode_base___INative___code(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:602 */ - goto label1; + /* ./compiling//compiling_icode.nit:677 */ + CALL_compiling_icode___INative___compile_intern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); } else { - fra.me.REG[3] = NEW_Buffer_string___Buffer___init(); - REGB0 = TAG_Int(0); - fra.me.REG[4] = CALL_icode_base___INative___code(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:606 */ - if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString("@@@"); - REGB1 = TAG_Int(3); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); - once_value_2 = fra.me.REG[5]; - register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - fra.me.REG[5] = CALL_string_search___String___split_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]); - /* ./compiling//compiling_icode.nit:607 */ - while(1) { - REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); - if (UNTAG_Bool(REGB1)) { - fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); - /* ./compiling//compiling_icode.nit:608 */ - CALL_abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); - fra.me.REG[6] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]); - REGB1 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label1; + label1: while(0); + /* ./compiling//compiling_icode.nit:692 */ + fra.me.REG[7] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]); + /* ./compiling//compiling_icode.nit:693 */ + REGB1 = TAG_Int(0); + REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 693); + } + REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:332 */ while(1) { - REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB1)=UNTAG_Int(REGB0)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); + /* ./../lib/standard//kernel.nit:212 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label2; + label2: while(0); + /* ./compiling//compiling_icode.nit:694 */ + fra.me.REG[6] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + /* ./../lib/standard//kernel.nit:334 */ + REGB3 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3)); + /* ./../lib/standard//kernel.nit:334 */ + REGB1 = REGB3; } else { - /* ./compiling//compiling_icode.nit:623 */ - goto label4; + /* ./../lib/standard//kernel.nit:332 */ + goto label3; } - CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); } - label4: while(0); - /* ./compiling//compiling_icode.nit:626 */ + label3: while(0); + /* ./compiling//compiling_icode.nit:696 */ + REGB1 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_4) { + fra.me.REG[6] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_4 = fra.me.REG[6]; + register_static_object(&once_value_4); + } else fra.me.REG[6] = once_value_4; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); if (!once_value_5) { - fra.me.REG[3] = BOX_NativeString(");"); - REGB0 = TAG_Int(2); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_5 = fra.me.REG[3]; + fra.me.REG[2] = BOX_NativeString("("); + REGB1 = TAG_Int(1); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_5 = fra.me.REG[2]; register_static_object(&once_value_5); - } else fra.me.REG[3] = once_value_5; - CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:627 */ - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - fra.me.REG[3] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:630 */ + } else fra.me.REG[2] = once_value_5; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); if (!once_value_6) { - fra.me.REG[5] = BOX_NativeString("fprintf(stderr, \" (%s"); - REGB0 = TAG_Int(21); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_6 = fra.me.REG[5]; + fra.me.REG[2] = BOX_NativeString(", "); + REGB1 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_6 = fra.me.REG[2]; register_static_object(&once_value_6); - } else fra.me.REG[5] = once_value_6; - fra.me.REG[5] = NEW_Buffer_string___Buffer___from(fra.me.REG[5]); - fra.me.REG[2] = fra.me.REG[5]; - REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - /* ./compiling//compiling_icode.nit:631 */ + } else fra.me.REG[2] = once_value_6; + fra.me.REG[2] = fra.me.REG[2]; + fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + if (!once_value_7) { + fra.me.REG[2] = BOX_NativeString(")"); + REGB1 = TAG_Int(1); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_7 = fra.me.REG[2]; + register_static_object(&once_value_7); + } else fra.me.REG[2] = once_value_7; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:698 */ + REGB1 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 698); + } + fra.me.REG[3] = CALL_static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 698); + } + fra.me.REG[3] = CALL_primitive_info___MMType___boxtype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[3]; + } + /* ./compiling//compiling_icode.nit:699 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:700 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + stack_frame_head = fra.me.prev; + return; +} +void compiling_icode___INative___compile_intern_method_to_c(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[7];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* 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_10; /* Once value */ + static val_t once_value_11; /* Once value */ + static val_t once_value_12; /* Once value */ + static val_t once_value_13; /* Once value */ + static val_t once_value_15; /* Once value */ + static val_t once_value_16; /* Once value */ + static val_t once_value_17; /* Once value */ + static val_t once_value_18; /* Once value */ + static val_t once_value_20; /* Once value */ + static val_t once_value_21; /* Once value */ + static val_t once_value_22; /* Once value */ + static val_t once_value_23; /* Once value */ + static val_t once_value_25; /* Once value */ + static val_t once_value_26; /* Once value */ + static val_t once_value_27; /* Once value */ + static val_t once_value_28; /* Once value */ + static val_t once_value_30; /* Once value */ + static val_t once_value_31; /* Once value */ + static val_t once_value_32; /* Once value */ + static val_t once_value_33; /* Once value */ + static val_t once_value_35; /* Once value */ + static val_t once_value_36; /* Once value */ + static val_t once_value_37; /* Once value */ + static val_t once_value_38; /* Once value */ + static val_t once_value_40; /* Once value */ + static val_t once_value_42; /* Once value */ + static val_t once_value_43; /* Once value */ + static val_t once_value_44; /* Once value */ + static val_t once_value_45; /* Once value */ + static val_t once_value_47; /* Once value */ + static val_t once_value_49; /* Once value */ + static val_t once_value_50; /* Once value */ + static val_t once_value_51; /* Once value */ + static val_t once_value_52; /* Once value */ + static val_t once_value_54; /* Once value */ + static val_t once_value_56; /* Once value */ + static val_t once_value_57; /* Once value */ + static val_t once_value_58; /* Once value */ + static val_t once_value_59; /* Once value */ + static val_t once_value_61; /* Once value */ + static val_t once_value_63; /* Once value */ + static val_t once_value_64; /* Once value */ + static val_t once_value_65; /* Once value */ + static val_t once_value_66; /* Once value */ + static val_t once_value_68; /* Once value */ + static val_t once_value_70; /* Once value */ + static val_t once_value_71; /* Once value */ + static val_t once_value_72; /* Once value */ + static val_t once_value_73; /* Once value */ + static val_t once_value_75; /* Once value */ + static val_t once_value_77; /* Once value */ + static val_t once_value_78; /* Once value */ + static val_t once_value_79; /* Once value */ + static val_t once_value_80; /* Once value */ + static val_t once_value_82; /* Once value */ + static val_t once_value_84; /* Once value */ + static val_t once_value_85; /* Once value */ + static val_t once_value_86; /* Once value */ + static val_t once_value_87; /* Once value */ + static val_t once_value_89; /* Once value */ + static val_t once_value_91; /* Once value */ + static val_t once_value_92; /* Once value */ + static val_t once_value_93; /* Once value */ + static val_t once_value_94; /* Once value */ + static val_t once_value_96; /* Once value */ + static val_t once_value_98; /* Once value */ + static val_t once_value_99; /* Once value */ + static val_t once_value_100; /* Once value */ + static val_t once_value_101; /* Once value */ + static val_t once_value_103; /* Once value */ + static val_t once_value_105; /* Once value */ + static val_t once_value_106; /* Once value */ + static val_t once_value_107; /* Once value */ + static val_t once_value_108; /* Once value */ + static val_t once_value_110; /* Once value */ + static val_t once_value_112; /* Once value */ + static val_t once_value_113; /* Once value */ + static val_t once_value_114; /* Once value */ + static val_t once_value_115; /* Once value */ + static val_t once_value_117; /* Once value */ + static val_t once_value_119; /* Once value */ + static val_t once_value_120; /* Once value */ + static val_t once_value_121; /* Once value */ + static val_t once_value_122; /* Once value */ + static val_t once_value_124; /* Once value */ + static val_t once_value_126; /* Once value */ + static val_t once_value_127; /* Once value */ + static val_t once_value_128; /* Once value */ + static val_t once_value_129; /* Once value */ + static val_t once_value_130; /* Once value */ + static val_t once_value_131; /* Once value */ + static val_t once_value_133; /* Once value */ + static val_t once_value_134; /* Once value */ + static val_t once_value_135; /* Once value */ + static val_t once_value_136; /* Once value */ + static val_t once_value_138; /* Once value */ + static val_t once_value_139; /* Once value */ + static val_t once_value_140; /* Once value */ + static val_t once_value_141; /* Once value */ + static val_t once_value_143; /* Once value */ + static val_t once_value_144; /* Once value */ + static val_t once_value_145; /* Once value */ + static val_t once_value_146; /* Once value */ + static val_t once_value_148; /* Once value */ + static val_t once_value_149; /* Once value */ + static val_t once_value_150; /* Once value */ + static val_t once_value_151; /* Once value */ + static val_t once_value_153; /* Once value */ + static val_t once_value_155; /* Once value */ + static val_t once_value_156; /* Once value */ + static val_t once_value_157; /* Once value */ + static val_t once_value_158; /* Once value */ + static val_t once_value_160; /* Once value */ + static val_t once_value_162; /* Once value */ + static val_t once_value_163; /* Once value */ + static val_t once_value_164; /* Once value */ + static val_t once_value_165; /* Once value */ + static val_t once_value_167; /* Once value */ + static val_t once_value_169; /* Once value */ + static val_t once_value_170; /* Once value */ + static val_t once_value_171; /* Once value */ + static val_t once_value_172; /* Once value */ + static val_t once_value_174; /* Once value */ + static val_t once_value_176; /* Once value */ + static val_t once_value_177; /* Once value */ + static val_t once_value_178; /* Once value */ + static val_t once_value_179; /* Once value */ + static val_t once_value_181; /* Once value */ + static val_t once_value_183; /* Once value */ + static val_t once_value_184; /* Once value */ + static val_t once_value_185; /* Once value */ + static val_t once_value_186; /* Once value */ + static val_t once_value_188; /* Once value */ + static val_t once_value_190; /* Once value */ + static val_t once_value_191; /* Once value */ + static val_t once_value_192; /* Once value */ + static val_t once_value_193; /* Once value */ + static val_t once_value_195; /* Once value */ + static val_t once_value_197; /* Once value */ + static val_t once_value_198; /* Once value */ + static val_t once_value_199; /* Once value */ + static val_t once_value_200; /* Once value */ + static val_t once_value_202; /* Once value */ + static val_t once_value_204; /* Once value */ + static val_t once_value_205; /* Once value */ + static val_t once_value_206; /* Once value */ + static val_t once_value_207; /* Once value */ + static val_t once_value_208; /* Once value */ + static val_t once_value_209; /* Once value */ + static val_t once_value_211; /* Once value */ + static val_t once_value_212; /* Once value */ + static val_t once_value_213; /* Once value */ + static val_t once_value_214; /* Once value */ + static val_t once_value_216; /* Once value */ + static val_t once_value_217; /* Once value */ + static val_t once_value_218; /* Once value */ + static val_t once_value_219; /* Once value */ + static val_t once_value_221; /* Once value */ + static val_t once_value_222; /* Once value */ + static val_t once_value_223; /* Once value */ + static val_t once_value_224; /* Once value */ + static val_t once_value_226; /* Once value */ + static val_t once_value_227; /* Once value */ + static val_t once_value_228; /* Once value */ + static val_t once_value_229; /* Once value */ + static val_t once_value_231; /* Once value */ + static val_t once_value_232; /* Once value */ + static val_t once_value_233; /* Once value */ + static val_t once_value_234; /* Once value */ + static val_t once_value_236; /* Once value */ + static val_t once_value_237; /* Once value */ + static val_t once_value_238; /* Once value */ + static val_t once_value_239; /* Once value */ + static val_t once_value_241; /* Once value */ + static val_t once_value_242; /* Once value */ + static val_t once_value_243; /* Once value */ + static val_t once_value_244; /* Once value */ + static val_t once_value_246; /* Once value */ + static val_t once_value_248; /* Once value */ + static val_t once_value_249; /* Once value */ + static val_t once_value_250; /* Once value */ + static val_t once_value_251; /* Once value */ + static val_t once_value_253; /* Once value */ + static val_t once_value_255; /* Once value */ + static val_t once_value_256; /* Once value */ + static val_t once_value_257; /* Once value */ + static val_t once_value_258; /* Once value */ + static val_t once_value_260; /* Once value */ + static val_t once_value_262; /* Once value */ + static val_t once_value_263; /* Once value */ + static val_t once_value_264; /* Once value */ + static val_t once_value_265; /* Once value */ + static val_t once_value_267; /* Once value */ + static val_t once_value_269; /* Once value */ + static val_t once_value_270; /* Once value */ + static val_t once_value_271; /* Once value */ + static val_t once_value_272; /* Once value */ + static val_t once_value_274; /* Once value */ + static val_t once_value_276; /* Once value */ + static val_t once_value_277; /* Once value */ + static val_t once_value_278; /* Once value */ + static val_t once_value_279; /* Once value */ + static val_t once_value_281; /* Once value */ + static val_t once_value_283; /* Once value */ + static val_t once_value_284; /* Once value */ + static val_t once_value_285; /* Once value */ + static val_t once_value_286; /* Once value */ + static val_t once_value_288; /* Once value */ + static val_t once_value_290; /* Once value */ + static val_t once_value_291; /* Once value */ + static val_t once_value_292; /* Once value */ + static val_t once_value_293; /* Once value */ + static val_t once_value_295; /* Once value */ + static val_t once_value_297; /* Once value */ + static val_t once_value_298; /* Once value */ + static val_t once_value_299; /* Once value */ + static val_t once_value_300; /* Once value */ + static val_t once_value_302; /* Once value */ + static val_t once_value_304; /* Once value */ + static val_t once_value_305; /* Once value */ + static val_t once_value_306; /* Once value */ + static val_t once_value_307; /* Once value */ + static val_t once_value_309; /* Once value */ + static val_t once_value_311; /* Once value */ + static val_t once_value_312; /* Once value */ + static val_t once_value_313; /* Once value */ + static val_t once_value_314; /* Once value */ + static val_t once_value_316; /* Once value */ + static val_t once_value_318; /* Once value */ + static val_t once_value_319; /* Once value */ + static val_t once_value_320; /* Once value */ + static val_t once_value_321; /* Once value */ + static val_t once_value_322; /* Once value */ + static val_t once_value_323; /* Once value */ + static val_t once_value_325; /* Once value */ + static val_t once_value_326; /* Once value */ + static val_t once_value_327; /* Once value */ + static val_t once_value_328; /* Once value */ + static val_t once_value_330; /* Once value */ + static val_t once_value_331; /* Once value */ + static val_t once_value_332; /* Once value */ + static val_t once_value_333; /* Once value */ + static val_t once_value_335; /* Once value */ + static val_t once_value_336; /* Once value */ + static val_t once_value_337; /* Once value */ + static val_t once_value_338; /* Once value */ + static val_t once_value_340; /* Once value */ + static val_t once_value_341; /* Once value */ + static val_t once_value_342; /* Once value */ + static val_t once_value_343; /* Once value */ + static val_t once_value_345; /* Once value */ + static val_t once_value_346; /* Once value */ + static val_t once_value_347; /* Once value */ + static val_t once_value_348; /* Once value */ + static val_t once_value_350; /* Once value */ + static val_t once_value_352; /* Once value */ + static val_t once_value_353; /* Once value */ + static val_t once_value_354; /* Once value */ + static val_t once_value_355; /* Once value */ + static val_t once_value_357; /* Once value */ + static val_t once_value_359; /* Once value */ + static val_t once_value_360; /* Once value */ + static val_t once_value_361; /* Once value */ + static val_t once_value_362; /* Once value */ + static val_t once_value_363; /* Once value */ + static val_t once_value_364; /* Once value */ + static val_t once_value_366; /* Once value */ + static val_t once_value_367; /* Once value */ + static val_t once_value_368; /* Once value */ + static val_t once_value_369; /* Once value */ + static val_t once_value_371; /* Once value */ + static val_t once_value_373; /* Once value */ + static val_t once_value_374; /* Once value */ + static val_t once_value_375; /* Once value */ + static val_t once_value_376; /* Once value */ + static val_t once_value_378; /* Once value */ + static val_t once_value_380; /* Once value */ + static val_t once_value_382; /* Once value */ + static val_t once_value_383; /* Once value */ + static val_t once_value_384; /* Once value */ + static val_t once_value_385; /* Once value */ + static val_t once_value_387; /* Once value */ + static val_t once_value_389; /* Once value */ + static val_t once_value_391; /* Once value */ + static val_t once_value_392; /* Once value */ + static val_t once_value_393; /* Once value */ + static val_t once_value_394; /* Once value */ + static val_t once_value_395; /* Once value */ + static val_t once_value_396; /* Once value */ + static val_t once_value_398; /* Once value */ + static val_t once_value_399; /* Once value */ + static val_t once_value_400; /* Once value */ + static val_t once_value_401; /* Once value */ + static val_t once_value_403; /* Once value */ + static val_t once_value_404; /* Once value */ + static val_t once_value_405; /* Once value */ + static val_t once_value_406; /* Once value */ + static val_t once_value_408; /* Once value */ + static val_t once_value_410; /* Once value */ + static val_t once_value_411; /* Once value */ + static val_t once_value_412; /* Once value */ + static val_t once_value_413; /* Once value */ + static val_t once_value_415; /* Once value */ + static val_t once_value_417; /* Once value */ + static val_t once_value_419; /* Once value */ + static val_t once_value_420; /* Once value */ + static val_t once_value_421; /* Once value */ + static val_t once_value_422; /* Once value */ + static val_t once_value_424; /* Once value */ + static val_t once_value_426; /* Once value */ + static val_t once_value_428; /* Once value */ + static val_t once_value_430; /* Once value */ + static val_t once_value_432; /* Once value */ + static val_t once_value_433; /* Once value */ + static val_t once_value_434; /* Once value */ + static val_t once_value_435; /* Once value */ + static val_t once_value_437; /* Once value */ + static val_t once_value_438; /* Once value */ + static val_t once_value_439; /* Once value */ + static val_t once_value_440; /* Once value */ + static val_t once_value_441; /* Once value */ + static val_t once_value_442; /* Once value */ + static val_t once_value_443; /* Once value */ + static val_t once_value_445; /* Once value */ + static val_t once_value_447; /* Once value */ + static val_t once_value_448; /* Once value */ + static val_t once_value_449; /* Once value */ + static val_t once_value_450; /* Once value */ + static val_t once_value_452; /* Once value */ + static val_t once_value_453; /* Once value */ + static val_t once_value_454; /* Once value */ + static val_t once_value_455; /* Once value */ + static val_t once_value_457; /* Once value */ + static val_t once_value_458; /* Once value */ + static val_t once_value_459; /* Once value */ + static val_t once_value_460; /* Once value */ + static val_t once_value_462; /* Once value */ + static val_t once_value_463; /* Once value */ + static val_t once_value_464; /* Once value */ + static val_t once_value_465; /* Once value */ + static val_t once_value_466; /* Once value */ + static val_t once_value_467; /* Once value */ + static val_t once_value_468; /* Once value */ + static val_t once_value_469; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_icode; + fra.me.line = 703; + fra.me.meth = LOCATE_compiling_icode___INative___compile_intern_method_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 8; + 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[0] = p0; + fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:705 */ + fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:706 */ + fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 706); + } + REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); + /* ./compiling//compiling_icode.nit:706 */ + REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2)); + if (UNTAG_Bool(REGB1)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB2 = TAG_Bool((REGB0)==(REGB2)); + /* ./compiling//compiling_icode.nit:706 */ + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_compiling_icode, 706); + } + /* ./compiling//compiling_icode.nit:707 */ + fra.me.REG[2] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:708 */ + fra.me.REG[3] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:709 */ + fra.me.REG[4] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:710 */ + fra.me.REG[5] = NIT_NULL; + /* ./compiling//compiling_icode.nit:711 */ + if (!once_value_1) { + if (!once_value_2) { + fra.me.REG[6] = BOX_NativeString("Int"); + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_2 = fra.me.REG[6]; + register_static_object(&once_value_2); + } else fra.me.REG[6] = once_value_2; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_1 = fra.me.REG[6]; + register_static_object(&once_value_1); + } else fra.me.REG[6] = once_value_1; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:712 */ + if (!once_value_3) { + if (!once_value_4) { + fra.me.REG[6] = BOX_NativeString("object_id"); + REGB1 = TAG_Int(9); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_4 = fra.me.REG[6]; + register_static_object(&once_value_4); + } else fra.me.REG[6] = once_value_4; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_3 = fra.me.REG[6]; + register_static_object(&once_value_3); + } else fra.me.REG[6] = once_value_3; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:713 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[6] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label5; + label5: while(0); + /* ./compiling//compiling_icode.nit:713 */ + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:714 */ + if (!once_value_6) { + if (!once_value_7) { + fra.me.REG[6] = BOX_NativeString("unary -"); + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_7 = fra.me.REG[6]; + register_static_object(&once_value_7); + } else fra.me.REG[6] = once_value_7; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_6 = fra.me.REG[6]; + register_static_object(&once_value_6); + } else fra.me.REG[6] = once_value_6; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:715 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_8) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(-UNTAG_Int("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_8 = fra.me.REG[7]; + register_static_object(&once_value_8); + } else fra.me.REG[7] = once_value_8; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label9; + label9: while(0); + /* ./compiling//compiling_icode.nit:715 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_10) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_10 = fra.me.REG[7]; + register_static_object(&once_value_10); + } else fra.me.REG[7] = once_value_10; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:716 */ + if (!once_value_11) { + if (!once_value_12) { + fra.me.REG[6] = BOX_NativeString("output"); + REGB1 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_12 = fra.me.REG[6]; + register_static_object(&once_value_12); + } else fra.me.REG[6] = once_value_12; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_11 = fra.me.REG[6]; + register_static_object(&once_value_11); + } else fra.me.REG[6] = once_value_11; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:717 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_13) { + fra.me.REG[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int("); + REGB1 = TAG_Int(26); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_13 = fra.me.REG[7]; + register_static_object(&once_value_13); + } else fra.me.REG[7] = once_value_13; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label14; + label14: while(0); + /* ./compiling//compiling_icode.nit:717 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_15) { + fra.me.REG[7] = BOX_NativeString("));"); + REGB1 = TAG_Int(3); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_15 = fra.me.REG[7]; + register_static_object(&once_value_15); + } else fra.me.REG[7] = once_value_15; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:718 */ + if (!once_value_16) { + if (!once_value_17) { + fra.me.REG[6] = BOX_NativeString("ascii"); + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_17 = fra.me.REG[6]; + register_static_object(&once_value_17); + } else fra.me.REG[6] = once_value_17; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_16 = fra.me.REG[6]; + register_static_object(&once_value_16); + } else fra.me.REG[6] = once_value_16; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:719 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_18) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Int("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_18 = fra.me.REG[7]; + register_static_object(&once_value_18); + } else fra.me.REG[7] = once_value_18; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label19; + label19: while(0); + /* ./compiling//compiling_icode.nit:719 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_20) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_20 = fra.me.REG[7]; + register_static_object(&once_value_20); + } else fra.me.REG[7] = once_value_20; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:720 */ + if (!once_value_21) { + if (!once_value_22) { + fra.me.REG[6] = BOX_NativeString("succ"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_22 = fra.me.REG[6]; + register_static_object(&once_value_22); + } else fra.me.REG[6] = once_value_22; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_21 = fra.me.REG[6]; + register_static_object(&once_value_21); + } else fra.me.REG[6] = once_value_21; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:721 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_23) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_23 = fra.me.REG[7]; + register_static_object(&once_value_23); + } else fra.me.REG[7] = once_value_23; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label24; + label24: while(0); + /* ./compiling//compiling_icode.nit:721 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_25) { + fra.me.REG[7] = BOX_NativeString(")+1)"); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_25 = fra.me.REG[7]; + register_static_object(&once_value_25); + } else fra.me.REG[7] = once_value_25; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:722 */ + if (!once_value_26) { + if (!once_value_27) { + fra.me.REG[6] = BOX_NativeString("prec"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_27 = fra.me.REG[6]; + register_static_object(&once_value_27); + } else fra.me.REG[6] = once_value_27; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_26 = fra.me.REG[6]; + register_static_object(&once_value_26); + } else fra.me.REG[6] = once_value_26; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:723 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_28) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_28 = fra.me.REG[7]; + register_static_object(&once_value_28); + } else fra.me.REG[7] = once_value_28; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label29; + label29: while(0); + /* ./compiling//compiling_icode.nit:723 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_30) { + fra.me.REG[7] = BOX_NativeString(")-1)"); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_30 = fra.me.REG[7]; + register_static_object(&once_value_30); + } else fra.me.REG[7] = once_value_30; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:724 */ + if (!once_value_31) { + if (!once_value_32) { + fra.me.REG[6] = BOX_NativeString("to_f"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_32 = fra.me.REG[6]; + register_static_object(&once_value_32); + } else fra.me.REG[6] = once_value_32; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_31 = fra.me.REG[6]; + register_static_object(&once_value_31); + } else fra.me.REG[6] = once_value_31; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:725 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_33) { + fra.me.REG[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int("); + REGB1 = TAG_Int(27); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_33 = fra.me.REG[7]; + register_static_object(&once_value_33); + } else fra.me.REG[7] = once_value_33; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label34; + label34: while(0); + /* ./compiling//compiling_icode.nit:725 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_35) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_35 = fra.me.REG[7]; + register_static_object(&once_value_35); + } else fra.me.REG[7] = once_value_35; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:726 */ + if (!once_value_36) { + if (!once_value_37) { + fra.me.REG[6] = BOX_NativeString("+"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_37 = fra.me.REG[6]; + register_static_object(&once_value_37); + } else fra.me.REG[6] = once_value_37; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_36 = fra.me.REG[6]; + register_static_object(&once_value_36); + } else fra.me.REG[6] = once_value_36; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:727 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_38) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_38 = fra.me.REG[7]; + register_static_object(&once_value_38); + } else fra.me.REG[7] = once_value_38; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label39; + label39: while(0); + /* ./compiling//compiling_icode.nit:727 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_40) { + fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_40 = fra.me.REG[7]; + register_static_object(&once_value_40); + } else fra.me.REG[7] = once_value_40; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label41; + label41: while(0); + /* ./compiling//compiling_icode.nit:727 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_42) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_42 = fra.me.REG[7]; + register_static_object(&once_value_42); + } else fra.me.REG[7] = once_value_42; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:728 */ + if (!once_value_43) { + if (!once_value_44) { + fra.me.REG[6] = BOX_NativeString("-"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_44 = fra.me.REG[6]; + register_static_object(&once_value_44); + } else fra.me.REG[6] = once_value_44; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_43 = fra.me.REG[6]; + register_static_object(&once_value_43); + } else fra.me.REG[6] = once_value_43; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:729 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_45) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_45 = fra.me.REG[7]; + register_static_object(&once_value_45); + } else fra.me.REG[7] = once_value_45; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label46; + label46: while(0); + /* ./compiling//compiling_icode.nit:729 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_47) { + fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_47 = fra.me.REG[7]; + register_static_object(&once_value_47); + } else fra.me.REG[7] = once_value_47; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label48; + label48: while(0); + /* ./compiling//compiling_icode.nit:729 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_49) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_49 = fra.me.REG[7]; + register_static_object(&once_value_49); + } else fra.me.REG[7] = once_value_49; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:730 */ + if (!once_value_50) { + if (!once_value_51) { + fra.me.REG[6] = BOX_NativeString("*"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_51 = fra.me.REG[6]; + register_static_object(&once_value_51); + } else fra.me.REG[6] = once_value_51; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_50 = fra.me.REG[6]; + register_static_object(&once_value_50); + } else fra.me.REG[6] = once_value_50; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:731 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_52) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_52 = fra.me.REG[7]; + register_static_object(&once_value_52); + } else fra.me.REG[7] = once_value_52; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label53; + label53: while(0); + /* ./compiling//compiling_icode.nit:731 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_54) { + fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_54 = fra.me.REG[7]; + register_static_object(&once_value_54); + } else fra.me.REG[7] = once_value_54; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label55; + label55: while(0); + /* ./compiling//compiling_icode.nit:731 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_56) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_56 = fra.me.REG[7]; + register_static_object(&once_value_56); + } else fra.me.REG[7] = once_value_56; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:732 */ + if (!once_value_57) { + if (!once_value_58) { + fra.me.REG[6] = BOX_NativeString("/"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_58 = fra.me.REG[6]; + register_static_object(&once_value_58); + } else fra.me.REG[6] = once_value_58; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_57 = fra.me.REG[6]; + register_static_object(&once_value_57); + } else fra.me.REG[6] = once_value_57; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:733 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_59) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_59 = fra.me.REG[7]; + register_static_object(&once_value_59); + } else fra.me.REG[7] = once_value_59; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label60; + label60: while(0); + /* ./compiling//compiling_icode.nit:733 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_61) { + fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_61 = fra.me.REG[7]; + register_static_object(&once_value_61); + } else fra.me.REG[7] = once_value_61; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label62; + label62: while(0); + /* ./compiling//compiling_icode.nit:733 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_63) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_63 = fra.me.REG[7]; + register_static_object(&once_value_63); + } else fra.me.REG[7] = once_value_63; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:734 */ + if (!once_value_64) { + if (!once_value_65) { + fra.me.REG[6] = BOX_NativeString("%"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_65 = fra.me.REG[6]; + register_static_object(&once_value_65); + } else fra.me.REG[6] = once_value_65; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_64 = fra.me.REG[6]; + register_static_object(&once_value_64); + } else fra.me.REG[6] = once_value_64; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:735 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_66) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_66 = fra.me.REG[7]; + register_static_object(&once_value_66); + } else fra.me.REG[7] = once_value_66; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label67; + label67: while(0); + /* ./compiling//compiling_icode.nit:735 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_68) { + fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_68 = fra.me.REG[7]; + register_static_object(&once_value_68); + } else fra.me.REG[7] = once_value_68; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label69; + label69: while(0); + /* ./compiling//compiling_icode.nit:735 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_70) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_70 = fra.me.REG[7]; + register_static_object(&once_value_70); + } else fra.me.REG[7] = once_value_70; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:736 */ + if (!once_value_71) { + if (!once_value_72) { + fra.me.REG[6] = BOX_NativeString("<"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_72 = fra.me.REG[6]; + register_static_object(&once_value_72); + } else fra.me.REG[6] = once_value_72; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_71 = fra.me.REG[6]; + register_static_object(&once_value_71); + } else fra.me.REG[6] = once_value_71; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:737 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_73) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_73 = fra.me.REG[7]; + register_static_object(&once_value_73); + } else fra.me.REG[7] = once_value_73; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label74; + label74: while(0); + /* ./compiling//compiling_icode.nit:737 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_75) { + fra.me.REG[7] = BOX_NativeString(")=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label76; + label76: while(0); + /* ./compiling//compiling_icode.nit:737 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_77) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_77 = fra.me.REG[7]; + register_static_object(&once_value_77); + } else fra.me.REG[7] = once_value_77; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:738 */ + if (!once_value_78) { + if (!once_value_79) { + fra.me.REG[6] = BOX_NativeString(">"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_79 = fra.me.REG[6]; + register_static_object(&once_value_79); + } else fra.me.REG[6] = once_value_79; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_78 = fra.me.REG[6]; + register_static_object(&once_value_78); + } else fra.me.REG[6] = once_value_78; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:739 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_80) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_80 = fra.me.REG[7]; + register_static_object(&once_value_80); + } else fra.me.REG[7] = once_value_80; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label81; + label81: while(0); + /* ./compiling//compiling_icode.nit:739 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_82) { + fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_82 = fra.me.REG[7]; + register_static_object(&once_value_82); + } else fra.me.REG[7] = once_value_82; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label83; + label83: while(0); + /* ./compiling//compiling_icode.nit:739 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_84) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_84 = fra.me.REG[7]; + register_static_object(&once_value_84); + } else fra.me.REG[7] = once_value_84; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:740 */ + if (!once_value_85) { + if (!once_value_86) { + fra.me.REG[6] = BOX_NativeString("<="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_86 = fra.me.REG[6]; + register_static_object(&once_value_86); + } else fra.me.REG[6] = once_value_86; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_85 = fra.me.REG[6]; + register_static_object(&once_value_85); + } else fra.me.REG[6] = once_value_85; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:741 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_87) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_87 = fra.me.REG[7]; + register_static_object(&once_value_87); + } else fra.me.REG[7] = once_value_87; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label88; + label88: while(0); + /* ./compiling//compiling_icode.nit:741 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_89) { + fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_89 = fra.me.REG[7]; + register_static_object(&once_value_89); + } else fra.me.REG[7] = once_value_89; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label90; + label90: while(0); + /* ./compiling//compiling_icode.nit:741 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_91) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_91 = fra.me.REG[7]; + register_static_object(&once_value_91); + } else fra.me.REG[7] = once_value_91; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:742 */ + if (!once_value_92) { + if (!once_value_93) { + fra.me.REG[6] = BOX_NativeString(">="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_93 = fra.me.REG[6]; + register_static_object(&once_value_93); + } else fra.me.REG[6] = once_value_93; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_92 = fra.me.REG[6]; + register_static_object(&once_value_92); + } else fra.me.REG[6] = once_value_92; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:743 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_94) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Int("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_94 = fra.me.REG[7]; + register_static_object(&once_value_94); + } else fra.me.REG[7] = once_value_94; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label95; + label95: while(0); + /* ./compiling//compiling_icode.nit:743 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_96) { + fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_96 = fra.me.REG[7]; + register_static_object(&once_value_96); + } else fra.me.REG[7] = once_value_96; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label97; + label97: while(0); + /* ./compiling//compiling_icode.nit:743 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_98) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_98 = fra.me.REG[7]; + register_static_object(&once_value_98); + } else fra.me.REG[7] = once_value_98; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:744 */ + if (!once_value_99) { + if (!once_value_100) { + fra.me.REG[6] = BOX_NativeString("lshift"); + REGB1 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_100 = fra.me.REG[6]; + register_static_object(&once_value_100); + } else fra.me.REG[6] = once_value_100; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_99 = fra.me.REG[6]; + register_static_object(&once_value_99); + } else fra.me.REG[6] = once_value_99; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:745 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_101) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_101 = fra.me.REG[7]; + register_static_object(&once_value_101); + } else fra.me.REG[7] = once_value_101; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label102; + label102: while(0); + /* ./compiling//compiling_icode.nit:745 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_103) { + fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label104; + label104: while(0); + /* ./compiling//compiling_icode.nit:745 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_105) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_105 = fra.me.REG[7]; + register_static_object(&once_value_105); + } else fra.me.REG[7] = once_value_105; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:746 */ + if (!once_value_106) { + if (!once_value_107) { + fra.me.REG[6] = BOX_NativeString("rshift"); + REGB1 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_107 = fra.me.REG[6]; + register_static_object(&once_value_107); + } else fra.me.REG[6] = once_value_107; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_106 = fra.me.REG[6]; + register_static_object(&once_value_106); + } else fra.me.REG[6] = once_value_106; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:747 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_108) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_108 = fra.me.REG[7]; + register_static_object(&once_value_108); + } else fra.me.REG[7] = once_value_108; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label109; + label109: while(0); + /* ./compiling//compiling_icode.nit:747 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_110) { + fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_110 = fra.me.REG[7]; + register_static_object(&once_value_110); + } else fra.me.REG[7] = once_value_110; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label111; + label111: while(0); + /* ./compiling//compiling_icode.nit:747 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_112) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_112 = fra.me.REG[7]; + register_static_object(&once_value_112); + } else fra.me.REG[7] = once_value_112; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:748 */ + if (!once_value_113) { + if (!once_value_114) { + fra.me.REG[6] = BOX_NativeString("=="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_114 = fra.me.REG[6]; + register_static_object(&once_value_114); + } else fra.me.REG[6] = once_value_114; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_113 = fra.me.REG[6]; + register_static_object(&once_value_113); + } else fra.me.REG[6] = once_value_113; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:749 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_115) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(("); + REGB1 = TAG_Int(10); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_115 = fra.me.REG[7]; + register_static_object(&once_value_115); + } else fra.me.REG[7] = once_value_115; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label116; + label116: while(0); + /* ./compiling//compiling_icode.nit:749 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_117) { + fra.me.REG[7] = BOX_NativeString(")==("); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_117 = fra.me.REG[7]; + register_static_object(&once_value_117); + } else fra.me.REG[7] = once_value_117; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label118; + label118: while(0); + /* ./compiling//compiling_icode.nit:749 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_119) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_119 = fra.me.REG[7]; + register_static_object(&once_value_119); + } else fra.me.REG[7] = once_value_119; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:750 */ + if (!once_value_120) { + if (!once_value_121) { + fra.me.REG[6] = BOX_NativeString("!="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_121 = fra.me.REG[6]; + register_static_object(&once_value_121); + } else fra.me.REG[6] = once_value_121; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_120 = fra.me.REG[6]; + register_static_object(&once_value_120); + } else fra.me.REG[6] = once_value_120; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:751 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_122) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(("); + REGB1 = TAG_Int(10); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_122 = fra.me.REG[7]; + register_static_object(&once_value_122); + } else fra.me.REG[7] = once_value_122; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label123; + label123: while(0); + /* ./compiling//compiling_icode.nit:751 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_124) { + fra.me.REG[7] = BOX_NativeString(")!=("); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_124 = fra.me.REG[7]; + register_static_object(&once_value_124); + } else fra.me.REG[7] = once_value_124; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label125; + label125: while(0); + /* ./compiling//compiling_icode.nit:751 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_126) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_126 = fra.me.REG[7]; + register_static_object(&once_value_126); + } else fra.me.REG[7] = once_value_126; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } else { + /* ./compiling//compiling_icode.nit:753 */ + if (!once_value_127) { + if (!once_value_128) { + fra.me.REG[6] = BOX_NativeString("Float"); + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_128 = fra.me.REG[6]; + register_static_object(&once_value_128); + } else fra.me.REG[6] = once_value_128; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_127 = fra.me.REG[6]; + register_static_object(&once_value_127); + } else fra.me.REG[6] = once_value_127; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:754 */ + if (!once_value_129) { + if (!once_value_130) { + fra.me.REG[6] = BOX_NativeString("object_id"); + REGB1 = TAG_Int(9); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_130 = fra.me.REG[6]; + register_static_object(&once_value_130); + } else fra.me.REG[6] = once_value_130; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_129 = fra.me.REG[6]; + register_static_object(&once_value_129); + } else fra.me.REG[6] = once_value_129; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:755 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_131) { + fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float("); + REGB1 = TAG_Int(28); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_131 = fra.me.REG[7]; + register_static_object(&once_value_131); + } else fra.me.REG[7] = once_value_131; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label132; + label132: while(0); + /* ./compiling//compiling_icode.nit:755 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_133) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_133 = fra.me.REG[7]; + register_static_object(&once_value_133); + } else fra.me.REG[7] = once_value_133; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:756 */ + if (!once_value_134) { + if (!once_value_135) { + fra.me.REG[6] = BOX_NativeString("unary -"); + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_135 = fra.me.REG[6]; + register_static_object(&once_value_135); + } else fra.me.REG[6] = once_value_135; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_134 = fra.me.REG[6]; + register_static_object(&once_value_134); + } else fra.me.REG[6] = once_value_134; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:757 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_136) { + fra.me.REG[7] = BOX_NativeString("BOX_Float(-UNBOX_Float("); + REGB1 = TAG_Int(23); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_136 = fra.me.REG[7]; + register_static_object(&once_value_136); + } else fra.me.REG[7] = once_value_136; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label137; + label137: while(0); + /* ./compiling//compiling_icode.nit:757 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_138) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_138 = fra.me.REG[7]; + register_static_object(&once_value_138); + } else fra.me.REG[7] = once_value_138; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:758 */ + if (!once_value_139) { + if (!once_value_140) { + fra.me.REG[6] = BOX_NativeString("output"); + REGB1 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_140 = fra.me.REG[6]; + register_static_object(&once_value_140); + } else fra.me.REG[6] = once_value_140; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_139 = fra.me.REG[6]; + register_static_object(&once_value_139); + } else fra.me.REG[6] = once_value_139; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:759 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_141) { + fra.me.REG[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float("); + REGB1 = TAG_Int(27); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_141 = fra.me.REG[7]; + register_static_object(&once_value_141); + } else fra.me.REG[7] = once_value_141; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label142; + label142: while(0); + /* ./compiling//compiling_icode.nit:759 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_143) { + fra.me.REG[7] = BOX_NativeString("));"); + REGB1 = TAG_Int(3); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_143 = fra.me.REG[7]; + register_static_object(&once_value_143); + } else fra.me.REG[7] = once_value_143; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:760 */ + if (!once_value_144) { + if (!once_value_145) { + fra.me.REG[6] = BOX_NativeString("to_i"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_145 = fra.me.REG[6]; + register_static_object(&once_value_145); + } else fra.me.REG[6] = once_value_145; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_144 = fra.me.REG[6]; + register_static_object(&once_value_144); + } else fra.me.REG[6] = once_value_144; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:761 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_146) { + fra.me.REG[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float("); + REGB1 = TAG_Int(28); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_146 = fra.me.REG[7]; + register_static_object(&once_value_146); + } else fra.me.REG[7] = once_value_146; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label147; + label147: while(0); + /* ./compiling//compiling_icode.nit:761 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_148) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_148 = fra.me.REG[7]; + register_static_object(&once_value_148); + } else fra.me.REG[7] = once_value_148; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:762 */ + if (!once_value_149) { + if (!once_value_150) { + fra.me.REG[6] = BOX_NativeString("+"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_150 = fra.me.REG[6]; + register_static_object(&once_value_150); + } else fra.me.REG[6] = once_value_150; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_149 = fra.me.REG[6]; + register_static_object(&once_value_149); + } else fra.me.REG[6] = once_value_149; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:763 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_151) { + fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float("); + REGB1 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_151 = fra.me.REG[7]; + register_static_object(&once_value_151); + } else fra.me.REG[7] = once_value_151; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label152; + label152: while(0); + /* ./compiling//compiling_icode.nit:763 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_153) { + fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float("); + REGB1 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_153 = fra.me.REG[7]; + register_static_object(&once_value_153); + } else fra.me.REG[7] = once_value_153; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label154; + label154: while(0); + /* ./compiling//compiling_icode.nit:763 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_155) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_155 = fra.me.REG[7]; + register_static_object(&once_value_155); + } else fra.me.REG[7] = once_value_155; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:764 */ + if (!once_value_156) { + if (!once_value_157) { + fra.me.REG[6] = BOX_NativeString("-"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_157 = fra.me.REG[6]; + register_static_object(&once_value_157); + } else fra.me.REG[6] = once_value_157; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_156 = fra.me.REG[6]; + register_static_object(&once_value_156); + } else fra.me.REG[6] = once_value_156; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:765 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_158) { + fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float("); + REGB1 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_158 = fra.me.REG[7]; + register_static_object(&once_value_158); + } else fra.me.REG[7] = once_value_158; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label159; + label159: while(0); + /* ./compiling//compiling_icode.nit:765 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_160) { + fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float("); + REGB1 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_160 = fra.me.REG[7]; + register_static_object(&once_value_160); + } else fra.me.REG[7] = once_value_160; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label161; + label161: while(0); + /* ./compiling//compiling_icode.nit:765 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_162) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_162 = fra.me.REG[7]; + register_static_object(&once_value_162); + } else fra.me.REG[7] = once_value_162; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:766 */ + if (!once_value_163) { + if (!once_value_164) { + fra.me.REG[6] = BOX_NativeString("*"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_164 = fra.me.REG[6]; + register_static_object(&once_value_164); + } else fra.me.REG[6] = once_value_164; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_163 = fra.me.REG[6]; + register_static_object(&once_value_163); + } else fra.me.REG[6] = once_value_163; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:767 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_165) { + fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float("); + REGB1 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_165 = fra.me.REG[7]; + register_static_object(&once_value_165); + } else fra.me.REG[7] = once_value_165; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label166; + label166: while(0); + /* ./compiling//compiling_icode.nit:767 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_167) { + fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float("); + REGB1 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_167 = fra.me.REG[7]; + register_static_object(&once_value_167); + } else fra.me.REG[7] = once_value_167; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label168; + label168: while(0); + /* ./compiling//compiling_icode.nit:767 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_169) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_169 = fra.me.REG[7]; + register_static_object(&once_value_169); + } else fra.me.REG[7] = once_value_169; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:768 */ + if (!once_value_170) { + if (!once_value_171) { + fra.me.REG[6] = BOX_NativeString("/"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_171 = fra.me.REG[6]; + register_static_object(&once_value_171); + } else fra.me.REG[6] = once_value_171; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_170 = fra.me.REG[6]; + register_static_object(&once_value_170); + } else fra.me.REG[6] = once_value_170; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:769 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_172) { + fra.me.REG[7] = BOX_NativeString("BOX_Float(UNBOX_Float("); + REGB1 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_172 = fra.me.REG[7]; + register_static_object(&once_value_172); + } else fra.me.REG[7] = once_value_172; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label173; + label173: while(0); + /* ./compiling//compiling_icode.nit:769 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_174) { + fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float("); + REGB1 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_174 = fra.me.REG[7]; + register_static_object(&once_value_174); + } else fra.me.REG[7] = once_value_174; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label175; + label175: while(0); + /* ./compiling//compiling_icode.nit:769 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_176) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_176 = fra.me.REG[7]; + register_static_object(&once_value_176); + } else fra.me.REG[7] = once_value_176; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:770 */ + if (!once_value_177) { + if (!once_value_178) { + fra.me.REG[6] = BOX_NativeString("<"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_178 = fra.me.REG[6]; + register_static_object(&once_value_178); + } else fra.me.REG[6] = once_value_178; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_177 = fra.me.REG[6]; + register_static_object(&once_value_177); + } else fra.me.REG[6] = once_value_177; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:771 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_179) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float("); + REGB1 = TAG_Int(21); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_179 = fra.me.REG[7]; + register_static_object(&once_value_179); + } else fra.me.REG[7] = once_value_179; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label180; + label180: while(0); + /* ./compiling//compiling_icode.nit:771 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_181) { + fra.me.REG[7] = BOX_NativeString(")=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label182; + label182: while(0); + /* ./compiling//compiling_icode.nit:771 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_183) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_183 = fra.me.REG[7]; + register_static_object(&once_value_183); + } else fra.me.REG[7] = once_value_183; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:772 */ + if (!once_value_184) { + if (!once_value_185) { + fra.me.REG[6] = BOX_NativeString(">"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_185 = fra.me.REG[6]; + register_static_object(&once_value_185); + } else fra.me.REG[6] = once_value_185; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_184 = fra.me.REG[6]; + register_static_object(&once_value_184); + } else fra.me.REG[6] = once_value_184; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:773 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_186) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float("); + REGB1 = TAG_Int(21); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_186 = fra.me.REG[7]; + register_static_object(&once_value_186); + } else fra.me.REG[7] = once_value_186; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label187; + label187: while(0); + /* ./compiling//compiling_icode.nit:773 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_188) { + fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float("); + REGB1 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_188 = fra.me.REG[7]; + register_static_object(&once_value_188); + } else fra.me.REG[7] = once_value_188; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label189; + label189: while(0); + /* ./compiling//compiling_icode.nit:773 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_190) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_190 = fra.me.REG[7]; + register_static_object(&once_value_190); + } else fra.me.REG[7] = once_value_190; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:774 */ + if (!once_value_191) { + if (!once_value_192) { + fra.me.REG[6] = BOX_NativeString("<="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_192 = fra.me.REG[6]; + register_static_object(&once_value_192); + } else fra.me.REG[6] = once_value_192; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_191 = fra.me.REG[6]; + register_static_object(&once_value_191); + } else fra.me.REG[6] = once_value_191; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:775 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_193) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float("); + REGB1 = TAG_Int(21); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_193 = fra.me.REG[7]; + register_static_object(&once_value_193); + } else fra.me.REG[7] = once_value_193; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label194; + label194: while(0); + /* ./compiling//compiling_icode.nit:775 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_195) { + fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float("); + REGB1 = TAG_Int(15); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_195 = fra.me.REG[7]; + register_static_object(&once_value_195); + } else fra.me.REG[7] = once_value_195; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label196; + label196: while(0); + /* ./compiling//compiling_icode.nit:775 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_197) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_197 = fra.me.REG[7]; + register_static_object(&once_value_197); + } else fra.me.REG[7] = once_value_197; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:776 */ + if (!once_value_198) { + if (!once_value_199) { + fra.me.REG[6] = BOX_NativeString(">="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_199 = fra.me.REG[6]; + register_static_object(&once_value_199); + } else fra.me.REG[6] = once_value_199; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_198 = fra.me.REG[6]; + register_static_object(&once_value_198); + } else fra.me.REG[6] = once_value_198; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:777 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_200) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNBOX_Float("); + REGB1 = TAG_Int(21); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_200 = fra.me.REG[7]; + register_static_object(&once_value_200); + } else fra.me.REG[7] = once_value_200; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label201; + label201: while(0); + /* ./compiling//compiling_icode.nit:777 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_202) { + fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float("); + REGB1 = TAG_Int(15); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_202 = fra.me.REG[7]; + register_static_object(&once_value_202); + } else fra.me.REG[7] = once_value_202; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label203; + label203: while(0); + /* ./compiling//compiling_icode.nit:777 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_204) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_204 = fra.me.REG[7]; + register_static_object(&once_value_204); + } else fra.me.REG[7] = once_value_204; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + } + } + } + } + } + } + } + } + } + } + } + } else { + /* ./compiling//compiling_icode.nit:779 */ + if (!once_value_205) { + if (!once_value_206) { + fra.me.REG[6] = BOX_NativeString("Char"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_206 = fra.me.REG[6]; + register_static_object(&once_value_206); + } else fra.me.REG[6] = once_value_206; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_205 = fra.me.REG[6]; + register_static_object(&once_value_205); + } else fra.me.REG[6] = once_value_205; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:780 */ + if (!once_value_207) { + if (!once_value_208) { + fra.me.REG[6] = BOX_NativeString("object_id"); + REGB1 = TAG_Int(9); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_208 = fra.me.REG[6]; + register_static_object(&once_value_208); + } else fra.me.REG[6] = once_value_208; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_207 = fra.me.REG[6]; + register_static_object(&once_value_207); + } else fra.me.REG[6] = once_value_207; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:781 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_209) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_209 = fra.me.REG[7]; + register_static_object(&once_value_209); + } else fra.me.REG[7] = once_value_209; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label210; + label210: while(0); + /* ./compiling//compiling_icode.nit:781 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_211) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_211 = fra.me.REG[7]; + register_static_object(&once_value_211); + } else fra.me.REG[7] = once_value_211; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:782 */ + if (!once_value_212) { + if (!once_value_213) { + fra.me.REG[6] = BOX_NativeString("unary -"); + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_213 = fra.me.REG[6]; + register_static_object(&once_value_213); + } else fra.me.REG[6] = once_value_213; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_212 = fra.me.REG[6]; + register_static_object(&once_value_212); + } else fra.me.REG[6] = once_value_212; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:783 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_214) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(-UNTAG_Char("); + REGB1 = TAG_Int(21); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_214 = fra.me.REG[7]; + register_static_object(&once_value_214); + } else fra.me.REG[7] = once_value_214; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label215; + label215: while(0); + /* ./compiling//compiling_icode.nit:783 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_216) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_216 = fra.me.REG[7]; + register_static_object(&once_value_216); + } else fra.me.REG[7] = once_value_216; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:784 */ + if (!once_value_217) { + if (!once_value_218) { + fra.me.REG[6] = BOX_NativeString("output"); + REGB1 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_218 = fra.me.REG[6]; + register_static_object(&once_value_218); + } else fra.me.REG[6] = once_value_218; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_217 = fra.me.REG[6]; + register_static_object(&once_value_217); + } else fra.me.REG[6] = once_value_217; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:785 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_219) { + fra.me.REG[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char("); + REGB1 = TAG_Int(39); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_219 = fra.me.REG[7]; + register_static_object(&once_value_219); + } else fra.me.REG[7] = once_value_219; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label220; + label220: while(0); + /* ./compiling//compiling_icode.nit:785 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_221) { + fra.me.REG[7] = BOX_NativeString("));"); + REGB1 = TAG_Int(3); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_221 = fra.me.REG[7]; + register_static_object(&once_value_221); + } else fra.me.REG[7] = once_value_221; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:786 */ + if (!once_value_222) { + if (!once_value_223) { + fra.me.REG[6] = BOX_NativeString("ascii"); + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_223 = fra.me.REG[6]; + register_static_object(&once_value_223); + } else fra.me.REG[6] = once_value_223; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_222 = fra.me.REG[6]; + register_static_object(&once_value_222); + } else fra.me.REG[6] = once_value_222; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:787 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_224) { + fra.me.REG[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char("); + REGB1 = TAG_Int(34); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_224 = fra.me.REG[7]; + register_static_object(&once_value_224); + } else fra.me.REG[7] = once_value_224; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label225; + label225: while(0); + /* ./compiling//compiling_icode.nit:787 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_226) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_226 = fra.me.REG[7]; + register_static_object(&once_value_226); + } else fra.me.REG[7] = once_value_226; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:788 */ + if (!once_value_227) { + if (!once_value_228) { + fra.me.REG[6] = BOX_NativeString("succ"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_228 = fra.me.REG[6]; + register_static_object(&once_value_228); + } else fra.me.REG[6] = once_value_228; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_227 = fra.me.REG[6]; + register_static_object(&once_value_227); + } else fra.me.REG[6] = once_value_227; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:789 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_229) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_229 = fra.me.REG[7]; + register_static_object(&once_value_229); + } else fra.me.REG[7] = once_value_229; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label230; + label230: while(0); + /* ./compiling//compiling_icode.nit:789 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_231) { + fra.me.REG[7] = BOX_NativeString(")+1)"); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_231 = fra.me.REG[7]; + register_static_object(&once_value_231); + } else fra.me.REG[7] = once_value_231; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:790 */ + if (!once_value_232) { + if (!once_value_233) { + fra.me.REG[6] = BOX_NativeString("prec"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_233 = fra.me.REG[6]; + register_static_object(&once_value_233); + } else fra.me.REG[6] = once_value_233; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_232 = fra.me.REG[6]; + register_static_object(&once_value_232); + } else fra.me.REG[6] = once_value_232; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:791 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_234) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_234 = fra.me.REG[7]; + register_static_object(&once_value_234); + } else fra.me.REG[7] = once_value_234; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label235; + label235: while(0); + /* ./compiling//compiling_icode.nit:791 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_236) { + fra.me.REG[7] = BOX_NativeString(")-1)"); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_236 = fra.me.REG[7]; + register_static_object(&once_value_236); + } else fra.me.REG[7] = once_value_236; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:792 */ + if (!once_value_237) { + if (!once_value_238) { + fra.me.REG[6] = BOX_NativeString("to_i"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_238 = fra.me.REG[6]; + register_static_object(&once_value_238); + } else fra.me.REG[6] = once_value_238; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_237 = fra.me.REG[6]; + register_static_object(&once_value_237); + } else fra.me.REG[6] = once_value_237; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:793 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_239) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Char("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_239 = fra.me.REG[7]; + register_static_object(&once_value_239); + } else fra.me.REG[7] = once_value_239; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label240; + label240: while(0); + /* ./compiling//compiling_icode.nit:793 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_241) { + fra.me.REG[7] = BOX_NativeString(")-'0')"); + REGB1 = TAG_Int(6); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_241 = fra.me.REG[7]; + register_static_object(&once_value_241); + } else fra.me.REG[7] = once_value_241; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:794 */ + if (!once_value_242) { + if (!once_value_243) { + fra.me.REG[6] = BOX_NativeString("+"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_243 = fra.me.REG[6]; + register_static_object(&once_value_243); + } else fra.me.REG[6] = once_value_243; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_242 = fra.me.REG[6]; + register_static_object(&once_value_242); + } else fra.me.REG[6] = once_value_242; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:795 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_244) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_244 = fra.me.REG[7]; + register_static_object(&once_value_244); + } else fra.me.REG[7] = once_value_244; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label245; + label245: while(0); + /* ./compiling//compiling_icode.nit:795 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_246) { + fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_246 = fra.me.REG[7]; + register_static_object(&once_value_246); + } else fra.me.REG[7] = once_value_246; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label247; + label247: while(0); + /* ./compiling//compiling_icode.nit:795 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_248) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_248 = fra.me.REG[7]; + register_static_object(&once_value_248); + } else fra.me.REG[7] = once_value_248; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:796 */ + if (!once_value_249) { + if (!once_value_250) { + fra.me.REG[6] = BOX_NativeString("-"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_250 = fra.me.REG[6]; + register_static_object(&once_value_250); + } else fra.me.REG[6] = once_value_250; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_249 = fra.me.REG[6]; + register_static_object(&once_value_249); + } else fra.me.REG[6] = once_value_249; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:797 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_251) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_251 = fra.me.REG[7]; + register_static_object(&once_value_251); + } else fra.me.REG[7] = once_value_251; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label252; + label252: while(0); + /* ./compiling//compiling_icode.nit:797 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_253) { + fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_253 = fra.me.REG[7]; + register_static_object(&once_value_253); + } else fra.me.REG[7] = once_value_253; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label254; + label254: while(0); + /* ./compiling//compiling_icode.nit:797 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_255) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_255 = fra.me.REG[7]; + register_static_object(&once_value_255); + } else fra.me.REG[7] = once_value_255; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:798 */ + if (!once_value_256) { + if (!once_value_257) { + fra.me.REG[6] = BOX_NativeString("*"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_257 = fra.me.REG[6]; + register_static_object(&once_value_257); + } else fra.me.REG[6] = once_value_257; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_256 = fra.me.REG[6]; + register_static_object(&once_value_256); + } else fra.me.REG[6] = once_value_256; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:799 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_258) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_258 = fra.me.REG[7]; + register_static_object(&once_value_258); + } else fra.me.REG[7] = once_value_258; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label259; + label259: while(0); + /* ./compiling//compiling_icode.nit:799 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_260) { + fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_260 = fra.me.REG[7]; + register_static_object(&once_value_260); + } else fra.me.REG[7] = once_value_260; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label261; + label261: while(0); + /* ./compiling//compiling_icode.nit:799 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_262) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_262 = fra.me.REG[7]; + register_static_object(&once_value_262); + } else fra.me.REG[7] = once_value_262; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:800 */ + if (!once_value_263) { + if (!once_value_264) { + fra.me.REG[6] = BOX_NativeString("/"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_264 = fra.me.REG[6]; + register_static_object(&once_value_264); + } else fra.me.REG[6] = once_value_264; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_263 = fra.me.REG[6]; + register_static_object(&once_value_263); + } else fra.me.REG[6] = once_value_263; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:801 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_265) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_265 = fra.me.REG[7]; + register_static_object(&once_value_265); + } else fra.me.REG[7] = once_value_265; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label266; + label266: while(0); + /* ./compiling//compiling_icode.nit:801 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_267) { + fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_267 = fra.me.REG[7]; + register_static_object(&once_value_267); + } else fra.me.REG[7] = once_value_267; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label268; + label268: while(0); + /* ./compiling//compiling_icode.nit:801 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_269) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_269 = fra.me.REG[7]; + register_static_object(&once_value_269); + } else fra.me.REG[7] = once_value_269; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:802 */ + if (!once_value_270) { + if (!once_value_271) { + fra.me.REG[6] = BOX_NativeString("%"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_271 = fra.me.REG[6]; + register_static_object(&once_value_271); + } else fra.me.REG[6] = once_value_271; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_270 = fra.me.REG[6]; + register_static_object(&once_value_270); + } else fra.me.REG[6] = once_value_270; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:803 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_272) { + fra.me.REG[7] = BOX_NativeString("TAG_Char(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_272 = fra.me.REG[7]; + register_static_object(&once_value_272); + } else fra.me.REG[7] = once_value_272; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label273; + label273: while(0); + /* ./compiling//compiling_icode.nit:803 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_274) { + fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_274 = fra.me.REG[7]; + register_static_object(&once_value_274); + } else fra.me.REG[7] = once_value_274; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label275; + label275: while(0); + /* ./compiling//compiling_icode.nit:803 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_276) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_276 = fra.me.REG[7]; + register_static_object(&once_value_276); + } else fra.me.REG[7] = once_value_276; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:804 */ + if (!once_value_277) { + if (!once_value_278) { + fra.me.REG[6] = BOX_NativeString("<"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_278 = fra.me.REG[6]; + register_static_object(&once_value_278); + } else fra.me.REG[6] = once_value_278; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_277 = fra.me.REG[6]; + register_static_object(&once_value_277); + } else fra.me.REG[6] = once_value_277; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:805 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_279) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_279 = fra.me.REG[7]; + register_static_object(&once_value_279); + } else fra.me.REG[7] = once_value_279; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label280; + label280: while(0); + /* ./compiling//compiling_icode.nit:805 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_281) { + fra.me.REG[7] = BOX_NativeString(")=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label282; + label282: while(0); + /* ./compiling//compiling_icode.nit:805 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_283) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_283 = fra.me.REG[7]; + register_static_object(&once_value_283); + } else fra.me.REG[7] = once_value_283; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:806 */ + if (!once_value_284) { + if (!once_value_285) { + fra.me.REG[6] = BOX_NativeString(">"); + REGB1 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_285 = fra.me.REG[6]; + register_static_object(&once_value_285); + } else fra.me.REG[6] = once_value_285; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_284 = fra.me.REG[6]; + register_static_object(&once_value_284); + } else fra.me.REG[6] = once_value_284; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:807 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_286) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_286 = fra.me.REG[7]; + register_static_object(&once_value_286); + } else fra.me.REG[7] = once_value_286; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label287; + label287: while(0); + /* ./compiling//compiling_icode.nit:807 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_288) { + fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char("); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_288 = fra.me.REG[7]; + register_static_object(&once_value_288); + } else fra.me.REG[7] = once_value_288; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label289; + label289: while(0); + /* ./compiling//compiling_icode.nit:807 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_290) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_290 = fra.me.REG[7]; + register_static_object(&once_value_290); + } else fra.me.REG[7] = once_value_290; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:808 */ + if (!once_value_291) { + if (!once_value_292) { + fra.me.REG[6] = BOX_NativeString("<="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_292 = fra.me.REG[6]; + register_static_object(&once_value_292); + } else fra.me.REG[6] = once_value_292; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_291 = fra.me.REG[6]; + register_static_object(&once_value_291); + } else fra.me.REG[6] = once_value_291; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:809 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_293) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_293 = fra.me.REG[7]; + register_static_object(&once_value_293); + } else fra.me.REG[7] = once_value_293; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label294; + label294: while(0); + /* ./compiling//compiling_icode.nit:809 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_295) { + fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char("); + REGB1 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_295 = fra.me.REG[7]; + register_static_object(&once_value_295); + } else fra.me.REG[7] = once_value_295; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label296; + label296: while(0); + /* ./compiling//compiling_icode.nit:809 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_297) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_297 = fra.me.REG[7]; + register_static_object(&once_value_297); + } else fra.me.REG[7] = once_value_297; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:810 */ + if (!once_value_298) { + if (!once_value_299) { + fra.me.REG[6] = BOX_NativeString(">="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_299 = fra.me.REG[6]; + register_static_object(&once_value_299); + } else fra.me.REG[6] = once_value_299; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_298 = fra.me.REG[6]; + register_static_object(&once_value_298); + } else fra.me.REG[6] = once_value_298; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:811 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_300) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Char("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_300 = fra.me.REG[7]; + register_static_object(&once_value_300); + } else fra.me.REG[7] = once_value_300; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label301; + label301: while(0); + /* ./compiling//compiling_icode.nit:811 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_302) { + fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char("); + REGB1 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_302 = fra.me.REG[7]; + register_static_object(&once_value_302); + } else fra.me.REG[7] = once_value_302; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label303; + label303: while(0); + /* ./compiling//compiling_icode.nit:811 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_304) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_304 = fra.me.REG[7]; + register_static_object(&once_value_304); + } else fra.me.REG[7] = once_value_304; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:812 */ + if (!once_value_305) { + if (!once_value_306) { + fra.me.REG[6] = BOX_NativeString("=="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_306 = fra.me.REG[6]; + register_static_object(&once_value_306); + } else fra.me.REG[6] = once_value_306; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_305 = fra.me.REG[6]; + register_static_object(&once_value_305); + } else fra.me.REG[6] = once_value_305; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:813 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_307) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(("); + REGB1 = TAG_Int(10); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_307 = fra.me.REG[7]; + register_static_object(&once_value_307); + } else fra.me.REG[7] = once_value_307; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label308; + label308: while(0); + /* ./compiling//compiling_icode.nit:813 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_309) { + fra.me.REG[7] = BOX_NativeString(")==("); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_309 = fra.me.REG[7]; + register_static_object(&once_value_309); + } else fra.me.REG[7] = once_value_309; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label310; + label310: while(0); + /* ./compiling//compiling_icode.nit:813 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_311) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_311 = fra.me.REG[7]; + register_static_object(&once_value_311); + } else fra.me.REG[7] = once_value_311; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:814 */ + if (!once_value_312) { + if (!once_value_313) { + fra.me.REG[6] = BOX_NativeString("!="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_313 = fra.me.REG[6]; + register_static_object(&once_value_313); + } else fra.me.REG[6] = once_value_313; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_312 = fra.me.REG[6]; + register_static_object(&once_value_312); + } else fra.me.REG[6] = once_value_312; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:815 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_314) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(("); + REGB1 = TAG_Int(10); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_314 = fra.me.REG[7]; + register_static_object(&once_value_314); + } else fra.me.REG[7] = once_value_314; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label315; + label315: while(0); + /* ./compiling//compiling_icode.nit:815 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_316) { + fra.me.REG[7] = BOX_NativeString(")!=("); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_316 = fra.me.REG[7]; + register_static_object(&once_value_316); + } else fra.me.REG[7] = once_value_316; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label317; + label317: while(0); + /* ./compiling//compiling_icode.nit:815 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_318) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_318 = fra.me.REG[7]; + register_static_object(&once_value_318); + } else fra.me.REG[7] = once_value_318; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } else { + /* ./compiling//compiling_icode.nit:817 */ + if (!once_value_319) { + if (!once_value_320) { + fra.me.REG[6] = BOX_NativeString("Bool"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_320 = fra.me.REG[6]; + register_static_object(&once_value_320); + } else fra.me.REG[6] = once_value_320; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_319 = fra.me.REG[6]; + register_static_object(&once_value_319); + } else fra.me.REG[6] = once_value_319; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:818 */ + if (!once_value_321) { + if (!once_value_322) { + fra.me.REG[6] = BOX_NativeString("object_id"); + REGB1 = TAG_Int(9); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_322 = fra.me.REG[6]; + register_static_object(&once_value_322); + } else fra.me.REG[6] = once_value_322; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_321 = fra.me.REG[6]; + register_static_object(&once_value_321); + } else fra.me.REG[6] = once_value_321; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:819 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_323) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_323 = fra.me.REG[7]; + register_static_object(&once_value_323); + } else fra.me.REG[7] = once_value_323; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label324; + label324: while(0); + /* ./compiling//compiling_icode.nit:819 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_325) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_325 = fra.me.REG[7]; + register_static_object(&once_value_325); + } else fra.me.REG[7] = once_value_325; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:820 */ + if (!once_value_326) { + if (!once_value_327) { + fra.me.REG[6] = BOX_NativeString("unary -"); + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_327 = fra.me.REG[6]; + register_static_object(&once_value_327); + } else fra.me.REG[6] = once_value_327; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_326 = fra.me.REG[6]; + register_static_object(&once_value_326); + } else fra.me.REG[6] = once_value_326; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:821 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_328) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool("); + REGB1 = TAG_Int(21); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_328 = fra.me.REG[7]; + register_static_object(&once_value_328); + } else fra.me.REG[7] = once_value_328; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label329; + label329: while(0); + /* ./compiling//compiling_icode.nit:821 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_330) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_330 = fra.me.REG[7]; + register_static_object(&once_value_330); + } else fra.me.REG[7] = once_value_330; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:822 */ + if (!once_value_331) { + if (!once_value_332) { + fra.me.REG[6] = BOX_NativeString("output"); + REGB1 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_332 = fra.me.REG[6]; + register_static_object(&once_value_332); + } else fra.me.REG[6] = once_value_332; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_331 = fra.me.REG[6]; + register_static_object(&once_value_331); + } else fra.me.REG[6] = once_value_331; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:823 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_333) { + fra.me.REG[7] = BOX_NativeString("(void)printf(UNTAG_Bool("); + REGB1 = TAG_Int(24); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_333 = fra.me.REG[7]; + register_static_object(&once_value_333); + } else fra.me.REG[7] = once_value_333; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label334; + label334: while(0); + /* ./compiling//compiling_icode.nit:823 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_335) { + fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");"); + REGB1 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_335 = fra.me.REG[7]; + register_static_object(&once_value_335); + } else fra.me.REG[7] = once_value_335; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:824 */ + if (!once_value_336) { + if (!once_value_337) { + fra.me.REG[6] = BOX_NativeString("ascii"); + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_337 = fra.me.REG[6]; + register_static_object(&once_value_337); + } else fra.me.REG[6] = once_value_337; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_336 = fra.me.REG[6]; + register_static_object(&once_value_336); + } else fra.me.REG[6] = once_value_336; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:825 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_338) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool("); + REGB1 = TAG_Int(20); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_338 = fra.me.REG[7]; + register_static_object(&once_value_338); + } else fra.me.REG[7] = once_value_338; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label339; + label339: while(0); + /* ./compiling//compiling_icode.nit:825 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_340) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_340 = fra.me.REG[7]; + register_static_object(&once_value_340); + } else fra.me.REG[7] = once_value_340; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:826 */ + if (!once_value_341) { + if (!once_value_342) { + fra.me.REG[6] = BOX_NativeString("to_i"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_342 = fra.me.REG[6]; + register_static_object(&once_value_342); + } else fra.me.REG[6] = once_value_342; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_341 = fra.me.REG[6]; + register_static_object(&once_value_341); + } else fra.me.REG[6] = once_value_341; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:827 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_343) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(UNTAG_Bool("); + REGB1 = TAG_Int(19); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_343 = fra.me.REG[7]; + register_static_object(&once_value_343); + } else fra.me.REG[7] = once_value_343; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label344; + label344: while(0); + /* ./compiling//compiling_icode.nit:827 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_345) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_345 = fra.me.REG[7]; + register_static_object(&once_value_345); + } else fra.me.REG[7] = once_value_345; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:828 */ + if (!once_value_346) { + if (!once_value_347) { + fra.me.REG[6] = BOX_NativeString("=="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_347 = fra.me.REG[6]; + register_static_object(&once_value_347); + } else fra.me.REG[6] = once_value_347; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_346 = fra.me.REG[6]; + register_static_object(&once_value_346); + } else fra.me.REG[6] = once_value_346; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:829 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_348) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(("); + REGB1 = TAG_Int(10); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_348 = fra.me.REG[7]; + register_static_object(&once_value_348); + } else fra.me.REG[7] = once_value_348; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label349; + label349: while(0); + /* ./compiling//compiling_icode.nit:829 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_350) { + fra.me.REG[7] = BOX_NativeString(")==("); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_350 = fra.me.REG[7]; + register_static_object(&once_value_350); + } else fra.me.REG[7] = once_value_350; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label351; + label351: while(0); + /* ./compiling//compiling_icode.nit:829 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_352) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_352 = fra.me.REG[7]; + register_static_object(&once_value_352); + } else fra.me.REG[7] = once_value_352; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:830 */ + if (!once_value_353) { + if (!once_value_354) { + fra.me.REG[6] = BOX_NativeString("!="); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_354 = fra.me.REG[6]; + register_static_object(&once_value_354); + } else fra.me.REG[6] = once_value_354; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_353 = fra.me.REG[6]; + register_static_object(&once_value_353); + } else fra.me.REG[6] = once_value_353; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:831 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_355) { + fra.me.REG[7] = BOX_NativeString("TAG_Bool(("); + REGB1 = TAG_Int(10); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_355 = fra.me.REG[7]; + register_static_object(&once_value_355); + } else fra.me.REG[7] = once_value_355; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label356; + label356: while(0); + /* ./compiling//compiling_icode.nit:831 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_357) { + fra.me.REG[7] = BOX_NativeString(")!=("); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_357 = fra.me.REG[7]; + register_static_object(&once_value_357); + } else fra.me.REG[7] = once_value_357; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label358; + label358: while(0); + /* ./compiling//compiling_icode.nit:831 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_359) { + fra.me.REG[7] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_359 = fra.me.REG[7]; + register_static_object(&once_value_359); + } else fra.me.REG[7] = once_value_359; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + } + } + } + } + } + } + } else { + /* ./compiling//compiling_icode.nit:833 */ + if (!once_value_360) { + if (!once_value_361) { + fra.me.REG[6] = BOX_NativeString("NativeArray"); + REGB1 = TAG_Int(11); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_361 = fra.me.REG[6]; + register_static_object(&once_value_361); + } else fra.me.REG[6] = once_value_361; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_360 = fra.me.REG[6]; + register_static_object(&once_value_360); + } else fra.me.REG[6] = once_value_360; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:834 */ + if (!once_value_362) { + if (!once_value_363) { + fra.me.REG[6] = BOX_NativeString("object_id"); + REGB1 = TAG_Int(9); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_363 = fra.me.REG[6]; + register_static_object(&once_value_363); + } else fra.me.REG[6] = once_value_363; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_362 = fra.me.REG[6]; + register_static_object(&once_value_362); + } else fra.me.REG[6] = once_value_362; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:835 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_364) { + fra.me.REG[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)"); + REGB1 = TAG_Int(26); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_364 = fra.me.REG[7]; + register_static_object(&once_value_364); + } else fra.me.REG[7] = once_value_364; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label365; + label365: while(0); + /* ./compiling//compiling_icode.nit:835 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_366) { + fra.me.REG[7] = BOX_NativeString(")->object_id)"); + REGB1 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_366 = fra.me.REG[7]; + register_static_object(&once_value_366); + } else fra.me.REG[7] = once_value_366; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:836 */ + if (!once_value_367) { + if (!once_value_368) { + fra.me.REG[6] = BOX_NativeString("[]"); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_368 = fra.me.REG[6]; + register_static_object(&once_value_368); + } else fra.me.REG[6] = once_value_368; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_367 = fra.me.REG[6]; + register_static_object(&once_value_367); + } else fra.me.REG[6] = once_value_367; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:837 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_369) { + fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)"); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_369 = fra.me.REG[7]; + register_static_object(&once_value_369); + } else fra.me.REG[7] = once_value_369; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label370; + label370: while(0); + /* ./compiling//compiling_icode.nit:837 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_371) { + fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int("); + REGB1 = TAG_Int(17); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_371 = fra.me.REG[7]; + register_static_object(&once_value_371); + } else fra.me.REG[7] = once_value_371; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label372; + label372: while(0); + /* ./compiling//compiling_icode.nit:837 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_373) { + fra.me.REG[7] = BOX_NativeString(")]"); + REGB1 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_373 = fra.me.REG[7]; + register_static_object(&once_value_373); + } else fra.me.REG[7] = once_value_373; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:838 */ + if (!once_value_374) { + if (!once_value_375) { + fra.me.REG[6] = BOX_NativeString("[]="); + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_375 = fra.me.REG[6]; + register_static_object(&once_value_375); + } else fra.me.REG[6] = once_value_375; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_374 = fra.me.REG[6]; + register_static_object(&once_value_374); + } else fra.me.REG[6] = once_value_374; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:839 */ + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_376) { + fra.me.REG[7] = BOX_NativeString("((Nit_NativeArray)"); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_376 = fra.me.REG[7]; + register_static_object(&once_value_376); + } else fra.me.REG[7] = once_value_376; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label377; + label377: while(0); + /* ./compiling//compiling_icode.nit:839 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_378) { + fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int("); + REGB1 = TAG_Int(17); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_378 = fra.me.REG[7]; + register_static_object(&once_value_378); + } else fra.me.REG[7] = once_value_378; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label379; + label379: while(0); + /* ./compiling//compiling_icode.nit:839 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_380) { + fra.me.REG[7] = BOX_NativeString(")]="); + REGB1 = TAG_Int(3); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_380 = fra.me.REG[7]; + register_static_object(&once_value_380); + } else fra.me.REG[7] = once_value_380; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(2); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label381; + label381: while(0); + /* ./compiling//compiling_icode.nit:839 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_382) { + fra.me.REG[7] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_382 = fra.me.REG[7]; + register_static_object(&once_value_382); + } else fra.me.REG[7] = once_value_382; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:840 */ + if (!once_value_383) { + if (!once_value_384) { + fra.me.REG[6] = BOX_NativeString("copy_to"); + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_384 = fra.me.REG[6]; + register_static_object(&once_value_384); + } else fra.me.REG[6] = once_value_384; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_383 = fra.me.REG[6]; + register_static_object(&once_value_383); + } else fra.me.REG[6] = once_value_383; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:841 */ + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_385) { + fra.me.REG[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )"); + REGB1 = TAG_Int(32); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_385 = fra.me.REG[7]; + register_static_object(&once_value_385); + } else fra.me.REG[7] = once_value_385; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label386; + label386: while(0); + /* ./compiling//compiling_icode.nit:841 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_387) { + fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)"); + REGB1 = TAG_Int(26); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_387 = fra.me.REG[7]; + register_static_object(&once_value_387); + } else fra.me.REG[7] = once_value_387; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label388; + label388: while(0); + /* ./compiling//compiling_icode.nit:841 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_389) { + fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int("); + REGB1 = TAG_Int(18); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_389 = fra.me.REG[7]; + register_static_object(&once_value_389); + } else fra.me.REG[7] = once_value_389; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB1 = TAG_Int(2); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[7] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label390; + label390: while(0); + /* ./compiling//compiling_icode.nit:841 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_391) { + fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))"); + REGB1 = TAG_Int(16); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_391 = fra.me.REG[7]; + register_static_object(&once_value_391); + } else fra.me.REG[7] = once_value_391; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + } + } + } + } else { + /* ./compiling//compiling_icode.nit:843 */ + if (!once_value_392) { + if (!once_value_393) { + fra.me.REG[6] = BOX_NativeString("NativeString"); + REGB1 = TAG_Int(12); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_393 = fra.me.REG[6]; + register_static_object(&once_value_393); + } else fra.me.REG[6] = once_value_393; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_392 = fra.me.REG[6]; + register_static_object(&once_value_392); + } else fra.me.REG[6] = once_value_392; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:844 */ + if (!once_value_394) { + if (!once_value_395) { + fra.me.REG[6] = BOX_NativeString("object_id"); + REGB1 = TAG_Int(9); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_395 = fra.me.REG[6]; + register_static_object(&once_value_395); + } else fra.me.REG[6] = once_value_395; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_394 = fra.me.REG[6]; + register_static_object(&once_value_394); + } else fra.me.REG[6] = once_value_394; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:845 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_396) { + fra.me.REG[2] = BOX_NativeString("TAG_Int(UNBOX_NativeString("); + REGB1 = TAG_Int(27); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_396 = fra.me.REG[2]; + register_static_object(&once_value_396); + } else fra.me.REG[2] = once_value_396; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label397; + label397: while(0); + /* ./compiling//compiling_icode.nit:845 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_398) { + fra.me.REG[2] = BOX_NativeString("))"); + REGB1 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_398 = fra.me.REG[2]; + register_static_object(&once_value_398); + } else fra.me.REG[2] = once_value_398; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:846 */ + if (!once_value_399) { + if (!once_value_400) { + fra.me.REG[6] = BOX_NativeString("atoi"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_400 = fra.me.REG[6]; + register_static_object(&once_value_400); + } else fra.me.REG[6] = once_value_400; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_399 = fra.me.REG[6]; + register_static_object(&once_value_399); + } else fra.me.REG[6] = once_value_399; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:847 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_401) { + fra.me.REG[2] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString("); + REGB1 = TAG_Int(32); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_401 = fra.me.REG[2]; + register_static_object(&once_value_401); + } else fra.me.REG[2] = once_value_401; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label402; + label402: while(0); + /* ./compiling//compiling_icode.nit:847 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_403) { + fra.me.REG[2] = BOX_NativeString(")))"); + REGB1 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_403 = fra.me.REG[2]; + register_static_object(&once_value_403); + } else fra.me.REG[2] = once_value_403; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:848 */ + if (!once_value_404) { + if (!once_value_405) { + fra.me.REG[6] = BOX_NativeString("[]"); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_405 = fra.me.REG[6]; + register_static_object(&once_value_405); + } else fra.me.REG[6] = once_value_405; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_404 = fra.me.REG[6]; + register_static_object(&once_value_404); + } else fra.me.REG[6] = once_value_404; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:849 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_406) { + fra.me.REG[2] = BOX_NativeString("TAG_Char(UNBOX_NativeString("); + REGB1 = TAG_Int(28); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_406 = fra.me.REG[2]; + register_static_object(&once_value_406); + } else fra.me.REG[2] = once_value_406; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label407; + label407: while(0); + /* ./compiling//compiling_icode.nit:849 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_408) { + fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_408 = fra.me.REG[2]; + register_static_object(&once_value_408); + } else fra.me.REG[2] = once_value_408; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label409; + label409: while(0); + /* ./compiling//compiling_icode.nit:849 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_410) { + fra.me.REG[2] = BOX_NativeString(")])"); + REGB1 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_410 = fra.me.REG[2]; + register_static_object(&once_value_410); + } else fra.me.REG[2] = once_value_410; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:850 */ + if (!once_value_411) { + if (!once_value_412) { + fra.me.REG[6] = BOX_NativeString("[]="); + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_412 = fra.me.REG[6]; + register_static_object(&once_value_412); + } else fra.me.REG[6] = once_value_412; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_411 = fra.me.REG[6]; + register_static_object(&once_value_411); + } else fra.me.REG[6] = once_value_411; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:851 */ + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_413) { + fra.me.REG[2] = BOX_NativeString("UNBOX_NativeString("); + REGB1 = TAG_Int(19); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_413 = fra.me.REG[2]; + register_static_object(&once_value_413); + } else fra.me.REG[2] = once_value_413; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label414; + label414: while(0); + /* ./compiling//compiling_icode.nit:851 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_415) { + fra.me.REG[2] = BOX_NativeString(")[UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_415 = fra.me.REG[2]; + register_static_object(&once_value_415); + } else fra.me.REG[2] = once_value_415; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label416; + label416: while(0); + /* ./compiling//compiling_icode.nit:851 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_417) { + fra.me.REG[2] = BOX_NativeString(")]=UNTAG_Char("); + REGB1 = TAG_Int(14); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_417 = fra.me.REG[2]; + register_static_object(&once_value_417); + } else fra.me.REG[2] = once_value_417; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(2); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label418; + label418: while(0); + /* ./compiling//compiling_icode.nit:851 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_419) { + fra.me.REG[2] = BOX_NativeString(");"); + REGB1 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_419 = fra.me.REG[2]; + register_static_object(&once_value_419); + } else fra.me.REG[2] = once_value_419; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:852 */ + if (!once_value_420) { + if (!once_value_421) { + fra.me.REG[6] = BOX_NativeString("copy_to"); + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_421 = fra.me.REG[6]; + register_static_object(&once_value_421); + } else fra.me.REG[6] = once_value_421; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_420 = fra.me.REG[6]; + register_static_object(&once_value_420); + } else fra.me.REG[6] = once_value_420; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:853 */ + REGB1 = TAG_Int(11); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_422) { + fra.me.REG[2] = BOX_NativeString("(void)memcpy(UNBOX_NativeString("); + REGB1 = TAG_Int(32); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_422 = fra.me.REG[2]; + register_static_object(&once_value_422); + } else fra.me.REG[2] = once_value_422; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label423; + label423: while(0); + /* ./compiling//compiling_icode.nit:853 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_424) { + fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_424 = fra.me.REG[2]; + register_static_object(&once_value_424); + } else fra.me.REG[2] = once_value_424; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(4); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label425; + label425: while(0); + /* ./compiling//compiling_icode.nit:853 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_426) { + fra.me.REG[2] = BOX_NativeString("), UNBOX_NativeString("); + REGB1 = TAG_Int(22); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_426 = fra.me.REG[2]; + register_static_object(&once_value_426); + } else fra.me.REG[2] = once_value_426; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label427; + label427: while(0); + /* ./compiling//compiling_icode.nit:853 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_428) { + fra.me.REG[2] = BOX_NativeString(")+UNTAG_Int("); + REGB1 = TAG_Int(12); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_428 = fra.me.REG[2]; + register_static_object(&once_value_428); + } else fra.me.REG[2] = once_value_428; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(3); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label429; + label429: while(0); + /* ./compiling//compiling_icode.nit:853 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_430) { + fra.me.REG[2] = BOX_NativeString("), UNTAG_Int("); + REGB1 = TAG_Int(13); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_430 = fra.me.REG[2]; + register_static_object(&once_value_430); + } else fra.me.REG[2] = once_value_430; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(2); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label431; + label431: while(0); + /* ./compiling//compiling_icode.nit:853 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_432) { + fra.me.REG[2] = BOX_NativeString("));"); + REGB1 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_432 = fra.me.REG[2]; + register_static_object(&once_value_432); + } else fra.me.REG[2] = once_value_432; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + } + } + } + } + } else { + /* ./compiling//compiling_icode.nit:855 */ + if (!once_value_433) { + if (!once_value_434) { + fra.me.REG[6] = BOX_NativeString("object_id"); + REGB1 = TAG_Int(9); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_434 = fra.me.REG[6]; + register_static_object(&once_value_434); + } else fra.me.REG[6] = once_value_434; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_433 = fra.me.REG[6]; + register_static_object(&once_value_433); + } else fra.me.REG[6] = once_value_433; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:856 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_435) { + fra.me.REG[2] = BOX_NativeString("TAG_Int((bigint)((obj_t)"); + REGB1 = TAG_Int(24); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_435 = fra.me.REG[2]; + register_static_object(&once_value_435); + } else fra.me.REG[2] = once_value_435; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label436; + label436: while(0); + /* ./compiling//compiling_icode.nit:856 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_437) { + fra.me.REG[2] = BOX_NativeString(")[1].object_id)"); + REGB1 = TAG_Int(15); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_437 = fra.me.REG[2]; + register_static_object(&once_value_437); + } else fra.me.REG[2] = once_value_437; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:857 */ + if (!once_value_438) { + if (!once_value_439) { + fra.me.REG[6] = BOX_NativeString("sys"); + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_439 = fra.me.REG[6]; + register_static_object(&once_value_439); + } else fra.me.REG[6] = once_value_439; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_438 = fra.me.REG[6]; + register_static_object(&once_value_438); + } else fra.me.REG[6] = once_value_438; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:858 */ + if (!once_value_440) { + fra.me.REG[6] = BOX_NativeString("(G_sys)"); + REGB1 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_440 = fra.me.REG[6]; + register_static_object(&once_value_440); + } else fra.me.REG[6] = once_value_440; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:859 */ + if (!once_value_441) { + if (!once_value_442) { + fra.me.REG[6] = BOX_NativeString("is_same_type"); + REGB1 = TAG_Int(12); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_442 = fra.me.REG[6]; + register_static_object(&once_value_442); + } else fra.me.REG[6] = once_value_442; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_441 = fra.me.REG[6]; + register_static_object(&once_value_441); + } else fra.me.REG[6] = once_value_441; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:860 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_443) { + fra.me.REG[2] = BOX_NativeString("TAG_Bool((VAL2VFT("); + REGB1 = TAG_Int(18); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_443 = fra.me.REG[2]; + register_static_object(&once_value_443); + } else fra.me.REG[2] = once_value_443; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label444; + label444: while(0); + /* ./compiling//compiling_icode.nit:860 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_445) { + fra.me.REG[2] = BOX_NativeString(")==VAL2VFT("); + REGB1 = TAG_Int(11); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_445 = fra.me.REG[2]; + register_static_object(&once_value_445); + } else fra.me.REG[2] = once_value_445; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label446; + label446: while(0); + /* ./compiling//compiling_icode.nit:860 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_447) { + fra.me.REG[2] = BOX_NativeString(")))"); + REGB1 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_447 = fra.me.REG[2]; + register_static_object(&once_value_447); + } else fra.me.REG[2] = once_value_447; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:861 */ + if (!once_value_448) { + if (!once_value_449) { + fra.me.REG[6] = BOX_NativeString("exit"); + REGB1 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_449 = fra.me.REG[6]; + register_static_object(&once_value_449); + } else fra.me.REG[6] = once_value_449; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_448 = fra.me.REG[6]; + register_static_object(&once_value_448); + } else fra.me.REG[6] = once_value_448; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:862 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_450) { + fra.me.REG[2] = BOX_NativeString("exit(UNTAG_Int("); + REGB1 = TAG_Int(15); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_450 = fra.me.REG[2]; + register_static_object(&once_value_450); + } else fra.me.REG[2] = once_value_450; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label451; + label451: while(0); + /* ./compiling//compiling_icode.nit:862 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_452) { + fra.me.REG[2] = BOX_NativeString("));"); + REGB1 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_452 = fra.me.REG[2]; + register_static_object(&once_value_452); + } else fra.me.REG[2] = once_value_452; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:863 */ + if (!once_value_453) { + if (!once_value_454) { + fra.me.REG[6] = BOX_NativeString("calloc_array"); + REGB1 = TAG_Int(12); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_454 = fra.me.REG[6]; + register_static_object(&once_value_454); + } else fra.me.REG[6] = once_value_454; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_453 = fra.me.REG[6]; + register_static_object(&once_value_453); + } else fra.me.REG[6] = once_value_453; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:864 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_455) { + fra.me.REG[2] = BOX_NativeString("NEW_NativeArray(UNTAG_Int("); + REGB1 = TAG_Int(26); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_455 = fra.me.REG[2]; + register_static_object(&once_value_455); + } else fra.me.REG[2] = once_value_455; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[2] = fra.me.REG[4]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + 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, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label456; + label456: while(0); + /* ./compiling//compiling_icode.nit:864 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + if (!once_value_457) { + fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))"); + REGB1 = TAG_Int(17); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_457 = fra.me.REG[2]; + register_static_object(&once_value_457); + } else fra.me.REG[2] = once_value_457; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } else { + /* ./compiling//compiling_icode.nit:865 */ + if (!once_value_458) { + if (!once_value_459) { + fra.me.REG[6] = BOX_NativeString("calloc_string"); + REGB1 = TAG_Int(13); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_459 = fra.me.REG[6]; + register_static_object(&once_value_459); + } else fra.me.REG[6] = once_value_459; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_458 = fra.me.REG[6]; + register_static_object(&once_value_458); + } else fra.me.REG[6] = once_value_458; + fra.me.REG[6] = fra.me.REG[6]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:866 */ + REGB1 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_460) { + fra.me.REG[3] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int("); + REGB1 = TAG_Int(45); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); + once_value_460 = fra.me.REG[3]; + register_static_object(&once_value_460); + } else fra.me.REG[3] = once_value_460; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:245 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label461; + label461: while(0); + /* ./compiling//compiling_icode.nit:866 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); + if (!once_value_462) { + fra.me.REG[4] = BOX_NativeString(") * sizeof(char))))"); + REGB1 = TAG_Int(19); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_462 = fra.me.REG[4]; + register_static_object(&once_value_462); + } else fra.me.REG[4] = once_value_462; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + } + } + } + } + } + } + } + } + } + } + } + /* ./compiling//compiling_icode.nit:868 */ + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB1 = REGB2; + } + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:869 */ + fra.me.REG[6] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:870 */ + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_463) { + fra.me.REG[3] = BOX_NativeString("fprintf(stderr, \""); + REGB1 = TAG_Int(17); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); + once_value_463 = fra.me.REG[3]; + register_static_object(&once_value_463); + } else fra.me.REG[3] = once_value_463; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 870); + } + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + if (!once_value_464) { + fra.me.REG[6] = BOX_NativeString(": \");"); + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_464 = fra.me.REG[6]; + register_static_object(&once_value_464); + } else fra.me.REG[6] = once_value_464; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + } + /* ./compiling//compiling_icode.nit:871 */ + REGB1 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_465) { + fra.me.REG[6] = BOX_NativeString("fprintf(stderr, \"Fatal error: unknown intern method "); + REGB1 = TAG_Int(52); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_465 = fra.me.REG[6]; + register_static_object(&once_value_465); + } else fra.me.REG[6] = once_value_465; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + fra.me.REG[6] = CALL_icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + if (!once_value_466) { + fra.me.REG[6] = BOX_NativeString(".\\n\");"); + REGB1 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_466 = fra.me.REG[6]; + register_static_object(&once_value_466); + } else fra.me.REG[6] = once_value_466; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:872 */ + if (!once_value_467) { + fra.me.REG[4] = BOX_NativeString("nit_exit(1);"); + REGB1 = TAG_Int(12); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_467 = fra.me.REG[4]; + register_static_object(&once_value_467); + } else fra.me.REG[4] = once_value_467; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:873 */ + if (!once_value_468) { + fra.me.REG[4] = BOX_NativeString("NIT_NULL"); + REGB1 = TAG_Int(8); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_468 = fra.me.REG[4]; + register_static_object(&once_value_468); + } else fra.me.REG[4] = once_value_468; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[5] = fra.me.REG[4]; + } + /* ./compiling//compiling_icode.nit:875 */ + fra.me.REG[4] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB1 = REGB2; + } + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:876 */ + fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_469) { + fra.me.REG[6] = BOX_NativeString(";\n"); + REGB1 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_469 = fra.me.REG[6]; + register_static_object(&once_value_469); + } else fra.me.REG[6] = once_value_469; + fra.me.REG[6] = fra.me.REG[6]; + CALL_compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + } else { + /* ./compiling//compiling_icode.nit:877 */ + REGB1 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:878 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:879 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + } + } + stack_frame_head = fra.me.prev; + return; +} +void compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){ + 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_compiling_icode; + fra.me.line = 885; + fra.me.meth = LOCATE_compiling_icode___IIntValue___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:887 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:888 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:889 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("TAG_Int("); + REGB0 = TAG_Int(8); + 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]; + fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[0] = CALL_icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_2) { + 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_2 = fra.me.REG[2]; + register_static_object(&once_value_2); + } else fra.me.REG[2] = once_value_2; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + stack_frame_head = fra.me.prev; + return; +} +void compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1){ + 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 */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_icode; + fra.me.line = 894; + fra.me.meth = LOCATE_compiling_icode___IBoolValue___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:896 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:897 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:898 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("TAG_Bool("); + REGB0 = TAG_Int(9); + 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_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:899 */ + REGB0 = CALL_icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]); if (UNTAG_Bool(REGB0)) { + 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]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString("false"); + REGB0 = TAG_Int(5); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_3 = fra.me.REG[0]; + register_static_object(&once_value_3); + } else fra.me.REG[0] = once_value_3; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } + /* ./compiling//compiling_icode.nit:900 */ + if (!once_value_4) { + fra.me.REG[0] = BOX_NativeString(")"); + REGB0 = TAG_Int(1); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return; +} +void compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1){ + 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_compiling_icode; + fra.me.line = 905; + fra.me.meth = LOCATE_compiling_icode___ICharValue___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:907 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:908 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:909 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("TAG_Char("); + REGB0 = TAG_Int(9); + 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]; + fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[0] = CALL_icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_2) { + 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_2 = fra.me.REG[2]; + register_static_object(&once_value_2); + } else fra.me.REG[2] = once_value_2; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + stack_frame_head = fra.me.prev; + return; +} +void compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1){ + 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_compiling_icode; + fra.me.line = 914; + fra.me.meth = LOCATE_compiling_icode___IFloatValue___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:916 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:917 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:918 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("BOX_Float("); + REGB0 = TAG_Int(10); + 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]; + fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[0] = CALL_icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_2) { + 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_2 = fra.me.REG[2]; + register_static_object(&once_value_2); + } else fra.me.REG[2] = once_value_2; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + stack_frame_head = fra.me.prev; + return; +} +void compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p1){ + 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_compiling_icode; + fra.me.line = 923; + fra.me.meth = LOCATE_compiling_icode___IStringValue___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:925 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:926 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:927 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\""); + REGB0 = TAG_Int(18); + 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]; + fra.me.REG[2] = CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[0] = CALL_icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[2] = BOX_NativeString("\")"); + REGB0 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_2 = fra.me.REG[2]; + register_static_object(&once_value_2); + } else fra.me.REG[2] = once_value_2; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + stack_frame_head = fra.me.prev; + return; +} +void compiling_icode___IAbort___compile_to_c(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 tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_3; /* 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_compiling_icode; + fra.me.line = 932; + fra.me.meth = LOCATE_compiling_icode___IAbort___compile_to_c; + 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; + /* ./compiling//compiling_icode.nit:934 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:935 */ + fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:936 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("nit_abort(\""); + REGB0 = TAG_Int(11); + 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_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:937 */ + fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:245 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(false); - REGB0 = REGB1; } else { - REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); - REGB0 = REGB1; + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label2; + label2: while(0); + /* ./compiling//compiling_icode.nit:937 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:938 */ + fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); - if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(false); - REGB0 = REGB1; + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:938 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:214 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); + /* ./compiling//compiling_icode.nit:938 */ + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:939 */ + if (!once_value_3) { + fra.me.REG[2] = BOX_NativeString("\", \""); + REGB1 = TAG_Int(4); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_3 = fra.me.REG[2]; + register_static_object(&once_value_3); + } else fra.me.REG[2] = once_value_3; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:940 */ + fra.me.REG[2] = CALL_icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:245 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label4; + label4: while(0); + /* ./compiling//compiling_icode.nit:940 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:941 */ + if (!once_value_5) { + fra.me.REG[2] = BOX_NativeString("\""); + REGB1 = TAG_Int(1); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_5 = fra.me.REG[2]; + register_static_object(&once_value_5); + } else fra.me.REG[2] = once_value_5; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + } else { + /* ./compiling//compiling_icode.nit:943 */ + if (!once_value_6) { + fra.me.REG[2] = BOX_NativeString("\", NULL"); + REGB1 = TAG_Int(7); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_6 = fra.me.REG[2]; + register_static_object(&once_value_6); + } else fra.me.REG[2] = once_value_6; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); } - /* ./compiling//compiling_icode.nit:638 */ - if (!once_value_12) { - fra.me.REG[5] = BOX_NativeString(");"); - REGB0 = TAG_Int(2); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_12 = fra.me.REG[5]; - register_static_object(&once_value_12); - } else fra.me.REG[5] = once_value_12; - CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:945 */ + if (!once_value_7) { + fra.me.REG[2] = BOX_NativeString(", LOCATE_"); + REGB1 = TAG_Int(9); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_7 = fra.me.REG[2]; + register_static_object(&once_value_7); + } else fra.me.REG[2] = once_value_7; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:946 */ + fra.me.REG[2] = CALL_icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[2])(fra.me.REG[2]); fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:639 */ - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:641 */ - if (!once_value_13) { - fra.me.REG[2] = BOX_NativeString("nit_exit(1);"); - REGB0 = TAG_Int(12); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_13 = fra.me.REG[2]; - register_static_object(&once_value_13); - } else fra.me.REG[2] = once_value_13; - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - fra.me.REG[2] = NIT_NULL; - /* ./compiling//compiling_icode.nit:642 */ - goto label14; - label14: while(0); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:947 */ + fra.me.REG[0] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:948 */ + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB1 = REGB0; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:949 */ + if (!once_value_8) { + fra.me.REG[2] = BOX_NativeString(", "); + REGB1 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1); + once_value_8 = fra.me.REG[2]; + register_static_object(&once_value_8); + } else fra.me.REG[2] = once_value_8; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:950 */ + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 950); + } + REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB1)(REGB1); + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } else { + /* ./compiling//compiling_icode.nit:952 */ + if (!once_value_9) { + fra.me.REG[0] = BOX_NativeString(", 0"); + REGB1 = TAG_Int(3); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1); + once_value_9 = fra.me.REG[0]; + register_static_object(&once_value_9); + } else fra.me.REG[0] = once_value_9; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } + /* ./compiling//compiling_icode.nit:954 */ + if (!once_value_10) { + fra.me.REG[0] = BOX_NativeString(");\n"); + REGB1 = TAG_Int(3); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1); + once_value_10 = fra.me.REG[0]; + register_static_object(&once_value_10); + } else fra.me.REG[0] = once_value_10; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); stack_frame_head = fra.me.prev; - return fra.me.REG[2]; + return; } -val_t compiling_icode___IMove___inner_compile_to_c(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; +void compiling_icode___IMove___compile_to_c(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 tmp; + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 647; - fra.me.meth = LOCATE_compiling_icode___IMove___inner_compile_to_c; + fra.me.line = 959; + fra.me.meth = LOCATE_compiling_icode___IMove___compile_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 2; + 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; fra.me.REG[1] = p1; - fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:649 */ - goto label1; + /* ./compiling//compiling_icode.nit:961 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:962 */ + fra.me.REG[2] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:963 */ + fra.me.REG[3] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 963); + } + fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:964 */ + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:965 */ + fra.me.REG[0] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:966 */ + fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:967 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:968 */ + if (!once_value_2) { + fra.me.REG[3] = BOX_NativeString(" = "); + REGB0 = TAG_Int(3); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:969 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:970 */ + if (!once_value_3) { + fra.me.REG[2] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_3 = fra.me.REG[2]; + register_static_object(&once_value_3); + } else fra.me.REG[2] = once_value_3; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[0]; + return; } -val_t compiling_icode___IAttrRead___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} 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_3; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 654; - fra.me.meth = LOCATE_compiling_icode___IAttrRead___inner_compile_to_c; + fra.me.line = 975; + fra.me.meth = LOCATE_compiling_icode___IAttrRead___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -4656,21 +14438,23 @@ val_t compiling_icode___IAttrRead___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Int(5); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:656 */ - 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; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:977 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:978 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:979 */ + fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:980 */ fra.me.REG[3] = CALL_icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:981 */ if (!once_value_2) { fra.me.REG[3] = BOX_NativeString("("); REGB0 = TAG_Int(1); @@ -4678,10 +14462,13 @@ val_t compiling_icode___IAttrRead___inner_compile_to_c(val_t p0, val_t p1){ once_value_2 = fra.me.REG[3]; register_static_object(&once_value_2); } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:982 */ fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - array___Array___add(fra.me.REG[2], fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:983 */ if (!once_value_3) { fra.me.REG[0] = BOX_NativeString(")"); REGB0 = TAG_Int(1); @@ -4689,24 +14476,23 @@ val_t compiling_icode___IAttrRead___inner_compile_to_c(val_t p0, val_t p1){ once_value_3 = fra.me.REG[0]; register_static_object(&once_value_3); } else fra.me.REG[0] = once_value_3; - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - goto label4; - label4: while(0); + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[2]; + return; } -val_t compiling_icode___IAttrIsset___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} 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_3; /* Once value */ + static val_t once_value_4; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 661; - fra.me.meth = LOCATE_compiling_icode___IAttrIsset___inner_compile_to_c; + fra.me.line = 988; + fra.me.meth = LOCATE_compiling_icode___IAttrIsset___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -4714,59 +14500,72 @@ val_t compiling_icode___IAttrIsset___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[2] = NIT_NULL; fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; - fra.me.REG[1] = p1; - REGB0 = TAG_Int(5); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:663 */ - if (!once_value_1) { + fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:990 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:991 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:992 */ + fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:993 */ + if (!once_value_2) { fra.me.REG[3] = BOX_NativeString("TAG_Bool("); REGB0 = TAG_Int(9); 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; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:994 */ fra.me.REG[3] = CALL_icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); - if (!once_value_2) { + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:995 */ + if (!once_value_3) { fra.me.REG[3] = BOX_NativeString("("); REGB0 = TAG_Int(1); fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + 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_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:996 */ fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - if (!once_value_3) { + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:997 */ + if (!once_value_4) { fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)"); REGB0 = TAG_Int(12); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_3 = fra.me.REG[0]; - register_static_object(&once_value_3); - } else fra.me.REG[0] = once_value_3; - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - goto label4; - label4: while(0); + once_value_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[2]; + return; } -val_t compiling_icode___IAttrWrite___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} 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_3; /* Once value */ - static val_t once_value_4; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 668; - fra.me.meth = LOCATE_compiling_icode___IAttrWrite___inner_compile_to_c; + fra.me.line = 1002; + fra.me.meth = LOCATE_compiling_icode___IAttrWrite___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -4775,584 +14574,544 @@ val_t compiling_icode___IAttrWrite___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Int(7); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:670 */ - 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; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1004 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1005 */ + fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1006 */ fra.me.REG[3] = CALL_icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); - if (!once_value_2) { + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1007 */ + if (!once_value_1) { fra.me.REG[3] = BOX_NativeString("("); REGB0 = TAG_Int(1); fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_2 = fra.me.REG[3]; - register_static_object(&once_value_2); - } else fra.me.REG[3] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + 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]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1008 */ fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); - if (!once_value_3) { + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1009 */ + if (!once_value_2) { fra.me.REG[3] = BOX_NativeString(") = "); REGB0 = TAG_Int(4); fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_3 = fra.me.REG[3]; - register_static_object(&once_value_3); - } else fra.me.REG[3] = once_value_3; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1010 */ fra.me.REG[0] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - if (!once_value_4) { - fra.me.REG[0] = BOX_NativeString(";"); - REGB0 = TAG_Int(1); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1011 */ + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString(";\n"); + REGB0 = TAG_Int(2); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_4 = fra.me.REG[0]; - register_static_object(&once_value_4); - } else fra.me.REG[0] = once_value_4; - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - fra.me.REG[2] = NIT_NULL; - /* ./compiling//compiling_icode.nit:671 */ - goto label5; - label5: while(0); + once_value_3 = fra.me.REG[0]; + register_static_object(&once_value_3); + } else fra.me.REG[0] = once_value_3; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); stack_frame_head = fra.me.prev; - return fra.me.REG[2]; + return; } -val_t compiling_icode___ITypeCheck___inner_compile_to_c(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; +void compiling_icode___ITypeCheck___compile_to_c(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 */ - static val_t once_value_2; /* Once value */ + static val_t once_value_2; /* Once value */ static val_t once_value_3; /* Once value */ - static val_t once_value_4; /* 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_8; /* Once value */ static val_t once_value_9; /* Once value */ static val_t once_value_10; /* Once value */ static val_t once_value_11; /* Once value */ static val_t once_value_12; /* Once value */ - static val_t once_value_13; /* Once value */ - static val_t once_value_14; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 676; - fra.me.meth = LOCATE_compiling_icode___ITypeCheck___inner_compile_to_c; + fra.me.line = 1016; + fra.me.meth = LOCATE_compiling_icode___ITypeCheck___compile_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 7; + 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[6] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:1018 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:1020 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1021 */ fra.me.REG[2] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]); fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1022 */ fra.me.REG[3] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:681 */ - if (!once_value_1) { - fra.me.REG[1] = BOX_NativeString(""); - REGB0 = TAG_Int(0); - fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); - once_value_1 = fra.me.REG[1]; - register_static_object(&once_value_1); - } else fra.me.REG[1] = once_value_1; + /* ./compiling//compiling_icode.nit:1023 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1024 */ + if (!once_value_2) { + fra.me.REG[4] = BOX_NativeString("TAG_Bool("); + REGB0 = TAG_Int(9); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_2 = fra.me.REG[4]; + register_static_object(&once_value_2); + } else fra.me.REG[4] = once_value_2; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1025 */ fra.me.REG[4] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[4] = CALL_icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]); REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]); - /* ./compiling//compiling_icode.nit:682 */ if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:1026 */ fra.me.REG[4] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]); REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]); - /* ./compiling//compiling_icode.nit:683 */ if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:684 */ - if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString("("); - REGB0 = TAG_Int(1); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_2 = fra.me.REG[5]; - register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - array___Array___add(fra.me.REG[4], fra.me.REG[5]); - array___Array___add(fra.me.REG[4], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1027 */ if (!once_value_3) { - fra.me.REG[5] = BOX_NativeString("==NIT_NULL) || "); - REGB0 = TAG_Int(15); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_3 = fra.me.REG[5]; + fra.me.REG[4] = BOX_NativeString("("); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_3 = fra.me.REG[4]; register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - array___Array___add(fra.me.REG[4], fra.me.REG[5]); - fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[1] = fra.me.REG[4]; + } else fra.me.REG[4] = once_value_3; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1028 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1029 */ + if (!once_value_4) { + fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || "); + REGB0 = TAG_Int(15); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_4 = fra.me.REG[4]; + register_static_object(&once_value_4); + } else fra.me.REG[4] = once_value_4; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); } else { + /* ./compiling//compiling_icode.nit:1030 */ fra.me.REG[4] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[4] = CALL_static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]); fra.me.REG[5] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[5] = CALL_icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]); REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5])); - /* ./compiling//compiling_icode.nit:685 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(3); - fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:686 */ - if (!once_value_4) { - fra.me.REG[4] = BOX_NativeString("TAG_Bool("); - REGB0 = TAG_Int(9); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); - once_value_4 = fra.me.REG[4]; - register_static_object(&once_value_4); - } else fra.me.REG[4] = once_value_4; - array___Array___add(fra.me.REG[5], fra.me.REG[4]); - array___Array___add(fra.me.REG[5], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1031 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1032 */ if (!once_value_5) { - fra.me.REG[4] = BOX_NativeString("!=NIT_NULL)"); + fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)"); REGB0 = TAG_Int(11); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); - once_value_5 = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_5 = fra.me.REG[5]; register_static_object(&once_value_5); - } else fra.me.REG[4] = once_value_5; - array___Array___add(fra.me.REG[5], fra.me.REG[4]); - fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - goto label6; + } else fra.me.REG[5] = once_value_5; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1033 */ + goto label1; } else { - REGB0 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:688 */ - if (!once_value_7) { - fra.me.REG[6] = BOX_NativeString("("); + /* ./compiling//compiling_icode.nit:1035 */ + if (!once_value_6) { + fra.me.REG[5] = BOX_NativeString("("); REGB0 = TAG_Int(1); - fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); - once_value_7 = fra.me.REG[6]; - register_static_object(&once_value_7); - } else fra.me.REG[6] = once_value_7; - array___Array___add(fra.me.REG[4], fra.me.REG[6]); - array___Array___add(fra.me.REG[4], fra.me.REG[3]); - if (!once_value_8) { - fra.me.REG[6] = BOX_NativeString("!=NIT_NULL) && "); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_6 = fra.me.REG[5]; + register_static_object(&once_value_6); + } else fra.me.REG[5] = once_value_6; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1036 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1037 */ + if (!once_value_7) { + fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && "); REGB0 = TAG_Int(15); - fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); - once_value_8 = fra.me.REG[6]; - register_static_object(&once_value_8); - } else fra.me.REG[6] = once_value_8; - array___Array___add(fra.me.REG[4], fra.me.REG[6]); - fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[1] = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_7 = fra.me.REG[5]; + register_static_object(&once_value_7); + } else fra.me.REG[5] = once_value_7; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); } } } - REGB0 = TAG_Int(11); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:691 */ - if (!once_value_9) { - fra.me.REG[6] = BOX_NativeString("TAG_Bool("); - REGB0 = TAG_Int(9); - fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); - once_value_9 = fra.me.REG[6]; - register_static_object(&once_value_9); - } else fra.me.REG[6] = once_value_9; - array___Array___add(fra.me.REG[4], fra.me.REG[6]); - array___Array___add(fra.me.REG[4], fra.me.REG[1]); - if (!once_value_10) { - fra.me.REG[1] = BOX_NativeString("VAL_ISA("); + /* ./compiling//compiling_icode.nit:1040 */ + if (!once_value_8) { + fra.me.REG[5] = BOX_NativeString("VAL_ISA("); REGB0 = TAG_Int(8); - fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); - once_value_10 = fra.me.REG[1]; - register_static_object(&once_value_10); - } else fra.me.REG[1] = once_value_10; - array___Array___add(fra.me.REG[4], fra.me.REG[1]); - array___Array___add(fra.me.REG[4], fra.me.REG[3]); - if (!once_value_11) { + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_8 = fra.me.REG[5]; + register_static_object(&once_value_8); + } else fra.me.REG[5] = once_value_8; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1041 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1042 */ + if (!once_value_9) { fra.me.REG[3] = BOX_NativeString(", "); REGB0 = TAG_Int(2); fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_11 = fra.me.REG[3]; - register_static_object(&once_value_11); - } else fra.me.REG[3] = once_value_11; - array___Array___add(fra.me.REG[4], fra.me.REG[3]); + once_value_9 = fra.me.REG[3]; + register_static_object(&once_value_9); + } else fra.me.REG[3] = once_value_9; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1043 */ fra.me.REG[3] = CALL_compiling_base___MMGlobalClass___color_id(fra.me.REG[2])(fra.me.REG[2]); - array___Array___add(fra.me.REG[4], fra.me.REG[3]); - if (!once_value_12) { + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1044 */ + if (!once_value_10) { fra.me.REG[3] = BOX_NativeString(", "); REGB0 = TAG_Int(2); fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_12 = fra.me.REG[3]; - register_static_object(&once_value_12); - } else fra.me.REG[3] = once_value_12; - array___Array___add(fra.me.REG[4], fra.me.REG[3]); + once_value_10 = fra.me.REG[3]; + register_static_object(&once_value_10); + } else fra.me.REG[3] = once_value_10; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1045 */ fra.me.REG[2] = CALL_compiling_base___MMGlobalClass___id_id(fra.me.REG[2])(fra.me.REG[2]); - array___Array___add(fra.me.REG[4], fra.me.REG[2]); - if (!once_value_13) { + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1046 */ + if (!once_value_11) { fra.me.REG[2] = BOX_NativeString(")) /*cast "); REGB0 = TAG_Int(10); fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_13 = fra.me.REG[2]; - register_static_object(&once_value_13); - } else fra.me.REG[2] = once_value_13; - array___Array___add(fra.me.REG[4], fra.me.REG[2]); + once_value_11 = fra.me.REG[2]; + register_static_object(&once_value_11); + } else fra.me.REG[2] = once_value_11; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1047 */ fra.me.REG[0] = CALL_icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[4], fra.me.REG[0]); - if (!once_value_14) { + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1048 */ + if (!once_value_12) { fra.me.REG[0] = BOX_NativeString("*/"); REGB0 = TAG_Int(2); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_14 = fra.me.REG[0]; - register_static_object(&once_value_14); - } else fra.me.REG[0] = once_value_14; - array___Array___add(fra.me.REG[4], fra.me.REG[0]); - fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[5] = fra.me.REG[4]; - goto label6; - label6: while(0); + once_value_12 = fra.me.REG[0]; + register_static_object(&once_value_12); + } else fra.me.REG[0] = once_value_12; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[5]; + return; } -val_t compiling_icode___IIs___inner_compile_to_c(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; +void compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; val_t REGB0; val_t tmp; - static val_t once_value_1; /* Once value */ - static val_t once_value_3; /* Once value */ + static val_t once_value_2; /* 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_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 */ - static val_t once_value_11; /* Once value */ + static val_t once_value_11; /* Once value */ static val_t once_value_12; /* Once value */ static val_t once_value_13; /* Once value */ - static val_t once_value_14; /* Once value */ - static val_t once_value_15; /* Once value */ - static val_t once_value_16; /* Once value */ - static val_t once_value_17; /* Once value */ - static val_t once_value_18; /* Once value */ - static val_t once_value_19; /* Once value */ - static val_t once_value_20; /* Once value */ + static val_t once_value_14; /* Once value */ + static val_t once_value_15; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 696; - fra.me.meth = LOCATE_compiling_icode___IIs___inner_compile_to_c; + fra.me.line = 1053; + fra.me.meth = LOCATE_compiling_icode___IIs___compile_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 7; + 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[6] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - fra.me.REG[2] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_icode_base___IRegister___stype(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[3] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1055 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:1056 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1057 */ + fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1058 */ + if (!once_value_2) { + fra.me.REG[3] = BOX_NativeString("TAG_Bool("); + REGB0 = TAG_Int(9); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1059 */ + fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]); - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; - /* ./compiling//compiling_icode.nit:700 */ + /* ./compiling//compiling_icode.nit:1060 */ + fra.me.REG[4] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1061 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; - /* ./compiling//compiling_icode.nit:701 */ + /* ./compiling//compiling_icode.nit:1062 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; if (UNTAG_Bool(REGB0)) { - /* ./compiling//compiling_icode.nit:702 */ - if (!once_value_1) { - fra.me.REG[4] = BOX_NativeString("TAG_Bool(1)"); - REGB0 = TAG_Int(11); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); - once_value_1 = fra.me.REG[4]; - register_static_object(&once_value_1); - } else fra.me.REG[4] = once_value_1; - goto label2; + /* ./compiling//compiling_icode.nit:1063 */ + if (!once_value_3) { + fra.me.REG[5] = BOX_NativeString("1)"); + REGB0 = TAG_Int(2); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_3 = fra.me.REG[5]; + register_static_object(&once_value_3); + } else fra.me.REG[5] = once_value_3; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1064 */ + goto label1; } else { - REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:703 */ + /* ./compiling//compiling_icode.nit:1065 */ + REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]); if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(3); - fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:704 */ - if (!once_value_3) { - fra.me.REG[6] = BOX_NativeString("TAG_Bool("); - REGB0 = TAG_Int(9); - fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); - once_value_3 = fra.me.REG[6]; - register_static_object(&once_value_3); - } else fra.me.REG[6] = once_value_3; - array___Array___add(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[6] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]); - array___Array___add(fra.me.REG[5], fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:1066 */ + fra.me.REG[5] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1067 */ if (!once_value_4) { - fra.me.REG[6] = BOX_NativeString("==NIT_NULL)"); + fra.me.REG[5] = BOX_NativeString("==NIT_NULL)"); REGB0 = TAG_Int(11); - fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); - once_value_4 = fra.me.REG[6]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_4 = fra.me.REG[5]; register_static_object(&once_value_4); - } else fra.me.REG[6] = once_value_4; - array___Array___add(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[4] = fra.me.REG[5]; - goto label2; + } else fra.me.REG[5] = once_value_4; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1068 */ + goto label1; } else { - /* ./compiling//compiling_icode.nit:706 */ + /* ./compiling//compiling_icode.nit:1070 */ if (!once_value_5) { - fra.me.REG[5] = BOX_NativeString("TAG_Bool(0)"); - REGB0 = TAG_Int(11); + fra.me.REG[5] = BOX_NativeString("0)"); + REGB0 = TAG_Int(2); fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); once_value_5 = fra.me.REG[5]; register_static_object(&once_value_5); } else fra.me.REG[5] = once_value_5; - fra.me.REG[4] = fra.me.REG[5]; - goto label2; + fra.me.REG[5] = fra.me.REG[5]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1071 */ + goto label1; } } } else { - REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:708 */ + /* ./compiling//compiling_icode.nit:1073 */ + REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; - /* ./compiling//compiling_icode.nit:709 */ + /* ./compiling//compiling_icode.nit:1074 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(3); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:710 */ - if (!once_value_6) { - fra.me.REG[5] = BOX_NativeString("TAG_Bool("); - REGB0 = TAG_Int(9); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_6 = fra.me.REG[5]; - register_static_object(&once_value_6); - } else fra.me.REG[5] = once_value_6; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[5] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - if (!once_value_7) { - fra.me.REG[5] = BOX_NativeString("==NIT_NULL)"); - REGB0 = TAG_Int(11); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_7 = fra.me.REG[5]; - register_static_object(&once_value_7); - } else fra.me.REG[5] = once_value_7; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = fra.me.REG[2]; - goto label2; + /* ./compiling//compiling_icode.nit:1075 */ + fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1076 */ + if (!once_value_6) { + fra.me.REG[3] = BOX_NativeString("==NIT_NULL)"); + REGB0 = TAG_Int(11); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_6 = fra.me.REG[3]; + register_static_object(&once_value_6); + } else fra.me.REG[3] = once_value_6; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1077 */ + goto label1; } else { - REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:711 */ + /* ./compiling//compiling_icode.nit:1078 */ + REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]); if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(5); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:712 */ + /* ./compiling//compiling_icode.nit:1079 */ + if (!once_value_7) { + fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN("); + REGB0 = TAG_Int(12); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_7 = fra.me.REG[3]; + register_static_object(&once_value_7); + } else fra.me.REG[3] = once_value_7; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + } else { + /* ./compiling//compiling_icode.nit:1081 */ if (!once_value_8) { - fra.me.REG[5] = BOX_NativeString("TAG_Bool(IS_EQUAL_NN("); - REGB0 = TAG_Int(21); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_8 = fra.me.REG[5]; + fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON("); + REGB0 = TAG_Int(12); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_8 = fra.me.REG[3]; register_static_object(&once_value_8); - } else fra.me.REG[5] = once_value_8; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[5] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - array___Array___add(fra.me.REG[2], fra.me.REG[5]); + } else fra.me.REG[3] = once_value_8; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1082 */ + fra.me.REG[3] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1083 */ if (!once_value_9) { - fra.me.REG[5] = BOX_NativeString(","); + fra.me.REG[3] = BOX_NativeString(","); REGB0 = TAG_Int(1); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_9 = fra.me.REG[5]; + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_9 = fra.me.REG[3]; register_static_object(&once_value_9); - } else fra.me.REG[5] = once_value_9; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[5] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - array___Array___add(fra.me.REG[2], fra.me.REG[5]); + } else fra.me.REG[3] = once_value_9; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1084 */ + fra.me.REG[3] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1085 */ if (!once_value_10) { - fra.me.REG[5] = BOX_NativeString("))"); + fra.me.REG[3] = BOX_NativeString("))"); REGB0 = TAG_Int(2); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_10 = fra.me.REG[5]; + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_10 = fra.me.REG[3]; register_static_object(&once_value_10); - } else fra.me.REG[5] = once_value_10; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = fra.me.REG[2]; - goto label2; - } else { - REGB0 = TAG_Int(5); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:714 */ - if (!once_value_11) { - fra.me.REG[5] = BOX_NativeString("TAG_Bool(IS_EQUAL_ON("); - REGB0 = TAG_Int(21); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_11 = fra.me.REG[5]; - register_static_object(&once_value_11); - } else fra.me.REG[5] = once_value_11; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[5] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - if (!once_value_12) { - fra.me.REG[5] = BOX_NativeString(","); - REGB0 = TAG_Int(1); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_12 = fra.me.REG[5]; - register_static_object(&once_value_12); - } else fra.me.REG[5] = once_value_12; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[5] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - if (!once_value_13) { - fra.me.REG[5] = BOX_NativeString("))"); - REGB0 = TAG_Int(2); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); - once_value_13 = fra.me.REG[5]; - register_static_object(&once_value_13); - } else fra.me.REG[5] = once_value_13; - array___Array___add(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[4] = fra.me.REG[2]; - goto label2; + } else fra.me.REG[3] = once_value_10; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1086 */ + goto label1; } } } else { - REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; - /* ./compiling//compiling_icode.nit:717 */ + /* ./compiling//compiling_icode.nit:1089 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/; if (UNTAG_Bool(REGB0)) { - /* ./compiling//compiling_icode.nit:718 */ - if (!once_value_14) { - fra.me.REG[2] = BOX_NativeString("TAG_Bool(0)"); - REGB0 = TAG_Int(11); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_14 = fra.me.REG[2]; - register_static_object(&once_value_14); - } else fra.me.REG[2] = once_value_14; - fra.me.REG[4] = fra.me.REG[2]; - goto label2; + /* ./compiling//compiling_icode.nit:1090 */ + if (!once_value_11) { + fra.me.REG[3] = BOX_NativeString("0)"); + REGB0 = TAG_Int(2); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_11 = fra.me.REG[3]; + register_static_object(&once_value_11); + } else fra.me.REG[3] = once_value_11; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1091 */ + goto label1; } else { - REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:719 */ + /* ./compiling//compiling_icode.nit:1092 */ + REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]); if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(5); - fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:720 */ - if (!once_value_15) { - fra.me.REG[2] = BOX_NativeString("TAG_Bool(IS_EQUAL_ON("); - REGB0 = TAG_Int(21); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_15 = fra.me.REG[2]; - register_static_object(&once_value_15); - } else fra.me.REG[2] = once_value_15; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - fra.me.REG[2] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - if (!once_value_16) { - 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_16 = fra.me.REG[2]; - register_static_object(&once_value_16); - } else fra.me.REG[2] = once_value_16; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - fra.me.REG[2] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - if (!once_value_17) { - fra.me.REG[2] = BOX_NativeString("))"); - REGB0 = TAG_Int(2); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_17 = fra.me.REG[2]; - register_static_object(&once_value_17); - } else fra.me.REG[2] = once_value_17; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = fra.me.REG[3]; - goto label2; + /* ./compiling//compiling_icode.nit:1093 */ + if (!once_value_12) { + fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON("); + REGB0 = TAG_Int(12); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_12 = fra.me.REG[4]; + register_static_object(&once_value_12); + } else fra.me.REG[4] = once_value_12; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); } else { - REGB0 = TAG_Int(5); - fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:722 */ - if (!once_value_18) { - fra.me.REG[2] = BOX_NativeString("TAG_Bool(IS_EQUAL_OO("); - REGB0 = TAG_Int(21); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_18 = fra.me.REG[2]; - register_static_object(&once_value_18); - } else fra.me.REG[2] = once_value_18; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - fra.me.REG[2] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - if (!once_value_19) { - 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_19 = fra.me.REG[2]; - register_static_object(&once_value_19); - } else fra.me.REG[2] = once_value_19; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); - fra.me.REG[0] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - if (!once_value_20) { - fra.me.REG[0] = BOX_NativeString("))"); - REGB0 = TAG_Int(2); - fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_20 = fra.me.REG[0]; - register_static_object(&once_value_20); - } else fra.me.REG[0] = once_value_20; - array___Array___add(fra.me.REG[3], fra.me.REG[0]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[4] = fra.me.REG[3]; - goto label2; + /* ./compiling//compiling_icode.nit:1095 */ + if (!once_value_13) { + fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO("); + REGB0 = TAG_Int(12); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_13 = fra.me.REG[4]; + register_static_object(&once_value_13); + } else fra.me.REG[4] = once_value_13; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); } } } } - label2: while(0); + /* ./compiling//compiling_icode.nit:1098 */ + fra.me.REG[4] = CALL_icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1099 */ + if (!once_value_14) { + fra.me.REG[4] = BOX_NativeString(","); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_14 = fra.me.REG[4]; + register_static_object(&once_value_14); + } else fra.me.REG[4] = once_value_14; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1100 */ + fra.me.REG[0] = CALL_icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1101 */ + if (!once_value_15) { + fra.me.REG[0] = BOX_NativeString("))"); + REGB0 = TAG_Int(2); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_15 = fra.me.REG[0]; + register_static_object(&once_value_15); + } else fra.me.REG[0] = once_value_15; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[4]; + return; } -val_t compiling_icode___INot___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___INot___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} 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_3; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 729; - fra.me.meth = LOCATE_compiling_icode___INot___inner_compile_to_c; + fra.me.line = 1106; + fra.me.meth = LOCATE_compiling_icode___INot___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 4; fra.me.REG[0] = NIT_NULL; @@ -5361,36 +15120,47 @@ val_t compiling_icode___INot___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - REGB0 = TAG_Int(3); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:731 */ - if (!once_value_1) { + /* ./compiling//compiling_icode.nit:1108 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:1109 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1110 */ + fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1111 */ + if (!once_value_2) { fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool("); REGB0 = TAG_Int(21); 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; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1112 */ fra.me.REG[0] = CALL_icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - if (!once_value_2) { + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1113 */ + if (!once_value_3) { fra.me.REG[0] = BOX_NativeString("))"); REGB0 = TAG_Int(2); 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; - array___Array___add(fra.me.REG[2], fra.me.REG[0]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); - goto label3; - label3: while(0); + once_value_3 = fra.me.REG[0]; + register_static_object(&once_value_3); + } else fra.me.REG[0] = once_value_3; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[2]; + return; } -val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; +void compiling_icode___IOnce___compile_to_c(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; @@ -5415,34 +15185,37 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ static val_t once_value_19; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 736; - fra.me.meth = LOCATE_compiling_icode___IOnce___inner_compile_to_c; + fra.me.line = 1118; + fra.me.meth = LOCATE_compiling_icode___IOnce___compile_to_c; fra.me.has_broke = 0; - fra.me.REG_size = 5; + 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; + /* ./compiling//compiling_icode.nit:1120 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1121 */ REGB0 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1122 */ fra.me.REG[2] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]); REGB1 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/; - /* ./compiling//compiling_icode.nit:739 */ if (UNTAG_Bool(REGB1)) { } else { - fprintf(stderr, "Cast failed"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 739); - nit_exit(1); + nit_abort("Cast failed", NULL, LOCATE_compiling_icode, 1122); } + /* ./compiling//compiling_icode.nit:1123 */ fra.me.REG[3] = CALL_icode_base___IRegister___stype(fra.me.REG[2])(fra.me.REG[2]); REGB1 = CALL_static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:740 */ if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_icode.nit:1124 */ REGB1 = TAG_Int(5); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:741 */ if (!once_value_1) { fra.me.REG[4] = BOX_NativeString("static val_t once_value_"); REGB1 = TAG_Int(24); @@ -5450,9 +15223,10 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_1 = fra.me.REG[4]; register_static_object(&once_value_1); } else fra.me.REG[4] = once_value_1; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_2) { fra.me.REG[4] = BOX_NativeString("; static int once_bool_"); REGB1 = TAG_Int(23); @@ -5460,9 +15234,10 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_2 = fra.me.REG[4]; register_static_object(&once_value_2); } else fra.me.REG[4] = once_value_2; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_3) { fra.me.REG[4] = BOX_NativeString("; /* Once value */"); REGB1 = TAG_Int(18); @@ -5470,12 +15245,13 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_3 = fra.me.REG[4]; register_static_object(&once_value_3); } else fra.me.REG[4] = once_value_3; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1125 */ REGB1 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:742 */ if (!once_value_4) { fra.me.REG[4] = BOX_NativeString("if (!once_bool_"); REGB1 = TAG_Int(15); @@ -5483,9 +15259,10 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_4 = fra.me.REG[4]; register_static_object(&once_value_4); } else fra.me.REG[4] = once_value_4; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_5) { fra.me.REG[4] = BOX_NativeString(") {"); REGB1 = TAG_Int(3); @@ -5493,13 +15270,14 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_5 = fra.me.REG[4]; register_static_object(&once_value_5); } else fra.me.REG[4] = once_value_5; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); } else { + /* ./compiling//compiling_icode.nit:1128 */ REGB1 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:745 */ if (!once_value_6) { fra.me.REG[4] = BOX_NativeString("static val_t once_value_"); REGB1 = TAG_Int(24); @@ -5507,9 +15285,10 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_6 = fra.me.REG[4]; register_static_object(&once_value_6); } else fra.me.REG[4] = once_value_6; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_7) { fra.me.REG[4] = BOX_NativeString("; /* Once value */"); REGB1 = TAG_Int(18); @@ -5517,12 +15296,13 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_7 = fra.me.REG[4]; register_static_object(&once_value_7); } else fra.me.REG[4] = once_value_7; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1129 */ REGB1 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:746 */ if (!once_value_8) { fra.me.REG[4] = BOX_NativeString("if (!once_value_"); REGB1 = TAG_Int(16); @@ -5530,9 +15310,10 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_8 = fra.me.REG[4]; register_static_object(&once_value_8); } else fra.me.REG[4] = once_value_8; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (!once_value_9) { fra.me.REG[4] = BOX_NativeString(") {"); REGB1 = TAG_Int(3); @@ -5540,146 +15321,150 @@ val_t compiling_icode___IOnce___inner_compile_to_c(val_t p0, val_t p1){ once_value_9 = fra.me.REG[4]; register_static_object(&once_value_9); } else fra.me.REG[4] = once_value_9; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); } - /* ./compiling//compiling_icode.nit:748 */ + /* ./compiling//compiling_icode.nit:1131 */ CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1132 */ fra.me.REG[3] = CALL_icode_base___IOnce___body(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:749 */ CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); - fra.me.REG[0] = CALL_icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]); - REGB1 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_IRegister, ID_IRegister)) /*cast IRegister*/; - /* ./compiling//compiling_icode.nit:750 */ - if (UNTAG_Bool(REGB1)) { - } else { - fprintf(stderr, "Cast failed"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 750); - nit_exit(1); - } - fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1133 */ + fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1134 */ REGB1 = TAG_Int(5); - fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:751 */ + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1); if (!once_value_10) { - fra.me.REG[4] = BOX_NativeString("once_value_"); + fra.me.REG[5] = BOX_NativeString("once_value_"); REGB1 = TAG_Int(11); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); - once_value_10 = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); + once_value_10 = fra.me.REG[5]; register_static_object(&once_value_10); - } else fra.me.REG[4] = once_value_10; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + } else fra.me.REG[5] = once_value_10; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); if (!once_value_11) { - fra.me.REG[4] = BOX_NativeString(" = "); + fra.me.REG[5] = BOX_NativeString(" = "); REGB1 = TAG_Int(3); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); - once_value_11 = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); + once_value_11 = fra.me.REG[5]; register_static_object(&once_value_11); - } else fra.me.REG[4] = once_value_11; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); - array___Array___add(fra.me.REG[3], fra.me.REG[0]); + } else fra.me.REG[5] = once_value_11; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); if (!once_value_12) { - fra.me.REG[4] = BOX_NativeString(";"); + fra.me.REG[5] = BOX_NativeString(";"); REGB1 = TAG_Int(1); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); - once_value_12 = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); + once_value_12 = fra.me.REG[5]; register_static_object(&once_value_12); - } else fra.me.REG[4] = once_value_12; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + } else fra.me.REG[5] = once_value_12; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1135 */ REGB1 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:752 */ + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1); if (!once_value_13) { - fra.me.REG[4] = BOX_NativeString("register_static_object(&once_value_"); + fra.me.REG[5] = BOX_NativeString("register_static_object(&once_value_"); REGB1 = TAG_Int(35); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); - once_value_13 = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); + once_value_13 = fra.me.REG[5]; register_static_object(&once_value_13); - } else fra.me.REG[4] = once_value_13; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + } else fra.me.REG[5] = once_value_13; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); if (!once_value_14) { - fra.me.REG[4] = BOX_NativeString(");"); + fra.me.REG[5] = BOX_NativeString(");"); REGB1 = TAG_Int(2); - fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); - once_value_14 = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); + once_value_14 = fra.me.REG[5]; register_static_object(&once_value_14); - } else fra.me.REG[4] = once_value_14; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + } else fra.me.REG[5] = once_value_14; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1136 */ fra.me.REG[2] = CALL_icode_base___IRegister___stype(fra.me.REG[2])(fra.me.REG[2]); REGB1 = CALL_static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:753 */ if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Int(3); fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1); if (!once_value_15) { - fra.me.REG[3] = BOX_NativeString("once_bool_"); + fra.me.REG[4] = BOX_NativeString("once_bool_"); REGB1 = TAG_Int(10); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); - once_value_15 = fra.me.REG[3]; + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_15 = fra.me.REG[4]; register_static_object(&once_value_15); - } else fra.me.REG[3] = once_value_15; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + } else fra.me.REG[4] = once_value_15; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); if (!once_value_16) { - fra.me.REG[3] = BOX_NativeString(" = true;"); + fra.me.REG[4] = BOX_NativeString(" = true;"); REGB1 = TAG_Int(8); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); - once_value_16 = fra.me.REG[3]; + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_16 = fra.me.REG[4]; register_static_object(&once_value_16); - } else fra.me.REG[3] = once_value_16; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + } else fra.me.REG[4] = once_value_16; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); } - /* ./compiling//compiling_icode.nit:754 */ + /* ./compiling//compiling_icode.nit:1137 */ CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1138 */ REGB1 = TAG_Int(5); fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:755 */ if (!once_value_17) { - fra.me.REG[3] = BOX_NativeString("} else "); + fra.me.REG[4] = BOX_NativeString("} else "); REGB1 = TAG_Int(7); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); - once_value_17 = fra.me.REG[3]; + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_17 = fra.me.REG[4]; register_static_object(&once_value_17); - } else fra.me.REG[3] = once_value_17; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); - array___Array___add(fra.me.REG[2], fra.me.REG[0]); + } else fra.me.REG[4] = once_value_17; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); if (!once_value_18) { - fra.me.REG[3] = BOX_NativeString(" = once_value_"); + fra.me.REG[4] = BOX_NativeString(" = once_value_"); REGB1 = TAG_Int(14); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); - once_value_18 = fra.me.REG[3]; + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_18 = fra.me.REG[4]; register_static_object(&once_value_18); - } else fra.me.REG[3] = once_value_18; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); - fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0); - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + } else fra.me.REG[4] = once_value_18; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[4] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); if (!once_value_19) { - fra.me.REG[3] = BOX_NativeString(";"); + fra.me.REG[4] = BOX_NativeString(";"); REGB0 = TAG_Int(1); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_19 = fra.me.REG[3]; + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_19 = fra.me.REG[4]; register_static_object(&once_value_19); - } else fra.me.REG[3] = once_value_19; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + } else fra.me.REG[4] = once_value_19; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:756 */ - goto label20; - label20: while(0); + /* ./compiling//compiling_icode.nit:1139 */ + fra.me.REG[1] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1140 */ + CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); stack_frame_head = fra.me.prev; - return fra.me.REG[0]; + return; } void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; @@ -5702,7 +15487,7 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ static val_t once_value_14; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 761; + fra.me.line = 1145; fra.me.meth = LOCATE_compiling_icode___IClosCall___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 7; @@ -5715,15 +15500,15 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ fra.me.REG[6] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:1147 */ fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:763 */ CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1150 */ REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:766 */ if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:1151 */ REGB0 = TAG_Int(3); fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:767 */ if (!once_value_1) { fra.me.REG[3] = BOX_NativeString("closctx->closure_funs["); REGB0 = TAG_Int(22); @@ -5731,12 +15516,12 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_1 = fra.me.REG[3]; register_static_object(&once_value_1); } else fra.me.REG[3] = once_value_1; - array___Array___add(fra.me.REG[2], fra.me.REG[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_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[4] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - array___Array___add(fra.me.REG[2], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); if (!once_value_2) { fra.me.REG[4] = BOX_NativeString("]"); REGB0 = TAG_Int(1); @@ -5744,11 +15529,12 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_2 = fra.me.REG[4]; register_static_object(&once_value_2); } else fra.me.REG[4] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1152 */ REGB0 = TAG_Int(1); fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:768 */ if (!once_value_3) { fra.me.REG[3] = BOX_NativeString("closctx->closure_ctx"); REGB0 = TAG_Int(20); @@ -5756,11 +15542,12 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_3 = fra.me.REG[3]; register_static_object(&once_value_3); } else fra.me.REG[3] = once_value_3; - array___Array___add(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); } else { + /* ./compiling//compiling_icode.nit:1154 */ REGB0 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:770 */ if (!once_value_4) { fra.me.REG[5] = BOX_NativeString("CREG["); REGB0 = TAG_Int(5); @@ -5768,12 +15555,12 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_4 = fra.me.REG[5]; register_static_object(&once_value_4); } else fra.me.REG[5] = once_value_4; - array___Array___add(fra.me.REG[3], fra.me.REG[5]); + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[6] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); - fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - array___Array___add(fra.me.REG[3], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); if (!once_value_5) { fra.me.REG[6] = BOX_NativeString("]"); REGB0 = TAG_Int(1); @@ -5781,12 +15568,13 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_5 = fra.me.REG[6]; register_static_object(&once_value_5); } else fra.me.REG[6] = once_value_5; - array___Array___add(fra.me.REG[3], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); 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]; + /* ./compiling//compiling_icode.nit:1155 */ REGB0 = TAG_Int(1); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:771 */ if (!once_value_6) { fra.me.REG[6] = BOX_NativeString("closctx_param"); REGB0 = TAG_Int(13); @@ -5794,16 +15582,17 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_6 = fra.me.REG[6]; register_static_object(&once_value_6); } else fra.me.REG[6] = once_value_6; - array___Array___add(fra.me.REG[3], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); fra.me.REG[4] = fra.me.REG[3]; } + /* ./compiling//compiling_icode.nit:1157 */ fra.me.REG[3] = CALL_icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:773 */ CALL_abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1159 */ REGB0 = TAG_Int(7); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:775 */ if (!once_value_7) { fra.me.REG[6] = BOX_NativeString("(("); REGB0 = TAG_Int(2); @@ -5811,11 +15600,12 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_7 = fra.me.REG[6]; register_static_object(&once_value_7); } else fra.me.REG[6] = once_value_7; - array___Array___add(fra.me.REG[3], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); fra.me.REG[6] = CALL_compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[5] = CALL_icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); - array___Array___add(fra.me.REG[3], fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); if (!once_value_8) { fra.me.REG[5] = BOX_NativeString(")("); REGB0 = TAG_Int(2); @@ -5823,8 +15613,9 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_8 = fra.me.REG[5]; register_static_object(&once_value_8); } else fra.me.REG[5] = once_value_8; - array___Array___add(fra.me.REG[3], fra.me.REG[5]); - array___Array___add(fra.me.REG[3], fra.me.REG[2]); + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); if (!once_value_9) { fra.me.REG[2] = BOX_NativeString("))("); REGB0 = TAG_Int(3); @@ -5832,7 +15623,8 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_9 = fra.me.REG[2]; register_static_object(&once_value_9); } else fra.me.REG[2] = once_value_9; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); if (!once_value_10) { fra.me.REG[2] = BOX_NativeString(", "); REGB0 = TAG_Int(2); @@ -5840,8 +15632,9 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_10 = fra.me.REG[2]; register_static_object(&once_value_10); } else fra.me.REG[2] = once_value_10; + fra.me.REG[2] = fra.me.REG[2]; fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); - array___Array___add(fra.me.REG[3], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); if (!once_value_11) { fra.me.REG[2] = BOX_NativeString(")"); REGB0 = TAG_Int(1); @@ -5849,23 +15642,29 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_11 = fra.me.REG[2]; register_static_object(&once_value_11); } else fra.me.REG[2] = once_value_11; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:776 */ - CALL_compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1160 */ + fra.me.REG[2] = NEW_Writer_compiling_writer___Writer___init(); + /* ./compiling//compiling_icode.nit:1161 */ + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1162 */ + CALL_compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1165 */ REGB0 = TAG_Int(3); - fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:779 */ + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); if (!once_value_12) { - fra.me.REG[2] = BOX_NativeString("if ("); + fra.me.REG[3] = BOX_NativeString("if ("); REGB0 = TAG_Int(4); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_12 = fra.me.REG[2]; + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_12 = fra.me.REG[3]; register_static_object(&once_value_12); - } else fra.me.REG[2] = once_value_12; - array___Array___add(fra.me.REG[3], fra.me.REG[2]); + } else fra.me.REG[3] = once_value_12; + 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[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]); - array___Array___add(fra.me.REG[3], fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); if (!once_value_13) { fra.me.REG[4] = BOX_NativeString("->has_broke) {"); REGB0 = TAG_Int(14); @@ -5873,14 +15672,16 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_13 = fra.me.REG[4]; register_static_object(&once_value_13); } else fra.me.REG[4] = once_value_13; - array___Array___add(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); - /* ./compiling//compiling_icode.nit:780 */ + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1166 */ CALL_compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1167 */ fra.me.REG[0] = CALL_icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1168 */ REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - /* ./compiling//compiling_icode.nit:782 */ if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); @@ -5894,22 +15695,20 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_icode.nit:1169 */ REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); - /* ./compiling//compiling_icode.nit:783 */ if (UNTAG_Bool(REGB0)) { - fprintf(stderr, "Reciever is null"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 783); - nit_exit(1); + nit_abort("Reciever is null", NULL, LOCATE_compiling_icode, 1169); } CALL_compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); } + /* ./compiling//compiling_icode.nit:1171 */ fra.me.REG[0] = CALL_compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[0] = CALL_icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:785 */ CALL_compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:786 */ + /* ./compiling//compiling_icode.nit:1172 */ CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:787 */ + /* ./compiling//compiling_icode.nit:1173 */ if (!once_value_14) { fra.me.REG[0] = BOX_NativeString("}"); REGB0 = TAG_Int(1); @@ -5917,44 +15716,25 @@ void compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){ once_value_14 = fra.me.REG[0]; register_static_object(&once_value_14); } else fra.me.REG[0] = once_value_14; + fra.me.REG[0] = fra.me.REG[0]; CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); stack_frame_head = fra.me.prev; return; } -val_t compiling_icode___IClosCall___inner_compile_to_c(val_t p0, val_t p1){ - 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_compiling_icode; - fra.me.line = 790; - fra.me.meth = LOCATE_compiling_icode___IClosCall___inner_compile_to_c; - 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; - /* ./compiling//compiling_icode.nit:790 */ - fprintf(stderr, "Aborted"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_icode, 790); - nit_exit(1); - stack_frame_head = fra.me.prev; - return NIT_NULL; -} -val_t compiling_icode___IHasClos___inner_compile_to_c(val_t p0, val_t p1){ +void compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_2; /* 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_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 794; - fra.me.meth = LOCATE_compiling_icode___IHasClos___inner_compile_to_c; + fra.me.line = 1178; + fra.me.meth = LOCATE_compiling_icode___IHasClos___compile_to_c; fra.me.has_broke = 0; fra.me.REG_size = 5; fra.me.REG[0] = NIT_NULL; @@ -5964,87 +15744,95 @@ val_t compiling_icode___IHasClos___inner_compile_to_c(val_t p0, val_t p1){ fra.me.REG[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:1180 */ + REGB0 = CALL_compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./compiling//compiling_icode.nit:1181 */ + fra.me.REG[2] = CALL_icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1182 */ + fra.me.REG[2] = CALL_compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1183 */ + if (!once_value_2) { + fra.me.REG[3] = BOX_NativeString("TAG_Bool("); + REGB0 = TAG_Int(9); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1184 */ REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:797 */ if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Int(3); - fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:798 */ - if (!once_value_1) { + /* ./compiling//compiling_icode.nit:1185 */ + if (!once_value_3) { fra.me.REG[3] = BOX_NativeString("closctx->closure_funs["); REGB0 = TAG_Int(22); 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; - array___Array___add(fra.me.REG[2], fra.me.REG[3]); + 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_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1186 */ fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[4] = CALL_icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - array___Array___add(fra.me.REG[2], fra.me.REG[4]); - if (!once_value_2) { + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1187 */ + if (!once_value_4) { fra.me.REG[4] = BOX_NativeString("]"); REGB0 = TAG_Int(1); fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); - once_value_2 = fra.me.REG[4]; - register_static_object(&once_value_2); - } else fra.me.REG[4] = once_value_2; - array___Array___add(fra.me.REG[2], fra.me.REG[4]); - fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + once_value_4 = fra.me.REG[4]; + register_static_object(&once_value_4); + } else fra.me.REG[4] = once_value_4; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); } else { - REGB0 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:800 */ - if (!once_value_3) { - fra.me.REG[3] = BOX_NativeString("CREG["); + /* ./compiling//compiling_icode.nit:1189 */ + if (!once_value_5) { + fra.me.REG[4] = BOX_NativeString("CREG["); REGB0 = TAG_Int(5); - fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); - once_value_3 = fra.me.REG[3]; - register_static_object(&once_value_3); - } else fra.me.REG[3] = once_value_3; - array___Array___add(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_5 = fra.me.REG[4]; + register_static_object(&once_value_5); + } else fra.me.REG[4] = once_value_5; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1190 */ fra.me.REG[1] = CALL_compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[0] = CALL_icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); - fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); - array___Array___add(fra.me.REG[4], fra.me.REG[0]); - if (!once_value_4) { + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1191 */ + if (!once_value_6) { fra.me.REG[0] = BOX_NativeString("]"); REGB0 = TAG_Int(1); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_4 = fra.me.REG[0]; - register_static_object(&once_value_4); - } else fra.me.REG[0] = once_value_4; - array___Array___add(fra.me.REG[4], fra.me.REG[0]); - fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[2] = fra.me.REG[4]; + once_value_6 = fra.me.REG[0]; + register_static_object(&once_value_6); + } else fra.me.REG[0] = once_value_6; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); } - REGB0 = TAG_Int(3); - fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:802 */ - if (!once_value_5) { - fra.me.REG[0] = BOX_NativeString("TAG_Bool("); + /* ./compiling//compiling_icode.nit:1193 */ + if (!once_value_7) { + fra.me.REG[0] = BOX_NativeString(" != NULL)"); REGB0 = TAG_Int(9); fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); - once_value_5 = fra.me.REG[0]; - register_static_object(&once_value_5); - } else fra.me.REG[0] = once_value_5; - array___Array___add(fra.me.REG[4], fra.me.REG[0]); - array___Array___add(fra.me.REG[4], fra.me.REG[2]); - if (!once_value_6) { - fra.me.REG[2] = BOX_NativeString(" != NULL)"); - REGB0 = TAG_Int(9); - fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); - once_value_6 = fra.me.REG[2]; - register_static_object(&once_value_6); - } else fra.me.REG[2] = once_value_6; - array___Array___add(fra.me.REG[4], fra.me.REG[2]); - fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); - goto label7; - label7: while(0); + once_value_7 = fra.me.REG[0]; + register_static_object(&once_value_7); + } else fra.me.REG[0] = once_value_7; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + label1: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[4]; + return; } val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[8];} fra; @@ -6064,7 +15852,7 @@ val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){ static val_t once_value_10; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_compiling_icode; - fra.me.line = 807; + fra.me.line = 1198; fra.me.meth = LOCATE_compiling_icode___IClosureDef___compile_closure; fra.me.has_broke = 0; fra.me.REG_size = 9; @@ -6079,86 +15867,98 @@ val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){ fra.me.REG[8] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; + /* ./compiling//compiling_icode.nit:1202 */ fra.me.REG[2] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1205 */ REGB0 = CALL_compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1206 */ REGB1 = TAG_Bool(true); - /* ./compiling//compiling_icode.nit:815 */ CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1); + /* ./compiling//compiling_icode.nit:1209 */ fra.me.REG[3] = CALL_compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_icode.nit:1210 */ fra.me.REG[4] = NEW_HashSet_hash_collection___HashSet___init(); - /* ./compiling//compiling_icode.nit:819 */ CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[5] = NEW_CContext_compiling_base___CContext___init(); - /* ./compiling//compiling_icode.nit:823 */ - CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); - fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___out_contexts(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:824 */ - array___Array___add(fra.me.REG[5], fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:1213 */ + fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1214 */ + fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_icode.nit:1215 */ + fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]); + CALL_compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:1216 */ + fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]); + CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + /* ./compiling//compiling_icode.nit:1219 */ REGB1 = TAG_Int(5); fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:827 */ if (!once_value_1) { - fra.me.REG[5] = BOX_NativeString("OC_"); + fra.me.REG[7] = BOX_NativeString("OC_"); REGB1 = TAG_Int(3); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); - once_value_1 = fra.me.REG[5]; + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_1 = fra.me.REG[7]; register_static_object(&once_value_1); - } else fra.me.REG[5] = once_value_1; - array___Array___add(fra.me.REG[6], fra.me.REG[5]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]); - array___Array___add(fra.me.REG[6], fra.me.REG[5]); + } else fra.me.REG[7] = once_value_1; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___basecname(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); if (!once_value_2) { - fra.me.REG[5] = BOX_NativeString("_"); + fra.me.REG[7] = BOX_NativeString("_"); REGB1 = TAG_Int(1); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); - once_value_2 = fra.me.REG[5]; + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_2 = fra.me.REG[7]; register_static_object(&once_value_2); - } else fra.me.REG[5] = once_value_2; - array___Array___add(fra.me.REG[6], fra.me.REG[5]); + } else fra.me.REG[7] = once_value_2; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); REGB1 = CALL_compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]); - fra.me.REG[5] = CALL_string___Object___to_s(REGB1)(REGB1); - array___Array___add(fra.me.REG[6], fra.me.REG[5]); + fra.me.REG[7] = CALL_string___Object___to_s(REGB1)(REGB1); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); if (!once_value_3) { - fra.me.REG[5] = BOX_NativeString(""); + fra.me.REG[7] = BOX_NativeString(""); REGB1 = TAG_Int(0); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); - once_value_3 = fra.me.REG[5]; + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_3 = fra.me.REG[7]; register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - array___Array___add(fra.me.REG[6], fra.me.REG[5]); + } else fra.me.REG[7] = once_value_3; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[5] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:828 */ + /* ./compiling//compiling_icode.nit:1220 */ + fra.me.REG[7] = CALL_compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]); if (!once_value_4) { - fra.me.REG[7] = BOX_NativeString("struct stack_frame_t *closctx"); + fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx"); REGB1 = TAG_Int(29); - fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); - once_value_4 = fra.me.REG[7]; + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_4 = fra.me.REG[8]; register_static_object(&once_value_4); - } else fra.me.REG[7] = once_value_4; - fra.me.REG[7] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[6], NIT_NULL, fra.me.REG[7], NIT_NULL); - fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[2])(fra.me.REG[2]); - fra.me.REG[8] = NEW_CContext_compiling_base___CContext___init(); - /* ./compiling//compiling_icode.nit:830 */ - CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]); - fra.me.REG[7] = CALL_compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7]); - REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); - /* ./compiling//compiling_icode.nit:832 */ + } else fra.me.REG[8] = once_value_4; + fra.me.REG[8] = fra.me.REG[8]; + fra.me.REG[8] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[8], NIT_NULL); + /* ./compiling//compiling_icode.nit:1221 */ + fra.me.REG[7] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[7] = CALL_compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]); + CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]); + /* ./compiling//compiling_icode.nit:1223 */ + fra.me.REG[8] = CALL_compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[8]); + /* ./compiling//compiling_icode.nit:1224 */ + REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL); if (UNTAG_Bool(REGB2)) { REGB2 = TAG_Bool(false); REGB1 = REGB2; } else { - REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL); + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL); REGB1 = REGB2; } } if (UNTAG_Bool(REGB1)) { - /* ./compiling//compiling_icode.nit:833 */ + /* ./compiling//compiling_icode.nit:1225 */ if (!once_value_5) { fra.me.REG[0] = BOX_NativeString("return;"); REGB1 = TAG_Int(7); @@ -6166,56 +15966,57 @@ val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){ once_value_5 = fra.me.REG[0]; register_static_object(&once_value_5); } else fra.me.REG[0] = once_value_5; + fra.me.REG[0] = fra.me.REG[0]; CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); } else { + /* ./compiling//compiling_icode.nit:1227 */ REGB1 = TAG_Int(3); fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB1); - /* ./compiling//compiling_icode.nit:835 */ if (!once_value_6) { - fra.me.REG[8] = BOX_NativeString("return "); + fra.me.REG[7] = BOX_NativeString("return "); REGB1 = TAG_Int(7); - fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); - once_value_6 = fra.me.REG[8]; + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_6 = fra.me.REG[7]; register_static_object(&once_value_6); - } else fra.me.REG[8] = once_value_6; - array___Array___add(fra.me.REG[0], fra.me.REG[8]); - array___Array___add(fra.me.REG[0], fra.me.REG[7]); + } else fra.me.REG[7] = once_value_6; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]); if (!once_value_7) { - fra.me.REG[7] = BOX_NativeString(";"); + fra.me.REG[8] = BOX_NativeString(";"); REGB1 = TAG_Int(1); - fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); - once_value_7 = fra.me.REG[7]; + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_7 = fra.me.REG[8]; register_static_object(&once_value_7); - } else fra.me.REG[7] = once_value_7; - array___Array___add(fra.me.REG[0], fra.me.REG[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[0])(fra.me.REG[0], fra.me.REG[8]); fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); } - fra.me.REG[0] = CALL_compiling_base___CompilerVisitor___ctx(fra.me.REG[2])(fra.me.REG[2]); - /* ./compiling//compiling_icode.nit:837 */ - CALL_compiling_base___CContext___append(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); - /* ./compiling//compiling_icode.nit:838 */ - CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); - /* ./compiling//compiling_icode.nit:839 */ + /* ./compiling//compiling_icode.nit:1229 */ CALL_compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); - /* ./compiling//compiling_icode.nit:840 */ + /* ./compiling//compiling_icode.nit:1230 */ if (!once_value_8) { - fra.me.REG[5] = BOX_NativeString("}"); + fra.me.REG[0] = BOX_NativeString("}"); REGB1 = TAG_Int(1); - fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); - once_value_8 = fra.me.REG[5]; + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1); + once_value_8 = fra.me.REG[0]; register_static_object(&once_value_8); - } else fra.me.REG[5] = once_value_8; - CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); - /* ./compiling//compiling_icode.nit:843 */ - CALL_compiling_base___CompilerVisitor___ctx__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); - /* ./compiling//compiling_icode.nit:844 */ + } else fra.me.REG[0] = once_value_8; + fra.me.REG[0] = fra.me.REG[0]; + CALL_compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_icode.nit:1233 */ + CALL_compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./compiling//compiling_icode.nit:1234 */ + CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + /* ./compiling//compiling_icode.nit:1235 */ CALL_compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); - /* ./compiling//compiling_icode.nit:845 */ + /* ./compiling//compiling_icode.nit:1236 */ CALL_compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_icode.nit:1237 */ REGB0 = TAG_Int(3); fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); - /* ./compiling//compiling_icode.nit:846 */ if (!once_value_9) { fra.me.REG[1] = BOX_NativeString("((fun_t)"); REGB0 = TAG_Int(8); @@ -6223,8 +16024,9 @@ val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){ once_value_9 = fra.me.REG[1]; register_static_object(&once_value_9); } else fra.me.REG[1] = once_value_9; - array___Array___add(fra.me.REG[3], fra.me.REG[1]); - array___Array___add(fra.me.REG[3], fra.me.REG[6]); + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); if (!once_value_10) { fra.me.REG[6] = BOX_NativeString(")"); REGB0 = TAG_Int(1); @@ -6232,7 +16034,8 @@ val_t compiling_icode___IClosureDef___compile_closure(val_t p0, val_t p1){ once_value_10 = fra.me.REG[6]; register_static_object(&once_value_10); } else fra.me.REG[6] = once_value_10; - array___Array___add(fra.me.REG[3], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); goto label11; label11: while(0);