+ CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[4], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:390 */
+ CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:391 */
+ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:392 */
+ if (!once_value_27) {
+ fra.me.REG[5] = BOX_NativeString("}");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_27 = fra.me.REG[5];
+ register_static_object(&once_value_27);
+ } else fra.me.REG[5] = once_value_27;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:396 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_28) {
+ fra.me.REG[7] = BOX_NativeString("val_t NEW_");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ 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[5])(fra.me.REG[5], fra.me.REG[7]);
+ fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[7] = CALL_string___Object___to_s(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]);
+ if (!once_value_29) {
+ fra.me.REG[7] = BOX_NativeString("(void);");
+ REGB2 = TAG_Int(7);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_29 = fra.me.REG[7];
+ register_static_object(&once_value_29);
+ } else fra.me.REG[7] = once_value_29;
+ 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]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:397 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_30) {
+ fra.me.REG[7] = BOX_NativeString("val_t NEW_");
+ REGB2 = TAG_Int(10);
+ 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[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]);
+ fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[7] = CALL_string___Object___to_s(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]);
+ if (!once_value_31) {
+ fra.me.REG[7] = BOX_NativeString("(void)");
+ REGB2 = TAG_Int(6);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_31 = fra.me.REG[7];
+ register_static_object(&once_value_31);
+ } else fra.me.REG[7] = once_value_31;
+ 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]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:398 */
+ if (!once_value_32) {
+ fra.me.REG[5] = BOX_NativeString("{");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_32 = fra.me.REG[5];
+ register_static_object(&once_value_32);
+ } else fra.me.REG[5] = once_value_32;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:399 */
+ CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:400 */
+ if (!once_value_33) {
+ fra.me.REG[5] = BOX_NativeString("obj_t obj;");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_33 = fra.me.REG[5];
+ register_static_object(&once_value_33);
+ } else fra.me.REG[5] = once_value_33;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:401 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_34) {
+ fra.me.REG[7] = BOX_NativeString("obj = alloc(sizeof(val_t) * ");
+ REGB2 = TAG_Int(28);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_34 = fra.me.REG[7];
+ register_static_object(&once_value_34);
+ } else fra.me.REG[7] = once_value_34;
+ 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]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./compiling//compiling_global.nit:401 */
+ fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ if (!once_value_35) {
+ fra.me.REG[3] = BOX_NativeString(");");
+ REGB2 = TAG_Int(2);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_35 = fra.me.REG[3];
+ register_static_object(&once_value_35);
+ } else fra.me.REG[3] = once_value_35;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:402 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_36) {
+ fra.me.REG[3] = BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_");
+ REGB2 = TAG_Int(34);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_36 = fra.me.REG[3];
+ register_static_object(&once_value_36);
+ } else fra.me.REG[3] = once_value_36;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ if (!once_value_37) {
+ fra.me.REG[3] = BOX_NativeString(";");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_37 = fra.me.REG[3];
+ register_static_object(&once_value_37);
+ } else fra.me.REG[3] = once_value_37;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:403 */
+ if (!once_value_38) {
+ fra.me.REG[5] = BOX_NativeString("obj[1].object_id = object_id_counter;");
+ REGB2 = TAG_Int(37);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_38 = fra.me.REG[5];
+ register_static_object(&once_value_38);
+ } else fra.me.REG[5] = once_value_38;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:404 */
+ if (!once_value_39) {
+ fra.me.REG[5] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
+ REGB2 = TAG_Int(42);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_39 = fra.me.REG[5];
+ register_static_object(&once_value_39);
+ } else fra.me.REG[5] = once_value_39;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:405 */
+ if (!once_value_40) {
+ fra.me.REG[5] = BOX_NativeString("return OBJ2VAL(obj);");
+ REGB2 = TAG_Int(20);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_40 = fra.me.REG[5];
+ register_static_object(&once_value_40);
+ } else fra.me.REG[5] = once_value_40;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:406 */
+ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:407 */
+ if (!once_value_41) {
+ fra.me.REG[5] = BOX_NativeString("}");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_41 = fra.me.REG[5];
+ register_static_object(&once_value_41);
+ } else fra.me.REG[5] = once_value_41;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:411 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_42) {
+ fra.me.REG[3] = BOX_NativeString("CHECKNEW_");
+ REGB2 = TAG_Int(9);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_42 = fra.me.REG[3];
+ register_static_object(&once_value_42);
+ } else fra.me.REG[3] = once_value_42;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ if (!once_value_43) {
+ fra.me.REG[3] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_43 = fra.me.REG[3];
+ register_static_object(&once_value_43);
+ } else fra.me.REG[3] = once_value_43;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:412 */
+ fra.me.REG[3] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
+ REGB2 = TAG_Int(3);
+ fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_44) {
+ fra.me.REG[4] = BOX_NativeString("check new ");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_44 = fra.me.REG[4];
+ register_static_object(&once_value_44);
+ } else fra.me.REG[4] = once_value_44;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
+ fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
+ if (!once_value_45) {
+ fra.me.REG[4] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_45 = fra.me.REG[4];
+ register_static_object(&once_value_45);
+ } else fra.me.REG[4] = once_value_45;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 412);
+ }
+ fra.me.REG[7] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[5], fra.me.REG[7], NIT_NULL, NIT_NULL);
+ /* ./compiling//compiling_global.nit:413 */
+ fra.me.REG[3] = CALL_compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:414 */
+ fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
+ fra.me.REG[4] = CALL_compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
+ CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:415 */
+ fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
+ REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 415);
+ }
+ CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:416 */
+ CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ /* ./compiling//compiling_global.nit:417 */
+ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:418 */
+ if (!once_value_46) {
+ fra.me.REG[3] = BOX_NativeString("}");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_46 = fra.me.REG[3];
+ register_static_object(&once_value_46);
+ } else fra.me.REG[3] = once_value_46;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ /* ./compiling//compiling_global.nit:421 */
+ fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_partial_order___PartialOrderElement___greaters(fra.me.REG[3])(fra.me.REG[3]);
+ REGB2 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
+ REGB0 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
+ /* ./compiling//compiling_global.nit:422 */
+ REGB2 = TAG_Int(5);
+ fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_47) {
+ fra.me.REG[7] = BOX_NativeString("int init_table[");
+ REGB2 = TAG_Int(15);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ 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[3])(fra.me.REG[3], fra.me.REG[7]);
+ fra.me.REG[7] = CALL_string___Object___to_s(REGB0)(REGB0);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
+ if (!once_value_48) {
+ fra.me.REG[7] = BOX_NativeString("] = {0");
+ REGB2 = TAG_Int(6);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_48 = fra.me.REG[7];
+ register_static_object(&once_value_48);
+ } else fra.me.REG[7] = once_value_48;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
+ if (!once_value_49) {
+ fra.me.REG[7] = BOX_NativeString(", 0");
+ REGB2 = TAG_Int(3);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ 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];
+ REGB2 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:217 */
+ REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
+ /* ./compiling//compiling_global.nit:422 */
+ fra.me.REG[7] = CALL_string___String_____star(fra.me.REG[7])(fra.me.REG[7], REGB2);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
+ if (!once_value_50) {
+ fra.me.REG[7] = BOX_NativeString("};");
+ REGB2 = TAG_Int(2);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_50 = fra.me.REG[7];
+ register_static_object(&once_value_50);
+ } else fra.me.REG[7] = once_value_50;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ /* ./compiling//compiling_global.nit:424 */
+ fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
+ CALL_abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_compiling_global___MMLocalClass___compile_tables_to_c_51));
+ } else {
+ /* ./compiling//compiling_global.nit:441 */
+ REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 441);
+ }
+ REGB2 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
+ REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
+ if (UNTAG_Bool(REGB2)) {
+ /* ./compiling//compiling_global.nit:442 */
+ REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 442);
+ }
+ fra.me.REG[2] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[2])(fra.me.REG[2]);
+ /* ./compiling//compiling_global.nit:443 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_62) {
+ fra.me.REG[7] = BOX_NativeString("struct TBOX_");
+ REGB2 = TAG_Int(12);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_62 = fra.me.REG[7];
+ register_static_object(&once_value_62);
+ } else fra.me.REG[7] = once_value_62;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
+ fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
+ if (!once_value_63) {
+ fra.me.REG[7] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ 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[3])(fra.me.REG[3], fra.me.REG[7]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ /* ./compiling//compiling_global.nit:444 */
+ REGB2 = TAG_Int(5);
+ fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_64) {
+ fra.me.REG[5] = BOX_NativeString("val_t BOX_");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_64 = fra.me.REG[5];
+ register_static_object(&once_value_64);
+ } else fra.me.REG[5] = once_value_64;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
+ fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
+ if (!once_value_65) {
+ fra.me.REG[5] = BOX_NativeString("(");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_65 = fra.me.REG[5];
+ register_static_object(&once_value_65);
+ } else fra.me.REG[5] = once_value_65;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
+ if (!once_value_66) {
+ fra.me.REG[2] = BOX_NativeString(" val) {");
+ REGB2 = TAG_Int(7);
+ fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
+ once_value_66 = fra.me.REG[2];
+ register_static_object(&once_value_66);
+ } else fra.me.REG[2] = once_value_66;
+ fra.me.REG[2] = fra.me.REG[2];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:445 */
+ CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:446 */
+ REGB2 = TAG_Int(7);
+ fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_67) {
+ fra.me.REG[2] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
+ once_value_67 = fra.me.REG[2];
+ register_static_object(&once_value_67);
+ } else fra.me.REG[2] = once_value_67;
+ fra.me.REG[2] = fra.me.REG[2];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
+ if (!once_value_68) {
+ fra.me.REG[2] = BOX_NativeString(" *box = (");
+ REGB2 = TAG_Int(9);
+ fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
+ once_value_68 = fra.me.REG[2];
+ register_static_object(&once_value_68);
+ } else fra.me.REG[2] = once_value_68;
+ fra.me.REG[2] = fra.me.REG[2];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
+ if (!once_value_69) {
+ fra.me.REG[2] = BOX_NativeString("*)alloc(sizeof(");
+ REGB2 = TAG_Int(15);
+ fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
+ once_value_69 = fra.me.REG[2];
+ register_static_object(&once_value_69);
+ } else fra.me.REG[2] = once_value_69;
+ fra.me.REG[2] = fra.me.REG[2];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
+ if (!once_value_70) {
+ fra.me.REG[3] = BOX_NativeString("));");
+ REGB2 = TAG_Int(3);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_70 = fra.me.REG[3];
+ register_static_object(&once_value_70);
+ } else fra.me.REG[3] = once_value_70;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:447 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_71) {
+ fra.me.REG[3] = BOX_NativeString("box->vft = VFT_");
+ REGB2 = TAG_Int(15);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_71 = fra.me.REG[3];
+ register_static_object(&once_value_71);
+ } else fra.me.REG[3] = once_value_71;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
+ 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]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
+ if (!once_value_72) {
+ fra.me.REG[0] = BOX_NativeString(";");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2);
+ once_value_72 = fra.me.REG[0];
+ register_static_object(&once_value_72);
+ } else fra.me.REG[0] = once_value_72;
+ fra.me.REG[0] = fra.me.REG[0];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:448 */
+ if (!once_value_73) {
+ fra.me.REG[7] = BOX_NativeString("box->val = val;");
+ REGB2 = TAG_Int(15);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ 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_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:449 */
+ if (!once_value_74) {
+ fra.me.REG[7] = BOX_NativeString("box->object_id = object_id_counter;");
+ REGB2 = TAG_Int(35);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_74 = fra.me.REG[7];
+ register_static_object(&once_value_74);
+ } else fra.me.REG[7] = once_value_74;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:450 */
+ if (!once_value_75) {
+ fra.me.REG[7] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
+ REGB2 = TAG_Int(42);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_75 = fra.me.REG[7];
+ register_static_object(&once_value_75);
+ } else fra.me.REG[7] = once_value_75;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:451 */
+ if (!once_value_76) {
+ fra.me.REG[7] = BOX_NativeString("return OBJ2VAL(box);");
+ REGB2 = TAG_Int(20);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_76 = fra.me.REG[7];
+ register_static_object(&once_value_76);
+ } else fra.me.REG[7] = once_value_76;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:452 */
+ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:453 */
+ if (!once_value_77) {
+ fra.me.REG[7] = BOX_NativeString("}");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ 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_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+ }
+ }
+ }
+ stack_frame_head = fra.me.prev;
+ return;
+}
+ void OC_compiling_global___MMLocalClass___compile_tables_to_c_51(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+ struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+ val_t REGB0;
+ fun_t CREG[1];
+ val_t tmp;
+ static val_t once_value_53; /* Once value */
+ static val_t once_value_54; /* Once value */
+ static val_t once_value_55; /* 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_60; /* Once value */
+ static val_t once_value_61; /* Once value */
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_compiling_global;
+ fra.me.line = 0;
+ fra.me.meth = LOCATE_compiling_global___MMLocalClass___compile_tables_to_c;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 5;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[4] = NIT_NULL;
+ fra.me.closure_ctx = closctx_param;
+ fra.me.closure_funs = CREG;
+ fra.me.REG[0] = p0;
+ CREG[0] = clos_fun0;
+ /* ./compiling//compiling_global.nit:425 */
+ fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass_____bra(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
+ /* ./compiling//compiling_global.nit:427 */
+ fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
+ REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[0]);
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ goto label52;
+ }
+ /* ./compiling//compiling_global.nit:428 */
+ REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_compiling_global, 428);
+ }
+ /* ./compiling//compiling_global.nit:430 */
+ REGB0 = TAG_Int(5);
+ fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+ if (!once_value_53) {
+ fra.me.REG[2] = BOX_NativeString("NEW_");
+ REGB0 = TAG_Int(4);
+ fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+ once_value_53 = fra.me.REG[2];
+ register_static_object(&once_value_53);
+ } else fra.me.REG[2] = once_value_53;
+ 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(closctx->REG[0])(closctx->REG[0]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ if (!once_value_54) {
+ 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_54 = fra.me.REG[2];
+ register_static_object(&once_value_54);
+ } else fra.me.REG[2] = once_value_54;
+ 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_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[2])(fra.me.REG[2]);
+ fra.me.REG[2] = CALL_compiling_base___MMLocalProperty___cname(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]);
+ if (!once_value_55) {
+ fra.me.REG[2] = BOX_NativeString("");
+ REGB0 = TAG_Int(0);
+ fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+ once_value_55 = fra.me.REG[2];
+ register_static_object(&once_value_55);
+ } else fra.me.REG[2] = once_value_55;
+ 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]);
+ /* ./compiling//compiling_global.nit:431 */
+ fra.me.REG[2] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[0])(closctx->REG[0]);
+ fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ REGB0 = TAG_Int(5);
+ fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
+ if (!once_value_56) {
+ fra.me.REG[4] = BOX_NativeString("new ");
+ REGB0 = TAG_Int(4);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
+ once_value_56 = fra.me.REG[4];
+ register_static_object(&once_value_56);
+ } else fra.me.REG[4] = once_value_56;
+ 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(closctx->REG[0])(closctx->REG[0]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+ if (!once_value_57) {
+ 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_57 = fra.me.REG[4];
+ register_static_object(&once_value_57);
+ } else fra.me.REG[4] = once_value_57;
+ 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_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+ if (!once_value_58) {
+ 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_58 = fra.me.REG[4];
+ register_static_object(&once_value_58);
+ } else fra.me.REG[4] = once_value_58;
+ 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(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 431);
+ }
+ fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], closctx->REG[1], fra.me.REG[1], fra.me.REG[3], NIT_NULL, NIT_NULL);
+ /* ./compiling//compiling_global.nit:432 */
+ fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___decl_writer(closctx->REG[1])(closctx->REG[1]);
+ /* ./compiling//compiling_global.nit:433 */
+ fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___writer(closctx->REG[1])(closctx->REG[1]);
+ fra.me.REG[4] = CALL_compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
+ CALL_compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:434 */
+ CALL_compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], closctx->REG[3]);
+ /* ./compiling//compiling_global.nit:435 */
+ fra.me.REG[4] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[0])(closctx->REG[0]);
+ fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
+ REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 435);
+ }
+ fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], fra.me.REG[1], fra.me.REG[3]);
+ REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_String, ID_String)) /*cast String*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_compiling_global, 435);
+ }
+ /* ./compiling//compiling_global.nit:436 */
+ REGB0 = TAG_Int(3);
+ fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+ if (!once_value_59) {
+ fra.me.REG[0] = BOX_NativeString("return ");
+ REGB0 = TAG_Int(7);
+ fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
+ once_value_59 = fra.me.REG[0];
+ register_static_object(&once_value_59);
+ } else fra.me.REG[0] = once_value_59;
+ fra.me.REG[0] = fra.me.REG[0];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ if (!once_value_60) {
+ 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_60 = fra.me.REG[3];
+ register_static_object(&once_value_60);
+ } else fra.me.REG[3] = once_value_60;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(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]);
+ CALL_compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:437 */
+ CALL_compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
+ /* ./compiling//compiling_global.nit:438 */
+ CALL_compiling_base___CompilerVisitor___unindent(closctx->REG[1])(closctx->REG[1]);
+ /* ./compiling//compiling_global.nit:439 */
+ if (!once_value_61) {
+ 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_61 = fra.me.REG[2];
+ register_static_object(&once_value_61);
+ } else fra.me.REG[2] = once_value_61;
+ fra.me.REG[2] = fra.me.REG[2];
+ CALL_compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
+ label52: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+ }
+void compiling_global___MMMethod___compile_property_to_c(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ static val_t once_value_1; /* Once value */
+ static val_t once_value_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_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 */
+ static val_t once_value_15; /* Once value */
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_compiling_global;
+ fra.me.line = 459;
+ fra.me.meth = LOCATE_compiling_global___MMMethod___compile_property_to_c;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 9;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[4] = NIT_NULL;
+ fra.me.REG[5] = NIT_NULL;
+ fra.me.REG[6] = NIT_NULL;
+ fra.me.REG[7] = NIT_NULL;
+ fra.me.REG[8] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./compiling//compiling_global.nit:461 */
+ fra.me.REG[2] = CALL_icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
+ /* ./compiling//compiling_global.nit:462 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(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[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;