X-Git-Url: http://nitlanguage.org diff --git a/c_src/compiling_global._sep.c b/c_src/compiling_global._sep.c index 94799f1..28720fa 100644 --- a/c_src/compiling_global._sep.c +++ b/c_src/compiling_global._sep.c @@ -1,3448 +1,4466 @@ /* This C file is generated by NIT to compile module compiling_global. */ #include "compiling_global._sep.h" -val_t compiling_global___ColorContext___color(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_global___ColorContext___color}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ATTR_compiling_global___ColorContext____colors(variable[3]) /*ColorContext::_colors*/; - variable[3] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3], variable[1] /*e*/) /*CoupleMap::[]*/; - variable[2] = variable[3]; - goto return_label0; - return_label0: while(false); - tracehead = trace.prev; - return variable[2]; -} -val_t compiling_global___ColorContext___has_color(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 34, LOCATE_compiling_global___ColorContext___has_color}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ATTR_compiling_global___ColorContext____colors(variable[3]) /*ColorContext::_colors*/; - variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[4] = variable[3]; - if (UNTAG_Bool(variable[4])) { /* and */ - variable[4] = variable[0]; - variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/; - variable[4] = ((abstract_collection___CoupleMap___has_key_t)CALL(variable[4],COLOR_abstract_collection___Map___has_key))(variable[4], variable[1] /*e*/) /*CoupleMap::has_key*/; +void compiling_global___Program___compile_tables_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 tmp; + 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_12; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 24; + fra.me.meth = LOCATE_compiling_global___Program___compile_tables_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_global.nit:27 */ + fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 27); } - variable[3] = variable[4]; - variable[2] = variable[3]; - goto return_label1; - return_label1: while(false); - tracehead = trace.prev; - return variable[2]; -} -void compiling_global___ColorContext___color__eq(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 40, LOCATE_compiling_global___ColorContext___color__eq}; - val_t variable[10]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = variable[0]; - variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/; - variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[5] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[TableElt, Int]*/ - ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/ = variable[5]; + fra.me.REG[2] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling_global___Program___compile_tables_to_c_1)); + CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling_global___Program___compile_tables_to_c_2)); + /* ./compiling//compiling_global.nit:36 */ + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString("classtable_t TAG2VFT[4] = {NULL"); + REGB0 = TAG_Int(31); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + fra.me.REG[2] = fra.me.REG[2]; + fra.me.REG[2] = NEW_Buffer_string___Buffer___from(fra.me.REG[2]); + /* ./compiling//compiling_global.nit:37 */ + REGB0 = TAG_Int(3); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_5) { + fra.me.REG[4] = BOX_NativeString("Int"); + REGB0 = TAG_Int(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_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("Char"); + REGB0 = TAG_Int(4); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_6 = fra.me.REG[4]; + register_static_object(&once_value_6); + } else fra.me.REG[4] = once_value_6; + 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]); + if (!once_value_7) { + fra.me.REG[4] = BOX_NativeString("Bool"); + REGB0 = TAG_Int(4); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_7 = fra.me.REG[4]; + register_static_object(&once_value_7); + } else fra.me.REG[4] = once_value_7; + 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]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); } - variable[4] = variable[0]; - variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/; - ((hash___HashMap_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4], variable[1] /*e*/, variable[2] /*c*/) /*HashMap::[]=*/; - variable[4] = variable[2] /*c*/; - variable[5] = ((compiling_global___TableElt___length_t)CALL( variable[1] /*e*/,COLOR_compiling_global___TableElt___length))( variable[1] /*e*/) /*TableElt::length*/; - variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/ - variable[5] = variable[6]; - variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/; - while (true) { /*for*/ - variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/; - variable[7] = variable[6]; - variable[8] = variable[0]; - variable[8] = ATTR_compiling_global___ColorContext____colors(variable[8]) /*ColorContext::_colors*/; - variable[9] = ((compiling_global___TableElt___item_t)CALL( variable[1] /*e*/,COLOR_compiling_global___TableElt___item))( variable[1] /*e*/, variable[7] /*i*/) /*TableElt::item*/; - ((hash___HashMap_____braeq_t)CALL(variable[8],COLOR_abstract_collection___Map_____braeq))(variable[8], variable[9], variable[4] /*idx*/) /*HashMap::[]=*/; - variable[8] = TAG_Int(UNTAG_Int( variable[4] /*idx*/)+UNTAG_Int( TAG_Int(1))); - variable[4] = variable[8] /*idx=*/; - continue_3: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/; + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./compiling//compiling_global.nit:38 */ + fra.me.REG[6] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[7] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_global.nit:39 */ + REGB1 = TAG_Int(3); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_8) { + fra.me.REG[6] = BOX_NativeString(", (const classtable_t)VFT_"); + REGB1 = TAG_Int(26); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_8 = fra.me.REG[6]; + register_static_object(&once_value_8); + } else fra.me.REG[6] = once_value_8; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]); + if (!once_value_9) { + fra.me.REG[5] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); + once_value_9 = fra.me.REG[5]; + register_static_object(&once_value_9); + } else fra.me.REG[5] = once_value_9; + 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[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]); + } else { + /* ./compiling//compiling_global.nit:41 */ + if (!once_value_10) { + fra.me.REG[7] = BOX_NativeString(", NULL"); + REGB1 = TAG_Int(6); + 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___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]); + } + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label11; + } } - break_3: while(0); - return_label2: while(false); - tracehead = trace.prev; - return; -} -void compiling_global___ColorContext___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___ColorContext___init}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; + label11: while(0); + /* ./compiling//compiling_global.nit:44 */ + 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_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_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_global.nit:45 */ + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___GlobalAnalysis___compiled_classes(val_t self) { - struct trace_t trace = {NULL, NULL, 56, LOCATE_compiling_global___GlobalAnalysis___compiled_classes}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___GlobalAnalysis____compiled_classes( self) /*GlobalAnalysis::_compiled_classes*/; -} -val_t compiling_global___GlobalAnalysis___module(val_t self) { - struct trace_t trace = {NULL, NULL, 59, LOCATE_compiling_global___GlobalAnalysis___module}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___GlobalAnalysis____module( self) /*GlobalAnalysis::_module*/; -} -val_t compiling_global___GlobalAnalysis___max_class_table_length(val_t self) { - struct trace_t trace = {NULL, NULL, 62, LOCATE_compiling_global___GlobalAnalysis___max_class_table_length}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/; -} -void compiling_global___GlobalAnalysis___max_class_table_length__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 62, LOCATE_compiling_global___GlobalAnalysis___max_class_table_length__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/ = param0; - tracehead = trace.prev; - return; -} -void compiling_global___GlobalAnalysis___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 65, LOCATE_compiling_global___GlobalAnalysis___init}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_GlobalAnalysis].i]) return; - variable[3] = variable[0]; - variable[4] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMGlobalClass, CompiledClass]*/ - ATTR_compiling_global___GlobalAnalysis____compiled_classes(variable[3]) /*GlobalAnalysis::_compiled_classes*/ = variable[4]; - variable[3] = variable[0]; - ATTR_compiling_global___GlobalAnalysis____module(variable[3]) /*GlobalAnalysis::_module*/ = variable[1] /*module*/; - return_label4: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_GlobalAnalysis].i] = 1; - tracehead = trace.prev; - return; -} -val_t compiling_global___CompilerVisitor___global_analysis(val_t self) { - struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_global___CompilerVisitor___global_analysis}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___CompilerVisitor____global_analysis( self) /*CompilerVisitor::_global_analysis*/; -} -void compiling_global___CompilerVisitor___global_analysis__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_global___CompilerVisitor___global_analysis__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___CompilerVisitor____global_analysis( self) /*CompilerVisitor::_global_analysis*/ = param0; - tracehead = trace.prev; - return; -} -val_t compiling_global___CompiledClass___local_class(val_t self) { - struct trace_t trace = {NULL, NULL, 80, LOCATE_compiling_global___CompiledClass___local_class}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___CompiledClass____local_class( self) /*CompiledClass::_local_class*/; -} -val_t compiling_global___CompiledClass___id(val_t self) { - struct trace_t trace = {NULL, NULL, 83, LOCATE_compiling_global___CompiledClass___id}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/; -} -void compiling_global___CompiledClass___id__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 83, LOCATE_compiling_global___CompiledClass___id__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/ = param0; - tracehead = trace.prev; - return; -} -val_t compiling_global___CompiledClass___class_table(val_t self) { - struct trace_t trace = {NULL, NULL, 86, LOCATE_compiling_global___CompiledClass___class_table}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___CompiledClass____class_table( self) /*CompiledClass::_class_table*/; -} -void compiling_global___CompiledClass___class_table__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 86, LOCATE_compiling_global___CompiledClass___class_table__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___CompiledClass____class_table( self) /*CompiledClass::_class_table*/ = param0; - tracehead = trace.prev; - return; -} -val_t compiling_global___CompiledClass___instance_table(val_t self) { - struct trace_t trace = {NULL, NULL, 89, LOCATE_compiling_global___CompiledClass___instance_table}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___CompiledClass____instance_table( self) /*CompiledClass::_instance_table*/; -} -void compiling_global___CompiledClass___instance_table__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 89, LOCATE_compiling_global___CompiledClass___instance_table__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___CompiledClass____instance_table( self) /*CompiledClass::_instance_table*/ = param0; - tracehead = trace.prev; - return; -} -val_t compiling_global___CompiledClass___class_layout(val_t self) { - struct trace_t trace = {NULL, NULL, 92, LOCATE_compiling_global___CompiledClass___class_layout}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___CompiledClass____class_layout( self) /*CompiledClass::_class_layout*/; -} -void compiling_global___CompiledClass___class_layout__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 92, LOCATE_compiling_global___CompiledClass___class_layout__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___CompiledClass____class_layout( self) /*CompiledClass::_class_layout*/ = param0; - tracehead = trace.prev; - return; -} -val_t compiling_global___CompiledClass___instance_layout(val_t self) { - struct trace_t trace = {NULL, NULL, 95, LOCATE_compiling_global___CompiledClass___instance_layout}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___CompiledClass____instance_layout( self) /*CompiledClass::_instance_layout*/; -} -void compiling_global___CompiledClass___instance_layout__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 95, LOCATE_compiling_global___CompiledClass___instance_layout__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___CompiledClass____instance_layout( self) /*CompiledClass::_instance_layout*/ = param0; - tracehead = trace.prev; - return; -} -void compiling_global___CompiledClass___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 98, LOCATE_compiling_global___CompiledClass___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompiledClass].i]) return; - variable[3] = variable[0]; - ATTR_compiling_global___CompiledClass____local_class(variable[3]) /*CompiledClass::_local_class*/ = variable[1] /*c*/; - return_label5: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CompiledClass].i] = 1; - tracehead = trace.prev; - return; -} -val_t compiling_global___MMGlobalProperty___pos_of(val_t self) { - struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_global___MMGlobalProperty___pos_of}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___MMGlobalProperty____pos_of( self) /*MMGlobalProperty::_pos_of*/; -} -void compiling_global___MMGlobalProperty___pos_of__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_global___MMGlobalProperty___pos_of__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - ATTR_compiling_global___MMGlobalProperty____pos_of( self) /*MMGlobalProperty::_pos_of*/ = param0; - tracehead = trace.prev; - return; -} -val_t compiling_global___MMSrcLocalClass___base_attr_pos(val_t self) { - struct trace_t trace = {NULL, NULL, 108, LOCATE_compiling_global___MMSrcLocalClass___base_attr_pos}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___MMSrcLocalClass____base_attr_pos( self) /*MMSrcLocalClass::_base_attr_pos*/; -} -val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t self) { - struct trace_t trace = {NULL, NULL, 111, LOCATE_compiling_global___MMSrcLocalClass___class_color_pos}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___MMSrcLocalClass____class_color_pos( self) /*MMSrcLocalClass::_class_color_pos*/; -} -val_t compiling_global___MMSrcLocalClass___class_layout(val_t self) { - struct trace_t trace = {NULL, NULL, 114, LOCATE_compiling_global___MMSrcLocalClass___class_layout}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___MMSrcLocalClass____class_layout( self) /*MMSrcLocalClass::_class_layout*/; -} -val_t compiling_global___MMSrcLocalClass___instance_layout(val_t self) { - struct trace_t trace = {NULL, NULL, 117, LOCATE_compiling_global___MMSrcLocalClass___instance_layout}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return ATTR_compiling_global___MMSrcLocalClass____instance_layout( self) /*MMSrcLocalClass::_instance_layout*/; -} -void compiling_global___MMSrcLocalClass___build_layout_in(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 120, LOCATE_compiling_global___MMSrcLocalClass___build_layout_in}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = NEW_Array_array___Array___init(); /*new Array[MMGlobalProperty]*/ - variable[4] = variable[5]; - variable[6] = NEW_Array_array___Array___init(); /*new Array[MMGlobalProperty]*/ - variable[5] = variable[6]; - variable[7] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/ - variable[6] = variable[7]; - variable[7] = variable[0]; - ATTR_compiling_global___MMSrcLocalClass____class_layout(variable[7]) /*MMSrcLocalClass::_class_layout*/ = variable[6] /*clt*/; - variable[8] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/ - variable[7] = variable[8]; - variable[8] = variable[0]; - ATTR_compiling_global___MMSrcLocalClass____instance_layout(variable[8]) /*MMSrcLocalClass::_instance_layout*/ = variable[7] /*ilt*/; - variable[8] = variable[0]; - variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___global))(variable[8]) /*MMLocalClass::global*/; - variable[8] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[8]) /*MMGlobalClass::intro*/; - variable[9] = variable[0]; - variable[8] = TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8], variable[9]) /*Object::==*/))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_TableEltClassIdPos_compiling_global___TableEltClassIdPos___init(variable[8]); /*new TableEltClassIdPos*/ - variable[8] = variable[9]; - ((array___AbstractArray___add_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*module_table*/, variable[8]) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[9] = variable[0]; - variable[10] = NEW_TableEltClassColorPos_compiling_global___TableEltClassColorPos___init(variable[9]); /*new TableEltClassColorPos*/ - variable[9] = variable[10]; - ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[8]) /*MMSrcLocalClass::_class_color_pos*/ = variable[9]; - variable[8] = variable[0]; - variable[8] = ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[8]) /*MMSrcLocalClass::_class_color_pos*/; - ((array___AbstractArray___add_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*module_table*/, variable[8]) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[9] = NEW_TableEltClassInitTablePos_compiling_global___TableEltClassInitTablePos___init(variable[8]); /*new TableEltClassInitTablePos*/ - variable[8] = variable[9]; - ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[8]) /*AbstractArray::add*/; + void OC_compiling_global___Program___compile_tables_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_global; + fra.me.line = 0; + fra.me.meth = LOCATE_compiling_global___Program___compile_tables_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_global.nit:28 */ + CALL_compiling_global___MMModule___compile_local_table_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]); + stack_frame_head = fra.me.prev; + return; } - variable[8] = variable[0]; - variable[8] = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL(variable[8],COLOR_syntax_base___MMSrcLocalClass___src_local_properties))(variable[8]) /*MMSrcLocalClass::src_local_properties*/; - variable[8] = ((abstract_collection___Map___iterator_t)CALL(variable[8],COLOR_abstract_collection___Collection___iterator))(variable[8]) /*Map::iterator*/; - while (true) { /*for*/ - variable[9] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[9])) break; /*for*/ - variable[9] = ((abstract_collection___Iterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*Iterator::item*/; - variable[10] = variable[9]; - variable[12] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[10] /*p*/) /*MMLocalProperty::global*/; - variable[11] = variable[12]; - variable[12] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[11] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[11] /*pg*/) /*MMGlobalProperty::intro*/; - variable[12] = TAG_Bool((variable[12] == variable[10] /*p*/) || ((variable[12] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[12],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[12], variable[10] /*p*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[12],COLOR_kernel___Object_____eqeq))(variable[12], variable[10] /*p*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[12])) { /*if*/ - variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/; - if (UNTAG_Bool(variable[12])) { /*if*/ - variable[12] = ((array___AbstractArray___length_t)CALL( variable[5] /*intro_attributes*/,COLOR_abstract_collection___Collection___length))( variable[5] /*intro_attributes*/) /*AbstractArray::length*/; - ((compiling_global___MMGlobalProperty___pos_of__eq_t)CALL( variable[11] /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of__eq))( variable[11] /*pg*/, variable[12]) /*MMGlobalProperty::pos_of=*/; - ((array___AbstractArray___add_t)CALL( variable[5] /*intro_attributes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*intro_attributes*/, variable[11] /*pg*/) /*AbstractArray::add*/; - variable[12] = NEW_TableEltAttrPos_compiling_global___TableEltAttrPos___init( variable[10] /*p*/); /*new TableEltAttrPos*/ - ((array___AbstractArray___add_t)CALL( variable[7] /*ilt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*ilt*/, variable[12]) /*AbstractArray::add*/; - } else { /*if*/ - variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/; - if (UNTAG_Bool(variable[12])) { /*if*/ - variable[12] = ((array___AbstractArray___length_t)CALL( variable[4] /*intro_methods*/,COLOR_abstract_collection___Collection___length))( variable[4] /*intro_methods*/) /*AbstractArray::length*/; - ((compiling_global___MMGlobalProperty___pos_of__eq_t)CALL( variable[11] /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of__eq))( variable[11] /*pg*/, variable[12]) /*MMGlobalProperty::pos_of=*/; - ((array___AbstractArray___add_t)CALL( variable[4] /*intro_methods*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*intro_methods*/, variable[11] /*pg*/) /*AbstractArray::add*/; - variable[12] = NEW_TableEltMethPos_compiling_global___TableEltMethPos___init( variable[10] /*p*/); /*new TableEltMethPos*/ - ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[12]) /*AbstractArray::add*/; - } - } - } - variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/; - variable[13] = variable[12]; - if (UNTAG_Bool(variable[13])) { /* and */ - variable[13] = ((abstractmetamodel___MMLocalProperty___need_super_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___need_super))( variable[10] /*p*/) /*MMLocalProperty::need_super*/; + void OC_compiling_global___Program___compile_tables_to_c_2(struct stack_frame_t *closctx, val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + /* ./compiling//compiling_global.nit:31 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 31; + fra.me.meth = LOCATE_compiling_global___Program___compile_tables_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; + /* ./compiling//compiling_global.nit:32 */ + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = REGB1; } - variable[12] = variable[13]; - if (UNTAG_Bool(variable[12])) { /*if*/ - variable[12] = NEW_TableEltSuperPos_compiling_global___TableEltSuperPos___init( variable[10] /*p*/); /*new TableEltSuperPos*/ - ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[12]) /*AbstractArray::add*/; + if (UNTAG_Bool(REGB0)) { + goto label3; } - continue_7: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*Iterator::next*/; + /* ./compiling//compiling_global.nit:33 */ + CALL_compiling_global___MMLocalClass___compile_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]); + label3: while(0); + stack_frame_head = fra.me.prev; + return; } - break_7: while(0); - variable[8] = ((compiling_base___ToolContext___attr_sim_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___attr_sim))( variable[1] /*tc*/) /*ToolContext::attr_sim*/; - variable[9] = variable[8]; - if (UNTAG_Bool(variable[9])) { /* and */ - variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*intro_attributes*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*intro_attributes*/) /*AbstractArray::is_empty*/; - variable[9] = TAG_Bool(!UNTAG_Bool(variable[9])); +void compiling_global___Program___compile_main_part(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 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 48; + fra.me.meth = LOCATE_compiling_global___Program___compile_main_part; + 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_global.nit:51 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString("int main(int argc, char **argv) {"); + REGB0 = TAG_Int(33); + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:52 */ + CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:53 */ + if (!once_value_2) { + fra.me.REG[2] = BOX_NativeString("prepare_signals();"); + REGB0 = TAG_Int(18); + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:54 */ + if (!once_value_3) { + fra.me.REG[2] = BOX_NativeString("glob_argc = argc; glob_argv = argv;"); + REGB0 = TAG_Int(35); + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:55 */ + fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]); + 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; + } } - variable[8] = variable[9]; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = variable[0]; - variable[10] = NEW_TableEltBaseAttrPos_compiling_global___TableEltBaseAttrPos___init(variable[9]); /*new TableEltBaseAttrPos*/ - variable[9] = variable[10]; - ATTR_compiling_global___MMSrcLocalClass____base_attr_pos(variable[8]) /*MMSrcLocalClass::_base_attr_pos*/ = variable[9]; - variable[8] = variable[0]; - variable[8] = ATTR_compiling_global___MMSrcLocalClass____base_attr_pos(variable[8]) /*MMSrcLocalClass::_base_attr_pos*/; - ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[8]) /*AbstractArray::add*/; - } else { /*if*/ - ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*module_table*/, variable[7] /*ilt*/) /*IndexedCollection::append*/; + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:56 */ + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString("No main"); + REGB0 = TAG_Int(7); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + fra.me.REG[2] = fra.me.REG[2]; + CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + } else { + /* ./compiling//compiling_global.nit:58 */ + if (!once_value_5) { + fra.me.REG[2] = BOX_NativeString("G_sys = NEW_Sys();"); + REGB0 = TAG_Int(18); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:59 */ + if (!once_value_6) { + fra.me.REG[2] = BOX_NativeString("register_static_object(&G_sys);"); + REGB0 = TAG_Int(31); + 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; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:60 */ + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_7) { + fra.me.REG[0] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[0] = CALL_program___Program___main_method(fra.me.REG[0])(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, 60); + } + fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_8) { + fra.me.REG[0] = BOX_NativeString("(G_sys);"); + REGB0 = TAG_Int(8); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_8 = fra.me.REG[0]; + register_static_object(&once_value_8); + } else fra.me.REG[0] = once_value_8; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); } - ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*module_table*/, variable[6] /*clt*/) /*IndexedCollection::append*/; - return_label6: while(false); - tracehead = trace.prev; + /* ./compiling//compiling_global.nit:62 */ + if (!once_value_9) { + fra.me.REG[2] = BOX_NativeString("return 0;"); + REGB0 = TAG_Int(9); + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:63 */ + CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:64 */ + if (!once_value_10) { + 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_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]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + stack_frame_head = fra.me.prev; return; } -void compiling_global___MMSrcModule___local_analysis(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 168, LOCATE_compiling_global___MMSrcModule___local_analysis}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[4] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/ - variable[3] = variable[4]; - variable[4] = variable[0]; - ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/ = variable[3] /*lt*/; - variable[4] = variable[0]; - variable[4] = ((syntax_base___MMSrcModule___src_local_classes_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___src_local_classes))(variable[4]) /*MMSrcModule::src_local_classes*/; - variable[4] = ((abstract_collection___Map___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Map::iterator*/; - while (true) { /*for*/ - variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/; - variable[6] = variable[5]; - ((compiling_global___MMSrcLocalClass___build_layout_in_t)CALL( variable[6] /*c*/,COLOR_compiling_global___MMSrcLocalClass___build_layout_in))( variable[6] /*c*/, variable[1] /*tc*/, variable[3] /*lt*/) /*MMSrcLocalClass::build_layout_in*/; - continue_9: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/; - } - break_9: while(0); - return_label8: while(false); - tracehead = trace.prev; +void compiling_global___MMModule___declare_class_tables_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_global; + fra.me.line = 69; + fra.me.meth = LOCATE_compiling_global___MMModule___declare_class_tables_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_global.nit:72 */ + fra.me.REG[2] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling_global___MMModule___declare_class_tables_to_c_1)); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___MMSrcModule___global_analysis(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 178, LOCATE_compiling_global___MMSrcModule___global_analysis}; - val_t variable[25]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[4] = variable[0]; - variable[5] = NEW_GlobalAnalysis_compiling_global___GlobalAnalysis___init(variable[4]); /*new GlobalAnalysis*/ - variable[4] = variable[5]; - variable[3] = variable[4]; - variable[5] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/ - variable[4] = variable[5]; - variable[6] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMGlobalProperty]*/ - variable[5] = variable[6]; - variable[7] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/ - variable[6] = variable[7]; - variable[8] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/ - variable[7] = variable[8]; - variable[8] = NEW_TableEltClassSelfId_compiling_global___TableEltClassSelfId___init(); /*new TableEltClassSelfId*/ - ((array___AbstractArray___add_t)CALL( variable[6] /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*ctab*/, variable[8]) /*AbstractArray::add*/; - variable[8] = NEW_TableEltVftPointer_compiling_global___TableEltVftPointer___init(); /*new TableEltVftPointer*/ - ((array___AbstractArray___add_t)CALL( variable[7] /*itab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*itab*/, variable[8]) /*AbstractArray::add*/; - variable[9] = TAG_Int(-UNTAG_Int( TAG_Int(1))); - variable[8] = variable[9]; - variable[9] = TAG_Int(3); - variable[11] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/ - variable[10] = variable[11]; - variable[11] = variable[0]; - variable[11] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___local_classes))(variable[11]) /*MMModule::local_classes*/; - variable[11] = ((array___AbstractArray___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[12])) break; /*for*/ - variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/; - variable[13] = variable[12]; - ((inheritance___MMLocalClass___compute_super_classes_t)CALL( variable[13] /*c*/,COLOR_inheritance___MMLocalClass___compute_super_classes))( variable[13] /*c*/) /*MMLocalClass::compute_super_classes*/; - ((array___AbstractArray___add_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*classes*/, variable[13] /*c*/) /*AbstractArray::add*/; - continue_11: while(0); - ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/; - } - break_11: while(0); - variable[11] = NEW_ClassSorter_compiling_global___ClassSorter___init(); /*new ClassSorter*/ - ((sorter___AbstractSorter___sort_t)CALL(variable[11],COLOR_sorter___AbstractSorter___sort))(variable[11], variable[10] /*classes*/) /*AbstractSorter::sort*/; - variable[11] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[12])) break; /*for*/ - variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/; - variable[13] = variable[12]; - ((inheritance___MMLocalClass___compute_ancestors_t)CALL( variable[13] /*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors))( variable[13] /*c*/) /*MMLocalClass::compute_ancestors*/; - ((inheritance___MMLocalClass___inherit_global_properties_t)CALL( variable[13] /*c*/,COLOR_inheritance___MMLocalClass___inherit_global_properties))( variable[13] /*c*/) /*MMLocalClass::inherit_global_properties*/; - variable[15] = NEW_CompiledClass_compiling_global___CompiledClass___init( variable[13] /*c*/); /*new CompiledClass*/ - variable[14] = variable[15]; - variable[15] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[16] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[13] /*c*/) /*MMLocalClass::global*/; - ((hash___HashMap_____braeq_t)CALL(variable[15],COLOR_abstract_collection___Map_____braeq))(variable[15], variable[16], variable[14] /*cc*/) /*HashMap::[]=*/; - variable[16] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[13] /*c*/) /*MMLocalClass::global*/; - variable[15] = variable[16]; - variable[17] = ((abstractmetamodel___MMGlobalClass___module_t)CALL( variable[15] /*gc*/,COLOR_abstractmetamodel___MMGlobalClass___module))( variable[15] /*gc*/) /*MMGlobalClass::module*/; - variable[16] = variable[17]; - variable[17] = ((compiling_base___MMLocalClass___primitive_info_t)CALL( variable[13] /*c*/,COLOR_compiling_base___MMLocalClass___primitive_info))( variable[13] /*c*/) /*MMLocalClass::primitive_info*/; - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] == NIT_NULL /*null*/) || ((variable[17] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[17],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[17],COLOR_kernel___Object_____eqeq))(variable[17], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[17])) { /*if*/ - ((compiling_global___CompiledClass___id__eq_t)CALL( variable[14] /*cc*/,COLOR_compiling_global___CompiledClass___id__eq))( variable[14] /*cc*/, variable[8] /*pclassid*/) /*CompiledClass::id=*/; - variable[17] = TAG_Int(UNTAG_Int( variable[8] /*pclassid*/)-UNTAG_Int( TAG_Int(4))); - variable[8] = variable[17] /*pclassid=*/; - } else { /*if*/ - ((compiling_global___CompiledClass___id__eq_t)CALL( variable[14] /*cc*/,COLOR_compiling_global___CompiledClass___id__eq))( variable[14] /*cc*/, variable[9] /*classid*/) /*CompiledClass::id=*/; - variable[17] = TAG_Int(UNTAG_Int( variable[9] /*classid*/)+UNTAG_Int( TAG_Int(4))); - variable[9] = variable[17] /*classid=*/; + void OC_compiling_global___MMModule___declare_class_tables_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; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + fun_t CREG[1]; + val_t tmp; + 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___MMModule___declare_class_tables_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.closure_ctx = closctx_param; + fra.me.closure_funs = CREG; + fra.me.REG[0] = p0; + CREG[0] = clos_fun0; + /* ./compiling//compiling_global.nit:73 */ + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[0]); + REGB0 = REGB1; } - variable[17] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[13] /*c*/) /*MMLocalClass::cshe*/; - variable[17] = ((partial_order___PartialOrderElement___direct_smallers_t)CALL(variable[17],COLOR_partial_order___PartialOrderElement___direct_smallers))(variable[17]) /*PartialOrderElement::direct_smallers*/; - variable[17] = ((array___AbstractArray___is_empty_t)CALL(variable[17],COLOR_abstract_collection___Collection___is_empty))(variable[17]) /*AbstractArray::is_empty*/; - if (UNTAG_Bool(variable[17])) { /*if*/ - ((array___AbstractArray___add_t)CALL( variable[4] /*smallest_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*smallest_classes*/, variable[13] /*c*/) /*AbstractArray::add*/; + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:74 */ + CALL_compiling_global___MMLocalClass___declare_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]); } - variable[18] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[13] /*c*/) /*MMLocalClass::global*/; - variable[18] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[18],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[18]) /*MMGlobalClass::intro*/; - variable[17] = variable[18]; - variable[18] = TAG_Bool(( variable[17] /*bc*/==NIT_NULL) || VAL_ISA( variable[17] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/; - if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 230); nit_exit(1);} - variable[18] = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable[17] /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable[17] /*bc*/) /*MMSrcLocalClass::class_color_pos*/; - ((array___AbstractArray___add_t)CALL( variable[6] /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*ctab*/, variable[18]) /*AbstractArray::add*/; - continue_12: while(0); - ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/; + stack_frame_head = fra.me.prev; + return; } - break_12: while(0); - variable[12] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/ - variable[11] = variable[12]; - variable[13] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/ - variable[12] = variable[13]; - variable[13] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*smallest_classes*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*smallest_classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[14] = ((array___ArrayIterator___is_ok_t)CALL(variable[13],COLOR_abstract_collection___Iterator___is_ok))(variable[13]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[14])) break; /*for*/ - variable[14] = ((array___ArrayIterator___item_t)CALL(variable[13],COLOR_abstract_collection___Iterator___item))(variable[13]) /*ArrayIterator::item*/; - variable[15] = variable[14]; - while (true) { /*while*/ - variable[16] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[15] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[15] /*c*/) /*MMLocalClass::cshe*/; - variable[16] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[16],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[16]) /*PartialOrderElement::direct_greaters*/; - variable[16] = ((array___AbstractArray___length_t)CALL(variable[16],COLOR_abstract_collection___Collection___length))(variable[16]) /*AbstractArray::length*/; - variable[16] = TAG_Bool((variable[16])==( TAG_Int(1))); - if (!UNTAG_Bool(variable[16])) break; /* while*/ - variable[16] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[15] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[15] /*c*/) /*MMLocalClass::cshe*/; - variable[16] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[16],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[16]) /*PartialOrderElement::direct_greaters*/; - variable[16] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[16],COLOR_abstract_collection___Collection___first))(variable[16]) /*IndexedCollection::first*/; - variable[15] = variable[16] /*c=*/; - continue_14: while(0); - } - break_14: while(0); - ((hash___HashSet___add_t)CALL( variable[11] /*crown_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*crown_classes*/, variable[15] /*c*/) /*HashSet::add*/; - variable[16] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[15] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[15] /*c*/) /*MMLocalClass::cshe*/; - variable[16] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[16],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[16]) /*PartialOrderElement::greaters_and_self*/; - ((abstract_collection___SimpleCollection___add_all_t)CALL( variable[12] /*core_classes*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable[12] /*core_classes*/, variable[16]) /*SimpleCollection::add_all*/; - continue_13: while(0); - ((array___ArrayIterator___next_t)CALL(variable[13],COLOR_abstract_collection___Iterator___next))(variable[13]) /*ArrayIterator::next*/; +void compiling_global___MMModule___compile_mod_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_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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 79; + fra.me.meth = LOCATE_compiling_global___MMModule___compile_mod_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_global.nit:82 */ + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString("extern const char *LOCATE_"); + REGB0 = TAG_Int(26); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMModule___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[2])(fra.me.REG[2], fra.me.REG[3]); + if (!once_value_2) { + 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; + 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_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:83 */ + fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:84 */ + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_3) { + fra.me.REG[3] = BOX_NativeString("extern const int SFT_"); + REGB0 = TAG_Int(21); + 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] = 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_abstractmetamodel___MMModule___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[2])(fra.me.REG[2], fra.me.REG[3]); + if (!once_value_4) { + 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_4 = fra.me.REG[3]; + register_static_object(&once_value_4); + } else fra.me.REG[3] = once_value_4; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); } - break_13: while(0); - variable[13] = variable[0]; - ((compiling_global___MMSrcModule___colorize_t)CALL(variable[13],COLOR_compiling_global___MMSrcModule___colorize))(variable[13], variable[3] /*ga*/, variable[6] /*ctab*/, variable[11] /*crown_classes*/, TAG_Int(0)) /*MMSrcModule::colorize*/; - variable[13] = TAG_Int(0); - variable[14] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[15])) break; /*for*/ - variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/; - variable[16] = variable[15]; - variable[18] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[19] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/; - variable[18] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[18],COLOR_abstract_collection___Map_____bra))(variable[18], variable[19]) /*CoupleMap::[]*/; - variable[17] = variable[18]; - variable[18] = ((hash___HashSet___has_t)CALL( variable[12] /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/; - if (UNTAG_Bool(variable[18])) { /*if*/ - variable[18] = variable[0]; - variable[18] = ((compiling_global___MMSrcModule___build_tables_t)CALL(variable[18],COLOR_compiling_global___MMSrcModule___build_tables))(variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[6] /*ctab*/) /*MMSrcModule::build_tables*/; - ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/; - variable[18] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/; - variable[18] = ((array___AbstractArray___length_t)CALL(variable[18],COLOR_abstract_collection___Collection___length))(variable[18]) /*AbstractArray::length*/; - variable[18] = TAG_Bool(UNTAG_Int( variable[13] /*maxcolor*/)UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[20])) { /*if*/ - ((array___AbstractArray___add_t)CALL( variable[6] /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*ctab*/, variable[18] /*cte*/) /*AbstractArray::add*/; - } - variable[20] = ((compiling_base___ToolContext___attr_sim_t)CALL( variable[1] /*cctx*/,COLOR_compiling_base___ToolContext___attr_sim))( variable[1] /*cctx*/) /*ToolContext::attr_sim*/; - variable[20] = TAG_Bool(!UNTAG_Bool(variable[20])); - if (UNTAG_Bool(variable[20])) { /* and */ - variable[20] = ((compiling_global___TableEltComposite___length_t)CALL( variable[19] /*ite*/,COLOR_compiling_global___TableElt___length))( variable[19] /*ite*/) /*TableEltComposite::length*/; - variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0))); - } - if (UNTAG_Bool(variable[20])) { /*if*/ - ((array___AbstractArray___add_t)CALL( variable[7] /*itab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*itab*/, variable[19] /*ite*/) /*AbstractArray::add*/; - } - } - continue_16: while(0); - ((array___ArrayIterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*ArrayIterator::next*/; - } - break_16: while(0); - variable[14] = variable[0]; - variable[15] = TAG_Int(UNTAG_Int( variable[13] /*maxcolor*/)+UNTAG_Int( TAG_Int(1))); - ((compiling_global___MMSrcModule___colorize_t)CALL(variable[14],COLOR_compiling_global___MMSrcModule___colorize))(variable[14], variable[3] /*ga*/, variable[6] /*ctab*/, variable[11] /*crown_classes*/, variable[15]) /*MMSrcModule::colorize*/; - variable[14] = variable[0]; - ((compiling_global___MMSrcModule___colorize_t)CALL(variable[14],COLOR_compiling_global___MMSrcModule___colorize))(variable[14], variable[3] /*ga*/, variable[7] /*itab*/, variable[11] /*crown_classes*/, TAG_Int(0)) /*MMSrcModule::colorize*/; - ((compiling_global___GlobalAnalysis___max_class_table_length__eq_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___max_class_table_length__eq))( variable[3] /*ga*/, TAG_Int(0)) /*GlobalAnalysis::max_class_table_length=*/; - variable[14] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[15])) break; /*for*/ - variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/; - variable[16] = variable[15]; - variable[18] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[19] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/; - variable[18] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[18],COLOR_abstract_collection___Map_____bra))(variable[18], variable[19]) /*CoupleMap::[]*/; - variable[17] = variable[18]; - variable[18] = ((hash___HashSet___has_t)CALL( variable[12] /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/; - if (UNTAG_Bool(variable[18])) { /*if*/ - variable[18] = variable[0]; - variable[18] = ((compiling_global___MMSrcModule___build_tables_t)CALL(variable[18],COLOR_compiling_global___MMSrcModule___build_tables))(variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[6] /*ctab*/) /*MMSrcModule::build_tables*/; - ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/; - variable[18] = variable[0]; - variable[18] = ((compiling_global___MMSrcModule___build_tables_t)CALL(variable[18],COLOR_compiling_global___MMSrcModule___build_tables))(variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[7] /*itab*/) /*MMSrcModule::build_tables*/; - ((compiling_global___CompiledClass___instance_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table__eq))( variable[17] /*cc*/, variable[18]) /*CompiledClass::instance_table=*/; - } else { /*if*/ - variable[19] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[16] /*c*/) /*MMLocalClass::cshe*/; - variable[19] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[19],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[19]) /*PartialOrderElement::direct_greaters*/; - variable[19] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[19],COLOR_abstract_collection___Collection___first))(variable[19]) /*IndexedCollection::first*/; - variable[18] = variable[19]; - variable[20] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[21] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[18] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[18] /*sc*/) /*MMLocalClass::global*/; - variable[20] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[20],COLOR_abstract_collection___Map_____bra))(variable[20], variable[21]) /*CoupleMap::[]*/; - variable[19] = variable[20]; - variable[20] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[19] /*scc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[19] /*scc*/) /*CompiledClass::class_table*/; - variable[20] = ((array___Collection___to_a_t)CALL(variable[20],COLOR_array___Collection___to_a))(variable[20]) /*Collection::to_a*/; - ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable[17] /*cc*/, variable[20]) /*CompiledClass::class_table=*/; - variable[21] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/; - variable[21] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[21],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[21]) /*MMGlobalClass::intro*/; - variable[20] = variable[21]; - variable[21] = TAG_Bool(( variable[20] /*bc*/==NIT_NULL) || VAL_ISA( variable[20] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/; - if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 315); nit_exit(1);} - variable[22] = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable[20] /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/; - variable[21] = variable[22]; - variable[22] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/; - variable[23] = ((compiling_global___ColorContext___color_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[3] /*ga*/, variable[21] /*colpos*/) /*ColorContext::color*/; - ((array___Array_____braeq_t)CALL(variable[22],COLOR_abstract_collection___Map_____braeq))(variable[22], variable[23], variable[21] /*colpos*/) /*Array::[]=*/; - while (true) { /*while*/ - variable[22] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/; - variable[22] = ((array___AbstractArray___length_t)CALL(variable[22],COLOR_abstract_collection___Collection___length))(variable[22]) /*AbstractArray::length*/; - variable[22] = TAG_Bool(UNTAG_Int(variable[22])<=UNTAG_Int( variable[13] /*maxcolor*/)); - if (!UNTAG_Bool(variable[22])) break; /* while*/ - variable[22] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/; - ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22], NIT_NULL /*null*/) /*AbstractArray::add*/; - continue_19: while(0); + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./compiling//compiling_global.nit:89 */ + fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[5] = CALL_program___Program___tc(fra.me.REG[5])(fra.me.REG[5]); + REGB2 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[5])(fra.me.REG[5]); + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:90 */ + REGB2 = TAG_Int(3); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_5) { + fra.me.REG[6] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2); + once_value_5 = fra.me.REG[6]; + register_static_object(&once_value_5); + } else fra.me.REG[6] = once_value_5; + 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_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[6] = CALL_compiling_global___ModuleTableElt___value(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_6) { + fra.me.REG[6] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2); + 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]; + 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]); + } else { + /* ./compiling//compiling_global.nit:92 */ + REGB2 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_7) { + fra.me.REG[7] = BOX_NativeString("SFT_"); + REGB2 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = CALL_abstractmetamodel___MMModule___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[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_8) { + 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_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]); + fra.me.REG[7] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_9) { + 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_9 = fra.me.REG[7]; + register_static_object(&once_value_9); + } else fra.me.REG[7] = once_value_9; + 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]; + /* ./compiling//compiling_global.nit:93 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./compiling//compiling_global.nit:93 */ + REGB0 = REGB2; } - break_20: while(0); + /* ./compiling//compiling_global.nit:95 */ + CALL_compiling_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label10; } - continue_18: while(0); - ((array___ArrayIterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*ArrayIterator::next*/; - } - break_18: while(0); - variable[2] = variable[3] /*ga*/; - goto return_label10; - return_label10: while(false); - tracehead = trace.prev; - return variable[2]; -} -void compiling_global___MMSrcModule___append_to_table(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 338, LOCATE_compiling_global___MMSrcModule___append_to_table}; - val_t variable[10]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[5] = ((compiling_global___TableEltComposite___length_t)CALL( variable[3] /*cmp*/,COLOR_compiling_global___TableElt___length))( variable[3] /*cmp*/) /*TableEltComposite::length*/; - variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/ - variable[5] = variable[6]; - variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/; - while (true) { /*for*/ - variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/; - variable[7] = variable[6]; - variable[9] = ((compiling_global___TableEltComposite___item_t)CALL( variable[3] /*cmp*/,COLOR_compiling_global___TableElt___item))( variable[3] /*cmp*/, variable[7] /*j*/) /*TableEltComposite::item*/; - variable[8] = variable[9]; - variable[9] = ((array___AbstractArray___length_t)CALL( variable[2] /*table*/,COLOR_abstract_collection___Collection___length))( variable[2] /*table*/) /*AbstractArray::length*/; - ((compiling_global___ColorContext___color__eq_t)CALL( variable[1] /*cc*/,COLOR_compiling_global___ColorContext___color__eq))( variable[1] /*cc*/, variable[8] /*e*/, variable[9]) /*ColorContext::color=*/; - ((array___AbstractArray___add_t)CALL( variable[2] /*table*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*table*/, variable[8] /*e*/) /*AbstractArray::add*/; - continue_22: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/; } - break_22: while(0); - return_label21: while(false); - tracehead = trace.prev; + label10: while(0); + /* ./compiling//compiling_global.nit:97 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling_global___MMModule___compile_mod_to_c_11)); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___MMSrcModule___build_tables(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 347, LOCATE_compiling_global___MMSrcModule___build_tables}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Int, TableElt]*/ - variable[5] = variable[6]; - variable[6] = TAG_Int(0); - variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*elts*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*elts*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[8])) break; /*for*/ - variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/; - variable[9] = variable[8]; - variable[10] = ((compiling_global___TableElt___is_related_to_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___is_related_to))( variable[9] /*e*/, variable[2] /*c*/) /*TableElt::is_related_to*/; - if (UNTAG_Bool(variable[10])) { /*if*/ - variable[11] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[9] /*e*/) /*ColorContext::color*/; - variable[10] = variable[11]; - variable[12] = ((compiling_global___TableElt___length_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___length))( variable[9] /*e*/) /*TableElt::length*/; - variable[12] = TAG_Int(UNTAG_Int( variable[10] /*col*/)+UNTAG_Int(variable[12])); - variable[11] = variable[12]; - ((hash___HashMap_____braeq_t)CALL( variable[5] /*tab*/,COLOR_abstract_collection___Map_____braeq))( variable[5] /*tab*/, variable[10] /*col*/, variable[9] /*e*/) /*HashMap::[]=*/; - variable[12] = TAG_Bool(UNTAG_Int( variable[6] /*len*/)REG[0] = fra.me.REG[0]; + /* ./compiling//compiling_global.nit:98 */ + REGB0 = TAG_Bool(VAL_ISA(closctx->REG[0], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label12; } - continue_24: while(0); - ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/; + /* ./compiling//compiling_global.nit:99 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global_properties(closctx->REG[0])(closctx->REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_compiling_global___MMModule___compile_mod_to_c_13)); + label12: while(0); + stack_frame_head = fra.me.prev; + return; } - break_24: while(0); - variable[8] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/ - variable[7] = variable[8]; - variable[8] = TAG_Int(0); - while (true) { /*while*/ - variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*i*/)REG[0])(closctx->REG[0], fra.me.REG[0]); + /* ./compiling//compiling_global.nit:101 */ + fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],closctx->REG[0])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], closctx->REG[0]); + REGB0 = REGB1; } - break_26: while(0); - } else { /*if*/ - ((array___Array_____braeq_t)CALL( variable[7] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[7] /*res*/, variable[8] /*i*/, NIT_NULL /*null*/) /*Array::[]=*/; - variable[9] = TAG_Int(UNTAG_Int( variable[8] /*i*/)+UNTAG_Int( TAG_Int(1))); - variable[8] = variable[9] /*i=*/; - } - continue_25: while(0); - } - break_25: while(0); - variable[4] = variable[7] /*res*/; - goto return_label23; - return_label23: while(false); - tracehead = trace.prev; - return variable[4]; -} -void compiling_global___MMSrcModule___colorize(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) { - struct trace_t trace = {NULL, NULL, 378, LOCATE_compiling_global___MMSrcModule___colorize}; - val_t variable[21]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[4] = param3; - variable[7] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Int, Array[TableElt]]*/ - variable[6] = variable[7]; - variable[8] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/ - variable[7] = variable[8]; - variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*elts*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*elts*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[9])) break; /*for*/ - variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/; - variable[10] = variable[9]; - variable[12] = TAG_Int(-UNTAG_Int( TAG_Int(1))); - variable[11] = variable[12]; - variable[13] = ((compiling_global___TableElt___length_t)CALL( variable[10] /*e*/,COLOR_compiling_global___TableElt___length))( variable[10] /*e*/) /*TableElt::length*/; - variable[12] = variable[13]; - variable[13] = ((compiling_global___ColorContext___has_color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___has_color))( variable[1] /*ga*/, variable[10] /*e*/) /*ColorContext::has_color*/; - if (UNTAG_Bool(variable[13])) { /*if*/ - variable[13] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[10] /*e*/) /*ColorContext::color*/; - variable[11] = variable[13] /*color=*/; - } else { /*if*/ - ((array___AbstractArray___clear_t)CALL( variable[7] /*rel_classes*/,COLOR_abstract_collection___RemovableCollection___clear))( variable[7] /*rel_classes*/) /*AbstractArray::clear*/; - variable[13] = ((abstract_collection___Collection___iterator_t)CALL( variable[3] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*classes*/) /*Collection::iterator*/; - while (true) { /*for*/ - variable[14] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[13],COLOR_abstract_collection___Iterator___is_ok))(variable[13]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[14])) break; /*for*/ - variable[14] = ((abstract_collection___Iterator___item_t)CALL(variable[13],COLOR_abstract_collection___Iterator___item))(variable[13]) /*Iterator::item*/; - variable[15] = variable[14]; - variable[16] = ((compiling_global___TableElt___is_related_to_t)CALL( variable[10] /*e*/,COLOR_compiling_global___TableElt___is_related_to))( variable[10] /*e*/, variable[15] /*c*/) /*TableElt::is_related_to*/; - if (UNTAG_Bool(variable[16])) { /*if*/ - ((array___AbstractArray___add_t)CALL( variable[7] /*rel_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*rel_classes*/, variable[15] /*c*/) /*AbstractArray::add*/; - } - continue_29: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[13],COLOR_abstract_collection___Iterator___next))(variable[13]) /*Iterator::next*/; + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/; + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:102 */ + CALL_compiling_global___MMMethod___compile_property_to_c(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]); } - break_29: while(0); - variable[13] = variable[4] /*startcolor*/; - while (true) { /*while*/ - variable[14] = TAG_Bool(( variable[13] /*trycolor*/)!=( variable[11] /*color*/)); - if (!UNTAG_Bool(variable[14])) break; /* while*/ - variable[11] = variable[13] /*trycolor*/ /*color=*/; - variable[14] = ((array___AbstractArray___iterator_t)CALL( variable[7] /*rel_classes*/,COLOR_abstract_collection___Collection___iterator))( variable[7] /*rel_classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[15])) break; /*for*/ - variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/; - variable[16] = variable[15]; - variable[17] = TAG_Int(0); - while (true) { /*while*/ - variable[18] = TAG_Bool(UNTAG_Int( variable[17] /*idx*/)REG[0]); + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:106 */ + fra.me.REG[0] = NEW_Array_array___Array___init(); + /* ./compiling//compiling_global.nit:107 */ + REGB0 = TAG_Int(0); + fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 107); + } + REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:332 */ + while(1) { + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)REG[0])(closctx->REG[0]); + 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("_"); + REGB0 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_18 = fra.me.REG[3]; + register_static_object(&once_value_18); + } else fra.me.REG[3] = once_value_18; + 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___global(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_compiling_base___MMLocalProperty___cname(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]); + if (!once_value_19) { + fra.me.REG[1] = BOX_NativeString("("); + REGB0 = TAG_Int(1); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_19 = fra.me.REG[1]; + register_static_object(&once_value_19); + } else fra.me.REG[1] = once_value_19; + 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]); + if (!once_value_20) { + fra.me.REG[1] = BOX_NativeString(", "); + REGB0 = TAG_Int(2); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_20 = fra.me.REG[1]; + register_static_object(&once_value_20); + } else fra.me.REG[1] = once_value_20; + fra.me.REG[1] = fra.me.REG[1]; + fra.me.REG[1] = CALL_string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (!once_value_21) { + fra.me.REG[1] = BOX_NativeString(");"); + REGB0 = TAG_Int(2); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_21 = fra.me.REG[1]; + register_static_object(&once_value_21); + } else fra.me.REG[1] = once_value_21; + 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_base___CompilerVisitor___add_decl(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]); } - break_30: while(0); - ((compiling_global___ColorContext___color__eq_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color__eq))( variable[1] /*ga*/, variable[10] /*e*/, variable[11] /*color*/) /*ColorContext::color=*/; + stack_frame_head = fra.me.prev; + return; } - variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12] /*len*/); /*new Range[Int]*/ - variable[13] = ((range___Range___iterator_t)CALL(variable[13],COLOR_abstract_collection___Collection___iterator))(variable[13]) /*Range::iterator*/; - while (true) { /*for*/ - variable[14] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[13],COLOR_abstract_collection___Iterator___is_ok))(variable[13]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[14])) break; /*for*/ - variable[14] = ((abstract_collection___Iterator___item_t)CALL(variable[13],COLOR_abstract_collection___Iterator___item))(variable[13]) /*Iterator::item*/; - variable[15] = variable[14]; - variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/)); - variable[16] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map___has_key))( variable[6] /*colors*/, variable[16]) /*CoupleMap::has_key*/; - if (UNTAG_Bool(variable[16])) { /*if*/ - variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/)); - variable[16] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map_____bra))( variable[6] /*colors*/, variable[16]) /*CoupleMap::[]*/; - ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16], variable[10] /*e*/) /*AbstractArray::add*/; - } else { /*if*/ - variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/)); - variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[TableElt]*/ - ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17], variable[10] /*e*/) /*AbstractArray::add*/; - ((hash___HashMap_____braeq_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map_____braeq))( variable[6] /*colors*/, variable[16], variable[17]) /*HashMap::[]=*/; - } - continue_33: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[13],COLOR_abstract_collection___Iterator___next))(variable[13]) /*Iterator::next*/; - } - break_33: while(0); - continue_28: while(0); - ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/; +void compiling_global___MMModule___compile_local_table_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 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_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_10; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 116; + fra.me.meth = LOCATE_compiling_global___MMModule___compile_local_table_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.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./compiling//compiling_global.nit:119 */ + REGB0 = TAG_Int(5); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString("const char *LOCATE_"); + REGB0 = TAG_Int(19); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMModule___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[2])(fra.me.REG[2], fra.me.REG[3]); + 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_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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMModule___location(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_location___Location___file(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]); + if (!once_value_3) { + 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_3 = fra.me.REG[3]; + register_static_object(&once_value_3); + } else fra.me.REG[3] = once_value_3; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:121 */ + fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + fra.me.REG[2] = CALL_table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = REGB1; } - break_28: while(0); - return_label27: while(false); - tracehead = trace.prev; - return; -} -val_t compiling_global___MMSrcModule___free_color(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 422, LOCATE_compiling_global___MMSrcModule___free_color}; - val_t variable[8]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*es*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*es*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/; - variable[6] = variable[5]; - variable[7] = ((compiling_global___TableElt___is_related_to_t)CALL( variable[6] /*e2*/,COLOR_compiling_global___TableElt___is_related_to))( variable[6] /*e2*/, variable[2] /*c*/) /*TableElt::is_related_to*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[3] = TAG_Bool(false); - goto return_label34; - } - continue_35: while(0); - ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/; - } - break_35: while(0); - variable[3] = TAG_Bool(true); - goto return_label34; - return_label34: while(false); - tracehead = trace.prev; - return variable[3]; -} -void compiling_global___MMSrcModule___compile_tables_to_c(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 432, LOCATE_compiling_global___MMSrcModule___compile_tables_to_c}; - val_t variable[13]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___mhe))(variable[3]) /*MMModule::mhe*/; - variable[3] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[3]) /*PartialOrderElement::greaters_and_self*/; - variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/; - while (true) { /*for*/ - variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/; - variable[5] = variable[4]; - variable[6] = TAG_Bool(( variable[5] /*m*/==NIT_NULL) || VAL_ISA( variable[5] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/; - if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___compile_tables_to_c, LOCATE_compiling_global, 436); nit_exit(1);} - ((compiling_global___MMSrcModule___compile_local_table_to_c_t)CALL( variable[5] /*m*/,COLOR_compiling_global___MMSrcModule___compile_local_table_to_c))( variable[5] /*m*/, variable[1] /*v*/) /*MMSrcModule::compile_local_table_to_c*/; - continue_37: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/; + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:122 */ + goto label4; } - break_37: while(0); - variable[3] = variable[0]; - variable[3] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___local_classes))(variable[3]) /*MMModule::local_classes*/; - variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/; - variable[5] = variable[4]; - ((compiling_global___MMLocalClass___compile_tables_to_c_t)CALL( variable[5] /*c*/,COLOR_compiling_global___MMLocalClass___compile_tables_to_c))( variable[5] /*c*/, variable[1] /*v*/) /*MMLocalClass::compile_tables_to_c*/; - continue_38: while(0); - ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/; + /* ./compiling//compiling_global.nit:125 */ + REGB0 = TAG_Int(5); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_5) { + fra.me.REG[3] = BOX_NativeString("const int SFT_"); + REGB0 = TAG_Int(14); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_5 = fra.me.REG[3]; + register_static_object(&once_value_5); + } else fra.me.REG[3] = once_value_5; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMModule___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[2])(fra.me.REG[2], fra.me.REG[3]); + 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]; + register_static_object(&once_value_6); + } else fra.me.REG[3] = once_value_6; + 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_table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); } - break_38: while(0); - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("classtable_t TAG2VFT[4] = {NULL"), TAG_Int(31)); /*new String*/ - variable[3] = variable[4]; - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/ - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/ - ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/; - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/ - ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/; - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/ - ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/; - variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/; - variable[6] = variable[5]; - variable[7] = variable[0]; - variable[8] = ((symbol___String___to_symbol_t)CALL( variable[6] /*t*/,COLOR_symbol___String___to_symbol))( variable[6] /*t*/) /*String::to_symbol*/; - variable[7] = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL(variable[7],COLOR_abstractmetamodel___MMModule___has_global_class_named))(variable[7], variable[8]) /*MMModule::has_global_class_named*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = NEW_String_string___String___init(); /*new String*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", (const classtable_t)VFT_"), TAG_Int(26)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/; - variable[10] = variable[6] /*t*/; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/; - ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[7]) /*String::append*/; - } else { /*if*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", NULL"), TAG_Int(6)); /*new String*/ - ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[7]) /*String::append*/; - } - continue_39: while(0); - ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/; + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./compiling//compiling_global.nit:125 */ + fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + if (!once_value_7) { + fra.me.REG[3] = BOX_NativeString("] = {"); + REGB0 = TAG_Int(5); + 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_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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:126 */ + CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:127 */ + fra.me.REG[0] = CALL_table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); } - break_39: while(0); - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/ - ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[4]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3] /*s*/) /*CompilerVisitor::add_instr*/; - return_label36: while(false); - tracehead = trace.prev; - return; -} -void compiling_global___MMSrcModule___declare_class_tables_to_c(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 455, LOCATE_compiling_global___MMSrcModule___declare_class_tables_to_c}; - val_t variable[8]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___local_classes))(variable[3]) /*MMModule::local_classes*/; - variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/; - variable[5] = variable[4]; - variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[5] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[5] /*c*/) /*MMLocalClass::global*/; - variable[6] = ((abstractmetamodel___MMGlobalClass___module_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalClass___module))(variable[6]) /*MMGlobalClass::module*/; - variable[7] = variable[0]; - variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], variable[7]) /*Object::==*/))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - ((compiling_global___MMLocalClass___declare_tables_to_c_t)CALL( variable[5] /*c*/,COLOR_compiling_global___MMLocalClass___declare_tables_to_c))( variable[5] /*c*/, variable[1] /*v*/) /*MMLocalClass::declare_tables_to_c*/; + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); } - continue_41: while(0); - ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/; - } - break_41: while(0); - return_label40: while(false); - tracehead = trace.prev; - return; -} -void compiling_global___MMSrcModule___compile_main_part(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 465, LOCATE_compiling_global___MMSrcModule___compile_main_part}; - static val_t once_value_43; static int once_bool_43; /* Once value for variable[4]*/ - static val_t once_value_44; static int once_bool_44; /* Once value for variable[6]*/ - val_t variable[13]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("int main(int argc, char **argv) {"), TAG_Int(33)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/; - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("prepare_signals();"), TAG_Int(18)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/; - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("glob_argc = argc; glob_argv = argv;"), TAG_Int(35)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/; - if (once_bool_43) variable[4] = once_value_43; - else { - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)); /*new String*/ - variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/; - once_value_43 = variable[4]; - once_bool_43 = true; - } - variable[3] = variable[4]; - variable[4] = variable[0]; - variable[4] = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___has_global_class_named))(variable[4], variable[3] /*sysname*/) /*MMModule::has_global_class_named*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/ - variable[4] = variable[0]; - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/ - ((file___Object___print_t)CALL(variable[4],COLOR_file___Object___print))(variable[4], variable[5]) /*Object::print*/; - } else { /*if*/ - variable[5] = variable[0]; - variable[5] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[5], variable[3] /*sysname*/) /*MMModule::class_by_name*/; - variable[4] = variable[5]; - if (once_bool_44) variable[6] = once_value_44; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)); /*new String*/ - variable[6] = ((symbol___String___to_symbol_t)CALL(variable[6],COLOR_symbol___String___to_symbol))(variable[6]) /*String::to_symbol*/; - once_value_44 = variable[6]; - once_bool_44 = true; - } - variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL( variable[4] /*sys*/,COLOR_abstractmetamodel___MMLocalClass___select_method))( variable[4] /*sys*/, variable[6]) /*MMLocalClass::select_method*/; - variable[5] = variable[6]; - variable[6] = TAG_Bool(( variable[5] /*mainm*/ == NIT_NULL /*null*/) || (( variable[5] /*mainm*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*mainm*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*mainm*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*mainm*/,COLOR_kernel___Object_____eqeq))( variable[5] /*mainm*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = variable[0]; - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/ - ((file___Object___print_t)CALL(variable[6],COLOR_file___Object___print))(variable[6], variable[7]) /*Object::print*/; - } else { /*if*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("G_sys = NEW_Sys();"), TAG_Int(18)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[5] /*mainm*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[5] /*mainm*/) /*MMLocalProperty::cname*/; - variable[10] = variable[9]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(G_sys);"), TAG_Int(8)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/; - } - } - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("return 0;"), TAG_Int(9)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/; - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/; - return_label42: while(false); - tracehead = trace.prev; - return; -} -void compiling_global___MMSrcModule___compile_mod_to_c(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 492, LOCATE_compiling_global___MMSrcModule___compile_mod_to_c}; - val_t variable[27]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const char *LOCATE_"), TAG_Int(26)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/; - variable[3] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/; - variable[3] = ((compiling_base___ToolContext___global_t)CALL(variable[3],COLOR_compiling_base___ToolContext___global))(variable[3]) /*ToolContext::global*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/ - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const int SFT_"), TAG_Int(21)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/; - } - variable[3] = TAG_Int(0); - variable[4] = variable[0]; - variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/; - variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/; - variable[6] = variable[5]; - variable[7] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/; - variable[7] = ((compiling_base___ToolContext___global_t)CALL(variable[7],COLOR_compiling_base___ToolContext___global))(variable[7]) /*ToolContext::global*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = NEW_String_string___String___init(); /*new String*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/; - variable[10] = ((compiling_global___LocalTableElt___symbol_t)CALL( variable[6] /*e*/,COLOR_compiling_global___LocalTableElt___symbol))( variable[6] /*e*/) /*LocalTableElt::symbol*/; - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/; - variable[14] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[14] = ((compiling_global___LocalTableElt___value_t)CALL( variable[6] /*e*/,COLOR_compiling_global___LocalTableElt___value))( variable[6] /*e*/, variable[14]) /*LocalTableElt::value*/; - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[17] = variable[16]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_decl*/; - } else { /*if*/ - variable[7] = NEW_String_string___String___init(); /*new String*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/; - variable[10] = ((compiling_global___LocalTableElt___symbol_t)CALL( variable[6] /*e*/,COLOR_compiling_global___LocalTableElt___symbol))( variable[6] /*e*/) /*LocalTableElt::symbol*/; - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" SFT_"), TAG_Int(5)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/; - variable[14] = variable[0]; - variable[14] = ((abstractmetamodel___MMModule___name_t)CALL(variable[14],COLOR_abstractmetamodel___MMModule___name))(variable[14]) /*MMModule::name*/; - variable[15] = variable[14]; - variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/ - variable[17] = variable[16]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/; - variable[18] = variable[3] /*i*/; - variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[18]) /*String::append*/; - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/ - variable[20] = variable[19]; - ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[20]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_decl*/; - variable[7] = TAG_Int(UNTAG_Int( variable[3] /*i*/)+UNTAG_Int( TAG_Int(1))); - variable[3] = variable[7] /*i=*/; - } - continue_46: while(0); - ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/; - } - break_46: while(0); - variable[4] = variable[0]; - variable[4] = ((syntax_base___MMSrcModule___src_local_classes_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___src_local_classes))(variable[4]) /*MMSrcModule::src_local_classes*/; - variable[4] = ((abstract_collection___Map___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Map::iterator*/; - while (true) { /*for*/ - variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/; - variable[6] = variable[5]; - variable[7] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[6] /*c*/) /*MMLocalClass::global_properties*/; - variable[7] = ((abstract_collection___Collection___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*Collection::iterator*/; - while (true) { /*for*/ - variable[8] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[8])) break; /*for*/ - variable[8] = ((abstract_collection___Iterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*Iterator::item*/; - variable[9] = variable[8]; - variable[11] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[6] /*c*/, variable[9] /*pg*/) /*MMLocalClass::[]*/; - variable[10] = variable[11]; - variable[11] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[10] /*p*/) /*MMLocalProperty::local_class*/; - variable[11] = TAG_Bool((variable[11] == variable[6] /*c*/) || ((variable[11] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[6] /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))(variable[11], variable[6] /*c*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[11] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[9] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[9] /*pg*/) /*MMGlobalProperty::intro*/; - variable[11] = TAG_Bool((variable[11] == variable[10] /*p*/) || ((variable[11] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[10] /*p*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))(variable[11], variable[10] /*p*/) /*Object::==*/))))); - variable[12] = variable[11]; - if (UNTAG_Bool(variable[12])) { /* and */ - variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/; - } - variable[11] = variable[12]; - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[11] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/; - variable[11] = ((compiling_base___ToolContext___attr_sim_t)CALL(variable[11],COLOR_compiling_base___ToolContext___attr_sim))(variable[11]) /*ToolContext::attr_sim*/; - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[12] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL( variable[9] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___local_class))( variable[9] /*pg*/) /*MMGlobalProperty::local_class*/; - variable[11] = variable[12]; - variable[12] = TAG_Bool(( variable[11] /*bc*/==NIT_NULL) || VAL_ISA( variable[11] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/; - if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___compile_mod_to_c, LOCATE_compiling_global, 515); nit_exit(1);} - variable[13] = ((compiling_global___MMSrcLocalClass___base_attr_pos_t)CALL( variable[11] /*bc*/,COLOR_compiling_global___MMSrcLocalClass___base_attr_pos))( variable[11] /*bc*/) /*MMSrcLocalClass::base_attr_pos*/; - variable[13] = ((compiling_global___TableEltBaseAttrPos___symbol_t)CALL(variable[13],COLOR_compiling_global___LocalTableElt___symbol))(variable[13]) /*TableEltBaseAttrPos::symbol*/; - variable[12] = variable[13]; - variable[13] = NEW_String_string___String___init(); /*new String*/ - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/; - variable[16] = ((compiling_base___MMGlobalProperty___attr_access_t)CALL( variable[9] /*pg*/,COLOR_compiling_base___MMGlobalProperty___attr_access))( variable[9] /*pg*/) /*MMGlobalProperty::attr_access*/; - variable[17] = variable[16]; - ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[17]) /*String::append*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("(recv) ATTRS(recv, "), TAG_Int(19)); /*new String*/ - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/; - variable[20] = variable[12] /*s*/; - ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[20]) /*String::append*/; - variable[21] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable[22] = variable[21]; - ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[22]) /*String::append*/; - variable[23] = ((compiling_global___MMGlobalProperty___pos_of_t)CALL( variable[9] /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of))( variable[9] /*pg*/) /*MMGlobalProperty::pos_of*/; - variable[24] = variable[23]; - variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[24]) /*String::append*/; - variable[25] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/ - variable[26] = variable[25]; - ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[26]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/; - } else { /*if*/ - variable[11] = NEW_String_string___String___init(); /*new String*/ - variable[12] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[13]) /*String::append*/; - variable[14] = ((compiling_base___MMGlobalProperty___attr_access_t)CALL( variable[9] /*pg*/,COLOR_compiling_base___MMGlobalProperty___attr_access))( variable[9] /*pg*/) /*MMGlobalProperty::attr_access*/; - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[15]) /*String::append*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("(recv) ATTR(recv, "), TAG_Int(18)); /*new String*/ - variable[17] = variable[16]; - ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[17]) /*String::append*/; - variable[18] = ((compiling_base___MMGlobalProperty___color_id_t)CALL( variable[9] /*pg*/,COLOR_compiling_base___MMGlobalProperty___color_id))( variable[9] /*pg*/) /*MMGlobalProperty::color_id*/; - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[19]) /*String::append*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/ - variable[21] = variable[20]; - ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[21]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_decl*/; - } - } - ((compiling_methods___MMLocalProperty___compile_property_to_c_t)CALL( variable[10] /*p*/,COLOR_compiling_methods___MMLocalProperty___compile_property_to_c))( variable[10] /*p*/, variable[1] /*v*/) /*MMLocalProperty::compile_property_to_c*/; - } - variable[11] = ((abstractmetamodel___MMGlobalProperty___is_init_for_t)CALL( variable[9] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init_for))( variable[9] /*pg*/, variable[6] /*c*/) /*MMGlobalProperty::is_init_for*/; - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[12] = NEW_Array_array___Array___init(); /*new Array[String]*/ - variable[11] = variable[12]; - variable[12] = ((static_type___MMLocalProperty___signature_t)CALL( variable[10] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[10] /*p*/) /*MMLocalProperty::signature*/; - variable[12] = ((static_type___MMSignature___arity_t)CALL(variable[12],COLOR_static_type___MMSignature___arity))(variable[12]) /*MMSignature::arity*/; - variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12]); /*new Range[Int]*/ - variable[12] = variable[13]; - variable[12] = ((range___Range___iterator_t)CALL(variable[12],COLOR_abstract_collection___Collection___iterator))(variable[12]) /*Range::iterator*/; - while (true) { /*for*/ - variable[13] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[12],COLOR_abstract_collection___Iterator___is_ok))(variable[12]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[13])) break; /*for*/ - variable[13] = ((abstract_collection___Iterator___item_t)CALL(variable[12],COLOR_abstract_collection___Iterator___item))(variable[12]) /*Iterator::item*/; - variable[14] = variable[13]; - variable[15] = NEW_String_string___String___init(); /*new String*/ - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)); /*new String*/ - variable[17] = variable[16]; - ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[17]) /*String::append*/; - variable[18] = variable[14] /*i*/; - variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[18]) /*String::append*/; - variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[20] = variable[19]; - ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[20]) /*String::append*/; - ((array___AbstractArray___add_t)CALL( variable[11] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*params*/, variable[15]) /*AbstractArray::add*/; - continue_49: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[12],COLOR_abstract_collection___Iterator___next))(variable[12]) /*Iterator::next*/; - } - break_49: while(0); - variable[12] = NEW_String_string___String___init(); /*new String*/ - variable[13] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/ - variable[14] = variable[13]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/; - variable[15] = variable[6] /*c*/; - variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[15]) /*String::append*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/ - variable[17] = variable[16]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[17]) /*String::append*/; - variable[18] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[10] /*p*/) /*MMLocalProperty::global*/; - variable[18] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[18],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[18]) /*MMGlobalProperty::intro*/; - variable[18] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[18],COLOR_compiling_base___MMLocalProperty___cname))(variable[18]) /*MMLocalProperty::cname*/; - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[19]) /*String::append*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/ - variable[21] = variable[20]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[21]) /*String::append*/; - variable[22] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable[22] = ((string___Collection___join_t)CALL( variable[11] /*params*/,COLOR_string___Collection___join))( variable[11] /*params*/, variable[22]) /*Collection::join*/; - variable[23] = variable[22]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[23]) /*String::append*/; - variable[24] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/ - variable[25] = variable[24]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[25]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_decl*/; + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./compiling//compiling_global.nit:128 */ + fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_compiling_global___ModuleTableElt___value(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + if (!once_value_8) { + fra.me.REG[3] = BOX_NativeString(","); + REGB1 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); + 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] = fra.me.REG[3]; + fra.me.REG[3] = CALL_string___String_____plus(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label9; } - break_48: while(0); - continue_47: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/; } - break_47: while(0); - return_label45: while(false); - tracehead = trace.prev; + label9: while(0); + /* ./compiling//compiling_global.nit:130 */ + CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:131 */ + if (!once_value_10) { + 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_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]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + label4: while(0); + stack_frame_head = fra.me.prev; return; } -void compiling_global___MMSrcModule___compile_local_table_to_c(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 536, LOCATE_compiling_global___MMSrcModule___compile_local_table_to_c}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const char *LOCATE_"), TAG_Int(19)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" = \""), TAG_Int(4)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - variable[10] = variable[0]; - variable[10] = ((mmloader___MMModule___filename_t)CALL(variable[10],COLOR_mmloader___MMModule___filename))(variable[10]) /*MMModule::filename*/; - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString("\";"), TAG_Int(2)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/; - variable[3] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/; - variable[3] = ((compiling_base___ToolContext___global_t)CALL(variable[3],COLOR_compiling_base___ToolContext___global))(variable[3]) /*ToolContext::global*/; - variable[4] = variable[3]; - if (!UNTAG_Bool(variable[4])) { /* or */ - variable[4] = variable[0]; - variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/; - variable[4] = ((array___AbstractArray___is_empty_t)CALL(variable[4],COLOR_abstract_collection___Collection___is_empty))(variable[4]) /*AbstractArray::is_empty*/; - } - variable[3] = variable[4]; - if (UNTAG_Bool(variable[3])) { /*if*/ - goto return_label50; - } - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const int SFT_"), TAG_Int(14)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - variable[10] = variable[0]; - variable[10] = ATTR_compiling_global___MMSrcModule____local_table(variable[10]) /*MMSrcModule::_local_table*/; - variable[10] = ((array___AbstractArray___length_t)CALL(variable[10],COLOR_abstract_collection___Collection___length))(variable[10]) /*AbstractArray::length*/; - variable[11] = variable[10]; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/; - variable[3] = variable[0]; - variable[3] = ATTR_compiling_global___MMSrcModule____local_table(variable[3]) /*MMSrcModule::_local_table*/; - variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/; - variable[5] = variable[4]; - variable[6] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[6] = ((compiling_global___LocalTableElt___value_t)CALL( variable[5] /*e*/,COLOR_compiling_global___LocalTableElt___value))( variable[5] /*e*/, variable[6]) /*LocalTableElt::value*/; - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/ - variable[6] = ((string___String_____plus_t)CALL(variable[6],COLOR_string___String_____plus))(variable[6], variable[7]) /*String::+*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/; - continue_51: while(0); - ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/; - } - break_51: while(0); - ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/; - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/; - return_label50: while(false); - tracehead = trace.prev; +void compiling_global___AbsTableElt___compile_macros(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_global; + fra.me.line = 138; + fra.me.meth = LOCATE_compiling_global___AbsTableElt___compile_macros; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./compiling//compiling_global.nit:138 */ + nit_abort("Deferred method called", NULL, LOCATE_compiling_global, 138); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___TableElt___is_related_to(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 556, LOCATE_compiling_global___TableElt___is_related_to}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 556); - nit_exit(1); - tracehead = trace.prev; +val_t compiling_global___TableElt___compile_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_global; + fra.me.line = 143; + fra.me.meth = LOCATE_compiling_global___TableElt___compile_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./compiling//compiling_global.nit:143 */ + nit_abort("Deferred method called", NULL, LOCATE_compiling_global, 143); + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t compiling_global___TableElt___length(val_t self) { - struct trace_t trace = {NULL, NULL, 557, LOCATE_compiling_global___TableElt___length}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = TAG_Int(1); - goto return_label52; - return_label52: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t compiling_global___TableElt___item(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 558, LOCATE_compiling_global___TableElt___item}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[2] = variable[3]; - goto return_label53; - return_label53: while(false); - tracehead = trace.prev; - return variable[2]; -} -val_t compiling_global___TableElt___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 559, LOCATE_compiling_global___TableElt___compile_to_c}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 559); - nit_exit(1); - tracehead = trace.prev; +val_t compiling_global___ModuleTableElt___value(val_t p0, val_t p1){ + 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_global; + fra.me.line = 148; + fra.me.meth = LOCATE_compiling_global___ModuleTableElt___value; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./compiling//compiling_global.nit:148 */ + nit_abort("Deferred method called", NULL, LOCATE_compiling_global, 148); + stack_frame_head = fra.me.prev; return NIT_NULL; } -void compiling_global___TableElt___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___TableElt___init}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - tracehead = trace.prev; - return; -} -val_t compiling_global___LocalTableElt___symbol(val_t self) { - struct trace_t trace = {NULL, NULL, 564, LOCATE_compiling_global___LocalTableElt___symbol}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 564); - nit_exit(1); - tracehead = trace.prev; - return NIT_NULL; +val_t compiling_global___ModuleTableEltGroup___value(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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 153; + fra.me.meth = LOCATE_compiling_global___ModuleTableEltGroup___value; + fra.me.has_broke = 0; + fra.me.REG_size = 4; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./compiling//compiling_global.nit:153 */ + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_1 = fra.me.REG[3]; + register_static_object(&once_value_1); + } else fra.me.REG[3] = once_value_1; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[0] = CALL_table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString(" /* Group of ? */"); + REGB0 = TAG_Int(17); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(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); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -val_t compiling_global___LocalTableElt___value(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 565, LOCATE_compiling_global___LocalTableElt___value}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 565); - nit_exit(1); - tracehead = trace.prev; - return NIT_NULL; -} -val_t compiling_global___TableEltPropPos___symbol(val_t self) { - struct trace_t trace = {NULL, NULL, 571, LOCATE_compiling_global___TableEltPropPos___symbol}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_compiling_global___TableEltPropPos____property(variable[2]) /*TableEltPropPos::_property*/; - variable[2] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[2]) /*MMLocalProperty::global*/; - variable[2] = ((compiling_base___MMGlobalProperty___color_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalProperty___color_id))(variable[2]) /*MMGlobalProperty::color_id*/; - variable[1] = variable[2]; - goto return_label54; - return_label54: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t compiling_global___TableEltPropPos___value(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 572, LOCATE_compiling_global___TableEltPropPos___value}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Property "), TAG_Int(13)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - variable[10] = variable[0]; - variable[10] = ATTR_compiling_global___TableEltPropPos____property(variable[10]) /*TableEltPropPos::_property*/; - variable[11] = variable[10]; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/; - variable[2] = variable[3]; - goto return_label55; - return_label55: while(false); - tracehead = trace.prev; - return variable[2]; +void compiling_global___ModuleTableEltGroup___compile_macros(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[6];} 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 154; + fra.me.meth = LOCATE_compiling_global___ModuleTableEltGroup___compile_macros; + fra.me.has_broke = 0; + fra.me.REG_size = 7; + 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] = p2; + /* ./compiling//compiling_global.nit:156 */ + REGB0 = TAG_Int(0); + /* ./compiling//compiling_global.nit:157 */ + fra.me.REG[0] = CALL_table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./compiling//compiling_global.nit:158 */ + REGB2 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_1) { + fra.me.REG[6] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2); + 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]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]); + if (!once_value_2) { + fra.me.REG[6] = BOX_NativeString(" + "); + REGB2 = TAG_Int(3); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2); + 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]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_3) { + fra.me.REG[6] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2); + 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]; + 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_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]); + /* ./compiling//compiling_global.nit:159 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./compiling//compiling_global.nit:159 */ + REGB0 = REGB2; + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label4; + } + } + label4: while(0); + stack_frame_head = fra.me.prev; + return; } -void compiling_global___TableEltPropPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 574, LOCATE_compiling_global___TableEltPropPos___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltPropPos].i]) return; - variable[3] = variable[0]; - ATTR_compiling_global___TableEltPropPos____property(variable[3]) /*TableEltPropPos::_property*/ = variable[1] /*p*/; - return_label56: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltPropPos].i] = 1; - tracehead = trace.prev; +void compiling_global___TableEltMeth___compile_macros(val_t p0, val_t p1, val_t p2){ + 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_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_global; + fra.me.line = 165; + fra.me.meth = LOCATE_compiling_global___TableEltMeth___compile_macros; + fra.me.has_broke = 0; + fra.me.REG_size = 5; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:167 */ + fra.me.REG[0] = CALL_table_computation___TableEltProp___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]); + /* ./compiling//compiling_global.nit:168 */ + REGB0 = TAG_Int(7); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("#define "); + REGB0 = TAG_Int(8); + 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; + 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_base___MMGlobalProperty___meth_call(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_2) { + fra.me.REG[4] = BOX_NativeString("(recv) (("); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + 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]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), ("); + REGB0 = TAG_Int(17); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString(")))"); + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + 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]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___TableEltMethPos___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 582, LOCATE_compiling_global___TableEltMethPos___compile_to_c}; - val_t variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = variable[0]; - variable[5] = ATTR_compiling_global___TableEltPropPos____property(variable[5]) /*TableEltPropPos::_property*/; - variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[5]) /*MMLocalProperty::global*/; - variable[5] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[2] /*c*/, variable[5]) /*MMLocalClass::[]*/; - variable[4] = variable[5]; - variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[4] /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[4] /*p*/) /*MMLocalProperty::cname*/; - variable[3] = variable[5]; - goto return_label57; - return_label57: while(false); - tracehead = trace.prev; - return variable[3]; +val_t compiling_global___TableEltMeth___compile_to_c(val_t p0, val_t p1, val_t p2){ + 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_global; + fra.me.line = 171; + fra.me.meth = LOCATE_compiling_global___TableEltMeth___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] = p2; + /* ./compiling//compiling_global.nit:173 */ + fra.me.REG[0] = CALL_table_computation___TableEltProp___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___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./compiling//compiling_global.nit:174 */ + fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void compiling_global___TableEltMethPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 587, LOCATE_compiling_global___TableEltMethPos___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltMethPos].i]) return; - ((compiling_global___TableEltPropPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltPropPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltPropPos::init*/; - return_label58: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltMethPos].i] = 1; - tracehead = trace.prev; +void compiling_global___TableEltSuper___compile_macros(val_t p0, val_t p1, val_t p2){ + 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_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_global; + fra.me.line = 179; + fra.me.meth = LOCATE_compiling_global___TableEltSuper___compile_macros; + fra.me.has_broke = 0; + fra.me.REG_size = 5; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:181 */ + fra.me.REG[0] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_global.nit:182 */ + REGB0 = TAG_Int(7); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("#define "); + REGB0 = TAG_Int(8); + 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; + 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_base___MMLocalProperty___super_meth_call(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_2) { + fra.me.REG[4] = BOX_NativeString("(recv) (("); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), ("); + REGB0 = TAG_Int(17); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString(")))"); + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + 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]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___TableEltSuperPos___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 593, LOCATE_compiling_global___TableEltSuperPos___compile_to_c}; - val_t variable[13]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = variable[0]; - variable[5] = ATTR_compiling_global___TableEltPropPos____property(variable[5]) /*TableEltPropPos::_property*/; - variable[5] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[5]) /*MMLocalProperty::local_class*/; - variable[4] = variable[5]; - variable[6] = variable[0]; - variable[6] = ATTR_compiling_global___TableEltPropPos____property(variable[6]) /*TableEltPropPos::_property*/; - variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/; - variable[5] = variable[6]; - variable[7] = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable[2] /*c*/) /*MMLocalClass::che*/; - variable[7] = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___linear_extension))(variable[7]) /*PartialOrderElement::linear_extension*/; - variable[6] = variable[7]; - variable[7] = TAG_Bool(false); - variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*lin*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*lin*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[9])) break; /*for*/ - variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/; - variable[10] = variable[9]; - variable[11] = TAG_Bool(( variable[10] /*s*/ == variable[4] /*pc*/) || (( variable[10] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*s*/, variable[4] /*pc*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*s*/,COLOR_kernel___Object_____eqeq))( variable[10] /*s*/, variable[4] /*pc*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[7] = TAG_Bool(true) /*found=*/; - } else { /*if*/ - variable[11] = variable[7] /*found*/; - if (UNTAG_Bool(variable[11])) { /* and */ - variable[11] = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable[2] /*c*/) /*MMLocalClass::che*/; - variable[11] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[11],COLOR_partial_order___PartialOrderElement_____l))(variable[11], variable[10] /*s*/) /*PartialOrderElement::<*/; +val_t compiling_global___TableEltSuper___compile_to_c(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 185; + fra.me.meth = LOCATE_compiling_global___TableEltSuper___compile_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 7; + 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] = p2; + /* ./compiling//compiling_global.nit:187 */ + fra.me.REG[1] = CALL_table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:188 */ + fra.me.REG[0] = CALL_table_computation___TableEltProp___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]); + /* ./compiling//compiling_global.nit:189 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_partial_order___PartialOrderElement___linear_extension(fra.me.REG[3])(fra.me.REG[3]); + /* ./compiling//compiling_global.nit:190 */ + REGB0 = TAG_Bool(false); + /* ./../lib/standard//collection//array.nit:234 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + 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, 235); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../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]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./compiling//compiling_global.nit:193 */ + REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[1])); + if (UNTAG_Bool(REGB2)) { + } else { + REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]); + REGB2 = REGB3; } - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[12] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[10] /*s*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[10] /*s*/, variable[5] /*g*/) /*MMLocalClass::[]*/; - variable[11] = variable[12]; - variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*p*/ == NIT_NULL /*null*/) || (( variable[11] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*p*/,COLOR_kernel___Object_____eqeq))( variable[11] /*p*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[12])) { /*if*/ - variable[12] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[11] /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[11] /*p*/) /*MMLocalProperty::cname*/; - variable[3] = variable[12]; - goto return_label59; + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:194 */ + REGB2 = TAG_Bool(true); + REGB0 = REGB2; + } else { + /* ./compiling//compiling_global.nit:195 */ + if (UNTAG_Bool(REGB0)) { + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + } else { + REGB3 = TAG_Bool(false); + REGB2 = REGB3; + } + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:196 */ + REGB2 = CALL_abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:198 */ + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); + fra.me.REG[5] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[5])(fra.me.REG[5]); + goto label1; + } } } + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label2; } - continue_60: while(0); - ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/; } - break_60: while(0); - if (!UNTAG_Bool( TAG_Bool(false))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltSuperPos___compile_to_c, LOCATE_compiling_global, 611); nit_exit(1);} - variable[3] = NIT_NULL /*null*/; - goto return_label59; - return_label59: while(false); - tracehead = trace.prev; - return variable[3]; -} -val_t compiling_global___TableEltSuperPos___symbol(val_t self) { - struct trace_t trace = {NULL, NULL, 592, LOCATE_compiling_global___TableEltSuperPos___symbol}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_compiling_global___TableEltPropPos____property(variable[2]) /*TableEltPropPos::_property*/; - variable[2] = ((compiling_base___MMLocalProperty___color_id_for_super_t)CALL(variable[2],COLOR_compiling_base___MMLocalProperty___color_id_for_super))(variable[2]) /*MMLocalProperty::color_id_for_super*/; - variable[1] = variable[2]; - goto return_label61; - return_label61: while(false); - tracehead = trace.prev; - return variable[1]; + label2: while(0); + /* ./compiling//compiling_global.nit:202 */ + nit_abort("Aborted", NULL, LOCATE_compiling_global, 202); + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[5]; } -void compiling_global___TableEltSuperPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 615, LOCATE_compiling_global___TableEltSuperPos___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltSuperPos].i]) return; - ((compiling_global___TableEltPropPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltPropPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltPropPos::init*/; - return_label62: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltSuperPos].i] = 1; - tracehead = trace.prev; +void compiling_global___TableEltAttr___compile_macros(val_t p0, val_t p1, val_t p2){ + 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_3; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 207; + fra.me.meth = LOCATE_compiling_global___TableEltAttr___compile_macros; + fra.me.has_broke = 0; + fra.me.REG_size = 5; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:209 */ + fra.me.REG[0] = CALL_table_computation___TableEltProp___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]); + /* ./compiling//compiling_global.nit:210 */ + REGB0 = TAG_Int(5); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("#define "); + REGB0 = TAG_Int(8); + 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; + 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[0] = CALL_compiling_base___MMGlobalProperty___attr_access(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString("(recv) ATTR(recv, ("); + REGB0 = TAG_Int(19); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + if (!once_value_3) { + 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_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_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]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___TableEltAttrPos___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 620, LOCATE_compiling_global___TableEltAttrPos___compile_to_c}; - val_t variable[19]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[4] = variable[5]; - variable[6] = variable[0]; - variable[6] = ATTR_compiling_global___TableEltPropPos____property(variable[6]) /*TableEltPropPos::_property*/; - variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/; - variable[6] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[2] /*c*/, variable[6]) /*MMLocalClass::[]*/; - variable[5] = variable[6]; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[0]; - variable[9] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[9]) /*ColorContext::color*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString(": Attribute "), TAG_Int(12)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = variable[2] /*c*/; - variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/; - variable[16] = variable[5] /*p*/; - variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/ - variable[18] = variable[17]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[18]) /*String::append*/; - variable[3] = variable[6]; - goto return_label63; - return_label63: while(false); - tracehead = trace.prev; - return variable[3]; +val_t compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t p1, val_t p2){ + 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_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_global; + fra.me.line = 213; + fra.me.meth = LOCATE_compiling_global___TableEltAttr___compile_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 6; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:215 */ + fra.me.REG[1] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:216 */ + fra.me.REG[3] = CALL_table_computation___TableEltProp___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_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_global.nit:217 */ + REGB0 = TAG_Int(7); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[5] = 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]; + register_static_object(&once_value_1); + } else fra.me.REG[5] = once_value_1; + 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[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString(": Attribute "); + REGB0 = TAG_Int(12); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + fra.me.REG[2] = CALL_string___Object___to_s(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_3) { + 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_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_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + 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[4])(fra.me.REG[4], fra.me.REG[3]); + if (!once_value_4) { + 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_4 = fra.me.REG[3]; + register_static_object(&once_value_4); + } else fra.me.REG[3] = once_value_4; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + goto label5; + label5: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[4]; } -void compiling_global___TableEltAttrPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 627, LOCATE_compiling_global___TableEltAttrPos___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltAttrPos].i]) return; - ((compiling_global___TableEltPropPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltPropPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltPropPos::init*/; - return_label64: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltAttrPos].i] = 1; - tracehead = trace.prev; - return; -} -val_t compiling_global___TableEltClassPos___is_related_to(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 633, LOCATE_compiling_global___TableEltClassPos___is_related_to}; - val_t variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*c*/) /*MMLocalClass::module*/; - variable[5] = variable[0]; - variable[5] = ATTR_compiling_global___TableEltClassPos____local_class(variable[5]) /*TableEltClassPos::_local_class*/; - variable[5] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___global))(variable[5]) /*MMLocalClass::global*/; - variable[4] = ((abstractmetamodel___MMModule_____bra_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule_____bra))(variable[4], variable[5]) /*MMModule::[]*/; - variable[3] = variable[4]; - variable[4] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[1] /*c*/) /*MMLocalClass::cshe*/; - variable[4] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____leq))(variable[4], variable[3] /*bc*/) /*PartialOrderElement::<=*/; - variable[2] = variable[4]; - goto return_label65; - return_label65: while(false); - tracehead = trace.prev; - return variable[2]; +val_t compiling_global___AbsTableEltClass___symbol(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 222; + fra.me.meth = LOCATE_compiling_global___AbsTableEltClass___symbol; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./compiling//compiling_global.nit:222 */ + nit_abort("Deferred method called", NULL, LOCATE_compiling_global, 222); + stack_frame_head = fra.me.prev; + return NIT_NULL; } -void compiling_global___TableEltClassPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 639, LOCATE_compiling_global___TableEltClassPos___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassPos].i]) return; - variable[3] = variable[0]; - ATTR_compiling_global___TableEltClassPos____local_class(variable[3]) /*TableEltClassPos::_local_class*/ = variable[1] /*c*/; - return_label66: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassPos].i] = 1; - tracehead = trace.prev; +void compiling_global___AbsTableEltClass___compile_macros(val_t p0, val_t p1, val_t p2){ + 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_3; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 225; + fra.me.meth = LOCATE_compiling_global___AbsTableEltClass___compile_macros; + fra.me.has_broke = 0; + fra.me.REG_size = 5; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:227 */ + REGB0 = TAG_Int(5); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("#define "); + REGB0 = TAG_Int(8); + 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; + 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[0] = CALL_compiling_global___AbsTableEltClass___symbol(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + if (!once_value_2) { + 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; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + if (!once_value_3) { + 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_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_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]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + stack_frame_head = fra.me.prev; return; } -val_t compiling_global___TableEltClassIdPos___symbol(val_t self) { - struct trace_t trace = {NULL, NULL, 647, LOCATE_compiling_global___TableEltClassIdPos___symbol}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_compiling_global___TableEltClassPos____local_class(variable[2]) /*TableEltClassPos::_local_class*/; - variable[2] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___global))(variable[2]) /*MMLocalClass::global*/; - variable[2] = ((compiling_base___MMGlobalClass___id_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalClass___id_id))(variable[2]) /*MMGlobalClass::id_id*/; - variable[1] = variable[2]; - goto return_label67; - return_label67: while(false); - tracehead = trace.prev; - return variable[1]; +val_t compiling_global___TableEltClassId___symbol(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 232; + fra.me.meth = LOCATE_compiling_global___TableEltClassId___symbol; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./compiling//compiling_global.nit:232 */ + fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t compiling_global___TableEltClassIdPos___value(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 648, LOCATE_compiling_global___TableEltClassIdPos___value}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[1] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[7] = variable[0]; - variable[7] = ATTR_compiling_global___TableEltClassPos____local_class(variable[7]) /*TableEltClassPos::_local_class*/; - variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___global))(variable[7]) /*MMLocalClass::global*/; - variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/; - variable[6] = ((compiling_global___CompiledClass___id_t)CALL(variable[6],COLOR_compiling_global___CompiledClass___id))(variable[6]) /*CompiledClass::id*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Id of "), TAG_Int(10)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - variable[10] = variable[0]; - variable[10] = ATTR_compiling_global___TableEltClassPos____local_class(variable[10]) /*TableEltClassPos::_local_class*/; - variable[11] = variable[10]; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/; - variable[2] = variable[3]; - goto return_label68; - return_label68: while(false); - tracehead = trace.prev; - return variable[2]; +val_t compiling_global___TableEltClassId___value(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_global; + fra.me.line = 234; + fra.me.meth = LOCATE_compiling_global___TableEltClassId___value; + fra.me.has_broke = 0; + fra.me.REG_size = 4; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./compiling//compiling_global.nit:236 */ + REGB0 = TAG_Int(5); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_1 = fra.me.REG[3]; + register_static_object(&once_value_1); + } else fra.me.REG[3] = once_value_1; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[1] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[3] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 236); + } + REGB0 = CALL_table_computation___CompiledClass___id(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + if (!once_value_2) { + fra.me.REG[3] = BOX_NativeString(" /* Id of "); + REGB0 = TAG_Int(10); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(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[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_3) { + 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_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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(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); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -void compiling_global___TableEltClassIdPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 653, LOCATE_compiling_global___TableEltClassIdPos___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassIdPos].i]) return; - ((compiling_global___TableEltClassPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltClassPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltClassPos::init*/; - return_label69: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassIdPos].i] = 1; - tracehead = trace.prev; - return; +val_t compiling_global___TableEltClassInitTable___symbol(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 241; + fra.me.meth = LOCATE_compiling_global___TableEltClassInitTable___symbol; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./compiling//compiling_global.nit:241 */ + fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t compiling_global___TableEltClassInitTablePos___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 663, LOCATE_compiling_global___TableEltClassInitTablePos___compile_to_c}; - val_t variable[25]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[4] = variable[5]; - variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[7] = variable[0]; - variable[7] = ATTR_compiling_global___TableEltClassPos____local_class(variable[7]) /*TableEltClassPos::_local_class*/; - variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___global))(variable[7]) /*MMLocalClass::global*/; - variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/; - variable[5] = variable[6]; - variable[7] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[2] /*c*/) /*MMLocalClass::cshe*/; - variable[7] = ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___reverse_linear_extension))(variable[7]) /*PartialOrderElement::reverse_linear_extension*/; - variable[6] = variable[7]; - variable[7] = TAG_Int(0); - while (true) { /*while*/ - variable[8] = variable[6] /*linext*/; - variable[9] = variable[7] /*i*/; - variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable[12] = variable[11]; - if (UNTAG_Bool(variable[12])) { /* and */ - variable[12] = variable[8]; - variable[12] = ATTR_array___AbstractArray____length(variable[12]) /*AbstractArray::_length*/; - variable[12] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)=UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../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_global.nit:249 */ + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 249); + } + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[6] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + REGB1 = REGB2; + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_global.nit:250 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./compiling//compiling_global.nit:250 */ + REGB0 = REGB1; + } else { + /* ./compiling//compiling_global.nit:249 */ + goto label2; } - variable[11] = variable[12]; - if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_global, 229); nit_exit(1);} - variable[11] = variable[8]; - variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/; - variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)]; - variable[10] = variable[11]; - goto return_label72; - return_label72: while(false); - variable[8] = variable[10]; - variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___global))(variable[8]) /*MMLocalClass::global*/; - variable[9] = variable[0]; - variable[9] = ATTR_compiling_global___TableEltClassPos____local_class(variable[9]) /*TableEltClassPos::_local_class*/; - variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___global))(variable[9]) /*MMLocalClass::global*/; - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8], variable[9]) /*Object::==*/))))))); - if (!UNTAG_Bool(variable[8])) break; /* while*/ - variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*i*/; - continue_71: while(0); } - break_71: while(0); - variable[8] = NEW_String_string___String___init(); /*new String*/ - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[10] = variable[9]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/; - variable[11] = variable[7] /*i*/; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/; - variable[14] = variable[0]; - variable[14] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[14]) /*ColorContext::color*/; - variable[15] = variable[14]; - variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/ - variable[17] = variable[16]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/; - variable[18] = variable[2] /*c*/; - variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/; - variable[19] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/ - variable[20] = variable[19]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/; - variable[21] = ((compiling_global___CompiledClass___local_class_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___CompiledClass___local_class))( variable[5] /*cc*/) /*CompiledClass::local_class*/; - variable[22] = variable[21]; - variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/; - variable[23] = NEW_String_string___String___with_native(BOX_NativeString(": superclass init_table position */"), TAG_Int(35)); /*new String*/ - variable[24] = variable[23]; - ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[24]) /*String::append*/; - variable[3] = variable[8]; - goto return_label70; - return_label70: while(false); - tracehead = trace.prev; - return variable[3]; -} -val_t compiling_global___TableEltClassInitTablePos___symbol(val_t self) { - struct trace_t trace = {NULL, NULL, 658, LOCATE_compiling_global___TableEltClassInitTablePos___symbol}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_compiling_global___TableEltClassPos____local_class(variable[2]) /*TableEltClassPos::_local_class*/; - variable[2] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___global))(variable[2]) /*MMLocalClass::global*/; - variable[2] = ((compiling_base___MMGlobalClass___init_table_pos_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalClass___init_table_pos_id))(variable[2]) /*MMGlobalClass::init_table_pos_id*/; - variable[1] = variable[2]; - goto return_label73; - return_label73: while(false); - tracehead = trace.prev; - return variable[1]; + label2: while(0); + /* ./compiling//compiling_global.nit:252 */ + REGB1 = TAG_Int(9); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_3) { + 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_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]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + fra.me.REG[6] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + if (!once_value_4) { + fra.me.REG[6] = BOX_NativeString(" /* "); + REGB0 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + 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[3])(fra.me.REG[3], fra.me.REG[6]); + fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], 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; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + fra.me.REG[2] = CALL_string___Object___to_s(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_6) { + fra.me.REG[2] = BOX_NativeString(" < "); + REGB0 = TAG_Int(3); + 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; + 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[4] = CALL_table_computation___CompiledClass___local_class(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]); + 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(": superclass init_table position */"); + REGB0 = TAG_Int(35); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_7 = fra.me.REG[4]; + register_static_object(&once_value_7); + } else fra.me.REG[4] = once_value_7; + 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]); + goto label8; + label8: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t compiling_global___TableEltClassInitTablePos___value(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 659, LOCATE_compiling_global___TableEltClassInitTablePos___value}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - variable[10] = variable[0]; - variable[10] = ATTR_compiling_global___TableEltClassPos____local_class(variable[10]) /*TableEltClassPos::_local_class*/; - variable[11] = variable[10]; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/; - variable[2] = variable[3]; - goto return_label74; - return_label74: while(false); - tracehead = trace.prev; - return variable[2]; +val_t compiling_global___TableEltClassColor___symbol(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 257; + fra.me.meth = LOCATE_compiling_global___TableEltClassColor___symbol; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./compiling//compiling_global.nit:257 */ + fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void compiling_global___TableEltClassInitTablePos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 675, LOCATE_compiling_global___TableEltClassInitTablePos___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassInitTablePos].i]) return; - ((compiling_global___TableEltClassPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltClassPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltClassPos::init*/; - return_label75: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassInitTablePos].i] = 1; - tracehead = trace.prev; - return; +val_t compiling_global___TableEltClassColor___value(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_global; + fra.me.line = 259; + fra.me.meth = LOCATE_compiling_global___TableEltClassColor___value; + fra.me.has_broke = 0; + fra.me.REG_size = 4; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./compiling//compiling_global.nit:261 */ + REGB0 = TAG_Int(5); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_1 = fra.me.REG[3]; + register_static_object(&once_value_1); + } else fra.me.REG[3] = once_value_1; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[1] = CALL_string___Object___to_s(REGB0)(REGB0); + 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(" /* Color of "); + REGB0 = TAG_Int(13); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + fra.me.REG[0] = CALL_table_computation___AbsTableEltClass___local_class(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[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_3) { + 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_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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(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); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -val_t compiling_global___TableEltClassColorPos___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 685, LOCATE_compiling_global___TableEltClassColorPos___compile_to_c}; - val_t variable[24]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[4] = variable[5]; - variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[7] = variable[0]; - variable[7] = ATTR_compiling_global___TableEltClassPos____local_class(variable[7]) /*TableEltClassPos::_local_class*/; - variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___global))(variable[7]) /*MMLocalClass::global*/; - variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/; - variable[5] = variable[6]; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = ((compiling_global___CompiledClass___id_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___CompiledClass___id))( variable[5] /*cc*/) /*CompiledClass::id*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = variable[0]; - variable[13] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[13]) /*ColorContext::color*/; - variable[14] = variable[13]; - variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/; - variable[17] = variable[2] /*c*/; - variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[17]) /*String::append*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/ - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[19]) /*String::append*/; - variable[20] = ((compiling_global___CompiledClass___local_class_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___CompiledClass___local_class))( variable[5] /*cc*/) /*CompiledClass::local_class*/; - variable[21] = variable[20]; - variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[21]) /*String::append*/; - variable[22] = NEW_String_string___String___with_native(BOX_NativeString(": superclass typecheck marker */"), TAG_Int(32)); /*new String*/ - variable[23] = variable[22]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[23]) /*String::append*/; - variable[3] = variable[6]; - goto return_label76; - return_label76: while(false); - tracehead = trace.prev; - return variable[3]; +val_t compiling_global___TableEltClassColor___compile_to_c(val_t p0, val_t p1, val_t p2){ + 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_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_global; + fra.me.line = 264; + fra.me.meth = LOCATE_compiling_global___TableEltClassColor___compile_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 6; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:266 */ + fra.me.REG[1] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:267 */ + fra.me.REG[3] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:268 */ + REGB0 = TAG_Int(9); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[5] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_1 = fra.me.REG[5]; + register_static_object(&once_value_1); + } else fra.me.REG[5] = once_value_1; + 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]); + REGB0 = CALL_table_computation___CompiledClass___id(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[5] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + if (!once_value_2) { + fra.me.REG[5] = BOX_NativeString(" /* "); + REGB0 = TAG_Int(4); + 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; + 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[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + fra.me.REG[2] = CALL_string___Object___to_s(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_4) { + fra.me.REG[2] = BOX_NativeString(" < "); + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + 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[4] = CALL_table_computation___CompiledClass___local_class(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]); + 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(": superclass typecheck marker */"); + REGB0 = TAG_Int(32); + 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_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]); + goto label6; + label6: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t compiling_global___TableEltClassColorPos___symbol(val_t self) { - struct trace_t trace = {NULL, NULL, 680, LOCATE_compiling_global___TableEltClassColorPos___symbol}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_compiling_global___TableEltClassPos____local_class(variable[2]) /*TableEltClassPos::_local_class*/; - variable[2] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___global))(variable[2]) /*MMLocalClass::global*/; - variable[2] = ((compiling_base___MMGlobalClass___color_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalClass___color_id))(variable[2]) /*MMGlobalClass::color_id*/; - variable[1] = variable[2]; - goto return_label77; - return_label77: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t compiling_global___TableEltClassColorPos___value(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 681, LOCATE_compiling_global___TableEltClassColorPos___value}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - variable[10] = variable[0]; - variable[10] = ATTR_compiling_global___TableEltClassPos____local_class(variable[10]) /*TableEltClassPos::_local_class*/; - variable[11] = variable[10]; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/; - variable[2] = variable[3]; - goto return_label78; - return_label78: while(false); - tracehead = trace.prev; - return variable[2]; -} -void compiling_global___TableEltClassColorPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 692, LOCATE_compiling_global___TableEltClassColorPos___init}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassColorPos].i]) return; - ((compiling_global___TableEltClassPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltClassPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltClassPos::init*/; - return_label79: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassColorPos].i] = 1; - tracehead = trace.prev; - return; -} -val_t compiling_global___TableEltBaseAttrPos___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 704, LOCATE_compiling_global___TableEltBaseAttrPos___compile_to_c}; - val_t variable[28]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[4] = variable[5]; - variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/; - variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[2] /*c*/) /*MMLocalClass::global*/; - variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/; - variable[5] = variable[6]; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[0]; - variable[9] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[9]) /*TableEltBaseAttrPos::_local_class*/; - variable[9] = ((compiling_global___MMSrcLocalClass___instance_layout_t)CALL(variable[9],COLOR_compiling_global___MMSrcLocalClass___instance_layout))(variable[9]) /*MMSrcLocalClass::instance_layout*/; - variable[9] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[9],COLOR_abstract_collection___Collection___first))(variable[9]) /*IndexedCollection::first*/; - variable[9] = ((compiling_global___ColorContext___color_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___ColorContext___color))( variable[5] /*cc*/, variable[9]) /*ColorContext::color*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = variable[0]; - variable[13] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[13]) /*ColorContext::color*/; - variable[14] = variable[13]; - variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(": Base attribut offset of "), TAG_Int(26)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/; - variable[17] = variable[0]; - variable[17] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[17]) /*TableEltBaseAttrPos::_local_class*/; - variable[17] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[17],COLOR_abstractmetamodel___MMLocalClass___module))(variable[17]) /*MMLocalClass::module*/; - variable[18] = variable[17]; - variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[18]) /*String::append*/; - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[20] = variable[19]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[20]) /*String::append*/; - variable[21] = variable[0]; - variable[21] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[21]) /*TableEltBaseAttrPos::_local_class*/; - variable[22] = variable[21]; - variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[22]) /*String::append*/; - variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/ - variable[24] = variable[23]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[24]) /*String::append*/; - variable[25] = variable[2] /*c*/; - variable[25] = ((string___String___to_s_t)CALL(variable[25],COLOR_string___Object___to_s))(variable[25]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[25]) /*String::append*/; - variable[26] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/ - variable[27] = variable[26]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[27]) /*String::append*/; - variable[3] = variable[6]; - goto return_label80; - return_label80: while(false); - tracehead = trace.prev; - return variable[3]; -} -val_t compiling_global___TableEltBaseAttrPos___symbol(val_t self) { - struct trace_t trace = {NULL, NULL, 698, LOCATE_compiling_global___TableEltBaseAttrPos___symbol}; - val_t variable[13]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[2] = NEW_String_string___String___init(); /*new String*/ - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/ - variable[4] = variable[3]; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/; - variable[5] = variable[0]; - variable[5] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[5]) /*TableEltBaseAttrPos::_local_class*/; - variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/; - variable[6] = variable[5]; - variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/; - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/; - variable[9] = variable[0]; - variable[9] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[9]) /*TableEltBaseAttrPos::_local_class*/; - variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("_BASEATTR"), TAG_Int(9)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[12]) /*String::append*/; - variable[1] = variable[2]; - goto return_label81; - return_label81: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t compiling_global___TableEltBaseAttrPos___value(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 699, LOCATE_compiling_global___TableEltBaseAttrPos___value}; - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___init(); /*new String*/ - variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[5] = variable[4]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/; - variable[6] = variable[0]; - variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/; - variable[7] = variable[6]; - variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* BaseAttrPos of "), TAG_Int(19)); /*new String*/ - variable[9] = variable[8]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/; - variable[10] = variable[0]; - variable[10] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[10]) /*TableEltBaseAttrPos::_local_class*/; - variable[11] = variable[10]; - variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/ - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/; - variable[2] = variable[3]; - goto return_label82; - return_label82: while(false); - tracehead = trace.prev; - return variable[2]; -} -void compiling_global___TableEltBaseAttrPos___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, NULL, 711, LOCATE_compiling_global___TableEltBaseAttrPos___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltBaseAttrPos].i]) return; - variable[3] = variable[0]; - ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[3]) /*TableEltBaseAttrPos::_local_class*/ = variable[1] /*c*/; - return_label83: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltBaseAttrPos].i] = 1; - tracehead = trace.prev; - return; -} -val_t compiling_global___TableEltComposite___is_related_to(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 723, LOCATE_compiling_global___TableEltComposite___is_related_to}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[1] /*c*/) /*MMLocalClass::cshe*/; - variable[4] = variable[0]; - variable[4] = ATTR_compiling_global___TableEltComposite____cc(variable[4]) /*TableEltComposite::_cc*/; - variable[4] = ((compiling_global___CompiledClass___local_class_t)CALL(variable[4],COLOR_compiling_global___CompiledClass___local_class))(variable[4]) /*CompiledClass::local_class*/; - variable[3] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement_____leq))(variable[3], variable[4]) /*PartialOrderElement::<=*/; - variable[2] = variable[3]; - goto return_label84; - return_label84: while(false); - tracehead = trace.prev; - return variable[2]; -} -val_t compiling_global___TableEltComposite___length(val_t self) { - struct trace_t trace = {NULL, NULL, 722, LOCATE_compiling_global___TableEltComposite___length}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = ATTR_compiling_global___TableEltComposite____table(variable[2]) /*TableEltComposite::_table*/; - variable[2] = ((array___AbstractArray___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*AbstractArray::length*/; - variable[1] = variable[2]; - goto return_label85; - return_label85: while(false); - tracehead = trace.prev; - return variable[1]; +val_t compiling_global___TableEltComposite___compile_to_c(val_t p0, val_t p1, val_t p2){ + 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_global; + fra.me.line = 273; + fra.me.meth = LOCATE_compiling_global___TableEltComposite___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] = p2; + /* ./compiling//compiling_global.nit:273 */ + nit_abort("Aborted", NULL, LOCATE_compiling_global, 273); + stack_frame_head = fra.me.prev; + return NIT_NULL; } -val_t compiling_global___TableEltComposite___item(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 731, LOCATE_compiling_global___TableEltComposite___item}; - val_t variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ATTR_compiling_global___TableEltComposite____table(variable[3]) /*TableEltComposite::_table*/; - variable[4] = variable[3]; - variable[5] = variable[1] /*i*/; - variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable[8] = variable[7]; - if (UNTAG_Bool(variable[8])) { /* and */ - variable[8] = variable[4]; - variable[8] = ATTR_array___AbstractArray____length(variable[8]) /*AbstractArray::_length*/; - variable[8] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)vft[INIT_TABLE_POS_TableEltComposite].i]) return; - variable[3] = variable[0]; - ATTR_compiling_global___TableEltComposite____cc(variable[3]) /*TableEltComposite::_cc*/ = variable[1] /*cc*/; - variable[3] = variable[0]; - variable[4] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/ - ATTR_compiling_global___TableEltComposite____table(variable[3]) /*TableEltComposite::_table*/ = variable[4]; - variable[3] = variable[0]; - variable[4] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMLocalClass, Int]*/ - ATTR_compiling_global___TableEltComposite____offsets(variable[3]) /*TableEltComposite::_offsets*/ = variable[4]; - return_label90: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltComposite].i] = 1; - tracehead = trace.prev; - return; -} -val_t compiling_global___TableEltClassSelfId___is_related_to(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 745, LOCATE_compiling_global___TableEltClassSelfId___is_related_to}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = TAG_Bool(true); - goto return_label91; - return_label91: while(false); - tracehead = trace.prev; - return variable[2]; -} -val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 746, LOCATE_compiling_global___TableEltClassSelfId___compile_to_c}; - val_t variable[16]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[4] = variable[5]; - variable[5] = NEW_String_string___String___init(); /*new String*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[7] = variable[6]; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/; - variable[8] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[8] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL(variable[8],COLOR_compiling_global___GlobalAnalysis___compiled_classes))(variable[8]) /*GlobalAnalysis::compiled_classes*/; - variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[2] /*c*/) /*MMLocalClass::global*/; - variable[8] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[8],COLOR_abstract_collection___Map_____bra))(variable[8], variable[9]) /*CoupleMap::[]*/; - variable[8] = ((compiling_global___CompiledClass___id_t)CALL(variable[8],COLOR_compiling_global___CompiledClass___id))(variable[8]) /*CompiledClass::id*/; - variable[9] = variable[8]; - variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/ - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/; - variable[12] = variable[0]; - variable[12] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[12]) /*ColorContext::color*/; - variable[13] = variable[12]; - variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(": Identity */"), TAG_Int(13)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/; - variable[3] = variable[5]; - goto return_label92; - return_label92: while(false); - tracehead = trace.prev; - return variable[3]; -} -void compiling_global___TableEltClassSelfId___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 752, LOCATE_compiling_global___TableEltClassSelfId___init}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassSelfId].i]) return; - return_label93: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltClassSelfId].i] = 1; - tracehead = trace.prev; - return; + REGB0 = CALL_table_computation___CompiledClass___id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + if (!once_value_2) { + fra.me.REG[2] = BOX_NativeString(" /* "); + REGB0 = TAG_Int(4); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString(": Identity */"); + REGB0 = TAG_Int(13); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(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]); + goto label4; + label4: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t compiling_global___TableEltVftPointer___is_related_to(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 757, LOCATE_compiling_global___TableEltVftPointer___is_related_to}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = TAG_Bool(true); - goto return_label94; - return_label94: while(false); - tracehead = trace.prev; - return variable[2]; -} -val_t compiling_global___TableEltVftPointer___compile_to_c(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 758, LOCATE_compiling_global___TableEltVftPointer___compile_to_c}; - val_t variable[12]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[4] = variable[5]; - variable[5] = NEW_String_string___String___init(); /*new String*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/ - variable[7] = variable[6]; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/; - variable[8] = variable[0]; - variable[8] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[8]) /*ColorContext::color*/; - variable[9] = variable[8]; - variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": Pointer to the classtable */"), TAG_Int(30)); /*new String*/ - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/; - variable[3] = variable[5]; - goto return_label95; - return_label95: while(false); - tracehead = trace.prev; - return variable[3]; -} -void compiling_global___TableEltVftPointer___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 764, LOCATE_compiling_global___TableEltVftPointer___init}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltVftPointer].i]) return; - return_label96: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TableEltVftPointer].i] = 1; - tracehead = trace.prev; - return; +val_t compiling_global___TableEltClassObjectSize___compile_to_c(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_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_global; + fra.me.line = 285; + fra.me.meth = LOCATE_compiling_global___TableEltClassObjectSize___compile_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.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:287 */ + REGB0 = TAG_Int(0); + /* ./compiling//compiling_global.nit:288 */ + fra.me.REG[1] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:289 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]); + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("NativeArray"); + REGB1 = TAG_Int(11); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_1 = fra.me.REG[4]; + register_static_object(&once_value_1); + } else fra.me.REG[4] = once_value_1; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_global.nit:290 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:216 */ + REGB1 = TAG_Int(-UNTAG_Int(REGB1)); + /* ./compiling//compiling_global.nit:290 */ + REGB0 = REGB1; + } else { + /* ./compiling//compiling_global.nit:292 */ + fra.me.REG[4] = CALL_table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:293 */ + fra.me.REG[2] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[2])(fra.me.REG[2]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + 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, 235); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[2]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./compiling//compiling_global.nit:295 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./compiling//compiling_global.nit:295 */ + REGB0 = REGB2; + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label2; + } + } + label2: while(0); + } + /* ./compiling//compiling_global.nit:298 */ + REGB1 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_3) { + fra.me.REG[2] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + fra.me.REG[2] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString(" /* "); + REGB0 = TAG_Int(4); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + 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[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + if (!once_value_5) { + fra.me.REG[0] = BOX_NativeString(": Object size (-1 if a NativeArray)*/"); + REGB0 = TAG_Int(37); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[4])(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]); + goto label6; + label6: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[4]; } -val_t compiling_global___ClassSorter___compare(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 771, LOCATE_compiling_global___ClassSorter___compare}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = ((compiling_global___MMLocalClass___compare_t)CALL( variable[1] /*a*/,COLOR_compiling_global___MMLocalClass___compare))( variable[1] /*a*/, variable[2] /*b*/) /*MMLocalClass::compare*/; - variable[3] = variable[4]; - goto return_label97; - return_label97: while(false); - tracehead = trace.prev; - return variable[3]; +val_t compiling_global___TableEltObjectId___compile_to_c(val_t p0, val_t p1, val_t p2){ + 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 303; + fra.me.meth = LOCATE_compiling_global___TableEltObjectId___compile_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 4; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:305 */ + fra.me.REG[1] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:306 */ + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString(": Object_id */"); + REGB0 = TAG_Int(14); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(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); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -void compiling_global___ClassSorter___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 772, LOCATE_compiling_global___ClassSorter___init}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassSorter].i]) return; - return_label98: while(false); - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ClassSorter].i] = 1; - tracehead = trace.prev; - return; +val_t compiling_global___TableEltVftPointer___compile_to_c(val_t p0, val_t p1, val_t p2){ + 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 311; + fra.me.meth = LOCATE_compiling_global___TableEltVftPointer___compile_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 4; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./compiling//compiling_global.nit:313 */ + fra.me.REG[1] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:314 */ + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[1] = CALL_table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString(": Pointer to the classtable */"); + REGB0 = TAG_Int(30); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(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); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -val_t compiling_global___MMLocalClass___compare(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 776, LOCATE_compiling_global___MMLocalClass___compare}; - val_t variable[8]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[4] = variable[0]; - variable[3] = variable[4]; - variable[4] = TAG_Bool(( variable[3] /*a*/ == variable[1] /*b*/) || (( variable[3] /*a*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*a*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*a*/, variable[1] /*b*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*a*/,COLOR_kernel___Object_____eqeq))( variable[3] /*a*/, variable[1] /*b*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[2] = TAG_Int(0); - goto return_label99; - } else { /*if*/ - variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[3] /*a*/) /*MMLocalClass::module*/; - variable[4] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___mhe))(variable[4]) /*MMModule::mhe*/; - variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*b*/) /*MMLocalClass::module*/; - variable[4] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____l))(variable[4], variable[5]) /*PartialOrderElement::<*/; - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[2] = TAG_Int(1); - goto return_label99; - } else { /*if*/ - variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*b*/) /*MMLocalClass::module*/; - variable[4] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___mhe))(variable[4]) /*MMModule::mhe*/; - variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[3] /*a*/) /*MMLocalClass::module*/; - variable[4] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____l))(variable[4], variable[5]) /*PartialOrderElement::<*/; - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1))); - variable[2] = variable[4]; - goto return_label99; - } +void compiling_global___MMLocalClass___declare_tables_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_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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 321; + fra.me.meth = LOCATE_compiling_global___MMLocalClass___declare_tables_to_c; + fra.me.has_broke = 0; + fra.me.REG_size = 6; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./compiling//compiling_global.nit:324 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_1 = fra.me.REG[2]; + register_static_object(&once_value_1); + } else fra.me.REG[2] = once_value_1; + fra.me.REG[2] = fra.me.REG[2]; + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./compiling//compiling_global.nit:325 */ + fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_global.nit:326 */ + REGB0 = TAG_Int(3); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_2) { + fra.me.REG[4] = BOX_NativeString("extern const classtable_elt_t VFT_"); + REGB0 = TAG_Int(34); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], 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[3])(fra.me.REG[3], fra.me.REG[4]); + if (!once_value_3) { + fra.me.REG[4] = BOX_NativeString("[];"); + REGB0 = TAG_Int(3); + 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[4] = once_value_3; + 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_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./compiling//compiling_global.nit:327 */ + 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; } } - variable[5] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[3] /*a*/) /*MMLocalClass::cshe*/; - variable[5] = ((partial_order___PartialOrderElement___rank_t)CALL(variable[5],COLOR_partial_order___PartialOrderElement___rank))(variable[5]) /*PartialOrderElement::rank*/; - variable[4] = variable[5]; - variable[6] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[1] /*b*/) /*MMLocalClass::cshe*/; - variable[6] = ((partial_order___PartialOrderElement___rank_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement___rank))(variable[6]) /*PartialOrderElement::rank*/; - variable[5] = variable[6]; - variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*ar*/)>UNTAG_Int( variable[5] /*br*/)); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[2] = TAG_Int(1); - goto return_label99; - } else { /*if*/ - variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*br*/)>UNTAG_Int( variable[4] /*ar*/)); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = TAG_Int(-UNTAG_Int( TAG_Int(1))); - variable[2] = variable[6]; - goto return_label99; - } else { /*if*/ - variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[1] /*b*/) /*MMLocalClass::name*/; - variable[6] = ((symbol___Symbol___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*Symbol::to_s*/; - variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[3] /*a*/) /*MMLocalClass::name*/; - variable[7] = ((symbol___Symbol___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*Symbol::to_s*/; - variable[6] = ((kernel___Comparable_____leqg_t)CALL(variable[6],COLOR_kernel___Comparable_____leqg))(variable[6], variable[7]) /*Comparable::<=>*/; - variable[2] = variable[6]; - goto return_label99; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 327); } + REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; } - return_label99: while(false); - tracehead = trace.prev; - return variable[2]; -} -void compiling_global___MMLocalClass___declare_tables_to_c(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 798, LOCATE_compiling_global___MMLocalClass___declare_tables_to_c}; - val_t variable[16]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/; - variable[4] = variable[0]; - variable[4] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[4],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[4]) /*MMLocalClass::primitive_info*/; - variable[3] = variable[4]; - variable[4] = NEW_String_string___String___init(); /*new String*/ - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("extern const classtable_elt_t VFT_"), TAG_Int(34)); /*new String*/ - variable[6] = variable[5]; - ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/; - variable[7] = variable[0]; - variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/; - variable[8] = variable[7]; - variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/; - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/ - variable[10] = variable[9]; - ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/; - variable[4] = TAG_Bool(( variable[3] /*pi*/ == NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[3] /*pi*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - } else { /*if*/ - variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/ - variable[5] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[3] /*pi*/) /*PrimitiveInfo::cname*/; - variable[4] = variable[5]; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[0]; - variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[5] = variable[6]; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[5] /*tbox*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" { const classtable_elt_t * vft; "), TAG_Int(33)); /*new String*/ - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/; - variable[12] = variable[4] /*t*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" val;};"), TAG_Int(7)); /*new String*/ - variable[14] = variable[13]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[0]; - variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = variable[4] /*t*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" val);"), TAG_Int(6)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/; - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("#define UNBOX_"), TAG_Int(14)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[0]; - variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(x) ((("), TAG_Int(7)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = variable[5] /*tbox*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" *)(VAL2OBJ(x)))->val)"), TAG_Int(22)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/; + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:328 */ + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 328); } + fra.me.REG[2] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[2])(fra.me.REG[2]); + /* ./compiling//compiling_global.nit:329 */ + REGB0 = TAG_Int(3); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_4) { + fra.me.REG[4] = BOX_NativeString("struct TBOX_"); + REGB0 = TAG_Int(12); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], 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[3])(fra.me.REG[3], fra.me.REG[4]); + if (!once_value_5) { + 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_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_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]); + /* ./compiling//compiling_global.nit:330 */ + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_6) { + fra.me.REG[5] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + 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_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_7) { + fra.me.REG[5] = BOX_NativeString(" { const classtable_elt_t * vft; bigint object_id; "); + REGB0 = TAG_Int(51); + 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_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[2]); + if (!once_value_8) { + fra.me.REG[5] = BOX_NativeString(" val;};"); + REGB0 = TAG_Int(7); + 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_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_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:331 */ + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_9) { + fra.me.REG[5] = BOX_NativeString("val_t BOX_"); + REGB0 = TAG_Int(10); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_9 = fra.me.REG[5]; + register_static_object(&once_value_9); + } else fra.me.REG[5] = once_value_9; + 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_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[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_10) { + 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_10 = fra.me.REG[5]; + register_static_object(&once_value_10); + } 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]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + if (!once_value_11) { + fra.me.REG[2] = BOX_NativeString(" val);"); + REGB0 = TAG_Int(6); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + 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_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]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:332 */ + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_12) { + fra.me.REG[2] = BOX_NativeString("#define UNBOX_"); + REGB0 = TAG_Int(14); + 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_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + 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[4])(fra.me.REG[4], fra.me.REG[0]); + if (!once_value_13) { + fra.me.REG[0] = BOX_NativeString("(x) ((("); + REGB0 = TAG_Int(7); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_13 = fra.me.REG[0]; + register_static_object(&once_value_13); + } else fra.me.REG[0] = once_value_13; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + if (!once_value_14) { + fra.me.REG[3] = BOX_NativeString(" *)(VAL2OBJ(x)))->val)"); + REGB0 = TAG_Int(22); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_14 = fra.me.REG[3]; + register_static_object(&once_value_14); + } else fra.me.REG[3] = once_value_14; + 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]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); } - return_label100: while(false); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return; } -void compiling_global___MMLocalClass___compile_tables_to_c(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 815, LOCATE_compiling_global___MMLocalClass___compile_tables_to_c}; - val_t variable[36]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_compiling_global; - variable[0] = self; - variable[1] = param0; - variable[4] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[4] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL(variable[4],COLOR_compiling_global___GlobalAnalysis___compiled_classes))(variable[4]) /*GlobalAnalysis::compiled_classes*/; - variable[5] = variable[0]; - variable[5] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___global))(variable[5]) /*MMLocalClass::global*/; - variable[4] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4], variable[5]) /*CoupleMap::[]*/; - variable[3] = variable[4]; - variable[5] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[3] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[3] /*cc*/) /*CompiledClass::class_table*/; - variable[4] = variable[5]; - variable[6] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/; - variable[5] = variable[6]; - variable[6] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[6] = ((compiling_global___GlobalAnalysis___max_class_table_length_t)CALL(variable[6],COLOR_compiling_global___GlobalAnalysis___max_class_table_length))(variable[6]) /*GlobalAnalysis::max_class_table_length*/; - variable[7] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/; - variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int(variable[7])); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/; - variable[6] = ((compiling_global___GlobalAnalysis___max_class_table_length_t)CALL(variable[6],COLOR_compiling_global___GlobalAnalysis___max_class_table_length))(variable[6]) /*GlobalAnalysis::max_class_table_length*/; - variable[5] = variable[6] /*clen=*/; +void compiling_global___MMLocalClass___compile_tables_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 REGB2; + val_t REGB3; + 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_8; /* Once value */ + static val_t once_value_9; /* Once value */ + static val_t once_value_10; /* 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_21; /* Once value */ + static val_t once_value_22; /* Once value */ + static val_t once_value_23; /* Once value */ + static val_t once_value_24; /* 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_29; /* 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_34; /* 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_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 */ + static val_t once_value_44; /* Once value */ + static val_t once_value_45; /* Once value */ + static val_t once_value_46; /* Once value */ + static val_t once_value_47; /* Once value */ + static val_t once_value_48; /* Once value */ + static val_t once_value_49; /* Once value */ + static val_t once_value_50; /* Once value */ + static val_t once_value_62; /* 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_67; /* Once value */ + static val_t once_value_68; /* Once value */ + static val_t once_value_69; /* 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_74; /* Once value */ + static val_t once_value_75; /* Once value */ + static val_t once_value_76; /* Once value */ + static val_t once_value_77; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_compiling_global; + fra.me.line = 336; + fra.me.meth = LOCATE_compiling_global___MMLocalClass___compile_tables_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:339 */ + fra.me.REG[2] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_table_computation___Program___compiled_classes(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./compiling//compiling_global.nit:340 */ + fra.me.REG[2] = CALL_table_computation___CompiledClass___class_table(fra.me.REG[3])(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:23 */ + 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, 23); } - variable[6] = NEW_String_string___String___init(); /*new String*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("const classtable_elt_t VFT_"), TAG_Int(27)); /*new String*/ - variable[8] = variable[7]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/; - variable[9] = variable[0]; - variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/; - variable[10] = variable[9]; - variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/; - variable[13] = variable[5] /*clen*/; - variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/; - variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*ctab*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[7])) break; /*for*/ - variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/; - variable[8] = variable[7]; - variable[9] = TAG_Bool(( variable[8] /*e*/ == NIT_NULL /*null*/) || (( variable[8] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*e*/,COLOR_kernel___Object_____eqeq))( variable[8] /*e*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[9])) { /*if*/ - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("{0} /* Class Hole :( */,"), TAG_Int(24)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/; - } else { /*if*/ - variable[9] = NEW_String_string___String___init(); /*new String*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("{(bigint) "), TAG_Int(10)); /*new String*/ - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/; - variable[12] = variable[0]; - variable[12] = ((compiling_global___TableElt___compile_to_c_t)CALL( variable[8] /*e*/,COLOR_compiling_global___TableElt___compile_to_c))( variable[8] /*e*/, variable[1] /*v*/, variable[12]) /*TableElt::compile_to_c*/; - variable[13] = variable[12]; - ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("},"), TAG_Int(2)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/; + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./compiling//compiling_global.nit:342 */ + fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_table_computation___Program___table_information(fra.me.REG[4])(fra.me.REG[4]); + REGB1 = CALL_table_computation___TableInformation___max_class_table_length(fra.me.REG[4])(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:214 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); + /* ./compiling//compiling_global.nit:342 */ + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:343 */ + fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_table_computation___Program___table_information(fra.me.REG[4])(fra.me.REG[4]); + REGB2 = CALL_table_computation___TableInformation___max_class_table_length(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = REGB2; + } + /* ./compiling//compiling_global.nit:346 */ + REGB2 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_1) { + fra.me.REG[5] = BOX_NativeString("const classtable_elt_t VFT_"); + REGB2 = TAG_Int(27); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_1 = fra.me.REG[5]; + register_static_object(&once_value_1); + } else fra.me.REG[5] = once_value_1; + 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_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[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_2) { + 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_2 = fra.me.REG[5]; + register_static_object(&once_value_2); + } else fra.me.REG[5] = once_value_2; + 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_3) { + fra.me.REG[5] = BOX_NativeString("] = {"); + REGB2 = TAG_Int(5); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + 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_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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:347 */ + CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:231 */ + fra.me.REG[4] = fra.me.REG[2]; + /* ./../lib/standard//collection//array.nit:234 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; + /* ./compiling//compiling_global.nit:349 */ + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Bool(false); + REGB1 = REGB3; + } else { + REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB1 = REGB3; + } + } + if (UNTAG_Bool(REGB1)) { + /* ./compiling//compiling_global.nit:350 */ + if (!once_value_4) { + fra.me.REG[7] = BOX_NativeString("{0} /* Class Hole :( */,"); + REGB1 = TAG_Int(24); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_4 = fra.me.REG[7]; + register_static_object(&once_value_4); + } else fra.me.REG[7] = once_value_4; + 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]); + } else { + /* ./compiling//compiling_global.nit:352 */ + REGB1 = TAG_Int(3); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_5) { + fra.me.REG[8] = BOX_NativeString("{(bigint) "); + REGB1 = TAG_Int(10); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_5 = fra.me.REG[8]; + register_static_object(&once_value_5); + } else fra.me.REG[8] = once_value_5; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 352); + } + fra.me.REG[6] = CALL_compiling_global___TableElt___compile_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + if (!once_value_6) { + 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_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]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + 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]); + } + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label7; } - continue_102: while(0); - ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/; } - break_102: while(0); - variable[6] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/; - variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*clen*/)>UNTAG_Int(variable[6])); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("{0},"), TAG_Int(4)); /*new String*/ - variable[7] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/; - variable[7] = TAG_Int(UNTAG_Int( variable[5] /*clen*/)-UNTAG_Int(variable[7])); - variable[6] = ((string___String_____star_t)CALL(variable[6],COLOR_string___String_____star))(variable[6], variable[7]) /*String::**/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/; + label7: while(0); + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); } - ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/; - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/; - variable[7] = ((compiling_global___CompiledClass___instance_table_t)CALL( variable[3] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable[3] /*cc*/) /*CompiledClass::instance_table*/; - variable[6] = variable[7]; - variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*itab*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*itab*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[8])) break; /*for*/ - variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/; - variable[9] = variable[8]; - variable[10] = TAG_Bool(( variable[9] /*e*/ == NIT_NULL /*null*/) || (( variable[9] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*e*/,COLOR_kernel___Object_____eqeq))( variable[9] /*e*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[10])) { /*if*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("/* Instance Hole :( */"), TAG_Int(22)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; - } else { /*if*/ - variable[10] = variable[0]; - variable[10] = ((compiling_global___TableElt___compile_to_c_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___compile_to_c))( variable[9] /*e*/, variable[1] /*v*/, variable[10]) /*TableElt::compile_to_c*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:214 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB2)); + /* ./compiling//compiling_global.nit:355 */ + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:356 */ + if (!once_value_8) { + fra.me.REG[5] = BOX_NativeString("{0},"); + REGB2 = TAG_Int(4); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + 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]; + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); } - continue_103: while(0); - ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/; + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:217 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2)); + /* ./compiling//compiling_global.nit:356 */ + fra.me.REG[5] = CALL_string___String_____star(fra.me.REG[5])(fra.me.REG[5], REGB2); + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + } + /* ./compiling//compiling_global.nit:358 */ + CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:359 */ + if (!once_value_9) { + fra.me.REG[5] = BOX_NativeString("};"); + REGB2 = TAG_Int(2); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_9 = fra.me.REG[5]; + register_static_object(&once_value_9); + } else fra.me.REG[5] = once_value_9; + 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:360 */ + fra.me.REG[3] = CALL_table_computation___CompiledClass___instance_table(fra.me.REG[3])(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:231 */ + fra.me.REG[5] = fra.me.REG[3]; + /* ./../lib/standard//collection//array.nit:234 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); } - break_103: while(0); - variable[8] = variable[0]; - variable[8] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[8],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[8]) /*MMLocalClass::primitive_info*/; - variable[7] = variable[8]; - variable[8] = TAG_Bool(( variable[7] /*pi*/ == NIT_NULL /*null*/) || (( variable[7] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[7] /*pi*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_CFunctionContext_compiling_methods___CFunctionContext___init( variable[1] /*v*/); /*new CFunctionContext*/ - ((compiling_methods___CompilerVisitor___cfc__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc__eq))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::cfc=*/; - variable[8] = NEW_NitMethodContext_compiling_methods___NitMethodContext___init( NIT_NULL /*null*/); /*new NitMethodContext*/ - ((compiling_methods___CompilerVisitor___nmc__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc__eq))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::nmc=*/; - variable[9] = NEW_String_string___String___init(); /*new String*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/ - variable[11] = variable[10]; - ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/; - variable[12] = variable[0]; - variable[12] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___name))(variable[12]) /*MMLocalClass::name*/; - variable[13] = variable[12]; - variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("(void)"), TAG_Int(6)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/; - variable[8] = variable[9]; - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/ - variable[9] = ((string___String_____plus_t)CALL( variable[8] /*s*/,COLOR_string___String_____plus))( variable[8] /*s*/, variable[9]) /*String::+*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/; - variable[10] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/; - variable[9] = variable[10]; - variable[10] = NEW_CContext_compiling_base___CContext___init(); /*new CContext*/ - ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::ctx=*/; - variable[11] = NEW_ParamVariable_syntax_base___ParamVariable___init( NIT_NULL /*null*/, NIT_NULL /*null*/); /*new ParamVariable*/ - variable[10] = variable[11]; - variable[12] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/; - variable[12] = ((compiling_methods___CFunctionContext___register_variable_t)CALL(variable[12],COLOR_compiling_methods___CFunctionContext___register_variable))(variable[12], variable[10] /*self_var*/) /*CFunctionContext::register_variable*/; - variable[11] = variable[12]; - variable[12] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/; - variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[ParamVariable]*/ - ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13], variable[10] /*self_var*/) /*AbstractArray::add*/; - ((compiling_methods___NitMethodContext___method_params__eq_t)CALL(variable[12],COLOR_compiling_methods___NitMethodContext___method_params__eq))(variable[12], variable[13]) /*NitMethodContext::method_params=*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString("obj_t obj;"), TAG_Int(10)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/; - variable[12] = NEW_String_string___String___init(); /*new String*/ - variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj = alloc(sizeof(val_t) * "), TAG_Int(28)); /*new String*/ - variable[14] = variable[13]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/; - variable[15] = ((array___AbstractArray___length_t)CALL( variable[6] /*itab*/,COLOR_abstract_collection___Collection___length))( variable[6] /*itab*/) /*AbstractArray::length*/; - variable[16] = variable[15]; - variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[16]) /*String::append*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/ - variable[18] = variable[17]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/; - variable[12] = NEW_String_string___String___init(); /*new String*/ - variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_"), TAG_Int(34)); /*new String*/ - variable[14] = variable[13]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/; - variable[15] = variable[0]; - variable[15] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[15],COLOR_abstractmetamodel___MMLocalClass___name))(variable[15]) /*MMLocalClass::name*/; - variable[16] = variable[15]; - variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[16]) /*String::append*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/ - variable[18] = variable[17]; - ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString("OBJ2VAL(obj)"), TAG_Int(12)); /*new String*/ - ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[11] /*self_var_cname*/, variable[12]) /*CompilerVisitor::add_assignment*/; - variable[12] = variable[0]; - variable[12] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___global_properties))(variable[12]) /*MMLocalClass::global_properties*/; - variable[12] = ((abstract_collection___Collection___iterator_t)CALL(variable[12],COLOR_abstract_collection___Collection___iterator))(variable[12]) /*Collection::iterator*/; - while (true) { /*for*/ - variable[13] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[12],COLOR_abstract_collection___Iterator___is_ok))(variable[12]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[13])) break; /*for*/ - variable[13] = ((abstract_collection___Iterator___item_t)CALL(variable[12],COLOR_abstract_collection___Iterator___item))(variable[12]) /*Iterator::item*/; - variable[14] = variable[13]; - variable[16] = variable[0]; - variable[16] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[16],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[16], variable[14] /*g*/) /*MMLocalClass::[]*/; - variable[15] = variable[16]; - variable[17] = ((static_type___MMLocalProperty___signature_t)CALL( variable[15] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[15] /*p*/) /*MMLocalProperty::signature*/; - variable[17] = ((static_type___MMSignature___return_type_t)CALL(variable[17],COLOR_static_type___MMSignature___return_type))(variable[17]) /*MMSignature::return_type*/; - variable[16] = variable[17]; - variable[17] = TAG_Bool(( variable[15] /*p*/==NIT_NULL) || VAL_ISA( variable[15] /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/; - variable[18] = variable[17]; - if (UNTAG_Bool(variable[18])) { /* and */ - variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*t*/ == NIT_NULL /*null*/) || (( variable[16] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*t*/,COLOR_kernel___Object_____eqeq))( variable[16] /*t*/, NIT_NULL /*null*/) /*Object::==*/))))))); + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//kernel.nit:212 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; + /* ./compiling//compiling_global.nit:362 */ + 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; } } - continue_104: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[12],COLOR_abstract_collection___Iterator___next))(variable[12]) /*Iterator::next*/; + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:363 */ + if (!once_value_10) { + fra.me.REG[7] = BOX_NativeString("/* Instance Hole :( */"); + REGB0 = TAG_Int(22); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + 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_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]); + } else { + /* ./compiling//compiling_global.nit:365 */ + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 365); + } + fra.me.REG[4] = CALL_compiling_global___TableElt___compile_to_c(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[0]); + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + } + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = REGB0; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label11; + } + } + label11: while(0); + /* ./compiling//compiling_global.nit:369 */ + fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]); + /* ./compiling//compiling_global.nit:370 */ + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + if (!once_value_12) { + fra.me.REG[4] = BOX_NativeString("NativeArray"); + REGB2 = TAG_Int(11); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + 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]; + fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[4])); + if (UNTAG_Bool(REGB2)) { + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); + REGB2 = REGB0; + } + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:371 */ + if (!once_value_13) { + fra.me.REG[4] = BOX_NativeString("val_t NEW_NativeArray(size_t length, size_t size) {"); + REGB2 = TAG_Int(51); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:372 */ + CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:373 */ + if (!once_value_14) { + fra.me.REG[4] = BOX_NativeString("Nit_NativeArray array;"); + REGB2 = TAG_Int(22); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:374 */ + if (!once_value_15) { + fra.me.REG[4] = BOX_NativeString("array = (Nit_NativeArray)alloc(sizeof(struct Nit_NativeArray) + ((length - 1) * size));"); + REGB2 = TAG_Int(87); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_15 = fra.me.REG[4]; + register_static_object(&once_value_15); + } else fra.me.REG[4] = once_value_15; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:375 */ + REGB2 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_16) { + fra.me.REG[5] = BOX_NativeString("array->vft = (classtable_elt_t*)VFT_"); + REGB2 = TAG_Int(36); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_16 = fra.me.REG[5]; + register_static_object(&once_value_16); + } else fra.me.REG[5] = once_value_16; + 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_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[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_17) { + 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_17 = fra.me.REG[5]; + register_static_object(&once_value_17); + } else fra.me.REG[5] = once_value_17; + 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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:376 */ + if (!once_value_18) { + fra.me.REG[4] = BOX_NativeString("array->object_id = object_id_counter;"); + REGB2 = TAG_Int(37); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_18 = fra.me.REG[4]; + register_static_object(&once_value_18); + } else fra.me.REG[4] = once_value_18; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:377 */ + if (!once_value_19) { + fra.me.REG[4] = BOX_NativeString("object_id_counter = object_id_counter + 1;"); + REGB2 = TAG_Int(42); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_19 = fra.me.REG[4]; + register_static_object(&once_value_19); + } else fra.me.REG[4] = once_value_19; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:378 */ + if (!once_value_20) { + fra.me.REG[4] = BOX_NativeString("array->size = length;"); + REGB2 = TAG_Int(21); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_20 = fra.me.REG[4]; + register_static_object(&once_value_20); + } else fra.me.REG[4] = once_value_20; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:379 */ + if (!once_value_21) { + fra.me.REG[4] = BOX_NativeString("return OBJ2VAL(array);"); + REGB2 = TAG_Int(22); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_21 = fra.me.REG[4]; + register_static_object(&once_value_21); + } else fra.me.REG[4] = once_value_21; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:380 */ + CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:381 */ + if (!once_value_22) { + fra.me.REG[4] = BOX_NativeString("}"); + REGB2 = TAG_Int(1); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_22 = fra.me.REG[4]; + register_static_object(&once_value_22); + } else fra.me.REG[4] = once_value_22; + fra.me.REG[4] = fra.me.REG[4]; + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + } else { + /* ./compiling//compiling_global.nit:382 */ + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB2 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB2 = REGB0; + } } - break_104: while(0); - variable[12] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(obj);"), TAG_Int(20)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/; - variable[12] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/; - ((compiling_methods___CFunctionContext___generate_var_decls_t)CALL(variable[12],COLOR_compiling_methods___CFunctionContext___generate_var_decls))(variable[12]) /*CFunctionContext::generate_var_decls*/; - variable[12] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/; - ((compiling_base___CContext___append_t)CALL( variable[9] /*ctx_old*/,COLOR_compiling_base___CContext___append))( variable[9] /*ctx_old*/, variable[12]) /*CContext::append*/; - ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/, variable[9] /*ctx_old*/) /*CompilerVisitor::ctx=*/; - ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/; - variable[13] = variable[0]; - variable[13] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[13]) /*MMLocalClass::cshe*/; - variable[13] = ((partial_order___PartialOrderElement___greaters_t)CALL(variable[13],COLOR_partial_order___PartialOrderElement___greaters))(variable[13]) /*PartialOrderElement::greaters*/; - variable[13] = ((abstract_collection___Collection___length_t)CALL(variable[13],COLOR_abstract_collection___Collection___length))(variable[13]) /*Collection::length*/; - variable[13] = TAG_Int(UNTAG_Int(variable[13])+UNTAG_Int( TAG_Int(1))); - variable[12] = variable[13]; - variable[14] = NEW_String_string___String___init(); /*new String*/ - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("int init_table["), TAG_Int(15)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/; - variable[17] = variable[12] /*init_table_size*/; - variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("] = {0"), TAG_Int(6)); /*new String*/ - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString(", 0"), TAG_Int(3)); /*new String*/ - variable[21] = TAG_Int(UNTAG_Int( variable[12] /*init_table_size*/)-UNTAG_Int( TAG_Int(1))); - variable[20] = ((string___String_____star_t)CALL(variable[20],COLOR_string___String_____star))(variable[20], variable[21]) /*String::**/; - variable[21] = variable[20]; - ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[21]) /*String::append*/; - variable[22] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/ - variable[23] = variable[22]; - ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[23]) /*String::append*/; - variable[13] = variable[14]; - variable[14] = variable[0]; - variable[14] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL(variable[14],COLOR_abstractmetamodel___MMLocalClass___global_properties))(variable[14]) /*MMLocalClass::global_properties*/; - variable[14] = ((abstract_collection___Collection___iterator_t)CALL(variable[14],COLOR_abstract_collection___Collection___iterator))(variable[14]) /*Collection::iterator*/; - while (true) { /*for*/ - variable[15] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[15])) break; /*for*/ - variable[15] = ((abstract_collection___Iterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*Iterator::item*/; - variable[16] = variable[15]; - variable[18] = variable[0]; - variable[18] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[18],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[18], variable[16] /*g*/) /*MMLocalClass::[]*/; - variable[17] = variable[18]; - variable[18] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[17] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[17] /*p*/) /*MMLocalProperty::global*/; - variable[19] = variable[0]; - variable[18] = ((abstractmetamodel___MMGlobalProperty___is_init_for_t)CALL(variable[18],COLOR_abstractmetamodel___MMGlobalProperty___is_init_for))(variable[18], variable[19]) /*MMGlobalProperty::is_init_for*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[18])))) { /*if*/ - goto continue_105; + if (UNTAG_Bool(REGB2)) { + /* ./compiling//compiling_global.nit:385 */ + REGB2 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_23) { + fra.me.REG[5] = BOX_NativeString("INIT_ATTRIBUTES__"); + REGB2 = TAG_Int(17); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_23 = fra.me.REG[5]; + register_static_object(&once_value_23); + } else fra.me.REG[5] = once_value_23; + 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_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[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_24) { + fra.me.REG[5] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_24 = fra.me.REG[5]; + register_static_object(&once_value_24); + } else fra.me.REG[5] = once_value_24; + 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]); + /* ./compiling//compiling_global.nit:386 */ + fra.me.REG[5] = CALL_program___MMLocalClass___init_var_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_25) { + fra.me.REG[6] = BOX_NativeString("init var of "); + REGB2 = TAG_Int(12); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2); + once_value_25 = fra.me.REG[6]; + register_static_object(&once_value_25); + } else fra.me.REG[6] = once_value_25; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + 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[7])(fra.me.REG[7], fra.me.REG[6]); + if (!once_value_26) { + fra.me.REG[6] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2); + 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]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 386); } - variable[19] = NEW_Array_array___Array___init(); /*new Array[String]*/ - variable[18] = variable[19]; - variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/ - variable[21] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/ - ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20], variable[21]) /*AbstractArray::add*/; - variable[19] = variable[20]; - variable[20] = ((static_type___MMLocalProperty___signature_t)CALL( variable[17] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[17] /*p*/) /*MMLocalProperty::signature*/; - variable[20] = ((static_type___MMSignature___arity_t)CALL(variable[20],COLOR_static_type___MMSignature___arity))(variable[20]) /*MMSignature::arity*/; - variable[21] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[20]); /*new Range[Int]*/ - variable[20] = variable[21]; - variable[20] = ((range___Range___iterator_t)CALL(variable[20],COLOR_abstract_collection___Collection___iterator))(variable[20]) /*Range::iterator*/; - while (true) { /*for*/ - variable[21] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[20],COLOR_abstract_collection___Iterator___is_ok))(variable[20]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[21])) break; /*for*/ - variable[21] = ((abstract_collection___Iterator___item_t)CALL(variable[20],COLOR_abstract_collection___Iterator___item))(variable[20]) /*Iterator::item*/; - variable[22] = variable[21]; - variable[23] = NEW_String_string___String___init(); /*new String*/ - variable[24] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)); /*new String*/ - variable[25] = variable[24]; - ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[25]) /*String::append*/; - variable[26] = variable[22] /*i*/; - variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[26]) /*String::append*/; - variable[27] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[28] = variable[27]; - ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[28]) /*String::append*/; - ((array___AbstractArray___add_t)CALL( variable[18] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[18] /*params*/, variable[23]) /*AbstractArray::add*/; - variable[23] = NEW_String_string___String___init(); /*new String*/ - variable[24] = NEW_String_string___String___with_native(BOX_NativeString("p"), TAG_Int(1)); /*new String*/ - variable[25] = variable[24]; - ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[25]) /*String::append*/; - variable[26] = variable[22] /*i*/; - variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[26]) /*String::append*/; - variable[27] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[28] = variable[27]; - ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[28]) /*String::append*/; - ((array___AbstractArray___add_t)CALL( variable[19] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[19] /*args*/, variable[23]) /*AbstractArray::add*/; - continue_106: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[20],COLOR_abstract_collection___Iterator___next))(variable[20]) /*Iterator::next*/; + fra.me.REG[7] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[4], fra.me.REG[7], NIT_NULL, NIT_NULL); + /* ./compiling//compiling_global.nit:387 */ + fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:388 */ + fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]); + 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[1])(fra.me.REG[1], fra.me.REG[6]); + /* ./compiling//compiling_global.nit:389 */ + fra.me.REG[6] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 389); } - break_106: while(0); - variable[20] = NEW_String_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)); /*new String*/ - ((array___AbstractArray___add_t)CALL( variable[19] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[19] /*args*/, variable[20]) /*AbstractArray::add*/; - variable[21] = NEW_String_string___String___init(); /*new String*/ - variable[22] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/ - variable[23] = variable[22]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[23]) /*String::append*/; - variable[24] = variable[0]; - variable[25] = variable[24]; - variable[25] = ((string___String___to_s_t)CALL(variable[25],COLOR_string___Object___to_s))(variable[25]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[25]) /*String::append*/; - variable[26] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/ - variable[27] = variable[26]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[27]) /*String::append*/; - variable[28] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[17] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[17] /*p*/) /*MMLocalProperty::global*/; - variable[28] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[28],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[28]) /*MMGlobalProperty::intro*/; - variable[28] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[28],COLOR_compiling_base___MMLocalProperty___cname))(variable[28]) /*MMLocalProperty::cname*/; - variable[29] = variable[28]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[29]) /*String::append*/; - variable[30] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/ - variable[31] = variable[30]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[31]) /*String::append*/; - variable[32] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable[32] = ((string___Collection___join_t)CALL( variable[18] /*params*/,COLOR_string___Collection___join))( variable[18] /*params*/, variable[32]) /*Collection::join*/; - variable[33] = variable[32]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[33]) /*String::append*/; - variable[34] = NEW_String_string___String___with_native(BOX_NativeString(") {"), TAG_Int(3)); /*new String*/ - variable[35] = variable[34]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[35]) /*String::append*/; - variable[20] = variable[21]; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[20] /*s*/) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[13] /*init_table_decl*/) /*CompilerVisitor::add_instr*/; - variable[21] = NEW_String_string___String___init(); /*new String*/ - variable[22] = NEW_String_string___String___with_native(BOX_NativeString("val_t self = NEW_"), TAG_Int(17)); /*new String*/ - variable[23] = variable[22]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[23]) /*String::append*/; - variable[24] = variable[0]; - variable[24] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[24],COLOR_abstractmetamodel___MMLocalClass___name))(variable[24]) /*MMLocalClass::name*/; - variable[25] = variable[24]; - variable[25] = ((string___String___to_s_t)CALL(variable[25],COLOR_string___Object___to_s))(variable[25]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[25]) /*String::append*/; - variable[26] = NEW_String_string___String___with_native(BOX_NativeString("();"), TAG_Int(3)); /*new String*/ - variable[27] = variable[26]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[27]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/; - variable[21] = NEW_String_string___String___init(); /*new String*/ - variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[23] = variable[22]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[23]) /*String::append*/; - variable[24] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[17] /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[17] /*p*/) /*MMLocalProperty::cname*/; - variable[25] = variable[24]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[25]) /*String::append*/; - variable[26] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/ - variable[27] = variable[26]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[27]) /*String::append*/; - variable[28] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable[28] = ((string___Collection___join_t)CALL( variable[19] /*args*/,COLOR_string___Collection___join))( variable[19] /*args*/, variable[28]) /*Collection::join*/; - variable[29] = variable[28]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[29]) /*String::append*/; - variable[30] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/ - variable[31] = variable[30]; - ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[31]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/; - variable[21] = NEW_String_string___String___with_native(BOX_NativeString("return self;"), TAG_Int(12)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/; - variable[21] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/; - continue_105: while(0); - ((abstract_collection___Iterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*Iterator::next*/; + 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; } - break_105: while(0); - } else { /*if*/ - variable[8] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[7] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[7] /*pi*/) /*PrimitiveInfo::tagged*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/ - variable[9] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[7] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[7] /*pi*/) /*PrimitiveInfo::cname*/; - variable[8] = variable[9]; - variable[10] = NEW_String_string___String___init(); /*new String*/ - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/; - variable[13] = variable[0]; - variable[13] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___name))(variable[13]) /*MMLocalClass::name*/; - variable[14] = variable[13]; - variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/; - variable[9] = variable[10]; - variable[10] = NEW_String_string___String___init(); /*new String*/ - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/; - variable[13] = variable[0]; - variable[13] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___name))(variable[13]) /*MMLocalClass::name*/; - variable[14] = variable[13]; - variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/; - variable[17] = variable[8] /*t*/; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" val) {"), TAG_Int(7)); /*new String*/ - variable[19] = variable[18]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/; - variable[10] = NEW_String_string___String___init(); /*new String*/ - variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/; - variable[13] = variable[9] /*tbox*/; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" *box = ("), TAG_Int(9)); /*new String*/ - variable[15] = variable[14]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/; - variable[16] = variable[9] /*tbox*/; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString("*)alloc(sizeof("), TAG_Int(15)); /*new String*/ - variable[18] = variable[17]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[18]) /*String::append*/; - variable[19] = variable[9] /*tbox*/; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/ - variable[21] = variable[20]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[21]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; - variable[10] = NEW_String_string___String___init(); /*new String*/ - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("box->vft = VFT_"), TAG_Int(15)); /*new String*/ - variable[12] = variable[11]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/; - variable[13] = variable[0]; - variable[13] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___name))(variable[13]) /*MMLocalClass::name*/; - variable[14] = variable[13]; - variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/ - variable[16] = variable[15]; - ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/; - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("box->val = val;"), TAG_Int(15)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(box);"), TAG_Int(20)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; - ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/ - ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_compiling_global, 462); + } + /* ./compiling//compiling_global.nit:464 */ + fra.me.REG[3] = NIT_NULL; + /* ./compiling//compiling_global.nit:465 */ + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB0)) { + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("int* init_table"); + REGB0 = TAG_Int(15); + 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; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } + /* ./compiling//compiling_global.nit:466 */ + fra.me.REG[4] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 466); + } + fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], fra.me.REG[5], NIT_NULL, fra.me.REG[3]); + /* ./compiling//compiling_global.nit:467 */ + fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:468 */ + 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___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./compiling//compiling_global.nit:469 */ + fra.me.REG[4] = CALL_compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:470 */ + fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]); + 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[1])(fra.me.REG[1], fra.me.REG[6]); + /* ./compiling//compiling_global.nit:472 */ + fra.me.REG[6] = NIT_NULL; + /* ./compiling//compiling_global.nit:473 */ + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[7])(fra.me.REG[7]); + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:474 */ + REGB0 = TAG_Int(3); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_2) { + fra.me.REG[8] = BOX_NativeString("itpos"); + REGB0 = TAG_Int(5); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_2 = fra.me.REG[8]; + register_static_object(&once_value_2); + } else fra.me.REG[8] = once_value_2; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + REGB0 = CALL_compiling_base___CompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[8] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_3) { + fra.me.REG[8] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_3 = fra.me.REG[8]; + register_static_object(&once_value_3); + } else fra.me.REG[8] = once_value_3; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[6] = fra.me.REG[7]; + /* ./compiling//compiling_global.nit:475 */ + REGB0 = TAG_Int(7); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_4) { + fra.me.REG[8] = BOX_NativeString("int "); + REGB0 = TAG_Int(4); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_4 = fra.me.REG[8]; + register_static_object(&once_value_4); + } else fra.me.REG[8] = once_value_4; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + if (!once_value_5) { + fra.me.REG[8] = BOX_NativeString(" = VAL2OBJ("); + REGB0 = TAG_Int(11); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_5 = fra.me.REG[8]; + register_static_object(&once_value_5); + } else fra.me.REG[8] = once_value_5; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_6) { + fra.me.REG[8] = BOX_NativeString(")->vft["); + REGB0 = TAG_Int(7); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_6 = fra.me.REG[8]; + register_static_object(&once_value_6); + } else fra.me.REG[8] = once_value_6; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[8] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[8])(fra.me.REG[8]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_7) { + fra.me.REG[8] = BOX_NativeString("].i;"); + REGB0 = TAG_Int(4); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_7 = fra.me.REG[8]; + register_static_object(&once_value_7); + } else fra.me.REG[8] = once_value_7; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]); + /* ./compiling//compiling_global.nit:476 */ + REGB0 = TAG_Int(3); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_8) { + fra.me.REG[8] = BOX_NativeString("if (init_table["); + REGB0 = TAG_Int(15); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_8 = fra.me.REG[8]; + register_static_object(&once_value_8); + } else fra.me.REG[8] = once_value_8; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + if (!once_value_9) { + fra.me.REG[8] = BOX_NativeString("]) return;"); + REGB0 = TAG_Int(10); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_9 = fra.me.REG[8]; + register_static_object(&once_value_9); + } else fra.me.REG[8] = once_value_9; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[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:479 */ + fra.me.REG[0] = CALL_compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 479); + } + fra.me.REG[3] = CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]); + /* ./compiling//compiling_global.nit:481 */ + REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:482 */ + REGB0 = TAG_Int(3); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_10) { + fra.me.REG[2] = BOX_NativeString("init_table["); + REGB0 = TAG_Int(11); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + 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]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); + if (!once_value_11) { + fra.me.REG[6] = BOX_NativeString("] = 1;"); + REGB0 = TAG_Int(6); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + 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]; + 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_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } + /* ./compiling//compiling_global.nit:484 */ + 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 { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + REGB0 = REGB1; } } - return_label101: while(false); - tracehead = trace.prev; + if (UNTAG_Bool(REGB0)) { + /* ./compiling//compiling_global.nit:485 */ + if (!once_value_12) { + 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_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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } else { + /* ./compiling//compiling_global.nit:487 */ + REGB0 = TAG_Int(3); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_13) { + fra.me.REG[6] = BOX_NativeString("return "); + REGB0 = TAG_Int(7); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_13 = fra.me.REG[6]; + register_static_object(&once_value_13); + } else fra.me.REG[6] = once_value_13; + 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]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + if (!once_value_14) { + 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_14 = fra.me.REG[3]; + register_static_object(&once_value_14); + } else fra.me.REG[3] = once_value_14; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } + /* ./compiling//compiling_global.nit:489 */ + CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]); + /* ./compiling//compiling_global.nit:490 */ + if (!once_value_15) { + 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_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_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./compiling//compiling_global.nit:492 */ + CALL_compiling_base___CompilerVisitor___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + /* ./compiling//compiling_global.nit:493 */ + CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + stack_frame_head = fra.me.prev; return; }