X-Git-Url: http://nitlanguage.org diff --git a/c_src/mmbuilder._sep.c b/c_src/mmbuilder._sep.c index 0a62eb2..35fafef 100644 --- a/c_src/mmbuilder._sep.c +++ b/c_src/mmbuilder._sep.c @@ -1,4362 +1,9301 @@ /* This C file is generated by NIT to compile module mmbuilder. */ #include "mmbuilder._sep.h" -val_t mmbuilder___CSHSorter___compare(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 27, LOCATE_mmbuilder___CSHSorter___compare}; - val_t variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*a*/)( variable[1] /*a*/) /*MMLocalClass::cshe*/; - variable[4] = CALL_partial_order___PartialOrderElement___rank(variable[4])(variable[4]) /*PartialOrderElement::rank*/; - variable[5] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[2] /*b*/)( variable[2] /*b*/) /*MMLocalClass::cshe*/; - variable[5] = CALL_partial_order___PartialOrderElement___rank(variable[5])(variable[5]) /*PartialOrderElement::rank*/; - variable[4] = CALL_kernel___Comparable_____leqg(variable[4])(variable[4], variable[5]) /*Int::<=>*/; - variable[3] = variable[4]; - goto return_label0; - return_label0: while(false); - tracehead = trace.prev; - return variable[3]; -} -void mmbuilder___CSHSorter___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 32, LOCATE_mmbuilder___CSHSorter___init}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CSHSorter].i]) return; - return_label1: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CSHSorter].i] = 1; - tracehead = trace.prev; +val_t mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} 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_mmbuilder; + fra.me.line = 27; + fra.me.meth = LOCATE_mmbuilder___CSHSorter___compare; + 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; + /* ./syntax//mmbuilder.nit:29 */ + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = CALL_kernel___Comparable_____leqg(REGB0)(REGB0, REGB1); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB1; +} +void mmbuilder___CSHSorter___init(val_t p0, int* init_table){ + int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_CSHSorter].i; + struct {struct stack_frame_t me;} fra; + val_t tmp; + if (init_table[itpos0]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 32; + fra.me.meth = LOCATE_mmbuilder___CSHSorter___init; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:32 */ + CALL_sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos0] = 1; return; } -void mmbuilder___MMSrcModule___do_mmbuilder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 36, LOCATE_mmbuilder___MMSrcModule___do_mmbuilder}; - static val_t once_value_4; static int once_bool_4; /* Once value for variable[7]*/ - val_t variable[19]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_inheritance___MMModule___import_global_classes(variable[3])(variable[3]) /*MMModule::import_global_classes*/; - variable[4] = variable[0]; - variable[5] = NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init( variable[1] /*tc*/, variable[4]); /*new ClassBuilderVisitor*/ - variable[4] = variable[5]; - variable[3] = variable[4]; - variable[4] = variable[0]; - variable[4] = CALL_syntax_base___MMSrcModule___node(variable[4])(variable[4]) /*MMSrcModule::node*/; - CALL_parser_prod___Visitor___visit( variable[3] /*mmbv*/)( variable[3] /*mmbv*/, variable[4]) /*ClassBuilderVisitor::visit*/; - variable[4] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - variable[4] = TAG_Bool(UNTAG_Int(variable[4])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - exit(UNTAG_Int( TAG_Int(1))); - } - variable[4] = variable[0]; - CALL_inheritance___MMModule___import_local_classes(variable[4])(variable[4]) /*MMModule::import_local_classes*/; - variable[5] = variable[0]; - variable[6] = NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init( variable[1] /*tc*/, variable[5]); /*new ClassSpecializationBuilderVisitor*/ - variable[5] = variable[6]; - variable[4] = variable[5]; - variable[5] = variable[0]; - variable[5] = CALL_syntax_base___MMSrcModule___node(variable[5])(variable[5]) /*MMSrcModule::node*/; - CALL_parser_prod___Visitor___visit( variable[4] /*mmbv1*/)( variable[4] /*mmbv1*/, variable[5]) /*ClassSpecializationBuilderVisitor::visit*/; - variable[5] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = variable[0]; - exit(UNTAG_Int( TAG_Int(1))); - } - variable[5] = variable[0]; - variable[5] = CALL_abstractmetamodel___MMModule___local_classes(variable[5])(variable[5]) /*MMModule::local_classes*/; - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - 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*/; - variable[7] = variable[6]; - variable[8] = variable[0]; - variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::global*/; - variable[9] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[9])(variable[9]) /*MMGlobalClass::intro*/; - variable[9] = CALL_abstractmetamodel___MMLocalClass___module(variable[9])(variable[9]) /*MMLocalClass::module*/; - variable[8] = CALL_abstractmetamodel___MMModule___visibility_for(variable[8])(variable[8], variable[9]) /*MMModule::visibility_for*/; - variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::global*/; - variable[9] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[9])(variable[9]) /*MMGlobalClass::visibility_level*/; - variable[8] = TAG_Bool(UNTAG_Int(variable[8])UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - exit(UNTAG_Int( TAG_Int(1))); - } - variable[9] = variable[0]; - variable[10] = NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init( variable[1] /*tc*/, variable[9]); /*new ClassVerifierVisitor*/ - variable[9] = variable[10]; - variable[8] = variable[9]; - variable[9] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[10])) break; /*for*/ - variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/; - variable[11] = variable[10]; - CALL_mmbuilder___MMLocalClass___accept_class_visitor( variable[11] /*c*/)( variable[11] /*c*/, variable[8] /*mmbv1b*/) /*MMLocalClass::accept_class_visitor*/; - continue_6: while(0); - CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/; - } - break_6: while(0); - variable[9] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[9])) { /*if*/ - variable[9] = variable[0]; - exit(UNTAG_Int( TAG_Int(1))); - } - variable[10] = variable[0]; - variable[11] = NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init( variable[1] /*tc*/, variable[10]); /*new PropertyBuilderVisitor*/ - variable[10] = variable[11]; - variable[9] = variable[10]; - variable[10] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[11])) break; /*for*/ - variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/; - variable[12] = variable[11]; - CALL_inheritance___MMLocalClass___inherit_global_properties( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::inherit_global_properties*/; - CALL_mmbuilder___MMLocalClass___accept_class_visitor( variable[12] /*c*/)( variable[12] /*c*/, variable[9] /*mmbv2*/) /*MMLocalClass::accept_class_visitor*/; - variable[13] = TAG_Bool(( variable[12] /*c*/==NIT_NULL) || VAL_ISA( variable[12] /*c*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/; - variable[14] = variable[13]; - if (UNTAG_Bool(variable[14])) { /* and */ - variable[14] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/; - variable[14] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[14])(variable[14]) /*MMGlobalClass::intro*/; - variable[14] = TAG_Bool((variable[14] == variable[12] /*c*/) || ((variable[14] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[14])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[14], variable[12] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[14])(variable[14], variable[12] /*c*/) /*Object::==*/))))); - } - variable[13] = variable[14]; - variable[14] = variable[13]; - if (UNTAG_Bool(variable[14])) { /* and */ - variable[14] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/; - variable[14] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable[14])(variable[14]) /*MMGlobalClass::is_universal*/; - variable[14] = TAG_Bool(!UNTAG_Bool(variable[14])); - } - variable[13] = variable[14]; - variable[14] = variable[13]; - if (UNTAG_Bool(variable[14])) { /* and */ - variable[14] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/; - variable[14] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable[14])(variable[14]) /*MMGlobalClass::is_interface*/; - variable[14] = TAG_Bool(!UNTAG_Bool(variable[14])); - } - variable[13] = variable[14]; - if (UNTAG_Bool(variable[13])) { /*if*/ - CALL_mmbuilder___MMSrcLocalClass___process_default_constructors( variable[12] /*c*/)( variable[12] /*c*/, variable[9] /*mmbv2*/) /*MMSrcLocalClass::process_default_constructors*/; - } - continue_7: while(0); - CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/; - } - break_7: while(0); - variable[10] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - variable[10] = TAG_Bool(UNTAG_Int(variable[10])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[10])) { /*if*/ - variable[10] = variable[0]; - exit(UNTAG_Int( TAG_Int(1))); - } - variable[11] = variable[0]; - variable[12] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init( variable[1] /*tc*/, variable[11]); /*new PropertyVerifierVisitor*/ - variable[11] = variable[12]; - variable[10] = variable[11]; - variable[11] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[12])) break; /*for*/ - variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/; - variable[13] = variable[12]; - CALL_mmbuilder___MMLocalClass___accept_properties_visitor( variable[13] /*c*/)( variable[13] /*c*/, variable[10] /*mmbv3*/) /*MMLocalClass::accept_properties_visitor*/; - continue_8: while(0); - CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/; - } - break_8: while(0); - variable[11] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[12])) break; /*for*/ - variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/; - variable[13] = variable[12]; - variable[14] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global_properties*/; - variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Collection::iterator*/; - while (true) { /*for*/ - variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[15])) break; /*for*/ - variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*Iterator::item*/; - variable[16] = variable[15]; - variable[17] = variable[0]; - variable[18] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[16] /*g*/)( variable[16] /*g*/) /*MMGlobalProperty::intro*/; - variable[18] = CALL_abstractmetamodel___MMLocalProperty___module(variable[18])(variable[18]) /*MMLocalProperty::module*/; - variable[17] = CALL_abstractmetamodel___MMModule___visibility_for(variable[17])(variable[17], variable[18]) /*MMModule::visibility_for*/; - variable[18] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level( variable[16] /*g*/)( variable[16] /*g*/) /*MMGlobalProperty::visibility_level*/; - variable[17] = TAG_Bool(UNTAG_Int(variable[17])val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:81 */ + CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:82 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:83 */ + CALL_inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]); + /* ./../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 label4; + } + } + label4: while(0); + /* ./syntax//mmbuilder.nit:87 */ + fra.me.REG[3] = NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:231 */ + fra.me.REG[5] = fra.me.REG[2]; + /* ./../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[5])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:89 */ + CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label5; + } + } + label5: while(0); + /* ./syntax//mmbuilder.nit:91 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:94 */ + fra.me.REG[3] = NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:231 */ + fra.me.REG[4] = fra.me.REG[2]; + /* ./../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); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:97 */ + CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:100 */ + REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/; + if (UNTAG_Bool(REGB1)) { + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[7] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]); + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); + REGB1 = REGB2; + } + } else { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; } - variable[18] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[13] /*c*/)( variable[13] /*c*/, variable[16] /*g*/) /*MMLocalClass::[]*/; - variable[17] = variable[18]; - continue_10: while(0); - CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*Iterator::next*/; - } - break_10: while(0); - continue_9: while(0); - CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/; - } - break_9: while(0); - variable[11] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - variable[11] = TAG_Bool(UNTAG_Int(variable[11])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[11] = variable[0]; - exit(UNTAG_Int( TAG_Int(1))); - } - return_label2: while(false); - tracehead = trace.prev; + if (UNTAG_Bool(REGB1)) { + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + } else { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + } else { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:101 */ + CALL_mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); + } + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label6; + } + } + label6: while(0); + /* ./syntax//mmbuilder.nit:106 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:109 */ + fra.me.REG[0] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], 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[3] = 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)]; + /* ./syntax//mmbuilder.nit:111 */ + CALL_mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); + /* ./../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 label7; + } + } + label7: while(0); + /* ./syntax//mmbuilder.nit:114 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMLocalClass___accept_class_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 125, LOCATE_mmbuilder___MMLocalClass___accept_class_visitor}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - return_label11: while(false); - tracehead = trace.prev; + void OC_mmbuilder___MMSrcModule___do_mmbuilder_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_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___MMSrcModule___do_mmbuilder; + 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; + /* ./syntax//mmbuilder.nit:62 */ + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]); + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)REG[1]); + stack_frame_head = fra.me.prev; + return; + } +void mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){ + 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_7; /* Once value */ + static val_t once_value_8; /* Once value */ + static val_t once_value_13; /* Once value */ + static val_t once_value_14; /* Once value */ + static val_t once_value_15; /* Once value */ + static val_t once_value_16; /* Once value */ + static val_t once_value_17; /* Once value */ + static val_t once_value_18; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 171; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors; + 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; + /* ./syntax//mmbuilder.nit:175 */ + fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_1)); + switch ((&(fra.me))->has_broke) { + case 0: break; + case 1: (&(fra.me))->has_broke = 0; goto label3; + } + /* ./syntax//mmbuilder.nit:183 */ + fra.me.REG[2] = NEW_ArraySet_array___ArraySet___init(); + /* ./syntax//mmbuilder.nit:184 */ + fra.me.REG[3] = NEW_ArraySet_array___ArraySet___init(); + /* ./syntax//mmbuilder.nit:185 */ + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:186 */ + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(true); + } else { + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]); + REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]); + REGB1 = REGB2; } - continue_24: while(0); - CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/; - } - break_24: while(0); - variable[7] = variable[0]; - variable[7] = CALL_abstractmetamodel___MMLocalClass___che(variable[7])(variable[7]) /*MMLocalClass::che*/; - variable[7] = CALL_partial_order___PartialOrderElement___order(variable[7])(variable[7]) /*PartialOrderElement::order*/; - variable[7] = CALL_partial_order___PartialOrder___select_smallests(variable[7])(variable[7], variable[6] /*supers*/) /*PartialOrder::select_smallests*/; - variable[6] = variable[7] /*supers=*/; - variable[7] = NIT_NULL /*null*/; - variable[8] = CALL_abstract_collection___Collection___length( variable[6] /*supers*/)( variable[6] /*supers*/) /*AbstractArray::length*/; - variable[8] = TAG_Bool(UNTAG_Int(variable[8])>UNTAG_Int( TAG_Int(1))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[8] = CALL_syntax_base___MMSrcLocalClass___nodes(variable[8])(variable[8]) /*MMSrcLocalClass::nodes*/; - variable[8] = CALL_abstract_collection___Collection___first(variable[8])(variable[8]) /*IndexedCollection::first*/; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Explicit constructor required in "), TAG_Int(40)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[0]; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are "), TAG_Int(80)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable[16] = CALL_string___Collection___join( variable[6] /*supers*/)( variable[6] /*supers*/, variable[16]) /*Collection::join*/; - variable[17] = variable[16]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(". Costructors are "), TAG_Int(18)); /*new String*/ - variable[19] = variable[18]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable[20] = CALL_string___Collection___join( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/, variable[20]) /*Collection::join*/; - variable[21] = variable[20]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/; - variable[22] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[23] = variable[22]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[23]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - goto return_label18; - } else { /*if*/ - variable[8] = CALL_abstract_collection___Collection___length( variable[6] /*supers*/)( variable[6] /*supers*/) /*AbstractArray::length*/; - variable[8] = TAG_Bool((variable[8])==( TAG_Int(1))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = CALL_abstract_collection___Collection___first( variable[6] /*supers*/)( variable[6] /*supers*/) /*IndexedCollection::first*/; - variable[7] = variable[8] /*superclass=*/; + if (UNTAG_Bool(REGB1)) { + goto label4; } + /* ./syntax//mmbuilder.nit:187 */ + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_5)); + /* ./syntax//mmbuilder.nit:191 */ + if (!once_value_7) { + if (!once_value_8) { + fra.me.REG[7] = BOX_NativeString("init"); + REGB1 = TAG_Int(4); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_8 = fra.me.REG[7]; + register_static_object(&once_value_8); + } else fra.me.REG[7] = once_value_8; + fra.me.REG[7] = fra.me.REG[7]; + fra.me.REG[7] = CALL_symbol___String___to_symbol(fra.me.REG[7])(fra.me.REG[7]); + once_value_7 = fra.me.REG[7]; + register_static_object(&once_value_7); + } else fra.me.REG[7] = once_value_7; + fra.me.REG[7] = fra.me.REG[7]; + /* ./syntax//mmbuilder.nit:192 */ + REGB1 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:193 */ + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:194 */ + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]); + } + label4: while(0); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label9; + } + } + label9: while(0); + /* ./syntax//mmbuilder.nit:199 */ + fra.me.REG[5] = NEW_Array_array___Array___init(); + /* ./syntax//mmbuilder.nit:200 */ + fra.me.REG[4] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_10)); + /* ./syntax//mmbuilder.nit:207 */ + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:210 */ + fra.me.REG[4] = NEW_Array_array___Array___init(); + CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_11)); + /* ./syntax//mmbuilder.nit:218 */ + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[7] = CALL_partial_order___PartialOrderElement___order(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[7] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]); + fra.me.REG[4] = fra.me.REG[7]; + /* ./syntax//mmbuilder.nit:221 */ + fra.me.REG[7] = NIT_NULL; + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); } - variable[8] = CALL_abstract_collection___Collection___iterator( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/) /*ArraySet::iterator*/; - while (true) { /*for*/ - variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[9])) break; /*for*/ - variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*Iterator::item*/; - variable[10] = variable[9]; - variable[11] = TAG_Bool(( variable[7] /*superclass*/ == NIT_NULL /*null*/) || (( variable[7] /*superclass*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*superclass*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*superclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*superclass*/)( variable[7] /*superclass*/, NIT_NULL /*null*/) /*Object::==*/))))); - variable[12] = variable[11]; - if (!UNTAG_Bool(variable[12])) { /* or */ - variable[12] = CALL_abstractmetamodel___MMGlobalProperty___local_class( variable[10] /*gp*/)( variable[10] /*gp*/) /*MMGlobalProperty::local_class*/; - variable[12] = TAG_Bool((variable[12] == variable[7] /*superclass*/) || ((variable[12] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[12])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[12], variable[7] /*superclass*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[12])(variable[12], variable[7] /*superclass*/) /*Object::==*/))))); + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:223 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:214 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:223 */ + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:224 */ + fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Int(7); + fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_13) { + fra.me.REG[9] = BOX_NativeString("Error: Explicit constructor required in "); + REGB1 = TAG_Int(40); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_13 = fra.me.REG[9]; + register_static_object(&once_value_13); + } else fra.me.REG[9] = once_value_13; + fra.me.REG[9] = fra.me.REG[9]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_14) { + fra.me.REG[9] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are "); + REGB1 = TAG_Int(80); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_14 = fra.me.REG[9]; + register_static_object(&once_value_14); + } else fra.me.REG[9] = once_value_14; + fra.me.REG[9] = fra.me.REG[9]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_15) { + fra.me.REG[9] = BOX_NativeString(", "); + REGB1 = TAG_Int(2); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_15 = fra.me.REG[9]; + register_static_object(&once_value_15); + } else fra.me.REG[9] = once_value_15; + fra.me.REG[9] = fra.me.REG[9]; + fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_16) { + fra.me.REG[9] = BOX_NativeString(". Costructors are "); + REGB1 = TAG_Int(18); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_16 = fra.me.REG[9]; + register_static_object(&once_value_16); + } else fra.me.REG[9] = once_value_16; + fra.me.REG[9] = fra.me.REG[9]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_17) { + fra.me.REG[9] = BOX_NativeString(", "); + REGB1 = TAG_Int(2); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_17 = fra.me.REG[9]; + register_static_object(&once_value_17); + } else fra.me.REG[9] = once_value_17; + fra.me.REG[9] = fra.me.REG[9]; + fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_18) { + fra.me.REG[9] = BOX_NativeString("."); + REGB1 = TAG_Int(1); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1); + once_value_18 = fra.me.REG[9]; + register_static_object(&once_value_18); + } else fra.me.REG[9] = once_value_18; + fra.me.REG[9] = fra.me.REG[9]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6], fra.me.REG[8]); + /* ./syntax//mmbuilder.nit:225 */ + goto label3; + } else { + /* ./../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); } - variable[11] = variable[12]; - if (UNTAG_Bool(variable[11])) { /*if*/ - variable[11] = variable[0]; - CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(variable[11])(variable[11], variable[10] /*gp*/) /*MMLocalClass::make_visible_an_inherited_global_property*/; + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:226 */ + REGB0 = TAG_Int(1); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0)); + if (UNTAG_Bool(REGB2)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB0 = TAG_Bool((REGB1)==(REGB0)); + /* ./syntax//mmbuilder.nit:226 */ + REGB2 = REGB0; } - continue_25: while(0); - CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*Iterator::next*/; - } - break_25: while(0); - variable[8] = variable[0]; - variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/; - variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*superclass*/)( variable[7] /*superclass*/) /*MMLocalClass::global*/; - CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(variable[8])(variable[8], variable[9]) /*MMGlobalClass::mixin_of=*/; - } else { /*if*/ - variable[7] = variable[0]; - variable[8] = CALL_array___Collection___to_a( variable[3] /*super_inits*/)( variable[3] /*super_inits*/) /*Collection::to_a*/; - variable[9] = NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(variable[7], variable[5] /*unassigned_attributes*/, variable[8]); /*new MMImplicitInit*/ - variable[7] = variable[9]; - variable[6] = variable[7]; - variable[7] = variable[0]; - CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[7])(variable[7], variable[1] /*v*/, variable[6] /*p*/) /*MMSrcLocalClass::add_src_local_property*/; - } - return_label18: while(false); - tracehead = trace.prev; + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:227 */ + fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[7] = fra.me.REG[4]; + } + } + CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_19)); + /* ./syntax//mmbuilder.nit:236 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = TAG_Bool(fra.me.REG[7]!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 236); + } + REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 236); + } + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); + } else { + /* ./syntax//mmbuilder.nit:241 */ + fra.me.REG[2] = CALL_array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:242 */ + CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + } + label3: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 232, LOCATE_mmbuilder___MMSrcLocalClass___add_src_local_property}; - val_t variable[21]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::name*/; - variable[4] = variable[5]; - variable[5] = variable[0]; - variable[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[5])(variable[5]) /*MMSrcLocalClass::src_local_properties*/; - variable[5] = CALL_abstract_collection___Map___has_key(variable[5])(variable[5], variable[4] /*pname*/) /*Map::has_key*/; - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = CALL_syntax_base___MMLocalProperty___node( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::node*/; - variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: A property "), TAG_Int(18)); /*new String*/ - variable[8] = variable[7]; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/; - variable[9] = variable[4] /*pname*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is already defined in class "), TAG_Int(29)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[0]; - variable[12] = CALL_abstractmetamodel___MMLocalClass___name(variable[12])(variable[12]) /*MMLocalClass::name*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/; - variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/; - goto return_label26; - } - variable[5] = variable[0]; - variable[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[5])(variable[5]) /*MMSrcLocalClass::src_local_properties*/; - CALL_abstract_collection___Map_____braeq(variable[5])(variable[5], variable[4] /*pname*/, variable[2] /*prop*/) /*Map::[]=*/; - variable[5] = variable[0]; - variable[5] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(variable[5])(variable[5], variable[4] /*pname*/) /*MMLocalClass::has_global_property_by_name*/; - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[6] = variable[0]; - variable[6] = CALL_abstractmetamodel___MMLocalClass___properties_by_name(variable[6])(variable[6]) /*MMLocalClass::properties_by_name*/; - variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[4] /*pname*/) /*Map::[]*/; - variable[5] = variable[6]; - variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*globs*/)( variable[5] /*globs*/) /*AbstractArray::length*/; - variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(1))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = CALL_syntax_base___MMLocalProperty___node( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::node*/; - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Name error: "), TAG_Int(12)); /*new String*/ - variable[9] = variable[8]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/; - variable[10] = variable[0]; - variable[11] = variable[10]; - variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" inherits "), TAG_Int(10)); /*new String*/ - variable[13] = variable[12]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/; - variable[14] = CALL_abstract_collection___Collection___length( variable[5] /*globs*/)( variable[5] /*globs*/) /*AbstractArray::length*/; - variable[15] = variable[14]; - variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" global properties named "), TAG_Int(25)); /*new String*/ - variable[17] = variable[16]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/; - variable[18] = variable[4] /*pname*/; - variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[18]) /*AbstractArray::add*/; - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[20] = variable[19]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[20]) /*AbstractArray::add*/; - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/; - } - variable[7] = CALL_abstract_collection___Collection___first( variable[5] /*globs*/)( variable[5] /*globs*/) /*IndexedCollection::first*/; - variable[6] = variable[7]; - CALL_inheritance___MMLocalProperty___inherit_global( variable[2] /*prop*/)( variable[2] /*prop*/, variable[6] /*g*/) /*MMLocalProperty::inherit_global*/; - } - variable[5] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - variable[5] = TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - CALL_abstractmetamodel___MMLocalProperty___new_global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::new_global*/; - variable[5] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - variable[6] = CALL_syntax_base___MMLocalProperty___is_init( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::is_init*/; - CALL_abstractmetamodel___MMGlobalProperty___is_init__eq(variable[5])(variable[5], variable[6]) /*MMGlobalProperty::is_init=*/; - } - return_label26: while(false); - tracehead = trace.prev; + void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_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; + 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_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors; + 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; + /* ./syntax//mmbuilder.nit:176 */ + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:178 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[0])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + closctx->has_broke = 1; + goto label2; + } + } + label2: while(0); + stack_frame_head = fra.me.prev; + return; + } + void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, 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_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:188 */ + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + goto label6; + } + /* ./syntax//mmbuilder.nit:189 */ + CALL_abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]); + label6: while(0); + stack_frame_head = fra.me.prev; + return; + } + void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_10(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_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors; + 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; + /* ./syntax//mmbuilder.nit:201 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/; + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:202 */ + fra.me.REG[1] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:203 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 203); + } + fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]); + 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)) { + CALL_abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]); + } + } + stack_frame_head = fra.me.prev; + return; + } + void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_11(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; + fun_t CREG[1]; + val_t tmp; + /* ./syntax//mmbuilder.nit:211 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors; + 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; + /* ./syntax//mmbuilder.nit:212 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:213 */ + REGB0 = CALL_abstract_collection___Collection___has(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + goto label12; + } + /* ./syntax//mmbuilder.nit:214 */ + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:215 */ + CALL_abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]); + } + label12: while(0); + stack_frame_head = fra.me.prev; + return; + } + void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_19(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; + val_t REGB2; + fun_t CREG[1]; + val_t tmp; + /* ./syntax//mmbuilder.nit:230 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors; + 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; + /* ./syntax//mmbuilder.nit:232 */ + REGB0 = TAG_Bool(closctx->REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(closctx->REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(closctx->REG[7])(closctx->REG[7], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[7])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[7]); + REGB1 = REGB2; + } + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:233 */ + CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]); + } + stack_frame_head = fra.me.prev; + return; + } +void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; + val_t REGB0; + val_t 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_mmbuilder; + fra.me.line = 247; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___add_src_local_property; + fra.me.has_broke = 0; + fra.me.REG_size = 7; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./syntax//mmbuilder.nit:251 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:253 */ + fra.me.REG[4] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:254 */ + fra.me.REG[4] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[6] = BOX_NativeString("Error: A property "); + REGB0 = TAG_Int(18); + 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[6] = 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[6]); + if (!once_value_2) { + fra.me.REG[6] = BOX_NativeString(" is already defined in class "); + REGB0 = TAG_Int(29); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_2 = fra.me.REG[6]; + register_static_object(&once_value_2); + } else fra.me.REG[6] = once_value_2; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_3) { + fra.me.REG[6] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + 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]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:255 */ + goto label4; + } + /* ./syntax//mmbuilder.nit:257 */ + fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:260 */ + REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:261 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:262 */ + CALL_inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + } + /* ./syntax//mmbuilder.nit:265 */ + REGB0 = CALL_abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:266 */ + CALL_abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:267 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0); + } + label4: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMLocalProperty___accept_property_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 262, LOCATE_mmbuilder___MMLocalProperty___accept_property_visitor}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - return_label27: while(false); - tracehead = trace.prev; +void mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 273; + fra.me.meth = LOCATE_mmbuilder___MMLocalProperty___accept_property_visitor; + 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; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMImplicitInit___accept_property_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 269, LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor}; - val_t variable[22]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = NIT_NULL /*null*/; - variable[4] = variable[0]; - variable[4] = CALL_syntax_base___MMImplicitInit___super_inits(variable[4])(variable[4]) /*MMImplicitInit::super_inits*/; - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - 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*/; - variable[6] = variable[5]; - variable[7] = CALL_static_type___MMLocalProperty___signature( variable[6] /*p*/)( variable[6] /*p*/) /*MMLocalProperty::signature*/; - variable[7] = CALL_static_type___MMSignature___arity(variable[7])(variable[7]) /*MMSignature::arity*/; - variable[7] = TAG_Bool(UNTAG_Int(variable[7])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = TAG_Bool(( variable[3] /*base*/ == NIT_NULL /*null*/) || (( variable[3] /*base*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*base*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*base*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*base*/)( variable[3] /*base*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[3] = variable[6] /*p*/ /*base=*/; - } else { /*if*/ - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: explicit constructor needed in "), TAG_Int(38)); /*new String*/ - variable[9] = variable[8]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/; - variable[10] = variable[0]; - variable[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[10])(variable[10]) /*MMLocalProperty::local_class*/; - variable[11] = variable[10]; - variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" since both super-constructor "), TAG_Int(30)); /*new String*/ - variable[13] = variable[12]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/; - variable[14] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[3] /*base*/)( variable[3] /*base*/) /*MMLocalProperty::full_name*/; - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)); /*new String*/ - variable[17] = variable[16]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/; - variable[18] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[6] /*p*/)( variable[6] /*p*/) /*MMLocalProperty::full_name*/; - variable[19] = variable[18]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[19]) /*AbstractArray::add*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString(" have paramters"), TAG_Int(15)); /*new String*/ - variable[21] = variable[20]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[21]) /*AbstractArray::add*/; - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, NIT_NULL /*null*/, variable[7]) /*AbsSyntaxVisitor::error*/; - goto return_label28; +val_t mmbuilder___MMImplicitInit___super_init(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_mmbuilder; + fra.me.line = 279; + fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___super_init; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:279 */ + fra.me.REG[0] = ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[7];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 280; + fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor; + 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; + /* ./syntax//mmbuilder.nit:282 */ + fra.me.REG[2] = NIT_NULL; + /* ./syntax//mmbuilder.nit:283 */ + fra.me.REG[3] = CALL_syntax_base___MMImplicitInit___super_inits(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[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:284 */ + fra.me.REG[6] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 284); + } + REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]); + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); + /* ./syntax//mmbuilder.nit:284 */ + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:285 */ + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB2 = REGB1; + } + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:286 */ + fra.me.REG[2] = fra.me.REG[5]; + } else { + /* ./syntax//mmbuilder.nit:288 */ + REGB2 = TAG_Int(7); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_1) { + fra.me.REG[7] = BOX_NativeString("Error: explicit constructor needed in "); + REGB2 = TAG_Int(38); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2); + once_value_1 = fra.me.REG[7]; + register_static_object(&once_value_1); + } else fra.me.REG[7] = once_value_1; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_2) { + fra.me.REG[7] = BOX_NativeString(" since both super-constructor "); + REGB2 = TAG_Int(30); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2); + 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]); + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 288); + } + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_3) { + fra.me.REG[7] = BOX_NativeString(" and "); + REGB2 = TAG_Int(5); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2); + 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[5] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + if (!once_value_4) { + fra.me.REG[5] = BOX_NativeString(" have paramters"); + REGB2 = TAG_Int(15); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + 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[6])(fra.me.REG[6], fra.me.REG[5]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:289 */ + goto label5; + } + } + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label6; + } + } + label6: while(0); + /* ./syntax//mmbuilder.nit:293 */ + ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[2]; + /* ./syntax//mmbuilder.nit:295 */ + fra.me.REG[1] = NEW_Array_array___Array___init(); + /* ./syntax//mmbuilder.nit:296 */ + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + 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 { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB0 = REGB2; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:297 */ + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 297); + } + fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:298 */ + REGB0 = TAG_Int(0); + REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 298); + } + REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:332 */ + while(1) { + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:303 */ + fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:304 */ + REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + REGB2 = REGB1; + } + } + if (UNTAG_Bool(REGB2)) { + goto label5; + } + /* ./syntax//mmbuilder.nit:305 */ + REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 305); + } + fra.me.REG[3] = CALL_static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]); + REGB2 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_MMType, ID_MMType)) /*cast MMType*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 305); + } + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label8; + } + } + label8: while(0); + /* ./syntax//mmbuilder.nit:307 */ + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[4]); + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + label5: while(0); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___MMImplicitInit___super_init(val_t self) { - struct trace_t trace = {NULL, NULL, 268, LOCATE_mmbuilder___MMImplicitInit___super_init}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___MMImplicitInit____super_init( self) /*MMImplicitInit::_super_init*/; -} -val_t mmbuilder___MMSrcAncestor___local_class(val_t self) { - struct trace_t trace = {NULL, NULL, 304, LOCATE_mmbuilder___MMSrcAncestor___local_class}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___MMSrcAncestor____local_class( self) /*MMSrcAncestor::_local_class*/; -} -val_t mmbuilder___MMSrcAncestor___node(val_t self) { - struct trace_t trace = {NULL, NULL, 302, LOCATE_mmbuilder___MMSrcAncestor___node}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___MMSrcAncestor____node( self) /*MMSrcAncestor::_node*/; -} -void mmbuilder___MMSrcAncestor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 306, LOCATE_mmbuilder___MMSrcAncestor___init}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAncestor].i]) return; - variable[4] = variable[0]; - ATTR_mmbuilder___MMSrcAncestor____node(variable[4]) /*MMSrcAncestor::_node*/ = variable[1] /*n*/; - variable[4] = variable[0]; - ATTR_mmbuilder___MMSrcAncestor____local_class(variable[4]) /*MMSrcAncestor::_local_class*/ = variable[2] /*c*/; - return_label32: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAncestor].i] = 1; - tracehead = trace.prev; +val_t mmbuilder___MMSrcAncestor___local_class(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_mmbuilder; + fra.me.line = 315; + fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___local_class; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:315 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_mmbuilder, 315); + } + fra.me.REG[0] = ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){ + int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcAncestor].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos1]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 317; + fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___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; + /* ./syntax//mmbuilder.nit:317 */ + fra.me.REG[2] = fra.me.REG[0]; + CALL_static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table); + /* ./syntax//mmbuilder.nit:319 */ + ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; + init_table[itpos1] = 1; + return; +} +val_t mmbuilder___ClassBuilderVisitor___local_class_arity(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_mmbuilder; + fra.me.line = 330; + fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:330 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_mmbuilder, 330); + } + REGB0 = ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){ + 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_mmbuilder; + fra.me.line = 330; + fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity__eq; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./syntax//mmbuilder.nit:330 */ + ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ClassBuilderVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 326, LOCATE_mmbuilder___ClassBuilderVisitor___visit}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_mmbuilder___PNode___accept_class_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_builder*/; - return_label33: while(false); - tracehead = trace.prev; +val_t mmbuilder___ClassBuilderVisitor___formals(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_mmbuilder; + fra.me.line = 333; + fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:333 */ + fra.me.REG[0] = ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 333; + fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals__eq; + 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; + /* ./syntax//mmbuilder.nit:333 */ + ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___ClassBuilderVisitor___local_class_arity(val_t self) { - struct trace_t trace = {NULL, NULL, 320, LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity( self) /*ClassBuilderVisitor::_local_class_arity*/; -} -void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 320, LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity( self) /*ClassBuilderVisitor::_local_class_arity*/ = param0; - tracehead = trace.prev; +void mmbuilder___ClassBuilderVisitor___visit(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_mmbuilder; + fra.me.line = 336; + fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___visit; + 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; + /* ./syntax//mmbuilder.nit:336 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 336); + } + CALL_mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___ClassBuilderVisitor___formals(val_t self) { - struct trace_t trace = {NULL, NULL, 323, LOCATE_mmbuilder___ClassBuilderVisitor___formals}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___ClassBuilderVisitor____formals( self) /*ClassBuilderVisitor::_formals*/; -} -void mmbuilder___ClassBuilderVisitor___formals__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 323, LOCATE_mmbuilder___ClassBuilderVisitor___formals__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___ClassBuilderVisitor____formals( self) /*ClassBuilderVisitor::_formals*/ = param0; - tracehead = trace.prev; +void mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassBuilderVisitor].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos2]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 337; + fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___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; + /* ./syntax//mmbuilder.nit:337 */ + CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos2] = 1; return; } -void mmbuilder___ClassBuilderVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 327, LOCATE_mmbuilder___ClassBuilderVisitor___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassBuilderVisitor].i]) return; - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label34: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassBuilderVisitor].i] = 1; - tracehead = trace.prev; +void mmbuilder___ClassSpecializationBuilderVisitor___visit(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_mmbuilder; + fra.me.line = 344; + fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___visit; + 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; + /* ./syntax//mmbuilder.nit:344 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 344); + } + CALL_mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 334, LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___visit}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_mmbuilder___PNode___accept_class_specialization_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_specialization_builder*/; - return_label35: while(false); - tracehead = trace.prev; +void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos3]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 345; + fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___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; + /* ./syntax//mmbuilder.nit:345 */ + CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos3] = 1; return; } -void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 335, LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i]) return; - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label36: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i] = 1; - tracehead = trace.prev; +void mmbuilder___ClassAncestorBuilder___visit(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_mmbuilder; + fra.me.line = 352; + fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___visit; + 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; + /* ./syntax//mmbuilder.nit:352 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 352); + } + CALL_mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ClassAncestorBuilder___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 342, LOCATE_mmbuilder___ClassAncestorBuilder___visit}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_mmbuilder___PNode___accept_class_ancestor_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_ancestor_builder*/; - return_label37: while(false); - tracehead = trace.prev; +void mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassAncestorBuilder].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos4]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 353; + fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___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; + /* ./syntax//mmbuilder.nit:353 */ + CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos4] = 1; return; } -void mmbuilder___ClassAncestorBuilder___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 343, LOCATE_mmbuilder___ClassAncestorBuilder___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassAncestorBuilder].i]) return; - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label38: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassAncestorBuilder].i] = 1; - tracehead = trace.prev; +void mmbuilder___ClassVerifierVisitor___visit(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_mmbuilder; + fra.me.line = 360; + fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___visit; + 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; + /* ./syntax//mmbuilder.nit:360 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 360); + } + CALL_mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ClassVerifierVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 350, LOCATE_mmbuilder___ClassVerifierVisitor___visit}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_mmbuilder___PNode___accept_class_verifier( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_verifier*/; - return_label39: while(false); - tracehead = trace.prev; +void mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassVerifierVisitor].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos5]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 361; + fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___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; + /* ./syntax//mmbuilder.nit:361 */ + CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos5] = 1; return; } -void mmbuilder___ClassVerifierVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 351, LOCATE_mmbuilder___ClassVerifierVisitor___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassVerifierVisitor].i]) return; - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label40: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassVerifierVisitor].i] = 1; - tracehead = trace.prev; +void mmbuilder___PropertyBuilderVisitor___visit(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_mmbuilder; + fra.me.line = 371; + fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___visit; + 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; + /* ./syntax//mmbuilder.nit:371 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 371); + } + CALL_mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PropertyBuilderVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 361, LOCATE_mmbuilder___PropertyBuilderVisitor___visit}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_mmbuilder___PNode___accept_property_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_property_builder*/; - return_label41: while(false); - tracehead = trace.prev; +void mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos6]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 372; + fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___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; + /* ./syntax//mmbuilder.nit:372 */ + CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos6] = 1; return; } -void mmbuilder___PropertyBuilderVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 362, LOCATE_mmbuilder___PropertyBuilderVisitor___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i]) return; - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label42: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i] = 1; - tracehead = trace.prev; +val_t mmbuilder___PropertyVerifierVisitor___signature_builder(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_mmbuilder; + fra.me.line = 380; + fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:380 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_mmbuilder, 380); + } + fra.me.REG[0] = ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 380; + fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder__eq; + 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; + /* ./syntax//mmbuilder.nit:380 */ + ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PropertyVerifierVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 373, LOCATE_mmbuilder___PropertyVerifierVisitor___visit}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_mmbuilder___PNode___accept_property_verifier( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_property_verifier*/; - return_label43: while(false); - tracehead = trace.prev; +void mmbuilder___PropertyVerifierVisitor___visit(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_mmbuilder; + fra.me.line = 383; + fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___visit; + 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; + /* ./syntax//mmbuilder.nit:383 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 383); + } + CALL_mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___PropertyVerifierVisitor___signature_builder(val_t self) { - struct trace_t trace = {NULL, NULL, 370, LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder( self) /*PropertyVerifierVisitor::_signature_builder*/; -} -void mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 370, LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder( self) /*PropertyVerifierVisitor::_signature_builder*/ = param0; - tracehead = trace.prev; +void mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + if (init_table[itpos7]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 385; + fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___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; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./syntax//mmbuilder.nit:385 */ + fra.me.REG[3] = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:387 */ + CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + /* ./syntax//mmbuilder.nit:388 */ + fra.me.REG[2] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); + ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2]; + stack_frame_head = fra.me.prev; + init_table[itpos7] = 1; return; } -void mmbuilder___PropertyVerifierVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 375, LOCATE_mmbuilder___PropertyVerifierVisitor___init}; - val_t variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i]) return; - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - variable[4] = variable[0]; - variable[5] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); /*new SignatureBuilder*/ - ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(variable[4]) /*PropertyVerifierVisitor::_signature_builder*/ = variable[5]; - return_label44: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i] = 1; - tracehead = trace.prev; +val_t mmbuilder___SignatureBuilder___params(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_mmbuilder; + fra.me.line = 394; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:394 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_params", LOCATE_mmbuilder, 394); + } + fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 394; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params__eq; + 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; + /* ./syntax//mmbuilder.nit:394 */ + ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___params(val_t self) { - struct trace_t trace = {NULL, NULL, 384, LOCATE_mmbuilder___SignatureBuilder___params}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___SignatureBuilder____params( self) /*SignatureBuilder::_params*/; -} -void mmbuilder___SignatureBuilder___params__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 384, LOCATE_mmbuilder___SignatureBuilder___params__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___SignatureBuilder____params( self) /*SignatureBuilder::_params*/ = param0; - tracehead = trace.prev; +val_t mmbuilder___SignatureBuilder___untyped_params(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_mmbuilder; + fra.me.line = 397; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:397 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_mmbuilder, 397); + } + fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 397; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params__eq; + 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; + /* ./syntax//mmbuilder.nit:397 */ + ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___untyped_params(val_t self) { - struct trace_t trace = {NULL, NULL, 387, LOCATE_mmbuilder___SignatureBuilder___untyped_params}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___SignatureBuilder____untyped_params( self) /*SignatureBuilder::_untyped_params*/; -} -void mmbuilder___SignatureBuilder___untyped_params__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 387, LOCATE_mmbuilder___SignatureBuilder___untyped_params__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___SignatureBuilder____untyped_params( self) /*SignatureBuilder::_untyped_params*/ = param0; - tracehead = trace.prev; +val_t mmbuilder___SignatureBuilder___vararg_rank(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_mmbuilder; + fra.me.line = 400; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:400 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_mmbuilder, 400); + } + REGB0 = ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +void mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){ + 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_mmbuilder; + fra.me.line = 400; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank__eq; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./syntax//mmbuilder.nit:400 */ + ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___vararg_rank(val_t self) { - struct trace_t trace = {NULL, NULL, 390, LOCATE_mmbuilder___SignatureBuilder___vararg_rank}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___SignatureBuilder____vararg_rank( self) /*SignatureBuilder::_vararg_rank*/; -} -void mmbuilder___SignatureBuilder___vararg_rank__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 390, LOCATE_mmbuilder___SignatureBuilder___vararg_rank__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___SignatureBuilder____vararg_rank( self) /*SignatureBuilder::_vararg_rank*/ = param0; - tracehead = trace.prev; +val_t mmbuilder___SignatureBuilder___closure_decls(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_mmbuilder; + fra.me.line = 403; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:403 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_mmbuilder, 403); + } + fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 403; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls__eq; + 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; + /* ./syntax//mmbuilder.nit:403 */ + ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___closure_decls(val_t self) { - struct trace_t trace = {NULL, NULL, 393, LOCATE_mmbuilder___SignatureBuilder___closure_decls}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___SignatureBuilder____closure_decls( self) /*SignatureBuilder::_closure_decls*/; -} -void mmbuilder___SignatureBuilder___closure_decls__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 393, LOCATE_mmbuilder___SignatureBuilder___closure_decls__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___SignatureBuilder____closure_decls( self) /*SignatureBuilder::_closure_decls*/ = param0; - tracehead = trace.prev; +val_t mmbuilder___SignatureBuilder___has_error_occured(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_mmbuilder; + fra.me.line = 406; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:406 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_mmbuilder, 406); + } + REGB0 = ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +void mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){ + 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_mmbuilder; + fra.me.line = 406; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured__eq; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./syntax//mmbuilder.nit:406 */ + ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___signature(val_t self) { - struct trace_t trace = {NULL, NULL, 396, LOCATE_mmbuilder___SignatureBuilder___signature}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___SignatureBuilder____signature( self) /*SignatureBuilder::_signature*/; -} -void mmbuilder___SignatureBuilder___signature__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 396, LOCATE_mmbuilder___SignatureBuilder___signature__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___SignatureBuilder____signature( self) /*SignatureBuilder::_signature*/ = param0; - tracehead = trace.prev; +val_t mmbuilder___SignatureBuilder___signature(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_mmbuilder; + fra.me.line = 409; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:409 */ + fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 409; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature__eq; + 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; + /* ./syntax//mmbuilder.nit:409 */ + ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___SignatureBuilder___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_mmbuilder___SignatureBuilder___init}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; +void mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){ + int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_SignatureBuilder].i; + struct {struct stack_frame_t me;} fra; + val_t tmp; + if (init_table[itpos8]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___init; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + stack_frame_head = fra.me.prev; + init_table[itpos8] = 1; return; } -void mmbuilder___PNode___accept_class_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 403, LOCATE_mmbuilder___PNode___accept_class_builder}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label45: while(false); - tracehead = trace.prev; +void mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 416; + fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_builder; + 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; + /* ./syntax//mmbuilder.nit:416 */ + CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PNode___accept_class_specialization_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 404, LOCATE_mmbuilder___PNode___accept_class_specialization_builder}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label46: while(false); - tracehead = trace.prev; +void mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 417; + fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_specialization_builder; + 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; + /* ./syntax//mmbuilder.nit:417 */ + CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PNode___accept_class_ancestor_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 405, LOCATE_mmbuilder___PNode___accept_class_ancestor_builder}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label47: while(false); - tracehead = trace.prev; +void mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 418; + fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_ancestor_builder; + 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; + /* ./syntax//mmbuilder.nit:418 */ + CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PNode___accept_class_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 406, LOCATE_mmbuilder___PNode___accept_class_verifier}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label48: while(false); - tracehead = trace.prev; +void mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 419; + fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_verifier; + 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; + /* ./syntax//mmbuilder.nit:419 */ + CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PNode___accept_property_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 407, LOCATE_mmbuilder___PNode___accept_property_builder}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label49: while(false); - tracehead = trace.prev; +void mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 420; + fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_builder; + 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; + /* ./syntax//mmbuilder.nit:420 */ + CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PNode___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 408, LOCATE_mmbuilder___PNode___accept_property_verifier}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label50: while(false); - tracehead = trace.prev; +void mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 421; + fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_verifier; + 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; + /* ./syntax//mmbuilder.nit:421 */ + CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___AModule___import_super_modules(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 412, LOCATE_mmbuilder___AModule___import_super_modules}; - static val_t once_value_53; static int once_bool_53; /* Once value for variable[8]*/ - val_t variable[14]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[5] = NEW_Array_array___Array___init(); /*new Array[Symbol]*/ - variable[4] = variable[5]; - variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, Int]*/ - variable[5] = variable[6]; - variable[6] = NIT_NULL /*null*/; - variable[7] = variable[0]; - variable[7] = CALL_parser_nodes___AModule___n_imports(variable[7])(variable[7]) /*AModule::n_imports*/; - variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*List::iterator*/; - while (true) { /*for*/ - variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ListIterator::is_ok*/; - if (!UNTAG_Bool(variable[8])) break; /*for*/ - variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ListIterator::item*/; - variable[9] = variable[8]; - variable[11] = CALL_mmbuilder___PImport___module_name( variable[9] /*i*/)( variable[9] /*i*/) /*PImport::module_name*/; - variable[10] = variable[11]; - variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*n*/ == NIT_NULL /*null*/) || (( variable[10] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*n*/)( variable[10] /*n*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[11])) { /*if*/ - CALL_abstract_collection___SimpleCollection___add( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/, variable[10] /*n*/) /*AbstractArray::add*/; - variable[11] = CALL_mmbuilder___PImport___visibility_level( variable[9] /*i*/)( variable[9] /*i*/) /*PImport::visibility_level*/; - CALL_abstract_collection___Map_____braeq( variable[5] /*module_visibility*/)( variable[5] /*module_visibility*/, variable[10] /*n*/, variable[11]) /*HashMap::[]=*/; - } else { /*if*/ - variable[6] = variable[9] /*i*/ /*no_import=*/; - } - continue_52: while(0); - CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ListIterator::next*/; - } - break_52: while(0); - variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*no_import*/ == NIT_NULL /*null*/) || (( variable[6] /*no_import*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*no_import*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*no_import*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*no_import*/)( variable[6] /*no_import*/, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = CALL_abstract_collection___Collection___is_empty( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArray::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/ - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[9] = variable[8]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/; - variable[10] = CALL_parser_prod___PNode___locate( variable[6] /*no_import*/)( variable[6] /*no_import*/) /*Prod::locate*/; - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(": Error: Top modules cannot import other modules."), TAG_Int(49)); /*new String*/ - variable[13] = variable[12]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/; - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_mmloader___ToolContext___error( variable[1] /*tc*/)( variable[1] /*tc*/, variable[7]) /*ToolContext::error*/; - } - } else { /*if*/ - variable[7] = CALL_abstract_collection___Collection___is_empty( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArray::is_empty*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - if (once_bool_53) variable[8] = once_value_53; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("standard"), TAG_Int(8)); /*new String*/ - variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/; - once_value_53 = variable[8]; - once_bool_53 = true; +void mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; + val_t REGB0; + val_t REGB1; + val_t 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_mmbuilder; + fra.me.line = 425; + fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules; + fra.me.has_broke = 0; + fra.me.REG_size = 7; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./syntax//mmbuilder.nit:429 */ + fra.me.REG[3] = NEW_Array_array___Array___init(); + /* ./syntax//mmbuilder.nit:430 */ + fra.me.REG[4] = NEW_HashMap_hash_collection___HashMap___init(); + /* ./syntax//mmbuilder.nit:431 */ + fra.me.REG[5] = NIT_NULL; + /* ./syntax//mmbuilder.nit:432 */ + fra.me.REG[0] = CALL_parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___AModule___import_super_modules_1)); + /* ./syntax//mmbuilder.nit:441 */ + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:442 */ + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:443 */ + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 443); } - variable[7] = variable[8]; - CALL_abstract_collection___SimpleCollection___add( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/, variable[7] /*stdname*/) /*AbstractArray::add*/; - CALL_abstract_collection___Map_____braeq( variable[5] /*module_visibility*/)( variable[5] /*module_visibility*/, variable[7] /*stdname*/, TAG_Int(1)) /*HashMap::[]=*/; - } - } - CALL_mmloader___MMModule___import_supers_modules( variable[2] /*mod*/)( variable[2] /*mod*/, variable[4] /*module_names_to_import*/) /*MMModule::import_supers_modules*/; - variable[7] = CALL_abstract_collection___Collection___iterator( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[8])) break; /*for*/ - variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/; - variable[9] = variable[8]; - variable[11] = CALL_abstract_collection___Map_____bra( variable[5] /*module_visibility*/)( variable[5] /*module_visibility*/, variable[9] /*mname*/) /*CoupleMap::[]*/; - variable[10] = variable[11]; - variable[12] = CALL_mmloader___ToolContext___get_module( variable[1] /*tc*/)( variable[1] /*tc*/, variable[9] /*mname*/, variable[2] /*mod*/) /*ToolContext::get_module*/; - variable[11] = variable[12]; - CALL_abstractmetamodel___MMModule___add_super_module( variable[2] /*mod*/)( variable[2] /*mod*/, variable[11] /*m*/, variable[10] /*level*/) /*MMModule::add_super_module*/; - continue_54: while(0); - CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/; - } - break_54: while(0); - return_label51: while(false); - tracehead = trace.prev; + fra.me.REG[5] = CALL_parser_nodes___ANode___location(fra.me.REG[5])(fra.me.REG[5]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules."); + REGB0 = TAG_Int(47); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[0]); + } + } else { + /* ./syntax//mmbuilder.nit:445 */ + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:446 */ + if (!once_value_3) { + if (!once_value_4) { + fra.me.REG[0] = BOX_NativeString("standard"); + REGB0 = TAG_Int(8); + 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]; + fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); + once_value_3 = fra.me.REG[0]; + register_static_object(&once_value_3); + } else fra.me.REG[0] = once_value_3; + fra.me.REG[0] = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:447 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:448 */ + REGB0 = TAG_Int(1); + CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], REGB0); + } + } + /* ./syntax//mmbuilder.nit:451 */ + CALL_mmloader___MMModule___import_supers_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:454 */ + fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + REGB1 = fra.me.REG[6]; + /* ./syntax//mmbuilder.nit:455 */ + fra.me.REG[5] = CALL_mmloader___ToolContext___get_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:456 */ + CALL_abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5], REGB1); + /* ./../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 label5; + } + } + label5: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___APackagedecl___accept_class_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 449, LOCATE_mmbuilder___APackagedecl___accept_class_builder}; - val_t variable[15]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = CALL_parser_nodes___APackagedecl___n_id(variable[3])(variable[3]) /*APackagedecl::n_id*/; - variable[3] = CALL_syntax_base___Token___to_symbol(variable[3])(variable[3]) /*Token::to_symbol*/; - variable[4] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - variable[4] = CALL_abstractmetamodel___MMModule___name(variable[4])(variable[4]) /*MMModule::name*/; - variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/))))))); - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[3] = variable[0]; - variable[3] = CALL_parser_nodes___APackagedecl___n_id(variable[3])(variable[3]) /*APackagedecl::n_id*/; - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Package name missmatch between "), TAG_Int(38)); /*new String*/ - variable[6] = variable[5]; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/; - variable[7] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - variable[7] = CALL_abstractmetamodel___MMModule___name(variable[7])(variable[7]) /*MMModule::name*/; - variable[8] = variable[7]; - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/; - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)); /*new String*/ - variable[10] = variable[9]; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/; - variable[11] = variable[0]; - variable[11] = CALL_parser_nodes___APackagedecl___n_id(variable[11])(variable[11]) /*APackagedecl::n_id*/; - variable[11] = CALL_syntax_base___Token___to_symbol(variable[11])(variable[11]) /*Token::to_symbol*/; - variable[12] = variable[11]; - variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[12]) /*AbstractArray::add*/; - variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable[14] = variable[13]; - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[14]) /*AbstractArray::add*/; - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/; - } - return_label55: while(false); - tracehead = trace.prev; + void OC_mmbuilder___AModule___import_super_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; 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_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules; + 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; + /* ./syntax//mmbuilder.nit:433 */ + fra.me.REG[1] = CALL_mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:434 */ + 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; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:435 */ + CALL_abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:436 */ + REGB0 = CALL_mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Map_____braeq(closctx->REG[4])(closctx->REG[4], fra.me.REG[1], REGB0); + } else { + /* ./syntax//mmbuilder.nit:438 */ + closctx->REG[5] = fra.me.REG[0]; + } + stack_frame_head = fra.me.prev; + return; + } +void mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 462; + fra.me.meth = LOCATE_mmbuilder___AModuledecl___accept_class_builder; + 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; + /* ./syntax//mmbuilder.nit:464 */ + fra.me.REG[2] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + REGB0 = REGB1; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:465 */ + fra.me.REG[3] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Int(5); + fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("Error: Module name missmatch between "); + REGB0 = TAG_Int(37); + 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[2])(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + if (!once_value_2) { + fra.me.REG[4] = BOX_NativeString(" and "); + REGB0 = TAG_Int(5); + 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[2])(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[0] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + if (!once_value_3) { + fra.me.REG[0] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_3 = fra.me.REG[0]; + register_static_object(&once_value_3); + } else fra.me.REG[0] = once_value_3; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]); + } + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___PImport___module_name(val_t self) { - struct trace_t trace = {NULL, NULL, 458, LOCATE_mmbuilder___PImport___module_name}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 458); - nit_exit(1); - tracehead = trace.prev; +val_t mmbuilder___AImport___module_name(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_mmbuilder; + fra.me.line = 471; + fra.me.meth = LOCATE_mmbuilder___AImport___module_name; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:471 */ + nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 471); + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmbuilder___PImport___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 461, LOCATE_mmbuilder___PImport___visibility_level}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 461); - nit_exit(1); - tracehead = trace.prev; +val_t mmbuilder___AImport___visibility_level(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_mmbuilder; + fra.me.line = 474; + fra.me.meth = LOCATE_mmbuilder___AImport___visibility_level; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:474 */ + nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 474); + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmbuilder___AImport___module_name(val_t self) { - struct trace_t trace = {NULL, NULL, 465, LOCATE_mmbuilder___AImport___module_name}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = CALL_parser_nodes___AImport___n_id(variable[2])(variable[2]) /*AImport::n_id*/; - variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/; - variable[1] = variable[2]; - goto return_label56; - return_label56: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AImport___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 469, LOCATE_mmbuilder___AImport___visibility_level}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = CALL_parser_nodes___AImport___n_visibility(variable[2])(variable[2]) /*AImport::n_visibility*/; - variable[2] = CALL_mmbuilder___PVisibility___level(variable[2])(variable[2]) /*PVisibility::level*/; - variable[1] = variable[2]; - goto return_label57; - return_label57: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___ANoImport___module_name(val_t self) { - struct trace_t trace = {NULL, NULL, 475, LOCATE_mmbuilder___ANoImport___module_name}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = NIT_NULL /*null*/; - goto return_label58; - return_label58: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 482, LOCATE_mmbuilder___PVisibility___level}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 482); - nit_exit(1); - tracehead = trace.prev; +val_t mmbuilder___AStdImport___module_name(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_mmbuilder; + fra.me.line = 478; + fra.me.meth = LOCATE_mmbuilder___AStdImport___module_name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:480 */ + fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_id(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___AStdImport___visibility_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_mmbuilder; + fra.me.line = 482; + fra.me.meth = LOCATE_mmbuilder___AStdImport___visibility_level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:484 */ + fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___ANoImport___module_name(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_mmbuilder; + fra.me.line = 488; + fra.me.meth = LOCATE_mmbuilder___ANoImport___module_name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:490 */ + fra.me.REG[0] = NIT_NULL; + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___AVisibility___level(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_mmbuilder; + fra.me.line = 495; + fra.me.meth = LOCATE_mmbuilder___AVisibility___level; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:495 */ + nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 495); + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmbuilder___APublicVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 486, LOCATE_mmbuilder___APublicVisibility___level}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Int(1); - goto return_label59; - return_label59: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AProtectedVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 489, LOCATE_mmbuilder___AProtectedVisibility___level}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Int(2); - goto return_label60; - return_label60: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___APrivateVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 492, LOCATE_mmbuilder___APrivateVisibility___level}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Int(3); - goto return_label61; - return_label61: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AIntrudeVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 495, LOCATE_mmbuilder___AIntrudeVisibility___level}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Int(0); - goto return_label62; - return_label62: while(false); - tracehead = trace.prev; - return variable[1]; -} -void mmbuilder___PClassdef___accept_abs_syntax_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 550, LOCATE_mmbuilder___PClassdef___accept_abs_syntax_visitor}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = ATTR_mmbuilder___PClassdef____local_class(variable[3]) /*PClassdef::_local_class*/; - CALL_syntax_base___AbsSyntaxVisitor___local_class__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_class=*/; - CALL_SUPER_mmbuilder___PClassdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super PClassdef::accept_abs_syntax_visitor*/; - CALL_syntax_base___AbsSyntaxVisitor___local_class__eq( variable[1] /*v*/)( variable[1] /*v*/, NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_class=*/; - return_label63: while(false); - tracehead = trace.prev; - return; +val_t mmbuilder___APublicVisibility___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_mmbuilder; + fra.me.line = 499; + fra.me.meth = LOCATE_mmbuilder___APublicVisibility___level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:499 */ + REGB0 = TAG_Int(1); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AProtectedVisibility___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_mmbuilder; + fra.me.line = 502; + fra.me.meth = LOCATE_mmbuilder___AProtectedVisibility___level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:502 */ + REGB0 = TAG_Int(2); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___APrivateVisibility___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_mmbuilder; + fra.me.line = 505; + fra.me.meth = LOCATE_mmbuilder___APrivateVisibility___level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:505 */ + REGB0 = TAG_Int(3); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AIntrudeVisibility___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_mmbuilder; + fra.me.line = 508; + fra.me.meth = LOCATE_mmbuilder___AIntrudeVisibility___level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:508 */ + REGB0 = TAG_Int(0); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AClassdef___local_class(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_mmbuilder; + fra.me.line = 513; + fra.me.meth = LOCATE_mmbuilder___AClassdef___local_class; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:513 */ + fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 513); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___AClassdef___name(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_mmbuilder; + fra.me.line = 516; + fra.me.meth = LOCATE_mmbuilder___AClassdef___name; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:516 */ + nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 516); + stack_frame_head = fra.me.prev; + return NIT_NULL; } -val_t mmbuilder___PClassdef___local_class(val_t self) { - struct trace_t trace = {NULL, NULL, 500, LOCATE_mmbuilder___PClassdef___local_class}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___PClassdef____local_class( self) /*PClassdef::_local_class*/; -} -void mmbuilder___PClassdef___accept_class_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 511, LOCATE_mmbuilder___PClassdef___accept_class_builder}; - val_t variable[18]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - /*variable[3] is variable local_class*/ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - variable[4] = variable[5]; - variable[6] = CALL_syntax_base___MMSrcModule___src_local_classes( variable[4] /*mod*/)( variable[4] /*mod*/) /*MMSrcModule::src_local_classes*/; - variable[5] = variable[6]; - variable[6] = variable[0]; - variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/; - variable[6] = CALL_abstract_collection___Map___has_key( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6]) /*Map::has_key*/; - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = variable[0]; - variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/; - variable[6] = CALL_abstract_collection___Map_____bra( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6]) /*Map::[]*/; - variable[3] = variable[6] /*local_class=*/; - variable[6] = variable[0]; - variable[6] = TAG_Bool((variable[6]==NIT_NULL) || VAL_ISA(variable[6], COLOR_AClassdef, ID_AClassdef)) /*cast AClassdef*/; - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = variable[0]; - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: A class "), TAG_Int(15)); /*new String*/ - variable[9] = variable[8]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/; - variable[10] = variable[0]; - variable[10] = CALL_mmbuilder___PClassdef___name(variable[10])(variable[10]) /*AClassdef::name*/; - variable[11] = variable[10]; - variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/; - variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is already defined at line "), TAG_Int(28)); /*new String*/ - variable[13] = variable[12]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/; - variable[14] = CALL_syntax_base___MMSrcLocalClass___nodes( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/; - variable[14] = CALL_abstract_collection___Collection___first(variable[14])(variable[14]) /*IndexedCollection::first*/; - variable[14] = CALL_parser_prod___Prod___first_token(variable[14])(variable[14]) /*Prod::first_token*/; - variable[14] = CALL_lexer___Token___line(variable[14])(variable[14]) /*Token::line*/; - variable[15] = variable[14]; - variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/; - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[17] = variable[16]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/; - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/; - goto return_label64; - } - variable[6] = CALL_syntax_base___MMSrcLocalClass___nodes( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/; - variable[7] = variable[0]; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - } else { /*if*/ - variable[6] = variable[0]; - variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/; - variable[7] = variable[0]; - variable[8] = variable[0]; - variable[8] = CALL_mmbuilder___PClassdef___arity(variable[8])(variable[8]) /*PClassdef::arity*/; - variable[9] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(variable[6], variable[7], variable[8]); /*new MMSrcLocalClass*/ - variable[6] = variable[9]; - variable[3] = variable[6] /*local_class=*/; - CALL_abstractmetamodel___MMModule___add_local_class( variable[4] /*mod*/)( variable[4] /*mod*/, variable[3] /*local_class*/) /*MMModule::add_local_class*/; - variable[6] = variable[0]; - variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/; - CALL_abstract_collection___Map_____braeq( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6], variable[3] /*local_class*/) /*Map::[]=*/; - variable[7] = variable[0]; - variable[7] = CALL_mmbuilder___PClassdef___name(variable[7])(variable[7]) /*PClassdef::name*/; - variable[7] = CALL_abstractmetamodel___MMModule___global_class_named( variable[4] /*mod*/)( variable[4] /*mod*/, variable[7]) /*MMModule::global_class_named*/; - variable[6] = variable[7]; - variable[7] = TAG_Bool(( variable[6] /*g*/ == NIT_NULL /*null*/) || (( variable[6] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*g*/)( variable[6] /*g*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - CALL_abstractmetamodel___MMLocalClass___new_global( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMLocalClass::new_global*/; - variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMLocalClass::global*/; - variable[6] = variable[7] /*g=*/; - } else { /*if*/ - CALL_abstractmetamodel___MMLocalClass___set_global( variable[3] /*local_class*/)( variable[3] /*local_class*/, variable[6] /*g*/) /*MMLocalClass::set_global*/; - } - } - variable[6] = variable[0]; - ATTR_mmbuilder___PClassdef____local_class(variable[6]) /*PClassdef::_local_class*/ = variable[3] /*local_class*/; - CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq( variable[1] /*v*/)( variable[1] /*v*/, TAG_Int(0)) /*ClassBuilderVisitor::local_class_arity=*/; - variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, MMTypeFormalParameter]*/ - CALL_mmbuilder___ClassBuilderVisitor___formals__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*ClassBuilderVisitor::formals=*/; - CALL_SUPER_mmbuilder___PClassdef___accept_class_builder(variable[0])(variable[0], variable[1]) /*super PClassdef::accept_class_builder*/; - variable[6] = variable[0]; - variable[6] = ATTR_mmbuilder___PClassdef____local_class(variable[6]) /*PClassdef::_local_class*/; - variable[7] = CALL_mmbuilder___ClassBuilderVisitor___formals( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::formals*/; - CALL_syntax_base___MMSrcLocalClass___formal_dict__eq(variable[6])(variable[6], variable[7]) /*MMSrcLocalClass::formal_dict=*/; - CALL_mmbuilder___ClassBuilderVisitor___formals__eq( variable[1] /*v*/)( variable[1] /*v*/, NIT_NULL /*null*/) /*ClassBuilderVisitor::formals=*/; - return_label64: while(false); - tracehead = trace.prev; +val_t mmbuilder___AClassdef___arity(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_mmbuilder; + fra.me.line = 519; + fra.me.meth = LOCATE_mmbuilder___AClassdef___arity; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:520 */ + REGB0 = TAG_Int(0); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AClassdef___visibility_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_mmbuilder; + fra.me.line = 522; + fra.me.meth = LOCATE_mmbuilder___AClassdef___visibility_level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:523 */ + REGB0 = TAG_Int(1); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +void mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[8];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 525; + fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_class_builder; + fra.me.has_broke = 0; + fra.me.REG_size = 9; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[7] = NIT_NULL; + fra.me.REG[8] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./syntax//mmbuilder.nit:525 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:528 */ + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:529 */ + fra.me.REG[5] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:530 */ + fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:531 */ + fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:532 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AStdClassdef, ID_AStdClassdef)) /*cast AStdClassdef*/; + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:534 */ + REGB0 = TAG_Int(5); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[8] = BOX_NativeString("Error: A class "); + REGB0 = TAG_Int(15); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_1 = fra.me.REG[8]; + register_static_object(&once_value_1); + } else fra.me.REG[8] = once_value_1; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[8] = 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[8]); + if (!once_value_2) { + fra.me.REG[8] = BOX_NativeString(" is already defined at line "); + REGB0 = TAG_Int(28); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_2 = fra.me.REG[8]; + register_static_object(&once_value_2); + } else fra.me.REG[8] = once_value_2; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]); + REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 534); + } + fra.me.REG[8] = CALL_parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]); + REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[8] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_3) { + fra.me.REG[8] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0); + once_value_3 = fra.me.REG[8]; + register_static_object(&once_value_3); + } else fra.me.REG[8] = once_value_3; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:535 */ + goto label4; + } + /* ./syntax//mmbuilder.nit:538 */ + fra.me.REG[7] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:539 */ + while(1) { + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 539); + } + fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]); + REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 539); + } + fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[7] = fra.me.REG[8]; + } else { + goto label5; + } + } + label5: while(0); + /* ./syntax//mmbuilder.nit:540 */ + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 540); + } + CALL_syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]); + } else { + /* ./syntax//mmbuilder.nit:542 */ + fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[7] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0); + fra.me.REG[6] = fra.me.REG[7]; + /* ./syntax//mmbuilder.nit:543 */ + fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:544 */ + fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:545 */ + CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[6])(fra.me.REG[6]); + } else { + /* ./syntax//mmbuilder.nit:547 */ + fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[7] = CALL_abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + CALL_abstractmetamodel___MMLocalClass___set_global(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + } + } + /* ./syntax//mmbuilder.nit:551 */ + ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6]; + /* ./syntax//mmbuilder.nit:552 */ + REGB0 = TAG_Int(0); + CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0); + /* ./syntax//mmbuilder.nit:553 */ + fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]); + CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:556 */ + CALL_SUPER_mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:559 */ + CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + label4: while(0); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___PClassdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 502, LOCATE_mmbuilder___PClassdef___name}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 502); - nit_exit(1); - tracehead = trace.prev; - return NIT_NULL; +void mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 562; + fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_abs_syntax_visitor; + 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; + /* ./syntax//mmbuilder.nit:562 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:564 */ + fra.me.REG[2] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:565 */ + CALL_SUPER_mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:566 */ + CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + stack_frame_head = fra.me.prev; + return; } -val_t mmbuilder___PClassdef___arity(val_t self) { - struct trace_t trace = {NULL, NULL, 505, LOCATE_mmbuilder___PClassdef___arity}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Int(0); - goto return_label65; - return_label65: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClassdef___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 508, LOCATE_mmbuilder___PClassdef___visibility_level}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Int(1); - goto return_label66; - return_label66: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClasskind___is_interface(val_t self) { - struct trace_t trace = {NULL, NULL, 559, LOCATE_mmbuilder___PClasskind___is_interface}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Bool(false); - goto return_label67; - return_label67: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClasskind___is_universal(val_t self) { - struct trace_t trace = {NULL, NULL, 560, LOCATE_mmbuilder___PClasskind___is_universal}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Bool(false); - goto return_label68; - return_label68: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClasskind___is_abstract(val_t self) { - struct trace_t trace = {NULL, NULL, 561, LOCATE_mmbuilder___PClasskind___is_abstract}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Bool(false); - goto return_label69; - return_label69: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AInterfaceClasskind___is_interface(val_t self) { - struct trace_t trace = {NULL, NULL, 565, LOCATE_mmbuilder___AInterfaceClasskind___is_interface}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Bool(true); - goto return_label70; - return_label70: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AUniversalClasskind___is_universal(val_t self) { - struct trace_t trace = {NULL, NULL, 568, LOCATE_mmbuilder___AUniversalClasskind___is_universal}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Bool(true); - goto return_label71; - return_label71: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AAbstractClasskind___is_abstract(val_t self) { - struct trace_t trace = {NULL, NULL, 571, LOCATE_mmbuilder___AAbstractClasskind___is_abstract}; - val_t variable[2]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = TAG_Bool(true); - goto return_label72; - return_label72: while(false); - tracehead = trace.prev; - return variable[1]; -} -void mmbuilder___AClassdef___accept_class_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 583, LOCATE_mmbuilder___AClassdef___accept_class_verifier}; - val_t variable[20]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___AClassdef___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super AClassdef::accept_class_verifier*/; - variable[4] = variable[0]; - variable[4] = ATTR_mmbuilder___PClassdef____local_class(variable[4]) /*PClassdef::_local_class*/; - variable[4] = CALL_abstractmetamodel___MMLocalClass___global(variable[4])(variable[4]) /*MMLocalClass::global*/; - variable[3] = variable[4]; - variable[4] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/; - variable[5] = variable[0]; - variable[5] = ATTR_mmbuilder___PClassdef____local_class(variable[5]) /*PClassdef::_local_class*/; - variable[4] = TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[5]) /*Object::==*/))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[4] = CALL_mmbuilder___PClassdef___visibility_level(variable[4])(variable[4]) /*AClassdef::visibility_level*/; - CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::visibility_level=*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/; - variable[4] = CALL_mmbuilder___PClasskind___is_interface(variable[4])(variable[4]) /*PClasskind::is_interface*/; - CALL_abstractmetamodel___MMGlobalClass___is_interface__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_interface=*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/; - variable[4] = CALL_mmbuilder___PClasskind___is_abstract(variable[4])(variable[4]) /*PClasskind::is_abstract*/; - CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_abstract=*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/; - variable[4] = CALL_mmbuilder___PClasskind___is_universal(variable[4])(variable[4]) /*PClasskind::is_universal*/; - CALL_abstractmetamodel___MMGlobalClass___is_universal__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_universal=*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AClassdef___n_kwredef(variable[4])(variable[4]) /*AClassdef::n_kwredef*/; - variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: No class "), TAG_Int(22)); /*new String*/ - variable[7] = variable[6]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[8] = CALL_mmbuilder___PClassdef___name(variable[8])(variable[8]) /*AClassdef::name*/; - variable[9] = variable[8]; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is imported. Remove the redef keyword to define a new class."), TAG_Int(61)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/; - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/; - } - variable[4] = variable[0]; - variable[4] = ATTR_mmbuilder___PClassdef____local_class(variable[4]) /*PClassdef::_local_class*/; - variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/; - variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[4])(variable[4]) /*PartialOrderElement::direct_greaters*/; - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - 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*/; - variable[6] = variable[5]; - variable[8] = CALL_abstractmetamodel___MMLocalClass___global( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::global*/; - variable[7] = variable[8]; - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[0]; - variable[12] = CALL_mmbuilder___PClassdef___name(variable[12])(variable[12]) /*AClassdef::name*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/; - variable[17] = variable[16]; - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[19] = variable[18]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_interface*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[0]; - variable[12] = CALL_mmbuilder___PClassdef___name(variable[12])(variable[12]) /*AClassdef::name*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise class "), TAG_Int(25)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/; - variable[17] = variable[16]; - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[19] = variable[18]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } +val_t mmbuilder___AClasskind___is_interface(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_mmbuilder; + fra.me.line = 571; + fra.me.meth = LOCATE_mmbuilder___AClasskind___is_interface; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:571 */ + REGB0 = TAG_Bool(false); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AClasskind___is_enum(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_mmbuilder; + fra.me.line = 572; + fra.me.meth = LOCATE_mmbuilder___AClasskind___is_enum; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:572 */ + REGB0 = TAG_Bool(false); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AClasskind___is_abstract(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_mmbuilder; + fra.me.line = 573; + fra.me.meth = LOCATE_mmbuilder___AClasskind___is_abstract; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:573 */ + REGB0 = TAG_Bool(false); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AInterfaceClasskind___is_interface(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_mmbuilder; + fra.me.line = 577; + fra.me.meth = LOCATE_mmbuilder___AInterfaceClasskind___is_interface; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:577 */ + REGB0 = TAG_Bool(true); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AEnumClasskind___is_enum(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_mmbuilder; + fra.me.line = 580; + fra.me.meth = LOCATE_mmbuilder___AEnumClasskind___is_enum; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:580 */ + REGB0 = TAG_Bool(true); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AAbstractClasskind___is_abstract(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_mmbuilder; + fra.me.line = 583; + fra.me.meth = LOCATE_mmbuilder___AAbstractClasskind___is_abstract; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:583 */ + REGB0 = TAG_Bool(true); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AStdClassdef___name(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_mmbuilder; + fra.me.line = 587; + fra.me.meth = LOCATE_mmbuilder___AStdClassdef___name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:589 */ + fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 589); + } + fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___AStdClassdef___arity(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_mmbuilder; + fra.me.line = 591; + fra.me.meth = LOCATE_mmbuilder___AStdClassdef___arity; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:593 */ + fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +void mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[8];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ + static val_t once_value_8; /* Once value */ + static val_t once_value_9; /* Once value */ + static val_t once_value_10; /* Once value */ + static val_t once_value_11; /* Once value */ + static val_t once_value_12; /* Once value */ + static val_t once_value_13; /* Once value */ + static val_t once_value_14; /* Once value */ + static val_t once_value_17; /* Once value */ + static val_t once_value_18; /* Once value */ + static val_t once_value_19; /* Once value */ + static val_t once_value_20; /* Once value */ + static val_t once_value_21; /* Once value */ + static val_t once_value_22; /* Once value */ + static val_t once_value_23; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 595; + fra.me.meth = LOCATE_mmbuilder___AStdClassdef___accept_class_verifier; + fra.me.has_broke = 0; + fra.me.REG_size = 9; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[7] = NIT_NULL; + fra.me.REG[8] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./syntax//mmbuilder.nit:595 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:597 */ + CALL_SUPER_mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:598 */ + fra.me.REG[1] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 598); + } + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:599 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:601 */ + REGB0 = CALL_mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + /* ./syntax//mmbuilder.nit:602 */ + fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + /* ./syntax//mmbuilder.nit:603 */ + fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + /* ./syntax//mmbuilder.nit:604 */ + fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_mmbuilder___AClasskind___is_enum(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + /* ./syntax//mmbuilder.nit:605 */ + fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]); + 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)) { + /* ./syntax//mmbuilder.nit:606 */ + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[0] = BOX_NativeString("Redef error: No class "); + REGB0 = TAG_Int(22); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_1 = fra.me.REG[0]; + register_static_object(&once_value_1); + } else fra.me.REG[0] = once_value_1; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + fra.me.REG[0] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class."); + REGB0 = TAG_Int(61); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]); + } + /* ./syntax//mmbuilder.nit:609 */ + fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 609); + } + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[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[0] = ATTR_array___Array____items(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:610 */ + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:611 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:612 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]); + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:613 */ + REGB1 = TAG_Int(5); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_3) { + fra.me.REG[8] = BOX_NativeString("Special error: Interface "); + REGB1 = TAG_Int(25); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_3 = fra.me.REG[8]; + register_static_object(&once_value_3); + } else fra.me.REG[8] = once_value_3; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[8] = 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[8]); + if (!once_value_4) { + fra.me.REG[8] = BOX_NativeString(" try to specialise enum class "); + REGB1 = TAG_Int(30); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_4 = fra.me.REG[8]; + register_static_object(&once_value_4); + } else fra.me.REG[8] = once_value_4; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[8] = 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[8]); + if (!once_value_5) { + fra.me.REG[8] = BOX_NativeString("."); + REGB1 = TAG_Int(1); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_5 = fra.me.REG[8]; + register_static_object(&once_value_5); + } else fra.me.REG[8] = once_value_5; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]); + } else { + /* ./syntax//mmbuilder.nit:614 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:615 */ + REGB1 = TAG_Int(5); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_6) { + fra.me.REG[8] = BOX_NativeString("Special error: Interface "); + REGB1 = TAG_Int(25); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_6 = fra.me.REG[8]; + register_static_object(&once_value_6); + } else fra.me.REG[8] = once_value_6; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[8] = 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[8]); + if (!once_value_7) { + fra.me.REG[8] = BOX_NativeString(" try to specialise class "); + REGB1 = TAG_Int(25); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_7 = fra.me.REG[8]; + register_static_object(&once_value_7); + } else fra.me.REG[8] = once_value_7; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[8] = 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[8]); + if (!once_value_8) { + fra.me.REG[8] = BOX_NativeString("."); + REGB1 = TAG_Int(1); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_8 = fra.me.REG[8]; + register_static_object(&once_value_8); + } else fra.me.REG[8] = once_value_8; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]); + } } - } else { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Class "), TAG_Int(21)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[0]; - variable[12] = CALL_mmbuilder___PClassdef___name(variable[12])(variable[12]) /*AClassdef::name*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/; - variable[17] = variable[16]; - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[19] = variable[18]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; + } else { + /* ./syntax//mmbuilder.nit:617 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:618 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + } else { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:619 */ + REGB1 = TAG_Int(5); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_9) { + fra.me.REG[8] = BOX_NativeString("Special error: Enum class "); + REGB1 = TAG_Int(26); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_9 = fra.me.REG[8]; + register_static_object(&once_value_9); + } else fra.me.REG[8] = once_value_9; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[8] = 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[8]); + if (!once_value_10) { + fra.me.REG[8] = BOX_NativeString(" try to specialise class "); + REGB1 = TAG_Int(25); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_10 = fra.me.REG[8]; + register_static_object(&once_value_10); + } else fra.me.REG[8] = once_value_10; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[8] = 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[8]); + if (!once_value_11) { + fra.me.REG[8] = BOX_NativeString("."); + REGB1 = TAG_Int(1); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1); + once_value_11 = fra.me.REG[8]; + register_static_object(&once_value_11); + } else fra.me.REG[8] = once_value_11; + fra.me.REG[8] = fra.me.REG[8]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]); + } + } else { + /* ./syntax//mmbuilder.nit:622 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]); + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:623 */ + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_12) { + fra.me.REG[7] = BOX_NativeString("Special error: Class "); + REGB1 = TAG_Int(21); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_12 = fra.me.REG[7]; + register_static_object(&once_value_12); + } else fra.me.REG[7] = once_value_12; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_13) { + fra.me.REG[7] = BOX_NativeString(" try to specialise enum class "); + REGB1 = TAG_Int(30); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1); + once_value_13 = fra.me.REG[7]; + register_static_object(&once_value_13); + } else fra.me.REG[7] = once_value_13; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + if (!once_value_14) { + fra.me.REG[5] = BOX_NativeString("."); + REGB1 = TAG_Int(1); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1); + once_value_14 = fra.me.REG[5]; + register_static_object(&once_value_14); + } else fra.me.REG[5] = once_value_14; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]); + } } } + /* ./../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 label15; } - continue_74: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; - } - break_74: while(0); - goto return_label73; - } - variable[4] = variable[0]; - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - CALL_syntax_base___MMGlobalClass___check_visibility( variable[3] /*glob*/)( variable[3] /*glob*/, variable[1] /*v*/, variable[4], variable[5]) /*MMGlobalClass::check_visibility*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AClassdef___n_kwredef(variable[4])(variable[4]) /*AClassdef::n_kwredef*/; - variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/ - variable[7] = variable[6]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[8] = CALL_mmbuilder___PClassdef___name(variable[8])(variable[8]) /*AClassdef::name*/; - variable[9] = variable[8]; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is an imported class. Add the redef keyword to refine it."), TAG_Int(58)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/; - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/; - goto return_label73; - } - variable[4] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/; - variable[4] = CALL_abstractmetamodel___MMLocalClass___arity(variable[4])(variable[4]) /*MMLocalClass::arity*/; - variable[5] = variable[0]; - variable[5] = ATTR_mmbuilder___PClassdef____local_class(variable[5]) /*PClassdef::_local_class*/; - variable[5] = CALL_abstractmetamodel___MMLocalClass___arity(variable[5])(variable[5]) /*MMLocalClass::arity*/; - variable[4] = TAG_Bool((variable[4])!=(variable[5])); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Formal parameter arity missmatch; got "), TAG_Int(51)); /*new String*/ - variable[7] = variable[6]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[8] = ATTR_mmbuilder___PClassdef____local_class(variable[8]) /*PClassdef::_local_class*/; - variable[8] = CALL_abstractmetamodel___MMLocalClass___arity(variable[8])(variable[8]) /*MMLocalClass::arity*/; - variable[9] = variable[8]; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/; - variable[12] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/; - variable[12] = CALL_abstractmetamodel___MMLocalClass___arity(variable[12])(variable[12]) /*MMLocalClass::arity*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/; - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/; - } - variable[4] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/; - variable[4] = TAG_Bool(!UNTAG_Bool(variable[4])); - if (UNTAG_Bool(variable[4])) { /* and */ - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/; - variable[4] = CALL_mmbuilder___PClasskind___is_interface(variable[4])(variable[4]) /*PClasskind::is_interface*/; - } - variable[5] = variable[4]; - if (!UNTAG_Bool(variable[5])) { /* or */ - variable[5] = CALL_abstractmetamodel___MMGlobalClass___is_abstract( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_abstract*/; - variable[5] = TAG_Bool(!UNTAG_Bool(variable[5])); - } - variable[4] = variable[5]; - variable[5] = variable[4]; - if (UNTAG_Bool(variable[5])) { /* and */ - variable[5] = variable[0]; - variable[5] = CALL_parser_nodes___AClassdef___n_classkind(variable[5])(variable[5]) /*AClassdef::n_classkind*/; - variable[5] = CALL_mmbuilder___PClasskind___is_abstract(variable[5])(variable[5]) /*PClasskind::is_abstract*/; - } - variable[4] = variable[5]; - variable[5] = variable[4]; - if (!UNTAG_Bool(variable[5])) { /* or */ - variable[5] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_universal*/; - variable[5] = TAG_Bool(!UNTAG_Bool(variable[5])); - } - variable[4] = variable[5]; - variable[5] = variable[4]; - if (UNTAG_Bool(variable[5])) { /* and */ - variable[5] = variable[0]; - variable[5] = CALL_parser_nodes___AClassdef___n_classkind(variable[5])(variable[5]) /*AClassdef::n_classkind*/; - variable[5] = CALL_mmbuilder___PClasskind___is_universal(variable[5])(variable[5]) /*PClasskind::is_universal*/; - } - variable[4] = variable[5]; - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/ - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: cannot change kind of class "), TAG_Int(41)); /*new String*/ - variable[7] = variable[6]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[8] = CALL_mmbuilder___PClassdef___name(variable[8])(variable[8]) /*AClassdef::name*/; - variable[9] = variable[8]; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/; - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/; - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/; - } - return_label73: while(false); - tracehead = trace.prev; - return; -} -val_t mmbuilder___AClassdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 575, LOCATE_mmbuilder___AClassdef___name}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = CALL_parser_nodes___AClassdef___n_id(variable[2])(variable[2]) /*AClassdef::n_id*/; - variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/; - variable[1] = variable[2]; - goto return_label75; - return_label75: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AClassdef___arity(val_t self) { - struct trace_t trace = {NULL, NULL, 579, LOCATE_mmbuilder___AClassdef___arity}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = CALL_parser_nodes___AClassdef___n_formaldefs(variable[2])(variable[2]) /*AClassdef::n_formaldefs*/; - variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*List::length*/; - variable[1] = variable[2]; - goto return_label76; - return_label76: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AClassdef___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 640, LOCATE_mmbuilder___AClassdef___visibility_level}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = CALL_parser_nodes___AClassdef___n_visibility(variable[2])(variable[2]) /*AClassdef::n_visibility*/; - variable[2] = CALL_mmbuilder___PVisibility___level(variable[2])(variable[2]) /*PVisibility::level*/; - variable[1] = variable[2]; - goto return_label77; - return_label77: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AMainClassdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 647, LOCATE_mmbuilder___AMainClassdef___name}; - static val_t once_value_79; static int once_bool_79; /* Once value for variable[2]*/ - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - if (once_bool_79) variable[2] = once_value_79; - else { - variable[2] = NEW_String_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)); /*new String*/ - variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/; - once_value_79 = variable[2]; - once_bool_79 = true; - } - variable[1] = variable[2]; - goto return_label78; - return_label78: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___ATopClassdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 654, LOCATE_mmbuilder___ATopClassdef___name}; - static val_t once_value_81; static int once_bool_81; /* Once value for variable[2]*/ - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - if (once_bool_81) variable[2] = once_value_81; - else { - variable[2] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/ - variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/; - once_value_81 = variable[2]; - once_bool_81 = true; - } - variable[1] = variable[2]; - goto return_label80; - return_label80: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___MMSrcTypeFormalParameter___node(val_t self) { - struct trace_t trace = {NULL, NULL, 662, LOCATE_mmbuilder___MMSrcTypeFormalParameter___node}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___MMSrcTypeFormalParameter____node( self) /*MMSrcTypeFormalParameter::_node*/; -} -void mmbuilder___MMSrcTypeFormalParameter___init(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) { - struct trace_t trace = {NULL, NULL, 665, LOCATE_mmbuilder___MMSrcTypeFormalParameter___init}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[4] = param3; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeFormalParameter].i]) return; - CALL_genericity___MMTypeFormalParameter___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*pos*/, variable[3] /*local_class*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/; - variable[6] = variable[0]; - ATTR_mmbuilder___MMSrcTypeFormalParameter____node(variable[6]) /*MMSrcTypeFormalParameter::_node*/ = variable[4] /*n*/; - return_label82: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeFormalParameter].i] = 1; - tracehead = trace.prev; + } + label15: while(0); + /* ./syntax//mmbuilder.nit:628 */ + goto label16; + } + /* ./syntax//mmbuilder.nit:633 */ + fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]); + CALL_syntax_base___MMGlobalClass___check_visibility(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:634 */ + fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:635 */ + REGB0 = TAG_Int(3); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_17) { + fra.me.REG[4] = BOX_NativeString("Redef error: "); + REGB0 = TAG_Int(13); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_17 = fra.me.REG[4]; + register_static_object(&once_value_17); + } else fra.me.REG[4] = once_value_17; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + fra.me.REG[4] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + if (!once_value_18) { + fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it."); + REGB0 = TAG_Int(58); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_18 = fra.me.REG[4]; + register_static_object(&once_value_18); + } else fra.me.REG[4] = once_value_18; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:636 */ + goto label16; + } + /* ./syntax//mmbuilder.nit:639 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 639); + } + REGB1 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); + if (UNTAG_Bool(REGB2)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB1 = TAG_Bool((REGB0)==(REGB1)); + /* ./syntax//mmbuilder.nit:639 */ + REGB2 = REGB1; + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:640 */ + REGB2 = TAG_Int(5); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_19) { + fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got "); + REGB2 = TAG_Int(51); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_19 = fra.me.REG[4]; + register_static_object(&once_value_19); + } else fra.me.REG[4] = once_value_19; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 640); + } + REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + if (!once_value_20) { + fra.me.REG[4] = BOX_NativeString(", expected "); + REGB2 = TAG_Int(11); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_20 = fra.me.REG[4]; + register_static_object(&once_value_20); + } else fra.me.REG[4] = once_value_20; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]); + REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + if (!once_value_21) { + fra.me.REG[4] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_21 = fra.me.REG[4]; + register_static_object(&once_value_21); + } else fra.me.REG[4] = once_value_21; + fra.me.REG[4] = fra.me.REG[4]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]); + } + /* ./syntax//mmbuilder.nit:644 */ + REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]); + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]); + } else { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(true); + } else { + /* ./syntax//mmbuilder.nit:645 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + /* ./syntax//mmbuilder.nit:644 */ + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:645 */ + fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]); + } else { + /* ./syntax//mmbuilder.nit:644 */ + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(true); + } else { + /* ./syntax//mmbuilder.nit:646 */ + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + /* ./syntax//mmbuilder.nit:644 */ + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:646 */ + fra.me.REG[1] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_mmbuilder___AClasskind___is_enum(fra.me.REG[1])(fra.me.REG[1]); + } else { + /* ./syntax//mmbuilder.nit:644 */ + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + /* ./syntax//mmbuilder.nit:643 */ + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:648 */ + REGB2 = TAG_Int(3); + fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_22) { + fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class "); + REGB2 = TAG_Int(41); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2); + once_value_22 = fra.me.REG[0]; + register_static_object(&once_value_22); + } else fra.me.REG[0] = once_value_22; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[0] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + if (!once_value_23) { + fra.me.REG[0] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2); + once_value_23 = fra.me.REG[0]; + register_static_object(&once_value_23); + } else fra.me.REG[0] = once_value_23; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); + } + label16: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___AFormaldef___accept_class_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 676, LOCATE_mmbuilder___AFormaldef___accept_class_builder}; - val_t variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AFormaldef___n_id(variable[4])(variable[4]) /*AFormaldef::n_id*/; - variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/; - variable[3] = variable[4]; - variable[5] = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/; - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[7] = variable[0]; - variable[8] = NEW_MMSrcTypeFormalParameter_mmbuilder___MMSrcTypeFormalParameter___init( variable[3] /*name*/, variable[5], variable[6], variable[7]); /*new MMSrcTypeFormalParameter*/ - variable[5] = variable[8]; - variable[4] = variable[5]; - variable[5] = variable[0]; - ATTR_mmbuilder___AFormaldef____formal(variable[5]) /*AFormaldef::_formal*/ = variable[4] /*formal_type*/; - variable[5] = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/; - variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))); - CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*ClassBuilderVisitor::local_class_arity=*/; - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - CALL_genericity___MMLocalClass___register_formal(variable[5])(variable[5], variable[4] /*formal_type*/) /*MMLocalClass::register_formal*/; - variable[5] = CALL_mmbuilder___ClassBuilderVisitor___formals( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::formals*/; - CALL_abstract_collection___Map_____braeq(variable[5])(variable[5], variable[3] /*name*/, variable[4] /*formal_type*/) /*Map::[]=*/; - CALL_SUPER_mmbuilder___AFormaldef___accept_class_builder(variable[0])(variable[0], variable[1]) /*super AFormaldef::accept_class_builder*/; - return_label83: while(false); - tracehead = trace.prev; +val_t mmbuilder___AStdClassdef___visibility_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_mmbuilder; + fra.me.line = 652; + fra.me.meth = LOCATE_mmbuilder___AStdClassdef___visibility_level; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:654 */ + fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AMainClassdef___name(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 659; + fra.me.meth = LOCATE_mmbuilder___AMainClassdef___name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:661 */ + if (!once_value_1) { + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString("Sys"); + REGB0 = TAG_Int(3); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); + once_value_1 = fra.me.REG[0]; + register_static_object(&once_value_1); + } else fra.me.REG[0] = once_value_1; + fra.me.REG[0] = fra.me.REG[0]; + goto label3; + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___ATopClassdef___name(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t REGB0; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 666; + fra.me.meth = LOCATE_mmbuilder___ATopClassdef___name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:668 */ + if (!once_value_1) { + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString("Object"); + REGB0 = TAG_Int(6); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + fra.me.REG[0] = fra.me.REG[0]; + fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]); + once_value_1 = fra.me.REG[0]; + register_static_object(&once_value_1); + } else fra.me.REG[0] = once_value_1; + fra.me.REG[0] = fra.me.REG[0]; + goto label3; + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 676; + fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_builder; + 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; + /* ./syntax//mmbuilder.nit:676 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:678 */ + fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:679 */ + REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:680 */ + ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5]; + /* ./syntax//mmbuilder.nit:681 */ + REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:681 */ + CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1); + /* ./syntax//mmbuilder.nit:682 */ + fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + CALL_genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:683 */ + fra.me.REG[3] = CALL_mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 683); + } + CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:684 */ + CALL_SUPER_mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___AFormaldef___accept_class_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 687, LOCATE_mmbuilder___AFormaldef___accept_class_verifier}; - val_t variable[20]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super AFormaldef::accept_class_verifier*/; - variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[3] = variable[4]; - variable[5] = CALL_abstractmetamodel___MMLocalClass___global( variable[3] /*c*/)( variable[3] /*c*/) /*MMLocalClass::global*/; - variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[5])(variable[5]) /*MMGlobalClass::intro*/; - variable[4] = variable[5]; - variable[5] = TAG_Bool(( variable[3] /*c*/ == variable[4] /*o*/) || (( variable[3] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, variable[4] /*o*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*c*/)( variable[3] /*c*/, variable[4] /*o*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = variable[0]; - variable[5] = CALL_parser_nodes___AFormaldef___n_type(variable[5])(variable[5]) /*AFormaldef::n_type*/; - variable[5] = TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = variable[0]; - variable[5] = ATTR_mmbuilder___AFormaldef____formal(variable[5]) /*AFormaldef::_formal*/; - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - variable[6] = CALL_inheritance___MMModule___type_any(variable[6])(variable[6]) /*MMModule::type_any*/; - CALL_genericity___MMTypeFormalParameter___bound__eq(variable[5])(variable[5], variable[6]) /*MMTypeFormalParameter::bound=*/; - } else { /*if*/ - variable[5] = variable[0]; - variable[5] = ATTR_mmbuilder___AFormaldef____formal(variable[5]) /*AFormaldef::_formal*/; - variable[6] = variable[0]; - variable[6] = CALL_parser_nodes___AFormaldef___n_type(variable[6])(variable[6]) /*AFormaldef::n_type*/; - variable[6] = CALL_syntax_base___PType___get_stype(variable[6])(variable[6], variable[1] /*v*/) /*PType::get_stype*/; - CALL_genericity___MMTypeFormalParameter___bound__eq(variable[5])(variable[5], variable[6]) /*MMTypeFormalParameter::bound=*/; - } - } else { /*if*/ - variable[6] = variable[0]; - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/; - variable[6] = CALL_genericity___MMTypeFormalParameter___position(variable[6])(variable[6]) /*MMTypeFormalParameter::position*/; - variable[6] = CALL_genericity___MMLocalClass___get_formal( variable[4] /*o*/)( variable[4] /*o*/, variable[6]) /*MMLocalClass::get_formal*/; - variable[6] = CALL_type_formal___MMTypeFormal___bound(variable[6])(variable[6]) /*MMTypeFormal::bound*/; - variable[7] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - variable[6] = CALL_static_type___MMType___for_module(variable[6])(variable[6], variable[7]) /*MMType::for_module*/; - variable[5] = variable[6]; - variable[6] = variable[0]; - variable[6] = CALL_parser_nodes___AFormaldef___n_type(variable[6])(variable[6]) /*AFormaldef::n_type*/; - variable[6] = TAG_Bool((variable[6] == NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = variable[0]; - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/; - CALL_genericity___MMTypeFormalParameter___bound__eq(variable[6])(variable[6], variable[5] /*ob*/) /*MMTypeFormalParameter::bound=*/; - } else { /*if*/ - variable[6] = variable[0]; - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/; - variable[7] = variable[0]; - variable[7] = CALL_parser_nodes___AFormaldef___n_type(variable[7])(variable[7]) /*AFormaldef::n_type*/; - variable[7] = CALL_syntax_base___PType___get_stype(variable[7])(variable[7], variable[1] /*v*/) /*PType::get_stype*/; - CALL_genericity___MMTypeFormalParameter___bound__eq(variable[6])(variable[6], variable[7]) /*MMTypeFormalParameter::bound=*/; - variable[6] = variable[0]; - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/; - variable[6] = CALL_type_formal___MMTypeFormal___bound(variable[6])(variable[6]) /*MMTypeFormal::bound*/; - variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == variable[5] /*ob*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[5] /*ob*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[5] /*ob*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = variable[0]; - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Cannot change formal parameter type of class "), TAG_Int(58)); /*new String*/ - variable[9] = variable[8]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/; - variable[10] = variable[3] /*c*/; - variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString("; got "), TAG_Int(6)); /*new String*/ - variable[12] = variable[11]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/; - variable[13] = variable[0]; - variable[13] = ATTR_mmbuilder___AFormaldef____formal(variable[13]) /*AFormaldef::_formal*/; - variable[13] = CALL_type_formal___MMTypeFormal___bound(variable[13])(variable[13]) /*MMTypeFormal::bound*/; - variable[14] = variable[13]; - variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/; - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)); /*new String*/ - variable[16] = variable[15]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/; - variable[17] = variable[5] /*ob*/; - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/; - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[19] = variable[18]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[19]) /*AbstractArray::add*/; - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/; +void mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 687; + fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_verifier; + 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; + /* ./syntax//mmbuilder.nit:687 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:689 */ + CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:690 */ + fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:691 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:692 */ + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:693 */ + fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]); + 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; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:694 */ + fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[5] = CALL_static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 694); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + } else { + /* ./syntax//mmbuilder.nit:696 */ + fra.me.REG[5] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 696); + } + fra.me.REG[5] = CALL_syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:697 */ + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./syntax//mmbuilder.nit:698 */ + fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 698); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + } + } else { + /* ./syntax//mmbuilder.nit:701 */ + fra.me.REG[5] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 701); + } + REGB0 = CALL_genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[0] = CALL_genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0); + fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:702 */ + fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:703 */ + fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 703); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + } else { + /* ./syntax//mmbuilder.nit:705 */ + fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 705); + } + fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:706 */ + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./syntax//mmbuilder.nit:707 */ + fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 707); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:708 */ + fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 708); + } + fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + REGB0 = REGB1; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:709 */ + REGB0 = TAG_Int(7); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_2) { + fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class "); + REGB0 = TAG_Int(58); + 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[0])(fra.me.REG[0], 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[0])(fra.me.REG[0], fra.me.REG[1]); + if (!once_value_3) { + fra.me.REG[1] = BOX_NativeString("; got "); + REGB0 = TAG_Int(6); + 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[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[1] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 709); + } + fra.me.REG[1] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]); + 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[0])(fra.me.REG[0], fra.me.REG[1]); + if (!once_value_4) { + fra.me.REG[1] = BOX_NativeString(", expected "); + REGB0 = TAG_Int(11); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_4 = fra.me.REG[1]; + register_static_object(&once_value_4); + } else fra.me.REG[1] = once_value_4; + fra.me.REG[1] = fra.me.REG[1]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + if (!once_value_5) { + 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_5 = fra.me.REG[5]; + register_static_object(&once_value_5); + } else fra.me.REG[5] = once_value_5; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]); } } } - return_label84: while(false); - tracehead = trace.prev; + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 715, LOCATE_mmbuilder___ASuperclass___accept_class_specialization_builder}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_specialization_builder*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___ASuperclass___n_type(variable[4])(variable[4]) /*ASuperclass::n_type*/; - variable[4] = CALL_syntax_base___PType___get_local_class(variable[4])(variable[4], variable[1] /*v*/) /*PType::get_local_class*/; - variable[3] = variable[4]; - variable[5] = variable[0]; - variable[6] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(variable[5], variable[3] /*c*/); /*new MMSrcAncestor*/ - variable[5] = variable[6]; - variable[4] = variable[5]; - variable[5] = variable[0]; - ATTR_mmbuilder___ASuperclass____ancestor(variable[5]) /*ASuperclass::_ancestor*/ = variable[4] /*ancestor*/; - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - CALL_inheritance___MMLocalClass___add_direct_parent(variable[5])(variable[5], variable[4] /*ancestor*/) /*MMLocalClass::add_direct_parent*/; - return_label85: while(false); - tracehead = trace.prev; +val_t mmbuilder___ASuperclass___ancestor(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_mmbuilder; + fra.me.line = 717; + fra.me.meth = LOCATE_mmbuilder___ASuperclass___ancestor; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:717 */ + fra.me.REG[0] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 719; + fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_specialization_builder; + 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; + /* ./syntax//mmbuilder.nit:719 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:721 */ + CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:722 */ + fra.me.REG[1] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[1] = CALL_syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:723 */ + 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)) { + goto label1; + } + /* ./syntax//mmbuilder.nit:724 */ + fra.me.REG[1] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:725 */ + ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:726 */ + fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + CALL_inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 724, LOCATE_mmbuilder___ASuperclass___accept_class_ancestor_builder}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_ancestor_builder*/; - variable[3] = variable[0]; - variable[3] = ATTR_mmbuilder___ASuperclass____ancestor(variable[3]) /*ASuperclass::_ancestor*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___ASuperclass___n_type(variable[4])(variable[4]) /*ASuperclass::n_type*/; - variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[4])(variable[4], variable[1] /*v*/) /*PType::get_unchecked_stype*/; - CALL_static_type___MMAncestor___stype__eq(variable[3])(variable[3], variable[4]) /*MMAncestor::stype=*/; - variable[3] = variable[0]; - variable[3] = ATTR_mmbuilder___ASuperclass____ancestor(variable[3]) /*ASuperclass::_ancestor*/; - variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[4] = CALL_static_type___MMLocalClass___get_type(variable[4])(variable[4]) /*MMLocalClass::get_type*/; - CALL_static_type___MMAncestor___inheriter__eq(variable[3])(variable[3], variable[4]) /*MMAncestor::inheriter=*/; - return_label86: while(false); - tracehead = trace.prev; +void mmbuilder___ASuperclass___accept_class_ancestor_builder(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_mmbuilder; + fra.me.line = 729; + fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_ancestor_builder; + 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; + /* ./syntax//mmbuilder.nit:729 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:731 */ + CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:732 */ + fra.me.REG[1] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]); + fra.me.REG[0] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 732); + } + CALL_static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:733 */ + fra.me.REG[2] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]); + fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 733); + } + CALL_static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ASuperclass___accept_class_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 731, LOCATE_mmbuilder___ASuperclass___accept_class_verifier}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_verifier*/; - variable[3] = variable[0]; - variable[3] = CALL_parser_nodes___ASuperclass___n_type(variable[3])(variable[3]) /*ASuperclass::n_type*/; - CALL_syntax_base___PType___check_conform(variable[3])(variable[3], variable[1] /*v*/) /*PType::check_conform*/; - return_label87: while(false); - tracehead = trace.prev; +void mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 736; + fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_verifier; + 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; + /* ./syntax//mmbuilder.nit:736 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:738 */ + CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:739 */ + fra.me.REG[2] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]); + CALL_syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___ASuperclass___ancestor(val_t self) { - struct trace_t trace = {NULL, NULL, 713, LOCATE_mmbuilder___ASuperclass___ancestor}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___ASuperclass____ancestor( self) /*ASuperclass::_ancestor*/; -} -void mmbuilder___PPropdef___process_and_check(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) { - struct trace_t trace = {NULL, NULL, 739, LOCATE_mmbuilder___PPropdef___process_and_check}; - val_t variable[7]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[4] = param3; - variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[6])(variable[6]) /*MMGlobalProperty::intro*/; - variable[6] = TAG_Bool((variable[6] == variable[2] /*prop*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[2] /*prop*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[2] /*prop*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = variable[0]; - CALL_mmbuilder___PPropdef___do_and_check_intro(variable[6])(variable[6], variable[1] /*v*/, variable[2] /*prop*/, variable[3] /*has_redef*/, variable[4] /*visibility_level*/) /*PPropdef::do_and_check_intro*/; - } else { /*if*/ - variable[6] = variable[0]; - CALL_mmbuilder___PPropdef___do_and_check_redef(variable[6])(variable[6], variable[1] /*v*/, variable[2] /*prop*/, variable[3] /*has_redef*/, variable[4] /*visibility_level*/) /*PPropdef::do_and_check_redef*/; - } - return_label88: while(false); - tracehead = trace.prev; +void mmbuilder___APropdef___process_and_check(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[3];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 744; + fra.me.meth = LOCATE_mmbuilder___APropdef___process_and_check; + 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; + REGB0 = p3; + REGB1 = p4; + /* ./syntax//mmbuilder.nit:752 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]); + REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2])); + if (UNTAG_Bool(REGB2)) { + } else { + REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + REGB2 = REGB3; + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:753 */ + CALL_mmbuilder___APropdef___do_and_check_intro(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1); + } else { + /* ./syntax//mmbuilder.nit:755 */ + CALL_mmbuilder___APropdef___do_and_check_redef(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1); + } + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PPropdef___do_and_check_intro(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) { - struct trace_t trace = {NULL, NULL, 754, LOCATE_mmbuilder___PPropdef___do_and_check_intro}; - val_t variable[19]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[4] = param3; - variable[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - variable[6] = variable[7]; - variable[8] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/; - variable[7] = variable[8]; - variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/; - variable[8] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[8])(variable[8]) /*MMGlobalClass::visibility_level*/; - variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(3))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[4] = TAG_Int(3) /*visibility_level=*/; - } - CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq( variable[6] /*glob*/)( variable[6] /*glob*/, variable[4] /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/; - if (UNTAG_Bool( variable[3] /*has_redef*/)) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: No property "), TAG_Int(19)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = variable[2] /*prop*/; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" is inherited. Remove the redef keyword to define a new property."), TAG_Int(65)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_attribute( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_attribute*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[2] /*prop*/; - variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/; - variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the interface "), TAG_Int(18)); /*new String*/ - variable[14] = variable[13]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/; - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[16] = variable[15]; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[2] /*prop*/; - variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/; - variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the universal class "), TAG_Int(24)); /*new String*/ - variable[14] = variable[13]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/; - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[16] = variable[15]; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; +void mmbuilder___APropdef___do_and_check_intro(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[6];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ + static val_t once_value_8; /* Once value */ + static val_t once_value_9; /* Once value */ + static val_t once_value_10; /* Once value */ + static val_t once_value_11; /* Once value */ + static val_t once_value_12; /* Once value */ + static val_t once_value_13; /* Once value */ + static val_t once_value_14; /* Once value */ + static val_t once_value_15; /* Once value */ + static val_t once_value_16; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 759; + fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_intro; + fra.me.has_broke = 0; + fra.me.REG_size = 7; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + REGB0 = p3; + REGB1 = p4; + /* ./syntax//mmbuilder.nit:762 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:763 */ + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:764 */ + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + REGB2 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]); + REGB3 = TAG_Int(3); + /* ./../lib/standard//kernel.nit:213 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3)); + /* ./syntax//mmbuilder.nit:764 */ + if (UNTAG_Bool(REGB3)) { + /* ./syntax//mmbuilder.nit:766 */ + REGB3 = TAG_Int(3); + REGB1 = REGB3; + } + /* ./syntax//mmbuilder.nit:768 */ + CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1); + /* ./syntax//mmbuilder.nit:769 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:770 */ + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[6] = BOX_NativeString("Error: No property "); + REGB0 = TAG_Int(19); + 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[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_2) { + fra.me.REG[6] = BOX_NativeString("::"); + REGB0 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_2 = fra.me.REG[6]; + register_static_object(&once_value_2); + } else fra.me.REG[6] = once_value_2; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_3) { + fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property."); + REGB0 = TAG_Int(65); + 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]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); + } + /* ./syntax//mmbuilder.nit:772 */ + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:773 */ + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:774 */ + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_4) { + fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute "); + REGB0 = TAG_Int(35); + 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[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_5) { + fra.me.REG[6] = BOX_NativeString(" in the interface "); + REGB0 = TAG_Int(18); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_5 = fra.me.REG[6]; + register_static_object(&once_value_5); + } else fra.me.REG[6] = once_value_5; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_6) { + fra.me.REG[6] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_6 = fra.me.REG[6]; + register_static_object(&once_value_6); + } else fra.me.REG[6] = once_value_6; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); + } else { + /* ./syntax//mmbuilder.nit:775 */ + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:776 */ + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_7) { + fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute "); + REGB0 = TAG_Int(35); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_7 = fra.me.REG[6]; + register_static_object(&once_value_7); + } else fra.me.REG[6] = once_value_7; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_8) { + fra.me.REG[6] = BOX_NativeString(" in the enum class "); + REGB0 = TAG_Int(19); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_8 = fra.me.REG[6]; + register_static_object(&once_value_8); + } else fra.me.REG[6] = once_value_8; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_9) { + fra.me.REG[6] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_9 = fra.me.REG[6]; + register_static_object(&once_value_9); + } else fra.me.REG[6] = once_value_9; + 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_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); } } - } else { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[2] /*prop*/; - variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/; - variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the class "), TAG_Int(14)); /*new String*/ - variable[14] = variable[13]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/; - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[16] = variable[15]; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = variable[2] /*prop*/; - variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/; - variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the universal "), TAG_Int(18)); /*new String*/ - variable[14] = variable[13]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/; - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[16] = variable[15]; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; + } else { + /* ./syntax//mmbuilder.nit:778 */ + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:779 */ + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:780 */ + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_10) { + fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor "); + REGB0 = TAG_Int(39); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_10 = fra.me.REG[6]; + register_static_object(&once_value_10); + } else fra.me.REG[6] = once_value_10; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_11) { + fra.me.REG[6] = BOX_NativeString(" in the class "); + REGB0 = TAG_Int(14); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_11 = fra.me.REG[6]; + register_static_object(&once_value_11); + } else fra.me.REG[6] = once_value_11; + fra.me.REG[6] = fra.me.REG[6]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_12) { + fra.me.REG[6] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_12 = fra.me.REG[6]; + register_static_object(&once_value_12); + } else fra.me.REG[6] = once_value_12; + fra.me.REG[6] = fra.me.REG[6]; + 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_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); + } else { + /* ./syntax//mmbuilder.nit:781 */ + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:782 */ + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_13) { + fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor "); + REGB0 = TAG_Int(39); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_13 = fra.me.REG[5]; + register_static_object(&once_value_13); + } else fra.me.REG[5] = once_value_13; + 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_14) { + fra.me.REG[5] = BOX_NativeString(" in the enum "); + REGB0 = TAG_Int(13); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_14 = fra.me.REG[5]; + register_static_object(&once_value_14); + } else fra.me.REG[5] = once_value_14; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_15) { + 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_15 = fra.me.REG[5]; + register_static_object(&once_value_15); + } else fra.me.REG[5] = once_value_15; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); } } } } - variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - variable[8] = TAG_Bool((variable[8] == NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[10] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::name*/; - variable[9] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable[9])(variable[9], variable[10]) /*MMLocalClass::super_methods_named*/; - variable[8] = variable[9]; - variable[9] = variable[0]; - CALL_mmbuilder___PPropdef___inherit_signature(variable[9])(variable[9], variable[1] /*v*/, variable[2] /*prop*/, variable[8] /*supers*/) /*PPropdef::inherit_signature*/; - } - variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - } else { /*if*/ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[8] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[8])(variable[8]) /*SignatureBuilder::untyped_params*/; - variable[8] = CALL_abstract_collection___Collection___is_empty(variable[8])(variable[8]) /*AbstractArray::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[8] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[8])(variable[8]) /*SignatureBuilder::untyped_params*/; - variable[8] = CALL_abstract_collection___Collection___first(variable[8])(variable[8]) /*IndexedCollection::first*/; - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Untyped parameter."), TAG_Int(25)); /*new String*/ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - variable[8] = NEW_Array_array___Array___init(); /*new Array[MMType]*/ - variable[9] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[9] = CALL_static_type___MMLocalClass___get_type(variable[9])(variable[9]) /*MMLocalClass::get_type*/; - variable[10] = NEW_MMSignature_static_type___MMSignature___init(variable[8], NIT_NULL /*null*/, variable[9]); /*new MMSignature*/ - variable[8] = variable[10]; - CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[8]) /*MMLocalProperty::signature=*/; - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[8])(variable[8]) /*SignatureBuilder::closure_decls*/; - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[8])(variable[8]) /*SignatureBuilder::closure_decls*/; - variable[8] = CALL_abstract_collection___Collection___iterator(variable[8])(variable[8]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[9])) break; /*for*/ - variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/; - variable[10] = variable[9]; - variable[11] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - variable[11] = CALL_static_type___MMSignature___closures(variable[11])(variable[11]) /*MMSignature::closures*/; - variable[12] = CALL_syntax_base___PClosureDecl___variable( variable[10] /*clos*/)( variable[10] /*clos*/) /*AClosureDecl::variable*/; - variable[12] = CALL_syntax_base___ClosureVariable___closure(variable[12])(variable[12]) /*ClosureVariable::closure*/; - CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/; - continue_90: while(0); - CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/; + /* ./syntax//mmbuilder.nit:785 */ + fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + 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; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:786 */ + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:787 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:788 */ + CALL_mmbuilder___APropdef___inherit_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]); + } + /* ./syntax//mmbuilder.nit:790 */ + fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + 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)) { + REGB0 = TAG_Bool(true); + } else { + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + } else { + /* ./syntax//mmbuilder.nit:792 */ + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:793 */ + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]); + if (!once_value_16) { + fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter."); + REGB0 = TAG_Int(25); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_16 = fra.me.REG[0]; + register_static_object(&once_value_16); + } else fra.me.REG[0] = once_value_16; + fra.me.REG[0] = fra.me.REG[0]; + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]); + } else { + /* ./syntax//mmbuilder.nit:795 */ + fra.me.REG[0] = NEW_Array_array___Array___init(); + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]); + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:796 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]); + /* ./../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[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:797 */ + fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 797); + } + fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_syntax_base___ClosureVariable___closure(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]); + /* ./../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 label17; } - break_90: while(0); } + label17: while(0); } } } - return_label89: while(false); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PPropdef___inherit_signature(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 800, LOCATE_mmbuilder___PPropdef___inherit_signature}; - val_t variable[16]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[6] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - variable[5] = variable[6]; - variable[6] = CALL_abstract_collection___Collection___iterator( variable[3] /*supers*/)( variable[3] /*supers*/) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[7])) break; /*for*/ - variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/; - variable[8] = variable[7]; - variable[10] = CALL_static_type___MMLocalProperty___signature( variable[8] /*ip*/)( variable[8] /*ip*/) /*MMLocalProperty::signature*/; - variable[11] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[11] = CALL_static_type___MMLocalClass___get_type(variable[11])(variable[11]) /*MMLocalClass::get_type*/; - variable[10] = CALL_static_type___MMSignature___adaptation_to(variable[10])(variable[10], variable[11]) /*MMSignature::adaptation_to*/; - variable[9] = variable[10]; - variable[10] = TAG_Bool(( variable[5] /*s*/ == NIT_NULL /*null*/) || (( variable[5] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*s*/)( variable[5] /*s*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[10])) { /*if*/ - variable[10] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[10] = CALL_mmbuilder___SignatureBuilder___params(variable[10])(variable[10]) /*SignatureBuilder::params*/; - variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*AbstractArray::length*/; - variable[11] = CALL_static_type___MMSignature___arity( variable[9] /*isig*/)( variable[9] /*isig*/) /*MMSignature::arity*/; - variable[10] = TAG_Bool((variable[10])!=(variable[11])); - if (UNTAG_Bool(variable[10])) { /*if*/ - goto return_label91; +void mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){ + struct {struct stack_frame_t me; val_t MORE_REG[10];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 803; + fra.me.meth = LOCATE_mmbuilder___APropdef___inherit_signature; + fra.me.has_broke = 0; + fra.me.REG_size = 11; + 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[10] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + fra.me.REG[3] = p3; + /* ./syntax//mmbuilder.nit:805 */ + fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:807 */ + fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[6] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 807); + } + fra.me.REG[6] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:809 */ + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB1 = REGB2; + } } - variable[10] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[10] = CALL_mmbuilder___SignatureBuilder___params(variable[10])(variable[10]) /*SignatureBuilder::params*/; - variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[11])) break; /*for*/ - variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/; - variable[12] = variable[11]; - variable[14] = CALL_syntax_base___PParam___position( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::position*/; - variable[14] = CALL_static_type___MMSignature_____bra( variable[9] /*isig*/)( variable[9] /*isig*/, variable[14]) /*MMSignature::[]*/; - variable[13] = variable[14]; - CALL_mmbuilder___PParam___stype__eq( variable[12] /*p*/)( variable[12] /*p*/, variable[13] /*t*/) /*PParam::stype=*/; - variable[14] = CALL_syntax_base___PParam___position( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::position*/; - variable[15] = CALL_vararg___MMSignature___vararg_rank( variable[9] /*isig*/)( variable[9] /*isig*/) /*MMSignature::vararg_rank*/; - variable[14] = TAG_Bool((variable[14])==(variable[15])); - if (UNTAG_Bool(variable[14])) { /*if*/ - variable[14] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/, variable[13] /*t*/) /*AbsSyntaxVisitor::type_array*/; - variable[13] = variable[14] /*t=*/; + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:810 */ + fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:810 */ + REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]); + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2)); + if (UNTAG_Bool(REGB3)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB2 = TAG_Bool((REGB1)==(REGB2)); + /* ./syntax//mmbuilder.nit:810 */ + REGB3 = REGB2; + } + REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); + if (UNTAG_Bool(REGB3)) { + /* ./syntax//mmbuilder.nit:811 */ + goto label1; + } + /* ./syntax//mmbuilder.nit:813 */ + fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB3 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); } - variable[14] = CALL_syntax_base___PParam___variable( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::variable*/; - CALL_syntax_base___Variable___stype__eq(variable[14])(variable[14], variable[13] /*t*/) /*Variable::stype=*/; - continue_93: while(0); - CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/; + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; + /* ./syntax//mmbuilder.nit:814 */ + REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[9] = CALL_static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2); + /* ./syntax//mmbuilder.nit:815 */ + CALL_mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + /* ./syntax//mmbuilder.nit:816 */ + REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]); + REGB1 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]); + REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1)); + if (UNTAG_Bool(REGB4)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB1 = TAG_Bool((REGB2)==(REGB1)); + /* ./syntax//mmbuilder.nit:816 */ + REGB4 = REGB1; + } + if (UNTAG_Bool(REGB4)) { + /* ./syntax//mmbuilder.nit:817 */ + fra.me.REG[10] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]); + fra.me.REG[9] = fra.me.REG[10]; + } + /* ./syntax//mmbuilder.nit:819 */ + fra.me.REG[8] = CALL_syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]); + CALL_syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB4 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB3 = REGB4; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label2; + } + } + label2: while(0); + /* ./syntax//mmbuilder.nit:822 */ + fra.me.REG[0] = fra.me.REG[6]; + /* ./syntax//mmbuilder.nit:823 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); } - break_93: while(0); - variable[5] = variable[9] /*isig*/ /*s=*/; - CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[5] /*s*/) /*MMLocalProperty::signature=*/; + /* ./../lib/standard//collection//array.nit:239 */ + REGB3 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB3; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label3; } - continue_92: while(0); - CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/; } - break_92: while(0); - return_label91: while(false); - tracehead = trace.prev; + label3: while(0); + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PPropdef___do_and_check_redef(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) { - struct trace_t trace = {NULL, NULL, 826, LOCATE_mmbuilder___PPropdef___do_and_check_redef}; - val_t variable[43]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[4] = param3; - variable[7] = variable[0]; - variable[7] = TAG_Bool((variable[7]==NIT_NULL) || VAL_ISA(variable[7], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/; - variable[6] = variable[7]; - variable[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - variable[7] = variable[8]; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable[3] /*has_redef*/)))) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = variable[2] /*prop*/; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword."), TAG_Int(65)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - goto return_label94; - } - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/; - variable[9] = variable[8]; - if (UNTAG_Bool(variable[9])) { /* and */ - variable[9] = TAG_Bool(!UNTAG_Bool( variable[6] /*is_init*/)); - } - variable[8] = variable[9]; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: A method "), TAG_Int(22)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = variable[2] /*prop*/; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" cannot redefine a constructor."), TAG_Int(31)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/; - variable[8] = TAG_Bool(!UNTAG_Bool(variable[8])); - if (UNTAG_Bool(variable[8])) { /* and */ - variable[8] = variable[6] /*is_init*/; - } - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = variable[0]; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: A constructor "), TAG_Int(27)); /*new String*/ - variable[11] = variable[10]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/; - variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[13] = variable[12]; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/; - variable[16] = variable[2] /*prop*/; - variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/; - variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" cannot redefine a method."), TAG_Int(26)); /*new String*/ - variable[18] = variable[17]; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/; - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } - } - variable[9] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - variable[8] = variable[9]; - variable[9] = CALL_abstractmetamodel___MMLocalProperty___prhe( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::prhe*/; - variable[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[9])(variable[9]) /*PartialOrderElement::direct_greaters*/; - variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[10])) break; /*for*/ - variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/; - variable[11] = variable[10]; - variable[13] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[11] /*i*/)( variable[11] /*i*/) /*MMLocalProperty::local_class*/; - variable[14] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - variable[13] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[13])(variable[13], variable[14]) /*MMLocalClass::[]*/; - variable[12] = variable[13]; - variable[14] = CALL_static_type___MMLocalProperty___signature( variable[11] /*i*/)( variable[11] /*i*/) /*MMLocalProperty::signature*/; - variable[15] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[15] = CALL_static_type___MMLocalClass___get_type(variable[15])(variable[15]) /*MMLocalClass::get_type*/; - variable[14] = CALL_static_type___MMSignature___adaptation_to(variable[14])(variable[14], variable[15]) /*MMSignature::adaptation_to*/; - variable[13] = variable[14]; - variable[14] = TAG_Bool(( variable[8] /*s*/ == NIT_NULL /*null*/) || (( variable[8] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*s*/)( variable[8] /*s*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[14])) { /*if*/ - variable[14] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[14] = CALL_mmbuilder___SignatureBuilder___params(variable[14])(variable[14]) /*SignatureBuilder::params*/; - variable[14] = CALL_abstract_collection___Collection___length(variable[14])(variable[14]) /*AbstractArray::length*/; - variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - variable[14] = TAG_Bool((variable[14])!=(variable[15])); - if (UNTAG_Bool(variable[14])) { /*if*/ - variable[14] = variable[0]; - variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/ - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/ - variable[17] = variable[16]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[17]) /*AbstractArray::add*/; - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[19] = variable[18]; - variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[19]) /*AbstractArray::add*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[21] = variable[20]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[21]) /*AbstractArray::add*/; - variable[22] = variable[2] /*prop*/; - variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[22]) /*AbstractArray::add*/; - variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)); /*new String*/ - variable[24] = variable[23]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[24]) /*AbstractArray::add*/; - variable[25] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - variable[26] = variable[25]; - variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[26]) /*AbstractArray::add*/; - variable[27] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[28] = variable[27]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[28]) /*AbstractArray::add*/; - variable[29] = variable[12] /*ip*/; - variable[29] = CALL_string___Object___to_s(variable[29])(variable[29]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[29]) /*AbstractArray::add*/; - variable[30] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)); /*new String*/ - variable[31] = variable[30]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[31]) /*AbstractArray::add*/; - variable[32] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - variable[33] = variable[32]; - variable[33] = CALL_string___Object___to_s(variable[33])(variable[33]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[33]) /*AbstractArray::add*/; - variable[34] = NEW_String_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)); /*new String*/ - variable[35] = variable[34]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[35]) /*AbstractArray::add*/; - variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[14], variable[15]) /*AbsSyntaxVisitor::error*/; - goto return_label94; +void mmbuilder___APropdef___do_and_check_redef(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[13];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t REGB5; + val_t REGB6; + val_t REGB7; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ + static val_t once_value_8; /* Once value */ + static val_t once_value_9; /* Once value */ + static val_t once_value_10; /* Once value */ + static val_t once_value_11; /* Once value */ + static val_t once_value_12; /* Once value */ + static val_t once_value_13; /* Once value */ + static val_t once_value_14; /* Once value */ + static val_t once_value_15; /* Once value */ + static val_t once_value_16; /* Once value */ + static val_t once_value_17; /* Once value */ + static val_t once_value_18; /* Once value */ + static val_t once_value_19; /* Once value */ + static val_t once_value_20; /* Once value */ + static val_t once_value_21; /* Once value */ + static val_t once_value_22; /* Once value */ + static val_t once_value_24; /* Once value */ + static val_t once_value_25; /* Once value */ + static val_t once_value_26; /* Once value */ + static val_t once_value_27; /* Once value */ + static val_t once_value_28; /* Once value */ + static val_t once_value_29; /* Once value */ + static val_t once_value_30; /* Once value */ + static val_t once_value_31; /* Once value */ + static val_t once_value_32; /* Once value */ + static val_t once_value_33; /* Once value */ + static val_t once_value_34; /* Once value */ + static val_t once_value_35; /* Once value */ + static val_t once_value_36; /* Once value */ + static val_t once_value_38; /* Once value */ + static val_t once_value_39; /* Once value */ + static val_t once_value_40; /* Once value */ + static val_t once_value_41; /* Once value */ + static val_t once_value_42; /* Once value */ + static val_t once_value_43; /* Once value */ + static val_t once_value_44; /* Once value */ + static val_t once_value_45; /* Once value */ + static val_t once_value_46; /* Once value */ + static val_t once_value_47; /* Once value */ + static val_t once_value_48; /* Once value */ + static val_t once_value_49; /* Once value */ + static val_t once_value_50; /* Once value */ + static val_t once_value_51; /* Once value */ + static val_t once_value_52; /* Once value */ + static val_t once_value_53; /* Once value */ + static val_t once_value_54; /* Once value */ + static val_t once_value_55; /* Once value */ + static val_t once_value_56; /* Once value */ + static val_t once_value_57; /* Once value */ + static val_t once_value_58; /* Once value */ + static val_t once_value_59; /* Once value */ + static val_t once_value_60; /* Once value */ + static val_t once_value_61; /* Once value */ + static val_t once_value_62; /* Once value */ + static val_t once_value_63; /* Once value */ + static val_t once_value_64; /* Once value */ + static val_t once_value_65; /* Once value */ + static val_t once_value_66; /* Once value */ + static val_t once_value_68; /* Once value */ + static val_t once_value_69; /* Once value */ + static val_t once_value_70; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 828; + fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_redef; + fra.me.has_broke = 0; + fra.me.REG_size = 14; + 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[10] = NIT_NULL; + fra.me.REG[11] = NIT_NULL; + fra.me.REG[12] = NIT_NULL; + fra.me.REG[13] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + REGB0 = p3; + REGB1 = p4; + /* ./syntax//mmbuilder.nit:831 */ + REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/; + /* ./syntax//mmbuilder.nit:832 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:834 */ + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:835 */ + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[5] = BOX_NativeString("Redef error: "); + REGB0 = TAG_Int(13); + 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___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_2) { + fra.me.REG[5] = BOX_NativeString("::"); + REGB0 = TAG_Int(2); + 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(" is an inherited property. To redefine it, add the redef keyword."); + REGB0 = TAG_Int(65); + 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[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:836 */ + goto label4; + } + /* ./syntax//mmbuilder.nit:838 */ + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(!UNTAG_Bool(REGB2)); + } else { + REGB3 = TAG_Bool(false); + REGB0 = REGB3; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:839 */ + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_5) { + fra.me.REG[5] = BOX_NativeString("Redef error: A method "); + REGB0 = TAG_Int(22); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_5 = fra.me.REG[5]; + register_static_object(&once_value_5); + } else fra.me.REG[5] = once_value_5; + fra.me.REG[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___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_6) { + fra.me.REG[5] = BOX_NativeString("::"); + REGB0 = TAG_Int(2); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_6 = fra.me.REG[5]; + register_static_object(&once_value_6); + } else fra.me.REG[5] = once_value_6; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + 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_7) { + fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor."); + REGB0 = TAG_Int(31); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_7 = fra.me.REG[5]; + register_static_object(&once_value_7); + } else fra.me.REG[5] = once_value_7; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); + } else { + /* ./syntax//mmbuilder.nit:840 */ + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + } else { + REGB0 = TAG_Bool(false); + REGB2 = REGB0; + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:841 */ + REGB2 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_8) { + fra.me.REG[5] = BOX_NativeString("Redef error: A constructor "); + REGB2 = TAG_Int(27); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_8 = fra.me.REG[5]; + register_static_object(&once_value_8); + } else fra.me.REG[5] = once_value_8; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_9) { + fra.me.REG[5] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_9 = fra.me.REG[5]; + register_static_object(&once_value_9); + } else fra.me.REG[5] = once_value_9; + fra.me.REG[5] = fra.me.REG[5]; + CALL_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_10) { + fra.me.REG[5] = BOX_NativeString(" cannot redefine a method."); + REGB2 = TAG_Int(26); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_10 = fra.me.REG[5]; + register_static_object(&once_value_10); + } else fra.me.REG[5] = once_value_10; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); + } + } + /* ./syntax//mmbuilder.nit:844 */ + fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:846 */ + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//kernel.nit:212 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; + /* ./syntax//mmbuilder.nit:847 */ + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); + /* ./syntax//mmbuilder.nit:848 */ + fra.me.REG[7] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[8] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]); + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 848); + } + fra.me.REG[8] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + /* ./syntax//mmbuilder.nit:850 */ + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Bool(false); + REGB0 = REGB3; + } else { + REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB0 = REGB3; } - variable[18] = CALL_syntax_base___PParam___variable( variable[16] /*p*/)( variable[16] /*p*/) /*PParam::variable*/; - CALL_syntax_base___Variable___stype__eq(variable[18])(variable[18], variable[17] /*t*/) /*Variable::stype=*/; - continue_96: while(0); - CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/; } - break_96: while(0); - variable[8] = variable[13] /*isig*/ /*s=*/; - CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[8] /*s*/) /*MMLocalProperty::signature=*/; - } - variable[14] = CALL_static_type___MMSignature___arity( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::arity*/; - variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - variable[14] = TAG_Bool((variable[14])!=(variable[15])); - if (UNTAG_Bool(variable[14])) { /*if*/ - variable[14] = variable[0]; - variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/ - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/ - variable[17] = variable[16]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[17]) /*AbstractArray::add*/; - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[19] = variable[18]; - variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[19]) /*AbstractArray::add*/; - variable[20] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[21] = variable[20]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[21]) /*AbstractArray::add*/; - variable[22] = variable[2] /*prop*/; - variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[22]) /*AbstractArray::add*/; - variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)); /*new String*/ - variable[24] = variable[23]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[24]) /*AbstractArray::add*/; - variable[25] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - variable[26] = variable[25]; - variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[26]) /*AbstractArray::add*/; - variable[27] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[28] = variable[27]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[28]) /*AbstractArray::add*/; - variable[29] = variable[12] /*ip*/; - variable[29] = CALL_string___Object___to_s(variable[29])(variable[29]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[29]) /*AbstractArray::add*/; - variable[30] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)); /*new String*/ - variable[31] = variable[30]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[31]) /*AbstractArray::add*/; - variable[32] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - variable[33] = variable[32]; - variable[33] = CALL_string___Object___to_s(variable[33])(variable[33]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[33]) /*AbstractArray::add*/; - variable[34] = NEW_String_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)); /*new String*/ - variable[35] = variable[34]; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[35]) /*AbstractArray::add*/; - variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[14], variable[15]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - variable[14] = CALL_static_type___MMSignature___arity( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::arity*/; - variable[15] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[14]); /*new Range[Int]*/ - variable[14] = variable[15]; - variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Range::iterator*/; - while (true) { /*for*/ - variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[15])) break; /*for*/ - variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*Iterator::item*/; - variable[16] = variable[15]; - variable[17] = CALL_static_type___MMSignature_____bra( variable[8] /*s*/)( variable[8] /*s*/, variable[16] /*i*/) /*MMSignature::[]*/; - variable[18] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/, variable[16] /*i*/) /*MMSignature::[]*/; - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] == variable[18]) || ((variable[17] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[17])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17],variable[18])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[17])(variable[17], variable[18]) /*Object::==*/))))))); - if (UNTAG_Bool(variable[17])) { /*if*/ - variable[17] = variable[0]; - variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(13)); /*new Array[String]*/ - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Expected "), TAG_Int(22)); /*new String*/ - variable[20] = variable[19]; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[20]) /*AbstractArray::add*/; - variable[21] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/, variable[16] /*i*/) /*MMSignature::[]*/; - variable[22] = variable[21]; - variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[22]) /*AbstractArray::add*/; - variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)); /*new String*/ - variable[24] = variable[23]; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[24]) /*AbstractArray::add*/; - variable[25] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - variable[26] = variable[25]; - variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[26]) /*AbstractArray::add*/; - variable[27] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[28] = variable[27]; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[28]) /*AbstractArray::add*/; - variable[29] = variable[12] /*ip*/; - variable[29] = CALL_string___Object___to_s(variable[29])(variable[29]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[29]) /*AbstractArray::add*/; - variable[30] = NEW_String_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)); /*new String*/ - variable[31] = variable[30]; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[31]) /*AbstractArray::add*/; - variable[32] = CALL_static_type___MMSignature_____bra( variable[8] /*s*/)( variable[8] /*s*/, variable[16] /*i*/) /*MMSignature::[]*/; - variable[33] = variable[32]; - variable[33] = CALL_string___Object___to_s(variable[33])(variable[33]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[33]) /*AbstractArray::add*/; - variable[34] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/ - variable[35] = variable[34]; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[35]) /*AbstractArray::add*/; - variable[36] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - variable[37] = variable[36]; - variable[37] = CALL_string___Object___to_s(variable[37])(variable[37]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[37]) /*AbstractArray::add*/; - variable[38] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/ - variable[39] = variable[38]; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[39]) /*AbstractArray::add*/; - variable[40] = variable[2] /*prop*/; - variable[40] = CALL_string___Object___to_s(variable[40])(variable[40]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[40]) /*AbstractArray::add*/; - variable[41] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[42] = variable[41]; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[42]) /*AbstractArray::add*/; - variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[17], variable[18]) /*AbsSyntaxVisitor::error*/; + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:852 */ + fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[7])(fra.me.REG[7]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:852 */ + REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]); + REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3)); + if (UNTAG_Bool(REGB4)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB3 = TAG_Bool((REGB0)==(REGB3)); + /* ./syntax//mmbuilder.nit:852 */ + REGB4 = REGB3; + } + REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); + if (UNTAG_Bool(REGB4)) { + /* ./syntax//mmbuilder.nit:853 */ + REGB4 = TAG_Int(11); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB4); + if (!once_value_11) { + fra.me.REG[10] = BOX_NativeString("Redef error: "); + REGB4 = TAG_Int(13); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_11 = fra.me.REG[10]; + register_static_object(&once_value_11); + } else fra.me.REG[10] = once_value_11; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_12) { + fra.me.REG[10] = BOX_NativeString("::"); + REGB4 = TAG_Int(2); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_12 = fra.me.REG[10]; + register_static_object(&once_value_12); + } else fra.me.REG[10] = once_value_12; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_13) { + fra.me.REG[10] = BOX_NativeString(" redefines "); + REGB4 = TAG_Int(11); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_13 = fra.me.REG[10]; + register_static_object(&once_value_13); + } else fra.me.REG[10] = once_value_13; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_14) { + fra.me.REG[10] = BOX_NativeString("::"); + REGB4 = TAG_Int(2); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_14 = fra.me.REG[10]; + register_static_object(&once_value_14); + } else fra.me.REG[10] = once_value_14; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_15) { + fra.me.REG[10] = BOX_NativeString(" with "); + REGB4 = TAG_Int(6); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_15 = fra.me.REG[10]; + register_static_object(&once_value_15); + } else fra.me.REG[10] = once_value_15; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[10] = CALL_string___Object___to_s(REGB4)(REGB4); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_16) { + fra.me.REG[10] = BOX_NativeString(" parameter(s)."); + REGB4 = TAG_Int(14); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_16 = fra.me.REG[10]; + register_static_object(&once_value_16); + } else fra.me.REG[10] = once_value_16; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:854 */ + goto label4; + } + /* ./syntax//mmbuilder.nit:856 */ + fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[7])(fra.me.REG[7]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:856 */ + fra.me.REG[7] = CALL_static_type___MMSignature___closures(fra.me.REG[8])(fra.me.REG[8]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB3)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:856 */ + REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3)); + if (UNTAG_Bool(REGB0)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB3 = TAG_Bool((REGB4)==(REGB3)); + /* ./syntax//mmbuilder.nit:856 */ + REGB0 = REGB3; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:857 */ + REGB0 = TAG_Int(11); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_17) { + fra.me.REG[10] = BOX_NativeString("Redef error: "); + REGB0 = TAG_Int(13); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0); + once_value_17 = fra.me.REG[10]; + register_static_object(&once_value_17); + } else fra.me.REG[10] = once_value_17; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_18) { + fra.me.REG[10] = BOX_NativeString("::"); + REGB0 = TAG_Int(2); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0); + once_value_18 = fra.me.REG[10]; + register_static_object(&once_value_18); + } else fra.me.REG[10] = once_value_18; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_19) { + fra.me.REG[10] = BOX_NativeString(" redefines "); + REGB0 = TAG_Int(11); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0); + once_value_19 = fra.me.REG[10]; + register_static_object(&once_value_19); + } else fra.me.REG[10] = once_value_19; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_20) { + fra.me.REG[10] = BOX_NativeString("::"); + REGB0 = TAG_Int(2); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0); + once_value_20 = fra.me.REG[10]; + register_static_object(&once_value_20); + } else fra.me.REG[10] = once_value_20; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_21) { + fra.me.REG[10] = BOX_NativeString(" with "); + REGB0 = TAG_Int(6); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0); + once_value_21 = fra.me.REG[10]; + register_static_object(&once_value_21); + } else fra.me.REG[10] = once_value_21; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[10] = CALL_string___Object___to_s(REGB0)(REGB0); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_22) { + fra.me.REG[10] = BOX_NativeString(" closure(s)."); + REGB0 = TAG_Int(12); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0); + once_value_22 = fra.me.REG[10]; + register_static_object(&once_value_22); + } else fra.me.REG[10] = once_value_22; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:858 */ + goto label4; + } + /* ./syntax//mmbuilder.nit:860 */ + fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[7])(fra.me.REG[7]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB3)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[10] = ATTR_array___Array____items(fra.me.REG[7]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); + if (UNTAG_Bool(REGB3)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]); + /* ./../lib/standard//kernel.nit:212 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:861 */ + REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]); + fra.me.REG[12] = CALL_static_type___MMSignature_____bra(fra.me.REG[8])(fra.me.REG[8], REGB3); + /* ./syntax//mmbuilder.nit:862 */ + CALL_mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]); + /* ./syntax//mmbuilder.nit:863 */ + REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]); + REGB4 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[8])(fra.me.REG[8]); + REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4)); + if (UNTAG_Bool(REGB5)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB4 = TAG_Bool((REGB3)==(REGB4)); + /* ./syntax//mmbuilder.nit:863 */ + REGB5 = REGB4; + } + if (UNTAG_Bool(REGB5)) { + /* ./syntax//mmbuilder.nit:864 */ + fra.me.REG[13] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]); + fra.me.REG[12] = fra.me.REG[13]; + } + /* ./syntax//mmbuilder.nit:866 */ + fra.me.REG[11] = CALL_syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]); + CALL_syntax_base___Variable___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB5 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB5; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label23; + } + } + label23: while(0); + /* ./syntax//mmbuilder.nit:868 */ + fra.me.REG[4] = fra.me.REG[8]; + /* ./syntax//mmbuilder.nit:869 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + } + /* ./syntax//mmbuilder.nit:873 */ + fra.me.REG[10] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]); + /* ./syntax//mmbuilder.nit:881 */ + REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB5)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 881); + } + REGB5 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]); + REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]); + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4)); + if (UNTAG_Bool(REGB3)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB4 = TAG_Bool((REGB5)==(REGB4)); + /* ./syntax//mmbuilder.nit:881 */ + REGB3 = REGB4; + } + REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); + if (UNTAG_Bool(REGB3)) { + /* ./syntax//mmbuilder.nit:882 */ + REGB3 = TAG_Int(11); + fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB3); + if (!once_value_24) { + fra.me.REG[7] = BOX_NativeString("Redef error: "); + REGB3 = TAG_Int(13); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3); + once_value_24 = fra.me.REG[7]; + register_static_object(&once_value_24); + } else fra.me.REG[7] = once_value_24; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + if (!once_value_25) { + fra.me.REG[7] = BOX_NativeString("::"); + REGB3 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3); + once_value_25 = fra.me.REG[7]; + register_static_object(&once_value_25); + } else fra.me.REG[7] = once_value_25; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + if (!once_value_26) { + fra.me.REG[7] = BOX_NativeString(" redefines "); + REGB3 = TAG_Int(11); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3); + once_value_26 = fra.me.REG[7]; + register_static_object(&once_value_26); + } else fra.me.REG[7] = once_value_26; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + if (!once_value_27) { + fra.me.REG[7] = BOX_NativeString("::"); + REGB3 = TAG_Int(2); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3); + once_value_27 = fra.me.REG[7]; + register_static_object(&once_value_27); + } else fra.me.REG[7] = once_value_27; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + if (!once_value_28) { + fra.me.REG[7] = BOX_NativeString(" with "); + REGB3 = TAG_Int(6); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3); + once_value_28 = fra.me.REG[7]; + register_static_object(&once_value_28); + } else fra.me.REG[7] = once_value_28; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(REGB3)(REGB3); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + if (!once_value_29) { + fra.me.REG[7] = BOX_NativeString(" parameter(s)."); + REGB3 = TAG_Int(14); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3); + once_value_29 = fra.me.REG[7]; + register_static_object(&once_value_29); + } else fra.me.REG[7] = once_value_29; + fra.me.REG[7] = fra.me.REG[7]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]); + } else { + /* ./syntax//mmbuilder.nit:884 */ + REGB3 = TAG_Int(0); + REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 884); + } + REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:332 */ + while(1) { + /* ./../lib/standard//kernel.nit:212 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB3)UNTAG_Int( TAG_Int(1))); - } - variable[4] = variable[5]; - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AMethPropdef___n_visibility(variable[4])(variable[4]) /*AMethPropdef::n_visibility*/; - variable[4] = CALL_mmbuilder___PVisibility___level(variable[4])(variable[4]) /*PVisibility::level*/; - variable[3] = variable[4] /*visibility_level=*/; - } - variable[4] = variable[0]; - variable[5] = variable[0]; - variable[5] = ATTR_mmbuilder___AMethPropdef____method(variable[5]) /*AMethPropdef::_method*/; - variable[6] = variable[0]; - variable[6] = CALL_parser_nodes___AMethPropdef___n_kwredef(variable[6])(variable[6]) /*AMethPropdef::n_kwredef*/; - variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], NIT_NULL /*null*/) /*Object::==*/))))))); - CALL_mmbuilder___PPropdef___process_and_check(variable[4])(variable[4], variable[1] /*v*/, variable[5], variable[6], variable[3] /*visibility_level*/) /*PPropdef::process_and_check*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[4])(variable[4]) /*AMethPropdef::n_signature*/; - variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[4])(variable[4]) /*AMethPropdef::n_signature*/; - variable[5] = variable[0]; - variable[5] = ATTR_mmbuilder___AMethPropdef____method(variable[5]) /*AMethPropdef::_method*/; - CALL_mmbuilder___PSignature___check_visibility(variable[4])(variable[4], variable[1] /*v*/, variable[5]) /*PSignature::check_visibility*/; - } - return_label107: while(false); - tracehead = trace.prev; +void mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1033; + fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_verifier; + 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; + /* ./syntax//mmbuilder.nit:1033 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1035 */ + fra.me.REG[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); + CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1036 */ + CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1038 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + goto label1; + } + /* ./syntax//mmbuilder.nit:1040 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]); + 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)) { + } else { + /* ./syntax//mmbuilder.nit:1043 */ + fra.me.REG[1] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1043); + } + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } + /* ./syntax//mmbuilder.nit:1045 */ + REGB0 = TAG_Int(1); + /* ./syntax//mmbuilder.nit:1046 */ + fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1046); + } + REGB1 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:214 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); + } else { + /* ./syntax//mmbuilder.nit:1046 */ + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:1047 */ + fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1047); + } + REGB2 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = REGB2; + } + /* ./syntax//mmbuilder.nit:1049 */ + fra.me.REG[0] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); + REGB2 = REGB1; + } + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB2, REGB0); + /* ./syntax//mmbuilder.nit:1050 */ + fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB0 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB2; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1050); + } + CALL_mmbuilder___ASignature___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); + } + label1: while(0); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___AMethPropdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 962, LOCATE_mmbuilder___AMethPropdef___name}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___AMethPropdef____name( self) /*AMethPropdef::_name*/; -} -void mmbuilder___AMainMethPropdef___process_and_check(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) { - struct trace_t trace = {NULL, NULL, 1018, LOCATE_mmbuilder___AMainMethPropdef___process_and_check}; - val_t variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[3] = param2; - variable[4] = param3; - variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(variable[6])(variable[6], variable[4] /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/; - variable[6] = NEW_Array_array___Array___init(); /*new Array[MMType]*/ - variable[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[7] = CALL_static_type___MMLocalClass___get_type(variable[7])(variable[7]) /*MMLocalClass::get_type*/; - variable[8] = NEW_MMSignature_static_type___MMSignature___init(variable[6], NIT_NULL /*null*/, variable[7]); /*new MMSignature*/ - variable[6] = variable[8]; - CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[6]) /*MMLocalProperty::signature=*/; - return_label108: while(false); - tracehead = trace.prev; +void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1053; + fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_abs_syntax_visitor; + 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; + /* ./syntax//mmbuilder.nit:1053 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1055 */ + fra.me.REG[2] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]); + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1056 */ + CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1057 */ + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1047, LOCATE_mmbuilder___ATypePropdef___accept_abs_syntax_visitor}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = variable[0]; - variable[3] = CALL_syntax_base___ATypePropdef___prop(variable[3])(variable[3]) /*ATypePropdef::prop*/; - CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/; - CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_abs_syntax_visitor*/; - CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/; - return_label109: while(false); - tracehead = trace.prev; +void mmbuilder___AMainMethPropdef___process_and_check(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[2];} 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_mmbuilder; + fra.me.line = 1062; + fra.me.meth = LOCATE_mmbuilder___AMainMethPropdef___process_and_check; + 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; + REGB0 = p3; + REGB1 = p4; + /* ./syntax//mmbuilder.nit:1064 */ + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1); + /* ./syntax//mmbuilder.nit:1065 */ + fra.me.REG[0] = NEW_Array_array___Array___init(); + fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]); + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___ATypePropdef___prop(val_t self) { - struct trace_t trace = {NULL, NULL, 1027, LOCATE_mmbuilder___ATypePropdef___prop}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___ATypePropdef____prop( self) /*ATypePropdef::_prop*/; -} -void mmbuilder___ATypePropdef___accept_property_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1029, LOCATE_mmbuilder___ATypePropdef___accept_property_builder}; - val_t variable[8]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_property_builder*/; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___ATypePropdef___n_id(variable[4])(variable[4]) /*ATypePropdef::n_id*/; - variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/; - variable[3] = variable[4]; - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[6] = variable[0]; - variable[7] = NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init( variable[3] /*name*/, variable[5], variable[6]); /*new MMSrcTypeProperty*/ - variable[5] = variable[7]; - variable[4] = variable[5]; - variable[5] = variable[0]; - ATTR_mmbuilder___ATypePropdef____prop(variable[5]) /*ATypePropdef::_prop*/ = variable[4] /*prop*/; - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[5])(variable[5], variable[1] /*v*/, variable[4] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/; - return_label110: while(false); - tracehead = trace.prev; +void mmbuilder___AExternMethPropdef___accept_property_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1071; + fra.me.meth = LOCATE_mmbuilder___AExternMethPropdef___accept_property_verifier; + 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; + /* ./syntax//mmbuilder.nit:1071 */ + fra.me.REG[2] = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:1073 */ + CALL_SUPER_mmbuilder___AExternMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1075 */ + fra.me.REG[1] = CALL_parser_nodes___AExternMethPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]); + 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; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1076 */ + fra.me.REG[1] = CALL_parser_nodes___AExternMethPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1076); + } + fra.me.REG[1] = CALL_lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1077 */ + REGB0 = TAG_Int(1); + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1077 */ + REGB2 = TAG_Int(2); + /* ./../lib/standard//kernel.nit:217 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2)); + /* ./syntax//mmbuilder.nit:1077 */ + fra.me.REG[0] = CALL_string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2); + fra.me.REG[1] = fra.me.REG[0]; + } else { + /* ./syntax//mmbuilder.nit:1079 */ + REGB2 = TAG_Int(11); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB2); + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2); + once_value_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_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + 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("_"); + REGB2 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2); + 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_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + 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("_"); + REGB2 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2); + 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[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + if (!once_value_4) { + fra.me.REG[3] = BOX_NativeString("_"); + REGB2 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2); + once_value_4 = fra.me.REG[3]; + register_static_object(&once_value_4); + } else fra.me.REG[3] = once_value_4; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + if (!once_value_5) { + fra.me.REG[3] = BOX_NativeString("_"); + REGB2 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2); + once_value_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[0])(fra.me.REG[0], fra.me.REG[3]); + fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]); + REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1079); + } + REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + if (!once_value_6) { + fra.me.REG[3] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2); + once_value_6 = fra.me.REG[3]; + register_static_object(&once_value_6); + } else fra.me.REG[3] = once_value_6; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[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]); + fra.me.REG[1] = fra.me.REG[0]; + } + /* ./syntax//mmbuilder.nit:1081 */ + fra.me.REG[2] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]); + CALL_syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ATypePropdef___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1038, LOCATE_mmbuilder___ATypePropdef___accept_property_verifier}; - val_t variable[8]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_property_verifier*/; - variable[4] = NEW_Array_array___Array___init(); /*new Array[MMType]*/ - variable[5] = variable[0]; - variable[5] = CALL_parser_nodes___ATypePropdef___n_type(variable[5])(variable[5]) /*ATypePropdef::n_type*/; - variable[5] = CALL_syntax_base___PType___get_stype(variable[5])(variable[5], variable[1] /*v*/) /*PType::get_stype*/; - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/; - variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[4], variable[5], variable[6]); /*new MMSignature*/ - variable[4] = variable[7]; - variable[3] = variable[4]; - variable[4] = variable[0]; - variable[4] = ATTR_mmbuilder___ATypePropdef____prop(variable[4]) /*ATypePropdef::_prop*/; - CALL_static_type___MMLocalProperty___signature__eq(variable[4])(variable[4], variable[3] /*signature*/) /*MMLocalProperty::signature=*/; - variable[5] = variable[0]; - variable[5] = CALL_parser_nodes___ATypePropdef___n_visibility(variable[5])(variable[5]) /*ATypePropdef::n_visibility*/; - variable[5] = CALL_mmbuilder___PVisibility___level(variable[5])(variable[5]) /*PVisibility::level*/; - variable[4] = variable[5]; - variable[5] = variable[0]; - variable[6] = variable[0]; - variable[6] = ATTR_mmbuilder___ATypePropdef____prop(variable[6]) /*ATypePropdef::_prop*/; - variable[7] = variable[0]; - variable[7] = CALL_parser_nodes___ATypePropdef___n_kwredef(variable[7])(variable[7]) /*ATypePropdef::n_kwredef*/; - variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] == NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], NIT_NULL /*null*/) /*Object::==*/))))))); - CALL_mmbuilder___PPropdef___process_and_check(variable[5])(variable[5], variable[1] /*v*/, variable[6], variable[7], variable[4] /*visibility_level*/) /*PPropdef::process_and_check*/; - return_label111: while(false); - tracehead = trace.prev; +val_t mmbuilder___ATypePropdef___prop(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_mmbuilder; + fra.me.line = 1086; + fra.me.meth = LOCATE_mmbuilder___ATypePropdef___prop; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1086 */ + fra.me.REG[0] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1086); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1089; + fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_builder; + 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; + /* ./syntax//mmbuilder.nit:1089 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1091 */ + CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1092 */ + fra.me.REG[1] = CALL_parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1093 */ + fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1094 */ + ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:1095 */ + fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MethidAccumulator___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1059, LOCATE_mmbuilder___MethidAccumulator___visit}; - val_t variable[5]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[3] = TAG_Bool(( variable[1] /*n*/==NIT_NULL) || VAL_ISA( variable[1] /*n*/, COLOR_Token, ID_Token)) /*cast Token*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[3] = variable[0]; - variable[3] = ATTR_mmbuilder___MethidAccumulator____name(variable[3]) /*MethidAccumulator::_name*/; - variable[4] = CALL_lexer___Token___text( variable[1] /*n*/)( variable[1] /*n*/) /*Token::text*/; - CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*String::append*/; - } else { /*if*/ - variable[3] = variable[0]; - CALL_parser_prod___PNode___visit_all( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::visit_all*/; - } - return_label112: while(false); - tracehead = trace.prev; +void mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1098; + fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_verifier; + 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; + /* ./syntax//mmbuilder.nit:1098 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1100 */ + CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1101 */ + fra.me.REG[1] = NEW_Array_array___Array___init(); + fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1102 */ + fra.me.REG[0] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]); + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1103 */ + fra.me.REG[4] = CALL_parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1104 */ + fra.me.REG[4] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___MethidAccumulator___name(val_t self) { - struct trace_t trace = {NULL, NULL, 1058, LOCATE_mmbuilder___MethidAccumulator___name}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___MethidAccumulator____name( self) /*MethidAccumulator::_name*/; -} -void mmbuilder___MethidAccumulator___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 1068, LOCATE_mmbuilder___MethidAccumulator___init}; - val_t variable[4]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MethidAccumulator].i]) return; - variable[2] = variable[0]; - variable[3] = NEW_String_string___String___init(); /*new String*/ - ATTR_mmbuilder___MethidAccumulator____name(variable[2]) /*MethidAccumulator::_name*/ = variable[3]; - return_label113: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MethidAccumulator].i] = 1; - tracehead = trace.prev; +void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1107; + fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_abs_syntax_visitor; + 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; + /* ./syntax//mmbuilder.nit:1107 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1109 */ + fra.me.REG[2] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]); + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1110 */ + CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1111 */ + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PMethid___accept_property_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1078, LOCATE_mmbuilder___PMethid___accept_property_builder}; - val_t variable[6]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[4] = NEW_MethidAccumulator_mmbuilder___MethidAccumulator___init(); /*new MethidAccumulator*/ - variable[3] = variable[4]; - variable[4] = variable[0]; - CALL_parser_prod___Visitor___visit( variable[3] /*accumulator*/)( variable[3] /*accumulator*/, variable[4]) /*MethidAccumulator::visit*/; - variable[4] = variable[0]; - variable[5] = CALL_mmbuilder___MethidAccumulator___name( variable[3] /*accumulator*/)( variable[3] /*accumulator*/) /*MethidAccumulator::name*/; - variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/; - ATTR_mmbuilder___PMethid____name(variable[4]) /*PMethid::_name*/ = variable[5]; - CALL_SUPER_mmbuilder___PMethid___accept_property_builder(variable[0])(variable[0], variable[1]) /*super PMethid::accept_property_builder*/; - return_label114: while(false); - tracehead = trace.prev; +val_t mmbuilder___MethidAccumulator___name(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_mmbuilder; + fra.me.line = 1118; + fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1118 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_name", LOCATE_mmbuilder, 1118); + } + fra.me.REG[0] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___MethidAccumulator___visit(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_mmbuilder; + fra.me.line = 1119; + fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___visit; + 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; + /* ./syntax//mmbuilder.nit:1121 */ + REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Token, ID_Token)) /*cast Token*/; + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1122 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_name", LOCATE_mmbuilder, 1122); + } + fra.me.REG[2] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1122); + } + fra.me.REG[3] = CALL_lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + } else { + /* ./syntax//mmbuilder.nit:1124 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1124); + } + CALL_parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___PMethid___name(val_t self) { - struct trace_t trace = {NULL, NULL, 1075, LOCATE_mmbuilder___PMethid___name}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___PMethid____name( self) /*PMethid::_name*/; -} -void mmbuilder___PSignature___check_visibility(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 1088, LOCATE_mmbuilder___PSignature___check_visibility}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1088); - nit_exit(1); - tracehead = trace.prev; +val_t mmbuilder___AMethid___name(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_mmbuilder; + fra.me.line = 1130; + fra.me.meth = LOCATE_mmbuilder___AMethid___name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1130 */ + fra.me.REG[0] = ATTR_mmbuilder___AMethid____name(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1133; + fra.me.meth = LOCATE_mmbuilder___AMethid___accept_property_builder; + 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; + /* ./syntax//mmbuilder.nit:1133 */ + fra.me.REG[2] = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:1135 */ + fra.me.REG[3] = NEW_MethidAccumulator_parser_prod___Visitor___init(); + /* ./syntax//mmbuilder.nit:1136 */ + CALL_parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1137 */ + fra.me.REG[3] = CALL_mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]); + ATTR_mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3]; + /* ./syntax//mmbuilder.nit:1138 */ + CALL_SUPER_mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ASignature___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1093, LOCATE_mmbuilder___ASignature___accept_property_verifier}; - val_t variable[10]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super ASignature::accept_property_verifier*/; - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*AbstractArray::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*IndexedCollection::first*/; - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/; - variable[4] = CALL_abstract_collection___Collection___first(variable[4])(variable[4]) /*IndexedCollection::first*/; - variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/))))))); - variable[4] = variable[3]; - if (!UNTAG_Bool(variable[4])) { /* or */ - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___ASignature___n_type(variable[4])(variable[4]) /*ASignature::n_type*/; - variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/))))))); - } - variable[3] = variable[4]; - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*IndexedCollection::first*/; - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Syntax error: untyped parameter."), TAG_Int(32)); /*new String*/ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/; - goto return_label115; - } - } else { /*if*/ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = CALL_mmbuilder___SignatureBuilder___params(variable[3])(variable[3]) /*SignatureBuilder::params*/; - variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*AbstractArray::is_empty*/; - variable[3] = TAG_Bool(!UNTAG_Bool(variable[3])); - if (!UNTAG_Bool(variable[3])) { /* or */ - variable[3] = variable[0]; - variable[3] = CALL_parser_nodes___ASignature___n_type(variable[3])(variable[3]) /*ASignature::n_type*/; - variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/))))))); - } - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[4] = NEW_Array_array___Array___init(); /*new Array[MMType]*/ - variable[3] = variable[4]; - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/; - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - 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*/; - variable[6] = variable[5]; - variable[7] = CALL_mmbuilder___PParam___stype( variable[6] /*p*/)( variable[6] /*p*/) /*PParam::stype*/; - CALL_abstract_collection___SimpleCollection___add( variable[3] /*pars*/)( variable[3] /*pars*/, variable[7]) /*AbstractArray::add*/; - continue_116: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; +void mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1143; + fra.me.meth = LOCATE_mmbuilder___ASignature___accept_property_verifier; + 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; + /* ./syntax//mmbuilder.nit:1143 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1145 */ + CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1146 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1147 */ + goto label1; + } else { + /* ./syntax//mmbuilder.nit:1148 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]); + 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)) { + /* ./syntax//mmbuilder.nit:1149 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[0])); + 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], fra.me.REG[0]); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + REGB0 = REGB1; } - break_116: while(0); - variable[4] = NIT_NULL /*null*/; - variable[5] = variable[0]; - variable[5] = CALL_parser_nodes___ASignature___n_type(variable[5])(variable[5]) /*ASignature::n_type*/; - variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = variable[0]; - variable[5] = CALL_parser_nodes___ASignature___n_type(variable[5])(variable[5]) /*ASignature::n_type*/; - variable[5] = CALL_syntax_base___PType___get_stype(variable[5])(variable[5], variable[1] /*v*/) /*PType::get_stype*/; - variable[4] = variable[5] /*ret=*/; + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1150 */ + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter."); + REGB0 = TAG_Int(32); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0); + once_value_2 = fra.me.REG[1]; + register_static_object(&once_value_2); + } else fra.me.REG[1] = once_value_2; + fra.me.REG[1] = fra.me.REG[1]; + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1151 */ + goto label1; } - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/; - variable[7] = NEW_MMSignature_static_type___MMSignature___init( variable[3] /*pars*/, variable[4] /*ret*/, variable[6]); /*new MMSignature*/ - variable[6] = variable[7]; - CALL_mmbuilder___SignatureBuilder___signature__eq(variable[5])(variable[5], variable[6]) /*SignatureBuilder::signature=*/; - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[5] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[5])(variable[5]) /*SignatureBuilder::vararg_rank*/; - variable[5] = TAG_Bool(UNTAG_Int(variable[5])>=UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[5] = CALL_mmbuilder___SignatureBuilder___signature(variable[5])(variable[5]) /*SignatureBuilder::signature*/; - variable[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[6] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[6])(variable[6]) /*SignatureBuilder::vararg_rank*/; - CALL_vararg___MMSignature___vararg_rank__eq(variable[5])(variable[5], variable[6]) /*MMSignature::vararg_rank=*/; + } else { + /* ./syntax//mmbuilder.nit:1153 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]); + 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)) { + REGB0 = TAG_Bool(true); + } else { + fra.me.REG[1] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + REGB0 = REGB1; } - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[5])(variable[5]) /*SignatureBuilder::closure_decls*/; - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - 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*/; - variable[7] = variable[6]; - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[8] = CALL_mmbuilder___SignatureBuilder___signature(variable[8])(variable[8]) /*SignatureBuilder::signature*/; - variable[8] = CALL_static_type___MMSignature___closures(variable[8])(variable[8]) /*MMSignature::closures*/; - variable[9] = CALL_syntax_base___PClosureDecl___variable( variable[7] /*clos*/)( variable[7] /*clos*/) /*AClosureDecl::variable*/; - variable[9] = CALL_syntax_base___ClosureVariable___closure(variable[9])(variable[9]) /*ClosureVariable::closure*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - continue_117: while(0); - CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/; + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1154 */ + fra.me.REG[1] = NEW_Array_array___Array___init(); + /* ./syntax//mmbuilder.nit:1155 */ + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:1156 */ + fra.me.REG[5] = CALL_mmbuilder___AParam___stype(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = TAG_Bool(fra.me.REG[5]!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1156); + } + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + /* ./../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; + } + } + label3: while(0); + /* ./syntax//mmbuilder.nit:1158 */ + fra.me.REG[4] = NIT_NULL; + /* ./syntax//mmbuilder.nit:1159 */ + fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1160 */ + fra.me.REG[2] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1160); + } + fra.me.REG[2] = CALL_syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[4] = fra.me.REG[2]; + /* ./syntax//mmbuilder.nit:1161 */ + 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; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1162 */ + fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(true); + CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0); + /* ./syntax//mmbuilder.nit:1163 */ + goto label1; + } + } + /* ./syntax//mmbuilder.nit:1166 */ + fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]); + CALL_mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1167 */ + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:1167 */ + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:1168 */ + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1168); + } + CALL_vararg___MMSignature___vararg_rank__eq(fra.me.REG[0])(fra.me.REG[0], REGB1); + } + /* ./syntax//mmbuilder.nit:1170 */ + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[0])(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[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]); + /* ./../lib/standard//kernel.nit:212 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./syntax//mmbuilder.nit:1171 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1171); + } + fra.me.REG[1] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB0; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label4; + } + } + label4: while(0); } - break_117: while(0); } } - return_label115: while(false); - tracehead = trace.prev; + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ASignature___check_visibility(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 1120, LOCATE_mmbuilder___ASignature___check_visibility}; - val_t variable[8]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*p*/)( variable[2] /*p*/) /*MMLocalProperty::global*/; - variable[4] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[4])(variable[4]) /*MMGlobalProperty::visibility_level*/; - variable[4] = TAG_Bool(UNTAG_Int(variable[4])>=UNTAG_Int( TAG_Int(3))); - if (UNTAG_Bool(variable[4])) { /*if*/ - goto return_label118; - } - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___ASignature___n_params(variable[4])(variable[4]) /*ASignature::n_params*/; - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/; - while (true) { /*for*/ - variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ListIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/; - variable[6] = variable[5]; - variable[7] = CALL_parser_nodes___PParam___n_type( variable[6] /*n*/)( variable[6] /*n*/) /*PParam::n_type*/; - variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] == NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = CALL_parser_nodes___PParam___n_type( variable[6] /*n*/)( variable[6] /*n*/) /*PParam::n_type*/; - CALL_mmbuilder___PType___check_visibility(variable[7])(variable[7], variable[1] /*v*/, variable[2] /*p*/) /*PType::check_visibility*/; - } - continue_119: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/; - } - break_119: while(0); - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___ASignature___n_type(variable[4])(variable[4]) /*ASignature::n_type*/; - variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___ASignature___n_type(variable[4])(variable[4]) /*ASignature::n_type*/; - CALL_mmbuilder___PType___check_visibility(variable[4])(variable[4], variable[1] /*v*/, variable[2] /*p*/) /*PType::check_visibility*/; - } - return_label118: while(false); - tracehead = trace.prev; +void mmbuilder___ASignature___check_visibility(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_mmbuilder; + fra.me.line = 1176; + fra.me.meth = LOCATE_mmbuilder___ASignature___check_visibility; + 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; + /* ./syntax//mmbuilder.nit:1179 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = TAG_Int(3); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:1179 */ + if (UNTAG_Bool(REGB1)) { + goto label1; + } + /* ./syntax//mmbuilder.nit:1180 */ + fra.me.REG[3] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___ASignature___check_visibility_2)); + /* ./syntax//mmbuilder.nit:1183 */ + fra.me.REG[3] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + REGB1 = REGB0; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1183); + } + CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + } + label1: while(0); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___PParam___position(val_t self) { - struct trace_t trace = {NULL, NULL, 1131, LOCATE_mmbuilder___PParam___position}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___PParam____position( self) /*PParam::_position*/; -} -val_t mmbuilder___PParam___variable(val_t self) { - struct trace_t trace = {NULL, NULL, 1133, LOCATE_mmbuilder___PParam___variable}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___PParam____variable( self) /*PParam::_variable*/; -} -void mmbuilder___PParam___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1138, LOCATE_mmbuilder___PParam___accept_property_verifier}; - val_t variable[9]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - CALL_SUPER_mmbuilder___PParam___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super PParam::accept_property_verifier*/; - variable[3] = variable[0]; - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/; - variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/; - ATTR_mmbuilder___PParam____position(variable[3]) /*PParam::_position*/ = variable[4]; - variable[3] = variable[0]; - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___PParam___n_id(variable[4])(variable[4]) /*PParam::n_id*/; - variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/; - variable[5] = variable[0]; - variable[6] = NEW_ParamVariable_syntax_base___ParamVariable___init(variable[4], variable[5]); /*new ParamVariable*/ - variable[4] = variable[6]; - ATTR_mmbuilder___PParam____variable(variable[3]) /*PParam::_variable*/ = variable[4]; - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = CALL_mmbuilder___SignatureBuilder___params(variable[3])(variable[3]) /*SignatureBuilder::params*/; - variable[4] = variable[0]; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/; - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - variable[4] = variable[0]; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/; - variable[3] = variable[0]; - variable[3] = CALL_parser_nodes___PParam___n_type(variable[3])(variable[3]) /*PParam::n_type*/; - variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[3])) { /*if*/ - variable[4] = variable[0]; - variable[4] = CALL_parser_nodes___PParam___n_type(variable[4])(variable[4]) /*PParam::n_type*/; - variable[4] = CALL_syntax_base___PType___get_stype(variable[4])(variable[4], variable[1] /*v*/) /*PType::get_stype*/; - variable[3] = variable[4]; - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[4])(variable[4]) /*SignatureBuilder::untyped_params*/; - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/; - while (true) { /*for*/ - 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*/; - variable[6] = variable[5]; - CALL_mmbuilder___PParam___stype__eq( variable[6] /*p*/)( variable[6] /*p*/, variable[3] /*stype*/) /*PParam::stype=*/; - variable[7] = variable[0]; - variable[7] = CALL_mmbuilder___PParam___is_vararg(variable[7])(variable[7]) /*PParam::is_vararg*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[7] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[7])(variable[7]) /*SignatureBuilder::vararg_rank*/; - variable[8] = TAG_Int(-UNTAG_Int( TAG_Int(1))); - variable[7] = TAG_Bool((variable[7])==(variable[8])); - if (UNTAG_Bool(variable[7])) { /*if*/ - variable[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[8] = CALL_syntax_base___PParam___position( variable[6] /*p*/)( variable[6] /*p*/) /*PParam::position*/; - CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(variable[7])(variable[7], variable[8]) /*SignatureBuilder::vararg_rank=*/; - } else { /*if*/ - variable[7] = variable[0]; - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: A vararg parameter is already defined."), TAG_Int(45)); /*new String*/ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/; - } - variable[7] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/, variable[3] /*stype*/) /*AbsSyntaxVisitor::type_array*/; - variable[3] = variable[7] /*stype=*/; + void OC_mmbuilder___ASignature___check_visibility_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){ + struct {struct stack_frame_t me; 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_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___ASignature___check_visibility; + 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; + /* ./syntax//mmbuilder.nit:1181 */ + fra.me.REG[1] = CALL_parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]); + 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; } - variable[7] = CALL_syntax_base___PParam___variable( variable[6] /*p*/)( variable[6] /*p*/) /*PParam::variable*/; - CALL_syntax_base___Variable___stype__eq(variable[7])(variable[7], variable[3] /*stype*/) /*Variable::stype=*/; - continue_121: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; - } - break_121: while(0); - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[4])(variable[4]) /*SignatureBuilder::untyped_params*/; - CALL_abstract_collection___RemovableCollection___clear(variable[4])(variable[4]) /*AbstractArray::clear*/; - } - return_label120: while(false); - tracehead = trace.prev; - return; -} -val_t mmbuilder___PParam___stype(val_t self) { - struct trace_t trace = {NULL, NULL, 1135, LOCATE_mmbuilder___PParam___stype}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___PParam____stype( self) /*PParam::_stype*/; -} -void mmbuilder___PParam___stype__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1135, LOCATE_mmbuilder___PParam___stype__eq}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___PParam____stype( self) /*PParam::_stype*/ = param0; - tracehead = trace.prev; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1181); + } + CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]); + } + stack_frame_head = fra.me.prev; + return; + } +val_t mmbuilder___AParam___position(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_mmbuilder; + fra.me.line = 1188; + fra.me.meth = LOCATE_mmbuilder___AParam___position; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1188 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_position", LOCATE_mmbuilder, 1188); + } + REGB0 = ATTR_mmbuilder___AParam____position(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AParam___variable(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_mmbuilder; + fra.me.line = 1190; + fra.me.meth = LOCATE_mmbuilder___AParam___variable; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1190 */ + fra.me.REG[0] = ATTR_mmbuilder___AParam____variable(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1190); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___AParam___stype(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_mmbuilder; + fra.me.line = 1193; + fra.me.meth = LOCATE_mmbuilder___AParam___stype; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1193 */ + fra.me.REG[0] = ATTR_mmbuilder___AParam____stype(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___AParam___stype__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1193; + fra.me.meth = LOCATE_mmbuilder___AParam___stype__eq; + 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; + /* ./syntax//mmbuilder.nit:1193 */ + ATTR_mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___PParam___is_vararg(val_t self) { - struct trace_t trace = {NULL, NULL, 1163, LOCATE_mmbuilder___PParam___is_vararg}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1163); - nit_exit(1); - tracehead = trace.prev; - return NIT_NULL; -} -val_t mmbuilder___AParam___is_vararg(val_t self) { - struct trace_t trace = {NULL, NULL, 1167, LOCATE_mmbuilder___AParam___is_vararg}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[2] = variable[0]; - variable[2] = CALL_parser_nodes___AParam___n_dotdotdot(variable[2])(variable[2]) /*AParam::n_dotdotdot*/; - variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[1] = variable[2]; - goto return_label122; - return_label122: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AClosureDecl___variable(val_t self) { - struct trace_t trace = {NULL, NULL, 1171, LOCATE_mmbuilder___AClosureDecl___variable}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___AClosureDecl____variable( self) /*AClosureDecl::_variable*/; -} -void mmbuilder___AClosureDecl___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1173, LOCATE_mmbuilder___AClosureDecl___accept_property_verifier}; - val_t variable[12]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = variable[4]; - variable[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); /*new SignatureBuilder*/ - CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*PropertyVerifierVisitor::signature_builder=*/; - CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super AClosureDecl::accept_property_verifier*/; - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[5] = CALL_mmbuilder___SignatureBuilder___signature(variable[5])(variable[5]) /*SignatureBuilder::signature*/; - variable[4] = variable[5]; - variable[5] = TAG_Bool(( variable[4] /*sig*/ == NIT_NULL /*null*/) || (( variable[4] /*sig*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*sig*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*sig*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*sig*/)( variable[4] /*sig*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/ - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/; - variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[5], NIT_NULL /*null*/, variable[6]); /*new MMSignature*/ - variable[5] = variable[7]; - variable[4] = variable[5] /*sig=*/; - } - variable[5] = CALL_static_type___MMSignature___return_type( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::return_type*/; - variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[6] = variable[5]; - if (UNTAG_Bool(variable[6])) { /* and */ - variable[6] = variable[0]; - variable[6] = CALL_parser_nodes___AClosureDecl___n_kwbreak(variable[6])(variable[6]) /*AClosureDecl::n_kwbreak*/; - variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], NIT_NULL /*null*/) /*Object::==*/))))))); - } - variable[5] = variable[6]; - if (UNTAG_Bool(variable[5])) { /*if*/ - variable[5] = variable[0]; - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: A break bloc cannot have a return value."), TAG_Int(54)); /*new String*/ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/; - } - variable[6] = NEW_Array_array___Array___init(); /*new Array[MMType]*/ - variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[6], NIT_NULL /*null*/, NIT_NULL /*null*/); /*new MMSignature*/ - variable[6] = variable[7]; - variable[5] = variable[6]; - variable[7] = NEW_MMClosure_static_type___MMClosure___init( variable[5] /*finalize_sig*/, TAG_Bool(false), TAG_Bool(true)); /*new MMClosure*/ - variable[6] = variable[7]; - variable[7] = CALL_static_type___MMSignature___closures( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::closures*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[6] /*finalizer_clos*/) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[8] = CALL_parser_nodes___AClosureDecl___n_kwbreak(variable[8])(variable[8]) /*AClosureDecl::n_kwbreak*/; - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[9] = variable[0]; - variable[9] = CALL_parser_nodes___AClosureDecl___n_expr(variable[9])(variable[9]) /*AClosureDecl::n_expr*/; - variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] == NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9], NIT_NULL /*null*/) /*Object::==*/))))))); - variable[10] = NEW_MMClosure_static_type___MMClosure___init( variable[4] /*sig*/, variable[8], variable[9]); /*new MMClosure*/ - variable[8] = variable[10]; - variable[7] = variable[8]; - CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3] /*old_signature_builder*/) /*PropertyVerifierVisitor::signature_builder=*/; - variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls( variable[3] /*old_signature_builder*/)( variable[3] /*old_signature_builder*/) /*SignatureBuilder::closure_decls*/; - variable[9] = variable[0]; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[8] = variable[0]; - variable[9] = variable[0]; - variable[9] = CALL_parser_nodes___AClosureDecl___n_id(variable[9])(variable[9]) /*AClosureDecl::n_id*/; - variable[9] = CALL_syntax_base___Token___to_symbol(variable[9])(variable[9]) /*Token::to_symbol*/; - variable[10] = variable[0]; - variable[11] = NEW_ClosureVariable_syntax_base___ClosureVariable___init(variable[9], variable[10], variable[7] /*clos*/); /*new ClosureVariable*/ - variable[9] = variable[11]; - ATTR_mmbuilder___AClosureDecl____variable(variable[8]) /*AClosureDecl::_variable*/ = variable[9]; - return_label123: while(false); - tracehead = trace.prev; +void mmbuilder___AParam___accept_property_verifier(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 REGB2; + val_t REGB3; + val_t tmp; + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1196; + fra.me.meth = LOCATE_mmbuilder___AParam___accept_property_verifier; + 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; + /* ./syntax//mmbuilder.nit:1196 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1198 */ + CALL_SUPER_mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1199 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]); + /* ./../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]); + /* ./syntax//mmbuilder.nit:1199 */ + ATTR_mmbuilder___AParam____position(fra.me.REG[2]) = REGB0; + /* ./syntax//mmbuilder.nit:1200 */ + fra.me.REG[1] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[0] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = NEW_ParamVariable_syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]); + ATTR_mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:1201 */ + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1202 */ + fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1203 */ + fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1204 */ + fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1204); + } + fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1205 */ + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1206 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(true); + CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + /* ./syntax//mmbuilder.nit:1207 */ + goto label1; + } + /* ./syntax//mmbuilder.nit:1209 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]); + /* ./../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[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:1210 */ + CALL_mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1211 */ + REGB1 = CALL_mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]); + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:1212 */ + fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]); + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:216 */ + REGB2 = TAG_Int(-UNTAG_Int(REGB2)); + /* ./syntax//mmbuilder.nit:1212 */ + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2)); + if (UNTAG_Bool(REGB3)) { + } else { + /* ./../lib/standard//kernel.nit:207 */ + REGB2 = TAG_Bool((REGB1)==(REGB2)); + /* ./syntax//mmbuilder.nit:1212 */ + REGB3 = REGB2; + } + if (UNTAG_Bool(REGB3)) { + /* ./syntax//mmbuilder.nit:1213 */ + fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]); + CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3); + } else { + /* ./syntax//mmbuilder.nit:1215 */ + if (!once_value_2) { + fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined."); + REGB3 = TAG_Int(45); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3); + once_value_2 = fra.me.REG[6]; + register_static_object(&once_value_2); + } else fra.me.REG[6] = once_value_2; + fra.me.REG[6] = fra.me.REG[6]; + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]); + } + /* ./syntax//mmbuilder.nit:1217 */ + fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + fra.me.REG[0] = fra.me.REG[6]; + } + /* ./syntax//mmbuilder.nit:1219 */ + fra.me.REG[5] = CALL_syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB3 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB3; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label3; + } + } + label3: while(0); + /* ./syntax//mmbuilder.nit:1221 */ + fra.me.REG[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]); + CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]); + } + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PType___check_visibility(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 1199, LOCATE_mmbuilder___PType___check_visibility}; - val_t *variable = NULL; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1199); - nit_exit(1); - tracehead = trace.prev; +val_t mmbuilder___AParam___is_vararg(val_t p0){ + struct {struct stack_frame_t me;} 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_mmbuilder; + fra.me.line = 1225; + fra.me.meth = LOCATE_mmbuilder___AParam___is_vararg; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1225 */ + fra.me.REG[0] = CALL_parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AClosureDecl___position(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_mmbuilder; + fra.me.line = 1229; + fra.me.meth = LOCATE_mmbuilder___AClosureDecl___position; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1229 */ + REGB0 = TAG_Bool(ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_position", LOCATE_mmbuilder, 1229); + } + REGB0 = ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AClosureDecl___variable(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_mmbuilder; + fra.me.line = 1231; + fra.me.meth = LOCATE_mmbuilder___AClosureDecl___variable; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./syntax//mmbuilder.nit:1231 */ + fra.me.REG[0] = ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1231); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[10];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + 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 */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1234; + fra.me.meth = LOCATE_mmbuilder___AClosureDecl___accept_property_verifier; + fra.me.has_broke = 0; + fra.me.REG_size = 11; + 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[10] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./syntax//mmbuilder.nit:1234 */ + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1236 */ + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1237 */ + fra.me.REG[5] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); + CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:1238 */ + CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1239 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1240 */ + goto label1; + } + /* ./syntax//mmbuilder.nit:1242 */ + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1243 */ + 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)) { + /* ./syntax//mmbuilder.nit:1244 */ + fra.me.REG[0] = NEW_Array_array___Array___init(); + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]); + fra.me.REG[1] = fra.me.REG[5]; + } + /* ./syntax//mmbuilder.nit:1246 */ + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1246); + } + fra.me.REG[5] = CALL_static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1247 */ + if (!once_value_2) { + fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value."); + REGB0 = TAG_Int(55); + 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_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]); + } + /* ./syntax//mmbuilder.nit:1251 */ + fra.me.REG[5] = NEW_Array_array___Array___init(); + fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[0] = CALL_inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1252 */ + if (!once_value_3) { + if (!once_value_4) { + fra.me.REG[5] = BOX_NativeString("break"); + REGB0 = TAG_Int(5); + 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]; + fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]); + 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]; + REGB0 = TAG_Bool(false); + REGB1 = TAG_Bool(true); + fra.me.REG[0] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1); + /* ./syntax//mmbuilder.nit:1253 */ + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1253); + } + fra.me.REG[5] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1255 */ + fra.me.REG[0] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1256 */ + fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB1 = REGB0; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB0 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB0 = REGB2; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + fra.me.REG[1] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0); + /* ./syntax//mmbuilder.nit:1257 */ + fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./syntax//mmbuilder.nit:1258 */ + fra.me.REG[8] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[8] = CALL_syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]); + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:1259 */ + fra.me.REG[8] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Int(5); + fra.me.REG[9] = NEW_Array_array___Array___with_capacity(REGB1); + if (!once_value_5) { + fra.me.REG[10] = BOX_NativeString("A closure '!"); + REGB1 = TAG_Int(12); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1); + once_value_5 = fra.me.REG[10]; + register_static_object(&once_value_5); + } else fra.me.REG[10] = once_value_5; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_6) { + fra.me.REG[10] = BOX_NativeString("' already defined at "); + REGB1 = TAG_Int(21); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1); + once_value_6 = fra.me.REG[10]; + register_static_object(&once_value_6); + } else fra.me.REG[10] = once_value_6; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[7] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[7] = CALL_parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[10] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[10] = CALL_parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]); + fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_7) { + fra.me.REG[10] = BOX_NativeString("."); + REGB1 = TAG_Int(1); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1); + once_value_7 = fra.me.REG[10]; + register_static_object(&once_value_7); + } else fra.me.REG[10] = once_value_7; + fra.me.REG[10] = fra.me.REG[10]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]); + /* ./syntax//mmbuilder.nit:1260 */ + 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 label8; + } + } + label8: while(0); + /* ./syntax//mmbuilder.nit:1263 */ + CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1264 */ + fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1264 */ + ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0; + /* ./syntax//mmbuilder.nit:1265 */ + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1266 */ + fra.me.REG[4] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[3] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[1] = NEW_ClosureVariable_syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]); + ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1]; + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___AType___check_visibility(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 1204, LOCATE_mmbuilder___AType___check_visibility}; - val_t variable[16]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - variable[2] = param1; - variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*p*/)( variable[2] /*p*/) /*MMLocalProperty::global*/; - variable[4] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[4])(variable[4]) /*MMGlobalProperty::visibility_level*/; - variable[4] = TAG_Bool(UNTAG_Int(variable[4])>=UNTAG_Int( TAG_Int(3))); - if (UNTAG_Bool(variable[4])) { /*if*/ - goto return_label124; - } - variable[5] = variable[0]; - variable[5] = CALL_syntax_base___PType___get_stype(variable[5])(variable[5], variable[1] /*v*/) /*AType::get_stype*/; - variable[4] = variable[5]; - variable[5] = TAG_Bool(( variable[4] /*t*/ == NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*t*/)( variable[4] /*t*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[5])) { /*if*/ - goto return_label124; - } - variable[6] = CALL_static_type___MMType___local_class( variable[4] /*t*/)( variable[4] /*t*/) /*MMType::local_class*/; - variable[5] = variable[6]; - variable[6] = TAG_Bool(( variable[5] /*bc*/ == NIT_NULL /*null*/) || (( variable[5] /*bc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*bc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*bc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*bc*/)( variable[5] /*bc*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - goto return_label124; - } - variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[5] /*bc*/)( variable[5] /*bc*/) /*MMLocalClass::global*/; - variable[6] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[6])(variable[6]) /*MMGlobalClass::visibility_level*/; - variable[6] = TAG_Bool(UNTAG_Int(variable[6])>=UNTAG_Int( TAG_Int(3))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = variable[0]; - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/ - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Access error: Class "), TAG_Int(20)); /*new String*/ - variable[9] = variable[8]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/; - variable[10] = variable[5] /*bc*/; - variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/; - variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is private and cannot be used in the signature of the non-private property "), TAG_Int(76)); /*new String*/ - variable[12] = variable[11]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/; - variable[13] = variable[2] /*p*/; - variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/; - variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/ - variable[15] = variable[14]; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/; - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/; - } - variable[6] = variable[0]; - variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/; - variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*List::iterator*/; - while (true) { /*for*/ - variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ListIterator::is_ok*/; - if (!UNTAG_Bool(variable[7])) break; /*for*/ - variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ListIterator::item*/; - variable[8] = variable[7]; - CALL_mmbuilder___PType___check_visibility( variable[8] /*n*/)( variable[8] /*n*/, variable[1] /*v*/, variable[2] /*p*/) /*PType::check_visibility*/; - continue_125: while(0); - CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ListIterator::next*/; - } - break_125: while(0); - return_label124: while(false); - tracehead = trace.prev; +void mmbuilder___AType___check_visibility(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 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_mmbuilder; + fra.me.line = 1271; + fra.me.meth = LOCATE_mmbuilder___AType___check_visibility; + 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; + /* ./syntax//mmbuilder.nit:1274 */ + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = TAG_Int(3); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:1274 */ + if (UNTAG_Bool(REGB1)) { + goto label1; + } + /* ./syntax//mmbuilder.nit:1275 */ + fra.me.REG[3] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1276 */ + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + REGB1 = REGB0; + } + } + if (UNTAG_Bool(REGB1)) { + goto label1; + } + /* ./syntax//mmbuilder.nit:1277 */ + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1277); + } + fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1278 */ + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Int(3); + /* ./../lib/standard//kernel.nit:213 */ + REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0)); + /* ./syntax//mmbuilder.nit:1278 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1279 */ + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_2) { + fra.me.REG[5] = BOX_NativeString("Access error: Class "); + REGB0 = TAG_Int(20); + 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[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + if (!once_value_3) { + fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property "); + REGB0 = TAG_Int(76); + 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[4])(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[3] = 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[3]); + if (!once_value_4) { + 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_4 = fra.me.REG[3]; + register_static_object(&once_value_4); + } else fra.me.REG[3] = once_value_4; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); + } + /* ./syntax//mmbuilder.nit:1281 */ + fra.me.REG[0] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___AType___check_visibility_5)); + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PExpr___accept_class_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1221, LOCATE_mmbuilder___PExpr___accept_class_builder}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - return_label126: while(false); - tracehead = trace.prev; + void OC_mmbuilder___AType___check_visibility_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){ + struct {struct stack_frame_t me;} fra; + fun_t CREG[1]; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 0; + fra.me.meth = LOCATE_mmbuilder___AType___check_visibility; + 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; + /* ./syntax//mmbuilder.nit:1282 */ + CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]); + stack_frame_head = fra.me.prev; + return; + } +void mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1288; + fra.me.meth = LOCATE_mmbuilder___AExpr___accept_class_builder; + 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; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PExpr___accept_property_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1222, LOCATE_mmbuilder___PExpr___accept_property_builder}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - return_label127: while(false); - tracehead = trace.prev; +void mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1289; + fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_builder; + 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; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PExpr___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1223, LOCATE_mmbuilder___PExpr___accept_property_verifier}; - val_t variable[3]; - void **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - variable[0] = self; - variable[1] = param0; - return_label128: while(false); - tracehead = trace.prev; +void mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1290; + fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_verifier; + 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; + stack_frame_head = fra.me.prev; return; }