X-Git-Url: http://nitlanguage.org diff --git a/c_src/mmloader._sep.c b/c_src/mmloader._sep.c index a6ac0d5..128275d 100644 --- a/c_src/mmloader._sep.c +++ b/c_src/mmloader._sep.c @@ -1,1243 +1,2277 @@ /* This C file is generated by NIT to compile module mmloader. */ #include "mmloader._sep.h" -val_t mmloader___ToolContext___error_count(val_t self) { - struct trace_t trace = {NULL, NULL, 27, LOCATE_mmloader___ToolContext___error_count}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____error_count( self) /*ToolContext::_error_count*/; +val_t mmloader___Message___location(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_mmloader; + fra.me.line = 30; + fra.me.meth = LOCATE_mmloader___Message___location; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:30 */ + fra.me.REG[0] = ATTR_mmloader___Message____location(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t mmloader___ToolContext___warning_count(val_t self) { - struct trace_t trace = {NULL, NULL, 30, LOCATE_mmloader___ToolContext___warning_count}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____warning_count( self) /*ToolContext::_warning_count*/; +val_t mmloader___Message___text(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 31; + fra.me.meth = LOCATE_mmloader___Message___text; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:31 */ + REGB0 = TAG_Bool(ATTR_mmloader___Message____text(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_text", LOCATE_mmloader, 31); + } + fra.me.REG[0] = ATTR_mmloader___Message____text(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void mmloader___ToolContext___error(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 33, LOCATE_mmloader___ToolContext___error}; - static val_t once_value_1 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_2 = NIT_NULL; /* Once value for string variable[5]*/ - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_file___Object___stderr(variable[0])(variable[0]) /*Object::stderr*/; - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_1 != NIT_NULL) variable[5] = once_value_1; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_1 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - variable[5] = variable[1] /*s*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_2 != NIT_NULL) variable[5] = once_value_2; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)) /*new String*/; - once_value_2 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/; - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____error_count(variable[0]) /*ToolContext::_error_count*/; - /* Register variable[3]: Result */ - variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))); - ATTR_mmloader___ToolContext____error_count(variable[0]) /*ToolContext::_error_count*/ = variable[3]; - return_label0: while(false); - tracehead = trace.prev; +val_t mmloader___Message_____l(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 33; + fra.me.meth = LOCATE_mmloader___Message_____l; + 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; + /* ./mmloader.nit:34 */ + fra.me.REG[2] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]); + 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; + } + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + goto label1; + } + /* ./mmloader.nit:35 */ + fra.me.REG[2] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB1 = REGB2; + } + } + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + goto label1; + } + /* ./mmloader.nit:37 */ + fra.me.REG[0] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmloader, 37); + } + fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(fra.me.REG[1]!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmloader, 37); + } + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmloader, 37); + } + REGB1 = CALL_kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + REGB0 = REGB1; + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmloader___Message___to_s(val_t p0){ + 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_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_mmloader; + fra.me.line = 40; + fra.me.meth = LOCATE_mmloader___Message___to_s; + 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; + /* ./mmloader.nit:41 */ + fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]); + /* ./mmloader.nit:42 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:43 */ + fra.me.REG[2] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + } else { + /* ./mmloader.nit:45 */ + REGB0 = TAG_Int(5); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_2) { + 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_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[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + if (!once_value_3) { + 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_3 = fra.me.REG[1]; + register_static_object(&once_value_3); + } else fra.me.REG[1] = once_value_3; + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + fra.me.REG[0] = CALL_mmloader___Message___text(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_4) { + 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_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(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]); + fra.me.REG[2] = fra.me.REG[3]; + goto label1; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; +} +void mmloader___Message___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Message].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos0]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 0; + fra.me.meth = LOCATE_mmloader___Message___init; + 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; + ATTR_mmloader___Message____location(fra.me.REG[0]) = fra.me.REG[1]; + ATTR_mmloader___Message____text(fra.me.REG[0]) = fra.me.REG[2]; + stack_frame_head = fra.me.prev; + init_table[itpos0] = 1; return; } -void mmloader___ToolContext___warning(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 40, LOCATE_mmloader___ToolContext___warning}; - static val_t once_value_4 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_5 = NIT_NULL; /* Once value for string variable[5]*/ - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____opt_warn(variable[0]) /*ToolContext::_opt_warn*/; - /* Register variable[3]: Result */ - variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/; - /* Register variable[3]: Result */ - variable[3] = TAG_Bool((variable[3])==( TAG_Int(0))); - if (UNTAG_Bool(variable[3])) { /*if*/ - goto return_label3; - } - /* Register variable[3]: Result */ - variable[3] = CALL_file___Object___stderr(variable[0])(variable[0]) /*Object::stderr*/; - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_4 != NIT_NULL) variable[5] = once_value_4; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_4 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - variable[5] = variable[1] /*s*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_5 != NIT_NULL) variable[5] = once_value_5; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)) /*new String*/; - once_value_5 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/; - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____opt_warn(variable[0]) /*ToolContext::_opt_warn*/; - /* Register variable[3]: Result */ - variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/; - /* Register variable[3]: Result */ - variable[3] = TAG_Bool((variable[3])==( TAG_Int(1))); - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____warning_count(variable[0]) /*ToolContext::_warning_count*/; - /* Register variable[3]: Result */ - variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))); - ATTR_mmloader___ToolContext____warning_count(variable[0]) /*ToolContext::_warning_count*/ = variable[3]; - } else { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____error_count(variable[0]) /*ToolContext::_error_count*/; - /* Register variable[3]: Result */ - variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))); - ATTR_mmloader___ToolContext____error_count(variable[0]) /*ToolContext::_error_count*/ = variable[3]; - } - return_label3: while(false); - tracehead = trace.prev; +val_t mmloader___ToolContext___error_count(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 53; + fra.me.meth = LOCATE_mmloader___ToolContext___error_count; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:53 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 53); + } + REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmloader___ToolContext___warning_count(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 56; + fra.me.meth = LOCATE_mmloader___ToolContext___warning_count; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:56 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_mmloader, 56); + } + REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmloader___ToolContext___log_directory(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 59; + fra.me.meth = LOCATE_mmloader___ToolContext___log_directory; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:59 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_mmloader, 59); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmloader___ToolContext___check_errors(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 66; + fra.me.meth = LOCATE_mmloader___ToolContext___check_errors; + 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; + /* ./mmloader.nit:68 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 68); + } + fra.me.REG[1] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./mmloader.nit:68 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); + /* ./mmloader.nit:68 */ + if (UNTAG_Bool(REGB1)) { + /* ./mmloader.nit:69 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_mmloader, 69); + } + fra.me.REG[1] = ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]); + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 69); + } + fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]); + CALL_sorter___AbstractSorter___sort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./mmloader.nit:71 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 71); + } + fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + 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, 235); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[2]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../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); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./mmloader.nit:72 */ + fra.me.REG[4] = CALL_file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Int(3); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[6] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + 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]); + 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_2) { + fra.me.REG[3] = BOX_NativeString("\n"); + 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[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_stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB0; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label3; + } + } + label3: while(0); + /* ./mmloader.nit:75 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 75); + } + fra.me.REG[1] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]); + CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[1])(fra.me.REG[1]); + } + /* ./mmloader.nit:78 */ + REGB1 = CALL_mmloader___ToolContext___error_count(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0)); + /* ./mmloader.nit:78 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(1); + CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0); + } + stack_frame_head = fra.me.prev; return; } -val_t mmloader___ToolContext___paths(val_t self) { - struct trace_t trace = {NULL, NULL, 52, LOCATE_mmloader___ToolContext___paths}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____paths( self) /*ToolContext::_paths*/; +void mmloader___ToolContext___error(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 REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 81; + fra.me.meth = LOCATE_mmloader___ToolContext___error; + 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; + /* ./mmloader.nit:84 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 84); + } + fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]); + fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./mmloader.nit:85 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 85); + } + REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./mmloader.nit:85 */ + ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB1; + stack_frame_head = fra.me.prev; + return; +} +void mmloader___ToolContext___fatal_error(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_mmloader; + fra.me.line = 88; + fra.me.meth = LOCATE_mmloader___ToolContext___fatal_error; + 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; + /* ./mmloader.nit:91 */ + CALL_mmloader___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + /* ./mmloader.nit:92 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return; } -val_t mmloader___ToolContext___option_context(val_t self) { - struct trace_t trace = {NULL, NULL, 58, LOCATE_mmloader___ToolContext___option_context}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____option_context( self) /*ToolContext::_option_context*/; +void mmloader___ToolContext___warning(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 REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 95; + fra.me.meth = LOCATE_mmloader___ToolContext___warning; + 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; + /* ./mmloader.nit:98 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 98); + } + fra.me.REG[3] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]); + fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Int(0); + REGB1 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[3])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB0 = TAG_Bool((fra.me.REG[3])==(REGB0)); + /* ./mmloader.nit:98 */ + REGB1 = REGB0; + } + } + if (UNTAG_Bool(REGB1)) { + goto label1; + } + /* ./mmloader.nit:99 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 99); + } + fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]); + fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./mmloader.nit:100 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 100); + } + fra.me.REG[2] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]); + fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Int(1); + REGB0 = TAG_Bool(IS_EQUAL_ON(REGB1,fra.me.REG[2])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB0 = REGB2; + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB1 = TAG_Bool((fra.me.REG[2])==(REGB1)); + /* ./mmloader.nit:100 */ + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:101 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_mmloader, 101); + } + REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./mmloader.nit:101 */ + ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB1; + } else { + /* ./mmloader.nit:103 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 103); + } + REGB1 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]); + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); + /* ./mmloader.nit:103 */ + ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return; } -val_t mmloader___ToolContext___opt_warn(val_t self) { - struct trace_t trace = {NULL, NULL, 61, LOCATE_mmloader___ToolContext___opt_warn}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____opt_warn( self) /*ToolContext::_opt_warn*/; +void mmloader___ToolContext___info(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 REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 107; + fra.me.meth = LOCATE_mmloader___ToolContext___info; + 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; + REGB0 = p2; + /* ./mmloader.nit:110 */ + REGB1 = CALL_mmloader___ToolContext___verbose_level(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:211 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1)); + /* ./mmloader.nit:110 */ + if (UNTAG_Bool(REGB1)) { + /* ./mmloader.nit:111 */ + REGB1 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); + once_value_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]); + 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(""); + REGB1 = TAG_Int(0); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1); + 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[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + } + stack_frame_head = fra.me.prev; + return; +} +val_t mmloader___ToolContext___paths(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 115; + fra.me.meth = LOCATE_mmloader___ToolContext___paths; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:115 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_paths", LOCATE_mmloader, 115); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____paths(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmloader___ToolContext___option_context(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 121; + fra.me.meth = LOCATE_mmloader___ToolContext___option_context; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:121 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_mmloader, 121); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmloader___ToolContext___opt_warn(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 124; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_warn; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:124 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 124); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmloader___ToolContext___opt_path(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 127; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_path; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:127 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_mmloader, 127); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmloader___ToolContext___opt_log(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 130; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_log; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:130 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_mmloader, 130); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmloader___ToolContext___opt_log_dir(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 133; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_log_dir; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:133 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_mmloader, 133); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmloader___ToolContext___opt_only_metamodel(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 136; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_metamodel; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:136 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_mmloader, 136); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t mmloader___ToolContext___opt_path(val_t self) { - struct trace_t trace = {NULL, NULL, 64, LOCATE_mmloader___ToolContext___opt_path}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____opt_path( self) /*ToolContext::_opt_path*/; +val_t mmloader___ToolContext___opt_only_parse(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 139; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_parse; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:139 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_mmloader, 139); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t mmloader___ToolContext___opt_log(val_t self) { - struct trace_t trace = {NULL, NULL, 67, LOCATE_mmloader___ToolContext___opt_log}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____opt_log( self) /*ToolContext::_opt_log*/; +val_t mmloader___ToolContext___opt_help(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 142; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_help; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:142 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_mmloader, 142); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t mmloader___ToolContext___opt_only_metamodel(val_t self) { - struct trace_t trace = {NULL, NULL, 70, LOCATE_mmloader___ToolContext___opt_only_metamodel}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____opt_only_metamodel( self) /*ToolContext::_opt_only_metamodel*/; +val_t mmloader___ToolContext___opt_version(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 145; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_version; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:145 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_mmloader, 145); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t mmloader___ToolContext___opt_only_parse(val_t self) { - struct trace_t trace = {NULL, NULL, 73, LOCATE_mmloader___ToolContext___opt_only_parse}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____opt_only_parse( self) /*ToolContext::_opt_only_parse*/; +val_t mmloader___ToolContext___opt_verbose(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 148; + fra.me.meth = LOCATE_mmloader___ToolContext___opt_verbose; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:148 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_mmloader, 148); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t mmloader___ToolContext___opt_help(val_t self) { - struct trace_t trace = {NULL, NULL, 76, LOCATE_mmloader___ToolContext___opt_help}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; - return ATTR_mmloader___ToolContext____opt_help( self) /*ToolContext::_opt_help*/; +val_t mmloader___ToolContext___verbose_level(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 151; + fra.me.meth = LOCATE_mmloader___ToolContext___verbose_level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./mmloader.nit:151 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_mmloader, 151); + } + REGB0 = ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; } -void mmloader___ToolContext___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 79, LOCATE_mmloader___ToolContext___init}; - val_t variable[10]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ToolContext].i]) return; - /* Register variable[1]: Method return value and escape marker */ - CALL_abstractmetamodel___MMContext___init(variable[0])(variable[0], init_table /*YYY*/) /*MMContext::init*/; - /* Register variable[2]: Result */ - variable[2] = CALL_mmloader___ToolContext___option_context(variable[0])(variable[0]) /*ToolContext::option_context*/; - variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(6)) /*new Array[Option]*/ /* Ensure var: Literal array*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmloader___ToolContext___opt_warn(variable[0])(variable[0]) /*ToolContext::opt_warn*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmloader___ToolContext___opt_path(variable[0])(variable[0]) /*ToolContext::opt_path*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_mmloader___ToolContext___opt_log(variable[0])(variable[0]) /*ToolContext::opt_log*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ToolContext___opt_only_parse(variable[0])(variable[0]) /*ToolContext::opt_only_parse*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmloader___ToolContext___opt_only_metamodel(variable[0])(variable[0]) /*ToolContext::opt_only_metamodel*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_mmloader___ToolContext___opt_help(variable[0])(variable[0]) /*ToolContext::opt_help*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/; - /* Register variable[3]: Result */ - CALL_opts___OptionContext___add_option(variable[2])(variable[2], variable[3]) /*OptionContext::add_option*/; - return_label6: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ToolContext].i] = 1; - tracehead = trace.prev; +void mmloader___ToolContext___init(val_t p0, int* init_table){ + int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ToolContext].i; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos1]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 154; + fra.me.meth = LOCATE_mmloader___ToolContext___init; + 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; + /* ./mmloader.nit:154 */ + fra.me.REG[1] = fra.me.REG[0]; + /* ./mmloader.nit:156 */ + CALL_abstractmetamodel___MMContext___init(fra.me.REG[0])(fra.me.REG[0], init_table); + /* ./mmloader.nit:157 */ + fra.me.REG[0] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Int(8); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_warn(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_metamodel(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_help(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_version(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[1] = CALL_mmloader___ToolContext___opt_verbose(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]); + CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + stack_frame_head = fra.me.prev; + init_table[itpos1] = 1; return; } -void mmloader___ToolContext___process_options(val_t self) { - struct trace_t trace = {NULL, NULL, 85, LOCATE_mmloader___ToolContext___process_options}; - static val_t once_value_8; static int once_bool_8; /* Once value for variable[3]*/ - static val_t once_value_9 = NIT_NULL; /* Once value for string variable[3]*/ - static val_t once_value_10; static int once_bool_10; /* Once value for variable[3]*/ - static val_t once_value_11 = NIT_NULL; /* Once value for string variable[3]*/ - static val_t once_value_12 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_13 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_14 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_15 = NIT_NULL; /* Once value for string variable[5]*/ - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Result */ - variable[2] = CALL_mmloader___ToolContext___option_context(variable[0])(variable[0]) /*ToolContext::option_context*/; - /* Register variable[3]: Result */ - variable[3] = CALL_string___Object___args(variable[0])(variable[0]) /*Object::args*/; - CALL_opts___OptionContext___parse(variable[2])(variable[2], variable[3]) /*OptionContext::parse*/; - /* Register variable[2]: Result */ - variable[2] = NEW_Array_array___Array___init() /*new Array[String]*/; - ATTR_mmloader___ToolContext____paths(variable[0]) /*ToolContext::_paths*/ = variable[2]; - /* Register variable[2]: Result */ - variable[2] = CALL_mmloader___ToolContext___paths(variable[0])(variable[0]) /*ToolContext::paths*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmloader___ToolContext___opt_path(variable[0])(variable[0]) /*ToolContext::opt_path*/; - /* Register variable[3]: Result */ - variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/; - CALL_abstract_collection___IndexedCollection___append(variable[2])(variable[2], variable[3]) /*IndexedCollection::append*/; - /* Register variable[2]: Local variable */ - /* Register variable[3]: Once expression result */ - if (once_bool_8) variable[3] = once_value_8; - else { - /* Register variable[3]: Once String constant */ - if (once_value_9 != NIT_NULL) variable[3] = once_value_9; - else { - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_PATH"), TAG_Int(8)) /*new String*/; - once_value_9 = variable[3]; - } - /* Register variable[3]: Result */ - /* Register variable[3]: Result */ - variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/; - /* Register variable[3]: Result */ - variable[3] = CALL_environ___Symbol___environ(variable[3])(variable[3]) /*Symbol::environ*/; - once_value_8 = variable[3]; - once_bool_8 = true; - } - /* Register variable[3]: Result */ - variable[2] = variable[3]; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___is_empty( variable[2] /*path_env*/)( variable[2] /*path_env*/) /*AbstractArrayRead::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_mmloader___ToolContext___paths(variable[0])(variable[0]) /*ToolContext::paths*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string_search___String___split_with( variable[2] /*path_env*/)( variable[2] /*path_env*/, TAG_Char(':')) /*String::split_with*/; - CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*IndexedCollection::append*/; - } - /* Register variable[3]: Once expression result */ - if (once_bool_10) variable[3] = once_value_10; - else { - /* Register variable[3]: Once String constant */ - if (once_value_11 != NIT_NULL) variable[3] = once_value_11; - else { - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_DIR"), TAG_Int(7)) /*new String*/; - once_value_11 = variable[3]; - } - /* Register variable[3]: Result */ - /* Register variable[3]: Result */ - variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/; - /* Register variable[3]: Result */ - variable[3] = CALL_environ___Symbol___environ(variable[3])(variable[3]) /*Symbol::environ*/; - once_value_10 = variable[3]; - once_bool_10 = true; - } - /* Register variable[3]: Result */ - variable[2] = variable[3] /*path_env=*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___is_empty( variable[2] /*path_env*/)( variable[2] /*path_env*/) /*AbstractArrayRead::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/ - /* Register variable[3]: Local variable */ - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_12 != NIT_NULL) variable[5] = once_value_12; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_12 = variable[5]; +void mmloader___ToolContext___process_options(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 160; + fra.me.meth = LOCATE_mmloader___ToolContext___process_options; + 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; + /* ./mmloader.nit:164 */ + fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_string___Object___args(fra.me.REG[0])(fra.me.REG[0]); + CALL_opts___OptionContext___parse(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + /* ./mmloader.nit:167 */ + fra.me.REG[2] = CALL_mmloader___ToolContext___opt_verbose(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]); + ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = fra.me.REG[2]; + /* ./mmloader.nit:170 */ + fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + /* ./mmloader.nit:172 */ + if (!once_value_1) { + if (!once_value_2) { + fra.me.REG[1] = BOX_NativeString("NIT_PATH"); + REGB0 = TAG_Int(8); + 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]; + fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_environ___Symbol___environ(fra.me.REG[1])(fra.me.REG[1]); + once_value_1 = fra.me.REG[1]; + register_static_object(&once_value_1); + } else fra.me.REG[1] = once_value_1; + fra.me.REG[1] = fra.me.REG[1]; + /* ./mmloader.nit:173 */ + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:174 */ + fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Char(':'); + fra.me.REG[3] = CALL_string_search___String___split_with(fra.me.REG[1])(fra.me.REG[1], REGB0); + CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + } + /* ./mmloader.nit:177 */ + if (!once_value_3) { + if (!once_value_4) { + fra.me.REG[3] = BOX_NativeString("NIT_DIR"); + REGB0 = TAG_Int(7); + 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]; + fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_environ___Symbol___environ(fra.me.REG[3])(fra.me.REG[3]); + once_value_3 = fra.me.REG[3]; + register_static_object(&once_value_3); + } else fra.me.REG[3] = once_value_3; + fra.me.REG[3] = fra.me.REG[3]; + fra.me.REG[1] = fra.me.REG[3]; + /* ./mmloader.nit:178 */ + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:179 */ + REGB0 = TAG_Int(3); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_5) { + 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_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_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + if (!once_value_6) { + fra.me.REG[1] = BOX_NativeString("/lib"); + REGB0 = TAG_Int(4); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_6 = fra.me.REG[1]; + register_static_object(&once_value_6); + } else fra.me.REG[1] = once_value_6; + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + /* ./mmloader.nit:180 */ + REGB0 = CALL_file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[1] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - variable[5] = variable[2] /*path_env*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_13 != NIT_NULL) variable[5] = once_value_13; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("/lib"), TAG_Int(4)) /*new String*/; - once_value_13 = variable[5]; + } + /* ./mmloader.nit:183 */ + REGB0 = TAG_Int(3); + fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_7) { + fra.me.REG[1] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_7 = fra.me.REG[1]; + register_static_object(&once_value_7); + } else fra.me.REG[1] = once_value_7; + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + fra.me.REG[1] = CALL_kernel___Object___sys(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_string___Sys___program_name(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_file___String___dirname(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + if (!once_value_8) { + fra.me.REG[1] = BOX_NativeString("/../lib"); + REGB0 = TAG_Int(7); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_8 = fra.me.REG[1]; + register_static_object(&once_value_8); + } else fra.me.REG[1] = once_value_8; + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + /* ./mmloader.nit:184 */ + REGB0 = CALL_file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[1] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + } + /* ./mmloader.nit:186 */ + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]); + 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; } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = CALL_file___String___file_exists( variable[3] /*libname*/)( variable[3] /*libname*/) /*String::file_exists*/; - if (UNTAG_Bool(variable[4])) { /*if*/ - /* Register variable[4]: Result */ - variable[4] = CALL_mmloader___ToolContext___paths(variable[0])(variable[0]) /*ToolContext::paths*/; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[3] /*libname*/) /*AbstractArray::add*/; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(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_mmloader, 186); } + ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0]) = fra.me.REG[3]; + } + /* ./mmloader.nit:187 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_mmloader, 187); + } + fra.me.REG[3] = ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]); + fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(fra.me.REG[3])) { + /* ./mmloader.nit:189 */ + fra.me.REG[0] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]); + CALL_file___String___mkdir(fra.me.REG[0])(fra.me.REG[0]); } - /* Register variable[3]: Local variable */ - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_14 != NIT_NULL) variable[5] = once_value_14; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_14 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = (G_sys); - /* Register variable[5]: Result */ - variable[5] = CALL_string___Sys___program_name(variable[5])(variable[5]) /*Sys::program_name*/; - /* Register variable[5]: Result */ - variable[5] = CALL_file___String___dirname(variable[5])(variable[5]) /*String::dirname*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_15 != NIT_NULL) variable[5] = once_value_15; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("/../lib"), TAG_Int(7)) /*new String*/; - once_value_15 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = CALL_file___String___file_exists( variable[3] /*libname*/)( variable[3] /*libname*/) /*String::file_exists*/; - if (UNTAG_Bool(variable[4])) { /*if*/ - /* Register variable[4]: Result */ - variable[4] = CALL_mmloader___ToolContext___paths(variable[0])(variable[0]) /*ToolContext::paths*/; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[3] /*libname*/) /*AbstractArray::add*/; - } - return_label7: while(false); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return; } -val_t mmloader___ToolContext___try_to_load(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 110, LOCATE_mmloader___ToolContext___try_to_load}; - static val_t once_value_19 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_20 = NIT_NULL; /* Once value for string variable[10]*/ - val_t variable[11]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMDirectory___modules( variable[2] /*dir*/)( variable[2] /*dir*/) /*MMDirectory::modules*/; - /* Register variable[4]: For iterator */ - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*MapRead::iterator*/; - while (true) { /*for*/ - /* Register variable[5]: For 'is_ok' result */ - variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[6]: Local variable */ - variable[6] = variable[5]; - /* Register variable[7]: Result */ - variable[7] = CALL_abstractmetamodel___MMModule___name( variable[6] /*m*/)( variable[6] /*m*/) /*MMModule::name*/; - /* Register variable[7]: Result */ - variable[7] = TAG_Bool((variable[7] == variable[1] /*module_name*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*module_name*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[1] /*module_name*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[3] = variable[6] /*m*/; - goto return_label16; +val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[9];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + 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_mmloader; + fra.me.line = 193; + fra.me.meth = LOCATE_mmloader___ToolContext___try_to_load; + fra.me.has_broke = 0; + fra.me.REG_size = 10; + 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[9] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./mmloader.nit:199 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMDirectory___modules(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmloader___ToolContext___try_to_load_1)); + switch ((&(fra.me))->has_broke) { + case 0: break; + case 1: (&(fra.me))->has_broke = 0; goto label3; + } + /* ./mmloader.nit:205 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 205); + } + fra.me.REG[4] = ATTR_mmloader___ToolContext____loaders(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[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); } - continue_17: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/; - } - break_17: while(0); - /* Register variable[4]: Result */ - variable[4] = ATTR_mmloader___ToolContext____loaders(variable[0]) /*ToolContext::_loaders*/; - /* Register variable[4]: For iterator */ - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[5]: For 'is_ok' result */ - variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[6]: Local variable */ - variable[6] = variable[5]; - /* Register variable[7]: Local variable */ - /* Register variable[8]: Result */ - variable[8] = CALL_mmloader___ModuleLoader___try_to_load_dir( variable[6] /*l*/)( variable[6] /*l*/, variable[1] /*module_name*/, variable[2] /*dir*/) /*ModuleLoader::try_to_load_dir*/; - variable[7] = variable[8]; - /* Register variable[8]: Result */ - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*dir2*/ == NIT_NULL /*null*/) || (( variable[7] /*dir2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*dir2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*dir2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*dir2*/)( variable[7] /*dir2*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Local variable */ - /* Register variable[9]: Result */ - variable[9] = CALL_mmloader___ToolContext___try_to_load(variable[0])(variable[0], variable[1] /*module_name*/, variable[7] /*dir2*/) /*ToolContext::try_to_load*/; - variable[8] = variable[9]; - /* Register variable[9]: Result */ - variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*m*/ == NIT_NULL /*null*/) || (( variable[8] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*m*/)( variable[8] /*m*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[9])) { /*if*/ - CALL_abstractmetamodel___MMDirectory___owner__eq( variable[7] /*dir2*/)( variable[7] /*dir2*/, variable[8] /*m*/) /*MMDirectory::owner=*/; - CALL_abstractmetamodel___MMDirectory___add_module( variable[2] /*dir*/)( variable[2] /*dir*/, variable[8] /*m*/) /*MMDirectory::add_module*/; - variable[3] = variable[8] /*m*/; - goto return_label16; + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./mmloader.nit:206 */ + fra.me.REG[7] = CALL_mmloader___ModuleLoader___try_to_load_dir(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[2]); + /* ./mmloader.nit:207 */ + REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL); + REGB1 = REGB2; } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - variable[10] = variable[8] /*full_name*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_20 != NIT_NULL) variable[10] = once_value_20; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_20 = variable[10]; + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + /* ./mmloader.nit:208 */ + fra.me.REG[8] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7]); + /* ./mmloader.nit:209 */ + REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + /* ./mmloader.nit:210 */ + REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmloader, 210); + } + CALL_abstractmetamodel___MMDirectory___owner__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + /* ./mmloader.nit:211 */ + CALL_abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]); + /* ./mmloader.nit:212 */ + fra.me.REG[3] = fra.me.REG[8]; + goto label3; } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_mmloader___ToolContext___error(variable[0])(variable[0], variable[9]) /*ToolContext::error*/; - exit(UNTAG_Int( TAG_Int(1))); - fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___try_to_load, LOCATE_mmloader, 139); nit_exit(1); } - /* Register variable[9]: Result */ - variable[9] = ATTR_mmloader___ToolContext____processing_modules(variable[0]) /*ToolContext::_processing_modules*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[8] /*full_name*/) /*HashSet::add*/; - /* Register variable[9]: Local variable */ - /* Register variable[10]: Result */ - variable[10] = CALL_mmloader___ModuleLoader___load_and_process_module( variable[6] /*l*/)( variable[6] /*l*/, variable[0], variable[1] /*module_name*/, variable[2] /*dir*/) /*ModuleLoader::load_and_process_module*/; - variable[9] = variable[10]; - /* Register variable[10]: Result */ - variable[10] = ATTR_mmloader___ToolContext____processing_modules(variable[0]) /*ToolContext::_processing_modules*/; - CALL_abstract_collection___RemovableCollection___remove(variable[10])(variable[10], variable[8] /*full_name*/) /*HashSet::remove*/; - CALL_abstractmetamodel___MMDirectory___add_module( variable[2] /*dir*/)( variable[2] /*dir*/, variable[9] /*m*/) /*MMDirectory::add_module*/; - variable[3] = variable[9] /*m*/; - goto return_label16; + /* ./mmloader.nit:216 */ + REGB1 = CALL_mmloader___ModuleLoader___can_handle(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[2]); + if (UNTAG_Bool(REGB1)) { + /* ./mmloader.nit:217 */ + fra.me.REG[8] = CALL_abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + /* ./mmloader.nit:218 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 218); + } + fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]); + REGB1 = CALL_abstract_collection___Collection___has(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (UNTAG_Bool(REGB1)) { + /* ./mmloader.nit:220 */ + REGB1 = TAG_Int(3); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_4) { + fra.me.REG[9] = BOX_NativeString("Error: Dependency loop for module "); + REGB1 = TAG_Int(34); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_4 = fra.me.REG[9]; + register_static_object(&once_value_4); + } else fra.me.REG[9] = once_value_4; + fra.me.REG[9] = fra.me.REG[9]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]); + if (!once_value_5) { + fra.me.REG[9] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_5 = fra.me.REG[9]; + register_static_object(&once_value_5); + } else fra.me.REG[9] = once_value_5; + fra.me.REG[9] = fra.me.REG[9]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[7]); + } + /* ./mmloader.nit:222 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 222); + } + fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + /* ./mmloader.nit:223 */ + fra.me.REG[6] = CALL_mmloader___ModuleLoader___load_and_process_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + /* ./mmloader.nit:224 */ + REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 224); + } + fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]); + CALL_abstract_collection___RemovableCollection___remove(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + /* ./mmloader.nit:226 */ + CALL_abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); + /* ./mmloader.nit:227 */ + fra.me.REG[3] = fra.me.REG[6]; + goto label3; + } + /* ./../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 label6; } - continue_18: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; - } - break_18: while(0); - variable[3] = NIT_NULL /*null*/; - goto return_label16; - return_label16: while(false); - tracehead = trace.prev; - return variable[3]; + } + label6: while(0); + /* ./mmloader.nit:230 */ + fra.me.REG[3] = NIT_NULL; + goto label3; + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t mmloader___ToolContext___get_module_from_filename(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 156, LOCATE_mmloader___ToolContext___get_module_from_filename}; - static val_t once_value_22 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_23 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_24 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_25 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_26 = NIT_NULL; /* Once value for string variable[8]*/ - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_file___String___dirname( variable[1] /*filename*/)( variable[1] /*filename*/) /*String::dirname*/; - variable[3] = variable[4]; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Once String constant */ - if (once_value_22 != NIT_NULL) variable[5] = once_value_22; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)) /*new String*/; - once_value_22 = variable[5]; - } - /* Register variable[5]: Result */ - /* Register variable[5]: Result */ - variable[5] = CALL_file___String___basename( variable[1] /*filename*/)( variable[1] /*filename*/, variable[5]) /*String::basename*/; - /* Register variable[5]: Result */ - variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/; - variable[4] = variable[5]; - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_mmloader___ToolContext___directory_for(variable[0])(variable[0], variable[3] /*path*/) /*ToolContext::directory_for*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - variable[6] = CALL_string___Object___to_s( variable[4] /*module_name*/)( variable[4] /*module_name*/) /*Symbol::to_s*/; - /* Register variable[6]: Result */ - variable[6] = TAG_Bool((variable[6] == variable[1] /*filename*/) || ((variable[6] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[1] /*filename*/) /*String::==*/))); - if (UNTAG_Bool(variable[6])) { /*if*/ - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ToolContext___try_to_load(variable[0])(variable[0], variable[4] /*module_name*/, variable[5] /*dir*/) /*ToolContext::try_to_load*/; - variable[6] = variable[7]; - /* Register variable[7]: Result */ - variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ == NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*m*/)( variable[6] /*m*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[2] = variable[6] /*m*/; - goto return_label21; + void OC_mmloader___ToolContext___try_to_load_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_mmloader; + fra.me.line = 0; + fra.me.meth = LOCATE_mmloader___ToolContext___try_to_load; + 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; + /* ./mmloader.nit:200 */ + fra.me.REG[1] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[1])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]); + REGB0 = REGB1; } - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ToolContext___get_module(variable[0])(variable[0], variable[4] /*module_name*/, NIT_NULL /*null*/) /*ToolContext::get_module*/; - variable[2] = variable[7]; - goto return_label21; - } - /* Register variable[6]: Result */ - variable[6] = CALL_file___String___file_exists( variable[1] /*filename*/)( variable[1] /*filename*/) /*String::file_exists*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/ - variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[7]: Once String constant */ - if (once_value_23 != NIT_NULL) variable[7] = once_value_23; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: File "), TAG_Int(12)) /*new String*/; - once_value_23 = variable[7]; + if (UNTAG_Bool(REGB0)) { + closctx->REG[3] = fra.me.REG[0]; + closctx->has_broke = 1; + goto label2; } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - variable[7] = variable[1] /*filename*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_24 != NIT_NULL) variable[7] = once_value_24; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" not found."), TAG_Int(11)) /*new String*/; - once_value_24 = variable[7]; + label2: while(0); + stack_frame_head = fra.me.prev; + return; + } +val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 237; + fra.me.meth = LOCATE_mmloader___ToolContext___get_module_from_filename; + 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; + /* ./mmloader.nit:242 */ + fra.me.REG[2] = CALL_file___String___dirname(fra.me.REG[1])(fra.me.REG[1]); + /* ./mmloader.nit:243 */ + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(".nit"); + REGB0 = TAG_Int(4); + 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]; + fra.me.REG[3] = CALL_file___String___basename(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]); + /* ./mmloader.nit:245 */ + fra.me.REG[2] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + /* ./mmloader.nit:247 */ + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:250 */ + fra.me.REG[4] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); + /* ./mmloader.nit:251 */ + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label2; + } + /* ./mmloader.nit:254 */ + fra.me.REG[5] = CALL_mmloader___ToolContext___get_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], NIT_NULL); + fra.me.REG[4] = fra.me.REG[5]; + goto label2; + } + /* ./mmloader.nit:257 */ + REGB0 = CALL_file___String___file_exists(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:258 */ + REGB0 = TAG_Int(3); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_3) { + fra.me.REG[6] = BOX_NativeString("Error: File "); + REGB0 = TAG_Int(12); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_3 = fra.me.REG[6]; + register_static_object(&once_value_3); + } else fra.me.REG[6] = once_value_3; + 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[1]); + if (!once_value_4) { + fra.me.REG[6] = BOX_NativeString(" not found."); + REGB0 = TAG_Int(11); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_4 = fra.me.REG[6]; + 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[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_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[5]); + /* ./mmloader.nit:259 */ + nit_abort("Aborted", NULL, LOCATE_mmloader, 259); + } + /* ./mmloader.nit:263 */ + fra.me.REG[2] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); + /* ./mmloader.nit:264 */ + 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; } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/; - CALL_mmloader___ToolContext___error(variable[0])(variable[0], variable[6]) /*ToolContext::error*/; - exit(UNTAG_Int( TAG_Int(1))); - fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___get_module_from_filename, LOCATE_mmloader, 179); nit_exit(1); - } - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ToolContext___try_to_load(variable[0])(variable[0], variable[4] /*module_name*/, variable[5] /*dir*/) /*ToolContext::try_to_load*/; - variable[6] = variable[7]; - /* Register variable[7]: Result */ - variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ == NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*m*/)( variable[6] /*m*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[2] = variable[6] /*m*/; - goto return_label21; - } - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[8]: Once String constant */ - if (once_value_25 != NIT_NULL) variable[8] = once_value_25; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/; - once_value_25 = variable[8]; - } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - variable[8] = variable[1] /*filename*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_26 != NIT_NULL) variable[8] = once_value_26; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" is not a NIT source module."), TAG_Int(28)) /*new String*/; - once_value_26 = variable[8]; - } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_mmloader___ToolContext___error(variable[0])(variable[0], variable[7]) /*ToolContext::error*/; - exit(UNTAG_Int( TAG_Int(1))); - fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___get_module_from_filename, LOCATE_mmloader, 188); nit_exit(1); - return_label21: while(false); - tracehead = trace.prev; - return variable[2]; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = fra.me.REG[2]; + goto label2; + } + /* ./mmloader.nit:266 */ + REGB0 = TAG_Int(3); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_5) { + fra.me.REG[3] = BOX_NativeString("Error: "); + REGB0 = TAG_Int(7); + 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]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (!once_value_6) { + fra.me.REG[1] = BOX_NativeString(" is not a NIT source module."); + REGB0 = TAG_Int(28); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_6 = fra.me.REG[1]; + register_static_object(&once_value_6); + } else fra.me.REG[1] = once_value_6; + 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_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[2]); + /* ./mmloader.nit:267 */ + nit_abort("Aborted", NULL, LOCATE_mmloader, 267); + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[4]; } -val_t mmloader___ToolContext___get_module(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 191, LOCATE_mmloader___ToolContext___get_module}; - static val_t once_value_30 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_31 = NIT_NULL; /* Once value for string variable[6]*/ - val_t variable[10]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Local variable */ - /*variable[4] is variable m*/ - /* Register variable[5]: Result */ - variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*from*/ == NIT_NULL /*null*/) || (( variable[2] /*from*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*from*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*from*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*from*/)( variable[2] /*from*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMModule___directory( variable[2] /*from*/)( variable[2] /*from*/) /*MMModule::directory*/; - variable[5] = variable[6]; - while (true) { /*while*/ - /* Register variable[6]: Result */ - variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*dir*/ == NIT_NULL /*null*/) || (( variable[5] /*dir*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*dir*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*dir*/)( variable[5] /*dir*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (!UNTAG_Bool(variable[6])) break; /* while*/ - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ToolContext___try_to_load(variable[0])(variable[0], variable[1] /*module_name*/, variable[5] /*dir*/) /*ToolContext::try_to_load*/; - variable[6] = variable[7]; - /* Register variable[7]: Result */ - variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ == NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*m*/)( variable[6] /*m*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[3] = variable[6] /*m*/; - goto return_label27; +val_t mmloader___ToolContext___get_module(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 REGB1; + val_t REGB2; + val_t tmp; + 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_mmloader; + fra.me.line = 270; + fra.me.meth = LOCATE_mmloader___ToolContext___get_module; + 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; + /* ./mmloader.nit:274 */ + 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; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:275 */ + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmloader, 275); + } + fra.me.REG[2] = CALL_abstractmetamodel___MMModule___directory(fra.me.REG[2])(fra.me.REG[2]); + /* ./mmloader.nit:276 */ + while(1) { + 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; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:277 */ + fra.me.REG[3] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + /* ./mmloader.nit:278 */ + 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; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./mmloader.nit:279 */ + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmloader, 279); + } + fra.me.REG[4] = CALL_abstractmetamodel___MMDirectory___parent(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = fra.me.REG[4]; + } else { + /* ./mmloader.nit:276 */ + goto label2; } - /* Register variable[7]: Result */ - variable[7] = CALL_abstractmetamodel___MMDirectory___parent( variable[5] /*dir*/)( variable[5] /*dir*/) /*MMDirectory::parent*/; - variable[5] = variable[7] /*dir=*/; - continue_28: while(0); } - break_28: while(0); - } - /* Register variable[5]: Result */ - variable[5] = CALL_mmloader___ToolContext___paths(variable[0])(variable[0]) /*ToolContext::paths*/; - /* Register variable[5]: For iterator */ - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[6]: For 'is_ok' result */ - variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[7]: Local variable */ - variable[7] = variable[6]; - /* Register variable[8]: Local variable */ - /* Register variable[9]: Result */ - variable[9] = CALL_mmloader___ToolContext___directory_for(variable[0])(variable[0], variable[7] /*p*/) /*ToolContext::directory_for*/; - /* Register variable[9]: Result */ - variable[9] = CALL_mmloader___ToolContext___try_to_load(variable[0])(variable[0], variable[1] /*module_name*/, variable[9]) /*ToolContext::try_to_load*/; - variable[8] = variable[9]; - /* Register variable[9]: Result */ - variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*m*/ == NIT_NULL /*null*/) || (( variable[8] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*m*/)( variable[8] /*m*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[9])) { /*if*/ - variable[3] = variable[8] /*m*/; - goto return_label27; + label2: while(0); + } + /* ./mmloader.nit:283 */ + fra.me.REG[2] = CALL_mmloader___ToolContext___paths(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[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = 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 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./mmloader.nit:284 */ + fra.me.REG[5] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + fra.me.REG[5] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5]); + /* ./mmloader.nit:285 */ + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[3] = fra.me.REG[5]; + goto label1; + } + /* ./../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 label3; } - continue_29: while(0); - CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/; - } - break_29: while(0); - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[6]: Once String constant */ - if (once_value_30 != NIT_NULL) variable[6] = once_value_30; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: No ressource found for module "), TAG_Int(37)) /*new String*/; - once_value_30 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - variable[6] = variable[1] /*module_name*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_31 != NIT_NULL) variable[6] = once_value_31; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_31 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - CALL_mmloader___ToolContext___error(variable[0])(variable[0], variable[5]) /*ToolContext::error*/; - exit(UNTAG_Int( TAG_Int(1))); - fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___get_module, LOCATE_mmloader, 212); nit_exit(1); - return_label27: while(false); - tracehead = trace.prev; - return variable[3]; + } + label3: while(0); + /* ./mmloader.nit:288 */ + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString("Error: No ressource found for module "); + REGB0 = TAG_Int(37); + 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_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]); + if (!once_value_5) { + 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_5 = fra.me.REG[1]; + register_static_object(&once_value_5); + } else fra.me.REG[1] = once_value_5; + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[4]); + /* ./mmloader.nit:289 */ + nit_abort("Aborted", NULL, LOCATE_mmloader, 289); + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t mmloader___ToolContext___directory_for(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 215, LOCATE_mmloader___ToolContext___directory_for}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____path_dirs(variable[0]) /*ToolContext::_path_dirs*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead___has_key(variable[3])(variable[3], variable[1] /*path*/) /*MapRead::has_key*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____path_dirs(variable[0]) /*ToolContext::_path_dirs*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3], variable[1] /*path*/) /*MapRead::[]*/; - variable[2] = variable[3]; - goto return_label32; - } - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_symbol___String___to_symbol( variable[1] /*path*/)( variable[1] /*path*/) /*String::to_symbol*/; - /* Register variable[4]: Result */ - variable[4] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(variable[4], variable[1] /*path*/, NIT_NULL /*null*/) /*new MMDirectory*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = ATTR_mmloader___ToolContext____path_dirs(variable[0]) /*ToolContext::_path_dirs*/; - CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[1] /*path*/, variable[3] /*dir*/) /*Map::[]=*/; - variable[2] = variable[3] /*dir*/; - goto return_label32; - return_label32: while(false); - tracehead = trace.prev; - return variable[2]; +val_t mmloader___ToolContext___directory_for(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 292; + fra.me.meth = LOCATE_mmloader___ToolContext___directory_for; + 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; + /* ./mmloader.nit:295 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 295); + } + fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 295); + } + fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + goto label1; + } + /* ./mmloader.nit:296 */ + fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[3] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(fra.me.REG[3], fra.me.REG[1], NIT_NULL); + /* ./mmloader.nit:297 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 297); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]); + CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]); + /* ./mmloader.nit:298 */ + fra.me.REG[2] = fra.me.REG[3]; + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -void mmloader___ToolContext___register_loader(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 227, LOCATE_mmloader___ToolContext___register_loader}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmloader___ToolContext____loaders(variable[0]) /*ToolContext::_loaders*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1] /*ml*/) /*AbstractArray::add*/; - return_label33: while(false); - tracehead = trace.prev; +void mmloader___ToolContext___register_loader(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 304; + fra.me.meth = LOCATE_mmloader___ToolContext___register_loader; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./mmloader.nit:305 */ + REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 305); + } + fra.me.REG[0] = ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -val_t mmloader___ModuleLoader___file_type(val_t self) { - struct trace_t trace = {NULL, NULL, 236, LOCATE_mmloader___ModuleLoader___file_type}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 236); - nit_exit(1); - tracehead = trace.prev; +val_t mmloader___ModuleLoader___file_type(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_mmloader; + fra.me.line = 313; + fra.me.meth = LOCATE_mmloader___ModuleLoader___file_type; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./mmloader.nit:313 */ + nit_abort("Deferred method called", NULL, LOCATE_mmloader, 313); + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmloader___ModuleLoader___try_to_load_dir(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 239, LOCATE_mmloader___ModuleLoader___try_to_load_dir}; - static val_t once_value_35 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_36 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_37 = NIT_NULL; /* Once value for string variable[6]*/ - val_t variable[7]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Local variable */ - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[6]: Once String constant */ - if (once_value_35 != NIT_NULL) variable[6] = once_value_35; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_35 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMDirectory___path( variable[2] /*parent_dir*/)( variable[2] /*parent_dir*/) /*MMDirectory::path*/; - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_36 != NIT_NULL) variable[6] = once_value_36; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/; - once_value_36 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - variable[6] = variable[1] /*dirname*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_37 != NIT_NULL) variable[6] = once_value_37; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/; - once_value_37 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = CALL_file___String___file_exists( variable[4] /*fname*/)( variable[4] /*fname*/) /*String::file_exists*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/ - variable[3] = NIT_NULL /*null*/; - goto return_label34; - } - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMDirectory___full_name_for( variable[2] /*parent_dir*/)( variable[2] /*parent_dir*/, variable[1] /*dirname*/) /*MMDirectory::full_name_for*/; - /* Register variable[6]: Result */ - variable[6] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(variable[6], variable[4] /*fname*/, variable[2] /*parent_dir*/) /*new MMDirectory*/; - variable[5] = variable[6]; - variable[3] = variable[5] /*dir*/; - goto return_label34; - return_label34: while(false); - tracehead = trace.prev; - return variable[3]; +val_t mmloader___ModuleLoader___try_to_load_dir(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 */ + static val_t once_value_3; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 316; + fra.me.meth = LOCATE_mmloader___ModuleLoader___try_to_load_dir; + 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; + /* ./mmloader.nit:319 */ + REGB0 = TAG_Int(5); + fra.me.REG[0] = 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[0])(fra.me.REG[0], fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMDirectory___path(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], 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[0])(fra.me.REG[0], fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + if (!once_value_3) { + fra.me.REG[3] = BOX_NativeString("/"); + REGB0 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_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[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]); + /* ./mmloader.nit:320 */ + REGB0 = CALL_file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[3] = NIT_NULL; + goto label4; + } + /* ./mmloader.nit:322 */ + fra.me.REG[1] = CALL_abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + fra.me.REG[2] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); + /* ./mmloader.nit:323 */ + fra.me.REG[3] = fra.me.REG[2]; + goto label4; + label4: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t mmloader___ModuleLoader___can_handle(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 249, LOCATE_mmloader___ModuleLoader___can_handle}; - static val_t once_value_39 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_40 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_41 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_42 = NIT_NULL; /* Once value for string variable[6]*/ - val_t variable[7]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Local variable */ - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[6]: Once String constant */ - if (once_value_39 != NIT_NULL) variable[6] = once_value_39; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_39 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMDirectory___path( variable[2] /*dir*/)( variable[2] /*dir*/) /*MMDirectory::path*/; - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_40 != NIT_NULL) variable[6] = once_value_40; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/; - once_value_40 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - variable[6] = variable[1] /*module_name*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_41 != NIT_NULL) variable[6] = once_value_41; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_41 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_mmloader___ModuleLoader___file_type(variable[0])(variable[0]) /*ModuleLoader::file_type*/; - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_42 != NIT_NULL) variable[6] = once_value_42; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_42 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = CALL_file___String___file_exists( variable[4] /*fname*/)( variable[4] /*fname*/) /*String::file_exists*/; - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[3] = TAG_Bool(true); - goto return_label38; - } - variable[3] = TAG_Bool(false); - goto return_label38; - return_label38: while(false); - tracehead = trace.prev; - return variable[3]; +val_t mmloader___ModuleLoader___can_handle(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 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_mmloader; + fra.me.line = 326; + fra.me.meth = LOCATE_mmloader___ModuleLoader___can_handle; + 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; + /* ./mmloader.nit:330 */ + 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(""); + REGB0 = TAG_Int(0); + 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[2] = CALL_abstractmetamodel___MMDirectory___path(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_2) { + fra.me.REG[2] = BOX_NativeString("/"); + REGB0 = TAG_Int(1); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_2 = fra.me.REG[2]; + register_static_object(&once_value_2); + } else fra.me.REG[2] = once_value_2; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + if (!once_value_3) { + 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_3 = fra.me.REG[1]; + register_static_object(&once_value_3); + } else fra.me.REG[1] = once_value_3; + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + fra.me.REG[0] = CALL_mmloader___ModuleLoader___file_type(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_4) { + 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_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(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]); + /* ./mmloader.nit:331 */ + REGB0 = CALL_file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + goto label5; + } + /* ./mmloader.nit:332 */ + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + goto label5; + label5: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -val_t mmloader___ModuleLoader___load_and_process_module(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 258, LOCATE_mmloader___ModuleLoader___load_and_process_module}; - static val_t once_value_44 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_45 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_46 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_47 = NIT_NULL; /* Once value for string variable[7]*/ - val_t variable[8]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Method return value and escape marker */ - /* Register variable[5]: Local variable */ - variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[7]: Once String constant */ - if (once_value_44 != NIT_NULL) variable[7] = once_value_44; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_44 = variable[7]; - } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_abstractmetamodel___MMDirectory___path( variable[3] /*dir*/)( variable[3] /*dir*/) /*MMDirectory::path*/; - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_45 != NIT_NULL) variable[7] = once_value_45; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/; - once_value_45 = variable[7]; - } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - variable[7] = variable[2] /*module_name*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_46 != NIT_NULL) variable[7] = once_value_46; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_46 = variable[7]; - } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ModuleLoader___file_type(variable[0])(variable[0]) /*ModuleLoader::file_type*/; - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_47 != NIT_NULL) variable[7] = once_value_47; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_47 = variable[7]; - } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/; - variable[5] = variable[6]; - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ModuleLoader___load_module(variable[0])(variable[0], variable[1] /*context*/, variable[2] /*module_name*/, variable[3] /*dir*/, variable[5] /*filename*/) /*ModuleLoader::load_module*/; - variable[6] = variable[7]; - /* Register variable[7]: Result */ - variable[7] = CALL_mmloader___ToolContext___opt_only_parse( variable[1] /*context*/)( variable[1] /*context*/) /*ToolContext::opt_only_parse*/; - /* Register variable[7]: Result */ - variable[7] = CALL_opts___Option___value(variable[7])(variable[7]) /*Option::value*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/ - CALL_mmloader___ModuleLoader___process_metamodel(variable[0])(variable[0], variable[1] /*context*/, variable[6] /*m*/) /*ModuleLoader::process_metamodel*/; - } - variable[4] = variable[6] /*m*/; - goto return_label43; - return_label43: while(false); - tracehead = trace.prev; - return variable[4]; +val_t mmloader___ModuleLoader___load_and_process_module(val_t p0, val_t p1, val_t p2, val_t p3){ + 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_mmloader; + fra.me.line = 335; + fra.me.meth = LOCATE_mmloader___ModuleLoader___load_and_process_module; + 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; + fra.me.REG[3] = p3; + /* ./mmloader.nit:339 */ + 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(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[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_abstractmetamodel___MMDirectory___path(fra.me.REG[3])(fra.me.REG[3]); + 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("/"); + REGB0 = TAG_Int(1); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_2 = fra.me.REG[5]; + register_static_object(&once_value_2); + } else fra.me.REG[5] = once_value_2; + 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(fra.me.REG[2])(fra.me.REG[2]); + 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("."); + REGB0 = TAG_Int(1); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_3 = fra.me.REG[5]; + register_static_object(&once_value_3); + } else fra.me.REG[5] = once_value_3; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_mmloader___ModuleLoader___file_type(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_4) { + 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_4 = fra.me.REG[5]; + register_static_object(&once_value_4); + } else fra.me.REG[5] = once_value_4; + fra.me.REG[5] = fra.me.REG[5]; + 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]); + /* ./mmloader.nit:340 */ + fra.me.REG[4] = CALL_mmloader___ModuleLoader___load_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]); + /* ./mmloader.nit:341 */ + fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[3])); + if (UNTAG_Bool(REGB0)) { + CALL_mmloader___ModuleLoader___process_metamodel(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]); + } + /* ./mmloader.nit:342 */ + goto label5; + label5: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[4]; } -val_t mmloader___ModuleLoader___load_module(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) { - struct trace_t trace = {NULL, NULL, 268, LOCATE_mmloader___ModuleLoader___load_module}; - static val_t once_value_49 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_50 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_51 = NIT_NULL; /* Once value for string variable[8]*/ - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Local variable */ - variable[4] = param3; - /* Register variable[5]: Method return value and escape marker */ - /* Register variable[6]: Local variable */ - /*variable[6] is variable file*/ - /* Register variable[7]: Once String constant */ - if (once_value_49 != NIT_NULL) variable[7] = once_value_49; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)) /*new String*/; - once_value_49 = variable[7]; - } - /* Register variable[7]: Result */ - /* Register variable[7]: Result */ - variable[7] = TAG_Bool(( variable[4] /*filename*/ == variable[7]) || (( variable[4] /*filename*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*filename*/)( variable[4] /*filename*/, variable[7]) /*String::==*/))); - if (UNTAG_Bool(variable[7])) { /*if*/ - /* Register variable[7]: Result */ - variable[7] = CALL_file___Object___stdin(variable[0])(variable[0]) /*Object::stdin*/; - variable[6] = variable[7] /*file=*/; - } else { /*if*/ - /* Register variable[7]: Result */ - variable[7] = CALL_string___Object___to_s( variable[4] /*filename*/)( variable[4] /*filename*/) /*String::to_s*/; - /* Register variable[7]: Result */ - variable[7] = NEW_IFStream_file___IFStream___open(variable[7]) /*new IFStream*/; - variable[6] = variable[7] /*file=*/; - } - /* Register variable[7]: Result */ - variable[7] = CALL_stream___IStream___eof( variable[6] /*file*/)( variable[6] /*file*/) /*BufferedIStream::eof*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[8]: Once String constant */ - if (once_value_50 != NIT_NULL) variable[8] = once_value_50; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Problem in opening file "), TAG_Int(31)) /*new String*/; - once_value_50 = variable[8]; - } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - variable[8] = variable[4] /*filename*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_51 != NIT_NULL) variable[8] = once_value_51; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_51 = variable[8]; - } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_mmloader___ToolContext___error( variable[1] /*context*/)( variable[1] /*context*/, variable[7]) /*ToolContext::error*/; - exit(UNTAG_Int( TAG_Int(1))); - fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ModuleLoader___load_module, LOCATE_mmloader, 281); nit_exit(1); - } - /* Register variable[7]: Local variable */ - /* Register variable[8]: Result */ - variable[8] = CALL_mmloader___ModuleLoader___parse_file(variable[0])(variable[0], variable[1] /*context*/, variable[6] /*file*/, variable[4] /*filename*/, variable[2] /*module_name*/, variable[3] /*dir*/) /*ModuleLoader::parse_file*/; - variable[7] = variable[8]; - /* Register variable[8]: Result */ - variable[8] = CALL_file___Object___stdin(variable[0])(variable[0]) /*Object::stdin*/; - /* Register variable[8]: Result */ - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*file*/ == variable[8]) || (( variable[6] /*file*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*file*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*file*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*file*/)( variable[6] /*file*/, variable[8]) /*Object::==*/))))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - CALL_stream___IOS___close( variable[6] /*file*/)( variable[6] /*file*/) /*IFStream::close*/; - } - variable[5] = variable[7] /*m*/; - goto return_label48; - return_label48: while(false); - tracehead = trace.prev; - return variable[5]; +val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){ + struct {struct stack_frame_t me; val_t MORE_REG[7];} 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 345; + fra.me.meth = LOCATE_mmloader___ModuleLoader___load_module; + 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; + fra.me.REG[2] = p2; + fra.me.REG[3] = p3; + fra.me.REG[4] = p4; + /* ./mmloader.nit:349 */ + if (!once_value_1) { + 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_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]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:350 */ + fra.me.REG[5] = CALL_file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]); + } else { + /* ./mmloader.nit:352 */ + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[6] = NEW_IFStream_file___IFStream___open(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + } + /* ./mmloader.nit:355 */ + REGB0 = CALL_stream___IStream___eof(fra.me.REG[5])(fra.me.REG[5]); + if (UNTAG_Bool(REGB0)) { + /* ./mmloader.nit:356 */ + REGB0 = TAG_Int(3); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_2) { + fra.me.REG[7] = BOX_NativeString("Error: Problem in opening file "); + REGB0 = TAG_Int(31); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_2 = fra.me.REG[7]; + register_static_object(&once_value_2); + } else fra.me.REG[7] = once_value_2; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); + if (!once_value_3) { + fra.me.REG[7] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_3 = fra.me.REG[7]; + register_static_object(&once_value_3); + } else fra.me.REG[7] = once_value_3; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]); + } + /* ./mmloader.nit:358 */ + fra.me.REG[3] = CALL_mmloader___ModuleLoader___parse_file(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5], fra.me.REG[4], fra.me.REG[2], fra.me.REG[3]); + /* ./mmloader.nit:359 */ + fra.me.REG[0] = CALL_file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[0])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); + REGB0 = REGB1; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + CALL_stream___IOS___close(fra.me.REG[5])(fra.me.REG[5]); + } + /* ./mmloader.nit:360 */ + goto label4; + label4: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[3]; } -val_t mmloader___ModuleLoader___parse_file(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4) { - struct trace_t trace = {NULL, NULL, 288, LOCATE_mmloader___ModuleLoader___parse_file}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 288); - nit_exit(1); - tracehead = trace.prev; +val_t mmloader___ModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){ + 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_mmloader; + fra.me.line = 363; + fra.me.meth = LOCATE_mmloader___ModuleLoader___parse_file; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./mmloader.nit:363 */ + nit_abort("Deferred method called", NULL, LOCATE_mmloader, 363); + stack_frame_head = fra.me.prev; return NIT_NULL; } -void mmloader___ModuleLoader___process_metamodel(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 291, LOCATE_mmloader___ModuleLoader___process_metamodel}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 291); - nit_exit(1); - tracehead = trace.prev; +void mmloader___ModuleLoader___process_metamodel(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_mmloader; + fra.me.line = 366; + fra.me.meth = LOCATE_mmloader___ModuleLoader___process_metamodel; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./mmloader.nit:366 */ + nit_abort("Deferred method called", NULL, LOCATE_mmloader, 366); + stack_frame_head = fra.me.prev; return; } -void mmloader___ModuleLoader___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_mmloader___ModuleLoader___init}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - tracehead = trace.prev; +void mmloader___ModuleLoader___init(val_t p0, int* init_table){ + int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ModuleLoader].i; + struct {struct stack_frame_t me;} fra; + val_t tmp; + if (init_table[itpos2]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 0; + fra.me.meth = LOCATE_mmloader___ModuleLoader___init; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + stack_frame_head = fra.me.prev; + init_table[itpos2] = 1; return; } -void mmloader___MMModule___import_supers_modules(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 296, LOCATE_mmloader___MMModule___import_supers_modules}; - val_t variable[10]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmloader; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMModule___context(variable[0])(variable[0]) /*MMModule::context*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool(( variable[3] /*c*/==NIT_NULL) || VAL_ISA( variable[3] /*c*/, COLOR_ToolContext, ID_ToolContext)) /*cast ToolContext*/; - if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___MMModule___import_supers_modules, LOCATE_mmloader, 300); nit_exit(1);} - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = NEW_Array_array___Array___init() /*new Array[MMModule]*/; - variable[4] = variable[5]; - /* Register variable[5]: For iterator */ - variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*names*/)( variable[1] /*names*/) /*Collection::iterator*/; - while (true) { /*for*/ - /* Register variable[6]: For 'is_ok' result */ - variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[7]: Local variable */ - variable[7] = variable[6]; - /* Register variable[8]: Local variable */ - /* Register variable[9]: Result */ - variable[9] = CALL_mmloader___ToolContext___get_module( variable[3] /*c*/)( variable[3] /*c*/, variable[7] /*n*/, variable[0]) /*ToolContext::get_module*/; - variable[8] = variable[9]; - CALL_abstract_collection___SimpleCollection___add( variable[4] /*supers*/)( variable[4] /*supers*/, variable[8] /*m*/) /*AbstractArray::add*/; - continue_53: while(0); - CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/; - } - break_53: while(0); - CALL_abstractmetamodel___MMContext___add_module( variable[3] /*c*/)( variable[3] /*c*/, variable[0], variable[4] /*supers*/) /*MMContext::add_module*/; - return_label52: while(false); - tracehead = trace.prev; +void mmloader___MMModule___import_supers_modules(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 371; + fra.me.meth = LOCATE_mmloader___MMModule___import_supers_modules; + 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; + /* ./mmloader.nit:374 */ + fra.me.REG[2] = CALL_abstractmetamodel___MMModule___context(fra.me.REG[0])(fra.me.REG[0]); + /* ./mmloader.nit:375 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_ToolContext, ID_ToolContext)) /*cast ToolContext*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_mmloader, 375); + } + /* ./mmloader.nit:376 */ + fra.me.REG[3] = NEW_Array_array___Array___init(); + CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_mmloader___MMModule___import_supers_modules_1)); + /* ./mmloader.nit:381 */ + CALL_abstractmetamodel___MMContext___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3]); + stack_frame_head = fra.me.prev; return; } + void OC_mmloader___MMModule___import_supers_modules_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; + /* ./mmloader.nit:377 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmloader; + fra.me.line = 0; + fra.me.meth = LOCATE_mmloader___MMModule___import_supers_modules; + 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; + /* ./mmloader.nit:378 */ + fra.me.REG[0] = CALL_mmloader___ToolContext___get_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[0], closctx->REG[0]); + /* ./mmloader.nit:379 */ + CALL_abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return; + }