X-Git-Url: http://nitlanguage.org diff --git a/c_src/mmbuilder._sep.c b/c_src/mmbuilder._sep.c index 185f725..5809f9a 100644 --- a/c_src/mmbuilder._sep.c +++ b/c_src/mmbuilder._sep.c @@ -1,6341 +1,8090 @@ /* 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]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*a*/)( variable[1] /*a*/) /*MMLocalClass::cshe*/; - /* Register variable[4]: Result */ - variable[4] = CALL_partial_order___PartialOrderElement___rank(variable[4])(variable[4]) /*PartialOrderElement::rank*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[2] /*b*/)( variable[2] /*b*/) /*MMLocalClass::cshe*/; - /* Register variable[5]: Result */ - variable[5] = CALL_partial_order___PartialOrderElement___rank(variable[5])(variable[5]) /*PartialOrderElement::rank*/; - /* Register variable[4]: Result */ - 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]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CSHSorter].i]) return; - /* Register variable[1]: Method return value and escape marker */ - 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; + 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); + /* ./syntax//mmbuilder.nit:29 */ + 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]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_inheritance___MMModule___import_global_classes(variable[0])(variable[0]) /*MMModule::import_global_classes*/; - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init( variable[1] /*tc*/, variable[0]) /*new ClassBuilderVisitor*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___MMSrcModule___node(variable[0])(variable[0]) /*MMSrcModule::node*/; - CALL_parser_prod___Visitor___visit( variable[3] /*mmbv*/)( variable[3] /*mmbv*/, variable[4]) /*ClassBuilderVisitor::visit*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool(UNTAG_Int(variable[4])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[4])) { /*if*/ - exit(UNTAG_Int( TAG_Int(1))); - } - CALL_inheritance___MMModule___import_local_classes(variable[0])(variable[0]) /*MMModule::import_local_classes*/; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init( variable[1] /*tc*/, variable[0]) /*new ClassSpecializationBuilderVisitor*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___MMSrcModule___node(variable[0])(variable[0]) /*MMSrcModule::node*/; - CALL_parser_prod___Visitor___visit( variable[4] /*mmbv1*/)( variable[4] /*mmbv1*/, variable[5]) /*ClassSpecializationBuilderVisitor::visit*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - /* Register variable[5]: Result */ - variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[5])) { /*if*/ - exit(UNTAG_Int( TAG_Int(1))); - } - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMModule___local_classes(variable[0])(variable[0]) /*MMModule::local_classes*/; - /* Register variable[5]: For iterator */ - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[6]: For 'is_ok' result */ - variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[7]: Local variable */ - variable[7] = variable[6]; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::global*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[8])(variable[8]) /*MMGlobalClass::intro*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___module(variable[8])(variable[8]) /*MMLocalClass::module*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMModule___visibility_for(variable[0])(variable[0], variable[8]) /*MMModule::visibility_for*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::global*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[9])(variable[9]) /*MMGlobalClass::visibility_level*/; - /* Register variable[8]: Result */ - variable[8] = TAG_Bool(UNTAG_Int(variable[8])UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[8])) { /*if*/ - exit(UNTAG_Int( TAG_Int(1))); - } - /* Register variable[8]: Local variable */ - /* Register variable[9]: Result */ - variable[9] = NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init( variable[1] /*tc*/, variable[0]) /*new ClassVerifierVisitor*/; - variable[8] = variable[9]; - /* Register variable[9]: For iterator */ - variable[9] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[10]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[11]: Local variable */ - 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); - /* Register variable[9]: Result */ - variable[9] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - /* Register variable[9]: Result */ - variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[9])) { /*if*/ - exit(UNTAG_Int( TAG_Int(1))); - } - /* Register variable[9]: Local variable */ - /* Register variable[10]: Result */ - variable[10] = NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init( variable[1] /*tc*/, variable[0]) /*new PropertyBuilderVisitor*/; - variable[9] = variable[10]; - /* Register variable[10]: For iterator */ - variable[10] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[11]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[12]: Local variable */ - 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*/; - /* Register variable[13]: Result */ - variable[13] = TAG_Bool(( variable[12] /*c*/==NIT_NULL) || VAL_ISA( variable[12] /*c*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/; - /* Ensure var variable[13]: Left 'and' operand*/ - if (UNTAG_Bool(variable[13])) { /* and */ - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/; - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[13])(variable[13]) /*MMGlobalClass::intro*/; - /* Register variable[13]: Result */ - variable[13] = TAG_Bool((variable[13] == variable[12] /*c*/) || ((variable[13] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[13])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[13], variable[12] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[13])(variable[13], variable[12] /*c*/) /*Object::==*/))))); + CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); + } + label2: while(0); + /* ./syntax//mmbuilder.nit:67 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:75 */ + if (!once_value_3) { + fra.me.REG[3] = NEW_CSHSorter_mmbuilder___CSHSorter___init(); + once_value_3 = fra.me.REG[3]; + register_static_object(&once_value_3); + } else fra.me.REG[3] = once_value_3; + /* ./syntax//mmbuilder.nit:76 */ + CALL_sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + fra.me.REG[3] = NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:80 */ + while(1) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:81 */ + CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[5])(fra.me.REG[5], 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[5])(fra.me.REG[5]); + } else { + /* ./syntax//mmbuilder.nit:80 */ + goto label4; } - /* Register variable[13]: Result */ - /* Ensure var variable[13]: Left 'and' operand*/ - if (UNTAG_Bool(variable[13])) { /* and */ - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/; - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable[13])(variable[13]) /*MMGlobalClass::is_universal*/; - variable[13] = TAG_Bool(!UNTAG_Bool(variable[13])); + CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); + } + label4: while(0); + fra.me.REG[4] = NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:88 */ + while(1) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:89 */ + CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); + } else { + /* ./syntax//mmbuilder.nit:88 */ + goto label5; } - /* Register variable[13]: Result */ - /* Ensure var variable[13]: Left 'and' operand*/ - if (UNTAG_Bool(variable[13])) { /* and */ - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/; - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable[13])(variable[13]) /*MMGlobalClass::is_interface*/; - variable[13] = TAG_Bool(!UNTAG_Bool(variable[13])); + CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); + } + label5: while(0); + /* ./syntax//mmbuilder.nit:91 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[3] = NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:95 */ + while(1) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:97 */ + CALL_inheritance___MMLocalClass___inherit_global_properties(fra.me.REG[5])(fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:100 */ + CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); + REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/; + /* ./syntax//mmbuilder.nit:103 */ + if (UNTAG_Bool(REGB1)) { + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[6] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[6],fra.me.REG[5])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + REGB1 = REGB0; + } + } else { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } + if (UNTAG_Bool(REGB1)) { + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + } else { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } + if (UNTAG_Bool(REGB1)) { + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + } else { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } + if (UNTAG_Bool(REGB1)) { + /* ./syntax//mmbuilder.nit:104 */ + CALL_mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); + } + } else { + /* ./syntax//mmbuilder.nit:95 */ + goto label6; } - /* Register variable[13]: Result */ - 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*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); + } + label6: while(0); + /* ./syntax//mmbuilder.nit:109 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:113 */ + while(1) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:114 */ + CALL_mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); + } else { + /* ./syntax//mmbuilder.nit:113 */ + goto label7; } - continue_7: while(0); - CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/; - } - break_7: while(0); - /* Register variable[10]: Result */ - variable[10] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/; - /* Register variable[10]: Result */ - variable[10] = TAG_Bool(UNTAG_Int(variable[10])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[10])) { /*if*/ - exit(UNTAG_Int( TAG_Int(1))); - } - /* Register variable[10]: Local variable */ - /* Register variable[11]: Result */ - variable[11] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init( variable[1] /*tc*/, variable[0]) /*new PropertyVerifierVisitor*/; - variable[10] = variable[11]; - /* Register variable[11]: For iterator */ - variable[11] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[12]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[13]: Local variable */ - 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); - /* Register variable[11]: For iterator */ - variable[11] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[12]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[13]: Local variable */ - variable[13] = variable[12]; - /* Register variable[14]: Result */ - variable[14] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global_properties*/; - /* Register variable[14]: For iterator */ - variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Collection::iterator*/; - while (true) { /*for*/ - /* Register variable[15]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[16]: Local variable */ - variable[16] = variable[15]; - /* Register variable[17]: Result */ - variable[17] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[16] /*g*/)( variable[16] /*g*/) /*MMGlobalProperty::intro*/; - /* Register variable[17]: Result */ - variable[17] = CALL_abstractmetamodel___MMLocalProperty___module(variable[17])(variable[17]) /*MMLocalProperty::module*/; - /* Register variable[17]: Result */ - variable[17] = CALL_abstractmetamodel___MMModule___visibility_for(variable[0])(variable[0], variable[17]) /*MMModule::visibility_for*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level( variable[16] /*g*/)( variable[16] /*g*/) /*MMGlobalProperty::visibility_level*/; - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(UNTAG_Int(variable[17])UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[11])) { /*if*/ - exit(UNTAG_Int( TAG_Int(1))); - } - return_label2: while(false); - tracehead = trace.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]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - return_label11: while(false); - tracehead = trace.prev; + CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); + } + label10: while(0); + /* ./syntax//mmbuilder.nit:125 */ + CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMLocalClass___accept_properties_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 130, LOCATE_mmbuilder___MMLocalClass___accept_properties_visitor}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - return_label12: while(false); - tracehead = trace.prev; +void mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 128; + fra.me.meth = LOCATE_mmbuilder___MMSrcModule___process_default_classes; + 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:131 */ + if (!once_value_1) { + if (!once_value_2) { + fra.me.REG[1] = BOX_NativeString("Object"); + REGB0 = TAG_Int(6); + 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] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]); + once_value_1 = fra.me.REG[1]; + register_static_object(&once_value_1); + } else fra.me.REG[1] = once_value_1; + REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:132 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(0); + fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0); + /* ./syntax//mmbuilder.nit:134 */ + CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:135 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]); + } + /* ./syntax//mmbuilder.nit:137 */ + if (!once_value_3) { + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString("Bool"); + REGB0 = TAG_Int(4); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]); + once_value_3 = fra.me.REG[2]; + register_static_object(&once_value_3); + } else fra.me.REG[2] = once_value_3; + fra.me.REG[1] = fra.me.REG[2]; + REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:138 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(0); + fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0); + /* ./syntax//mmbuilder.nit:140 */ + CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:141 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); + } + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 137, LOCATE_mmbuilder___MMSrcLocalClass___accept_class_visitor}; - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___MMSrcLocalClass___nodes(variable[0])(variable[0]) /*MMSrcLocalClass::nodes*/; - /* Register variable[3]: For iterator */ - variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[4]: For 'is_ok' result */ - variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[5]: Local variable */ - variable[5] = variable[4]; - CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/; - continue_14: while(0); - CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/; - } - break_14: while(0); - return_label13: while(false); - tracehead = trace.prev; +void mmbuilder___MMLocalClass___accept_class_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 = 147; + fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_class_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; + /* ./syntax//mmbuilder.nit:147 */ + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 144, LOCATE_mmbuilder___MMSrcLocalClass___accept_properties_visitor}; - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___MMSrcLocalClass___nodes(variable[0])(variable[0]) /*MMSrcLocalClass::nodes*/; - /* Register variable[3]: For iterator */ - variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[4]: For 'is_ok' result */ - variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[5]: Local variable */ - variable[5] = variable[4]; - CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5] /*n*/) /*Visitor::visit*/; - continue_16: while(0); - CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/; - } - break_16: while(0); - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[0])(variable[0]) /*MMSrcLocalClass::src_local_properties*/; - /* Register variable[3]: For iterator */ - variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*MapRead::iterator*/; - while (true) { /*for*/ - /* Register variable[4]: For 'is_ok' result */ - variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[5]: Local variable */ - variable[5] = variable[4]; - CALL_mmbuilder___MMLocalProperty___accept_property_visitor( variable[5] /*p*/)( variable[5] /*p*/, variable[1] /*v*/) /*MMLocalProperty::accept_property_visitor*/; - continue_17: while(0); - CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/; - } - break_17: while(0); - return_label15: while(false); - tracehead = trace.prev; +void mmbuilder___MMLocalClass___accept_properties_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 = 152; + fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_properties_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; + /* ./syntax//mmbuilder.nit:152 */ + stack_frame_head = fra.me.prev; return; } -void mmbuilder___MMSrcLocalClass___process_default_constructors(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 156, LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors}; - static val_t once_value_22; static int once_bool_22; /* Once value for variable[9]*/ - static val_t once_value_23 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_26 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_27 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_28 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_29 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_30 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_31 = NIT_NULL; /* Once value for string variable[10]*/ - val_t variable[12]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[0])(variable[0]) /*MMLocalClass::global_properties*/; - /* Register variable[3]: For iterator */ - variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/; - while (true) { /*for*/ - /* Register variable[4]: For 'is_ok' result */ - variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[4])) break; /*for*/ - variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[5]: Local variable */ - variable[5] = variable[4]; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[5] /*gp*/)( variable[5] /*gp*/) /*MMGlobalProperty::is_init*/; - if (UNTAG_Bool(variable[6])) { /*if*/ - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[5] /*gp*/)( variable[5] /*gp*/) /*MMGlobalProperty::intro*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[6])(variable[6]) /*MMLocalProperty::local_class*/; - /* Register variable[6]: Result */ - variable[6] = TAG_Bool((variable[6] == variable[0]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[0])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[0]) /*Object::==*/))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - goto return_label18; +void mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 159; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_class_visitor; + 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[0] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:162 */ + while(1) { + 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; } } - continue_19: while(0); - CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/; - } - break_19: while(0); - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = NEW_ArraySet_array___ArraySet___init() /*new ArraySet[MMLocalProperty]*/; - variable[3] = variable[4]; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = NEW_ArraySet_array___ArraySet___init() /*new ArraySet[MMGlobalProperty]*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalClass___che(variable[0])(variable[0]) /*MMLocalClass::che*/; - /* Register variable[5]: Result */ - variable[5] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[5])(variable[5]) /*PartialOrderElement::direct_greaters*/; - /* Register variable[5]: For iterator */ - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[6]: For 'is_ok' result */ - variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[7]: Local variable */ - variable[7] = variable[6]; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*sc*/)( variable[7] /*sc*/) /*MMLocalClass::global*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable[8])(variable[8]) /*MMGlobalClass::is_universal*/; - /* Ensure var variable[8]: Left 'or' operand*/ - if (!UNTAG_Bool(variable[8])) { /* or */ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*sc*/)( variable[7] /*sc*/) /*MMLocalClass::global*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable[8])(variable[8]) /*MMGlobalClass::is_interface*/; - } - /* Register variable[8]: Result */ - if (UNTAG_Bool(variable[8])) { /*if*/ - goto continue_20; - } - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[7] /*sc*/)( variable[7] /*sc*/) /*MMLocalClass::global_properties*/; - /* Register variable[8]: For iterator */ - variable[8] = CALL_abstract_collection___Collection___iterator(variable[8])(variable[8]) /*Collection::iterator*/; - while (true) { /*for*/ - /* Register variable[9]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[10]: Local variable */ - variable[10] = variable[9]; - /* Register variable[11]: Result */ - variable[11] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[10] /*gp*/)( variable[10] /*gp*/) /*MMGlobalProperty::is_init*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[11])))) { /*if*/ - goto continue_21; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:163 */ + CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:164 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 164); + nit_exit(1); } - CALL_abstract_collection___SimpleCollection___add( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/, variable[10] /*gp*/) /*ArraySet::add*/; - continue_21: while(0); - CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*Iterator::next*/; + fra.me.REG[2] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = fra.me.REG[2]; + } else { + /* ./syntax//mmbuilder.nit:162 */ + goto label1; } - break_21: while(0); - /* Register variable[8]: Local variable */ - /* Register variable[9]: Once expression result */ - if (once_bool_22) variable[9] = once_value_22; - else { - /* Register variable[9]: Once String constant */ - if (once_value_23 != NIT_NULL) variable[9] = once_value_23; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)) /*new String*/; - once_value_23 = variable[9]; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return; +} +void mmbuilder___MMSrcLocalClass___accept_properties_visitor(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 = 168; + fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_properties_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; + fra.me.REG[2] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:172 */ + while(1) { + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB0 = REGB1; } - /* Register variable[9]: Result */ - /* Register variable[9]: Result */ - variable[9] = CALL_symbol___String___to_symbol(variable[9])(variable[9]) /*String::to_symbol*/; - once_value_22 = variable[9]; - once_bool_22 = true; } - /* Register variable[9]: Result */ - variable[8] = variable[9]; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable[7] /*sc*/)( variable[7] /*sc*/, variable[8] /*initname*/) /*MMLocalClass::has_global_property_by_name*/; - if (UNTAG_Bool(variable[9])) { /*if*/ - /* Register variable[9]: Local variable */ - /* Register variable[10]: Result */ - variable[10] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name( variable[7] /*sc*/)( variable[7] /*sc*/, variable[8] /*initname*/) /*MMLocalClass::get_property_by_name*/; - variable[9] = variable[10]; - /* Register variable[10]: Result */ - variable[10] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[0])(variable[0], variable[9] /*gp*/) /*MMLocalClass::[]*/; - CALL_abstract_collection___SimpleCollection___add( variable[3] /*super_inits*/)( variable[3] /*super_inits*/, variable[10]) /*ArraySet::add*/; - } - continue_20: while(0); - CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/; - } - break_20: while(0); - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = NEW_Array_array___Array___init() /*new Array[MMSrcAttribute]*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[0])(variable[0]) /*MMSrcLocalClass::src_local_properties*/; - /* Register variable[6]: For iterator */ - variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*MapRead::iterator*/; - while (true) { /*for*/ - /* Register variable[7]: For 'is_ok' result */ - variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[7])) break; /*for*/ - variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[8]: Local variable */ - variable[8] = variable[7]; - /* Register variable[9]: Result */ - variable[9] = TAG_Bool(( variable[8] /*a*/==NIT_NULL) || VAL_ISA( variable[8] /*a*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/; - if (UNTAG_Bool(variable[9])) { /*if*/ - /* Register variable[9]: Local variable */ - /* Register variable[10]: Result */ - variable[10] = CALL_syntax_base___MMLocalProperty___node( variable[8] /*a*/)( variable[8] /*a*/) /*MMSrcAttribute::node*/; - variable[9] = variable[10]; - /* Register variable[10]: Result */ - variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast AAttrPropdef*/; - if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors, LOCATE_mmbuilder, 188); nit_exit(1);} - /* Register variable[10]: Result */ - variable[10] = CALL_parser_nodes___AAttrPropdef___n_expr( variable[9] /*n*/)( variable[9] /*n*/) /*AAttrPropdef::n_expr*/; - /* Register variable[10]: Result */ - variable[10] = TAG_Bool((variable[10] == NIT_NULL /*null*/) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10], NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[10])) { /*if*/ - CALL_abstract_collection___SimpleCollection___add( variable[5] /*unassigned_attributes*/)( variable[5] /*unassigned_attributes*/, variable[8] /*a*/) /*AbstractArray::add*/; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:173 */ + CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:174 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 174); + nit_exit(1); } + fra.me.REG[3] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = fra.me.REG[3]; + } else { + /* ./syntax//mmbuilder.nit:172 */ + goto label1; } - continue_24: while(0); - CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/; - } - break_24: while(0); - /* Register variable[6]: Result */ - variable[6] = CALL_abstract_collection___Collection___is_empty( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/) /*ArraySet::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/ - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = NEW_Array_array___Array___init() /*new Array[MMLocalClass]*/; - variable[6] = variable[7]; - /* Register variable[7]: For iterator */ - variable[7] = CALL_abstract_collection___Collection___iterator( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/) /*ArraySet::iterator*/; - while (true) { /*for*/ - /* Register variable[8]: For 'is_ok' result */ - variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[8])) break; /*for*/ - variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[9]: Local variable */ - variable[9] = variable[8]; - /* Register variable[10]: Local variable */ - /* Register variable[11]: Result */ - variable[11] = CALL_abstractmetamodel___MMGlobalProperty___local_class( variable[9] /*gp*/)( variable[9] /*gp*/) /*MMGlobalProperty::local_class*/; - variable[10] = variable[11]; - /* Register variable[11]: Result */ - variable[11] = CALL_abstract_collection___Collection___has( variable[6] /*supers*/)( variable[6] /*supers*/, variable[10] /*sc*/) /*AbstractArrayRead::has*/; - if (UNTAG_Bool(variable[11])) { /*if*/ - goto continue_25; - } - /* Register variable[11]: Result */ - variable[11] = CALL_abstractmetamodel___MMLocalClass___global( variable[10] /*sc*/)( variable[10] /*sc*/) /*MMLocalClass::global*/; - /* Register variable[11]: Result */ - variable[11] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable[11])(variable[11]) /*MMGlobalClass::is_mixin*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[11])))) { /*if*/ - CALL_abstract_collection___SimpleCollection___add( variable[6] /*supers*/)( variable[6] /*supers*/, variable[10] /*sc*/) /*AbstractArray::add*/; - } - continue_25: while(0); - CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/; + } + label1: while(0); + fra.me.REG[0] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:177 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:178 */ + CALL_mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + } else { + /* ./syntax//mmbuilder.nit:177 */ + goto label2; } - break_25: while(0); - /* Register variable[7]: Result */ - variable[7] = CALL_abstractmetamodel___MMLocalClass___che(variable[0])(variable[0]) /*MMLocalClass::che*/; - /* Register variable[7]: Result */ - variable[7] = CALL_partial_order___PartialOrderElement___order(variable[7])(variable[7]) /*PartialOrderElement::order*/; - /* Register variable[7]: Result */ - variable[7] = CALL_partial_order___PartialOrder___select_smallests(variable[7])(variable[7], variable[6] /*supers*/) /*PartialOrder::select_smallests*/; - variable[6] = variable[7] /*supers=*/; - /* Register variable[7]: Local variable */ - variable[7] = NIT_NULL /*null*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstract_collection___Collection___length( variable[6] /*supers*/)( variable[6] /*supers*/) /*AbstractArrayRead::length*/; - /* Register variable[8]: Result */ - variable[8] = TAG_Bool(UNTAG_Int(variable[8])>UNTAG_Int( TAG_Int(1))); - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_syntax_base___MMSrcLocalClass___nodes(variable[0])(variable[0]) /*MMSrcLocalClass::nodes*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstract_collection___Collection___first(variable[8])(variable[8]) /*IndexedCollectionRead::first*/; - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[10]: Once String constant */ - if (once_value_26 != NIT_NULL) variable[10] = once_value_26; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Explicit constructor required in "), TAG_Int(40)) /*new String*/; - once_value_26 = variable[10]; - } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Ensure var variable[0]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_27 != NIT_NULL) variable[10] = once_value_27; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are "), TAG_Int(80)) /*new String*/; - once_value_27 = variable[10]; - } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_28 != NIT_NULL) variable[10] = once_value_28; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/; - once_value_28 = variable[10]; + CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + } + label2: while(0); + 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_6; /* Once value */ + static val_t once_value_7; /* 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 182; + 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; + fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:186 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:187 */ + if (UNTAG_Bool(REGB0)) { + fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0])); + /* ./syntax//mmbuilder.nit:189 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + goto label1; + } } - /* Register variable[10]: Result */ - /* Register variable[10]: Result */ - variable[10] = CALL_string___Collection___join( variable[6] /*supers*/)( variable[6] /*supers*/, variable[10]) /*Collection::join*/; - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_29 != NIT_NULL) variable[10] = once_value_29; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(". Costructors are "), TAG_Int(18)) /*new String*/; - once_value_29 = variable[10]; + } else { + /* ./syntax//mmbuilder.nit:186 */ + goto label2; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); + } + label2: while(0); + fra.me.REG[2] = NEW_ArraySet_array___ArraySet___init(); + fra.me.REG[3] = NEW_ArraySet_array___ArraySet___init(); + 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]); + fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:196 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:197 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]); + REGB0 = REGB1; } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_30 != NIT_NULL) variable[10] = once_value_30; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/; - once_value_30 = variable[10]; + if (UNTAG_Bool(REGB0)) { + goto label3; } - /* Register variable[10]: Result */ - /* Register variable[10]: Result */ - variable[10] = CALL_string___Collection___join( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/, variable[10]) /*Collection::join*/; - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_31 != NIT_NULL) variable[10] = once_value_31; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_31 = variable[10]; + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:198 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]); + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[7])(fra.me.REG[7]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:199 */ + if (UNTAG_Bool(REGB0)) { + goto label4; + } + /* ./syntax//mmbuilder.nit:200 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]); + label4: while(0); + } else { + /* ./syntax//mmbuilder.nit:198 */ + goto label5; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]); } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - goto return_label18; - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstract_collection___Collection___length( variable[6] /*supers*/)( variable[6] /*supers*/) /*AbstractArrayRead::length*/; - /* Register variable[8]: Result */ - variable[8] = TAG_Bool((variable[8])==( TAG_Int(1))); - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstract_collection___Collection___first( variable[6] /*supers*/)( variable[6] /*supers*/) /*IndexedCollectionRead::first*/; - variable[7] = variable[8] /*superclass=*/; + label5: while(0); + /* ./syntax//mmbuilder.nit:202 */ + if (!once_value_6) { + if (!once_value_7) { + fra.me.REG[6] = BOX_NativeString("init"); + REGB0 = TAG_Int(4); + 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] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_6 = fra.me.REG[6]; + register_static_object(&once_value_6); + } else fra.me.REG[6] = once_value_6; + REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:203 */ + if (UNTAG_Bool(REGB0)) { + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:205 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]); } + label3: while(0); + } else { + /* ./syntax//mmbuilder.nit:196 */ + goto label8; } - /* Register variable[8]: For iterator */ - variable[8] = CALL_abstract_collection___Collection___iterator( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/) /*ArraySet::iterator*/; - while (true) { /*for*/ - /* Register variable[9]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[10]: Local variable */ - variable[10] = variable[9]; - /* Register variable[11]: Result */ - 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::==*/))))); - /* Ensure var variable[11]: Left 'or' operand*/ - if (!UNTAG_Bool(variable[11])) { /* or */ - /* Register variable[11]: Result */ - variable[11] = CALL_abstractmetamodel___MMGlobalProperty___local_class( variable[10] /*gp*/)( variable[10] /*gp*/) /*MMGlobalProperty::local_class*/; - /* Register variable[11]: Result */ - variable[11] = TAG_Bool((variable[11] == variable[7] /*superclass*/) || ((variable[11] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[11])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[7] /*superclass*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[11])(variable[11], variable[7] /*superclass*/) /*Object::==*/))))); - } - /* Register variable[11]: Result */ - if (UNTAG_Bool(variable[11])) { /*if*/ - CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(variable[0])(variable[0], variable[10] /*gp*/) /*MMLocalClass::make_visible_an_inherited_global_property*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); + } + label8: while(0); + fra.me.REG[4] = NEW_Array_array___Array___init(); + fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:211 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]); + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/; + /* ./syntax//mmbuilder.nit:212 */ + if (UNTAG_Bool(REGB0)) { + fra.me.REG[7] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + /* ./syntax//mmbuilder.nit:214 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 214); + nit_exit(1); + } + fra.me.REG[7] = CALL_parser_nodes___AAttrPropdef___n_expr(fra.me.REG[7])(fra.me.REG[7]); + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + } } - continue_32: while(0); - CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*Iterator::next*/; + } else { + /* ./syntax//mmbuilder.nit:211 */ + goto label9; } - break_32: while(0); - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[0])(variable[0]) /*MMLocalClass::global*/; - /* Register variable[9]: Result */ - 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*/ - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_array___Collection___to_a( variable[3] /*super_inits*/)( variable[3] /*super_inits*/) /*Collection::to_a*/; - /* Register variable[7]: Result */ - variable[7] = NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(variable[0], variable[5] /*unassigned_attributes*/, variable[7]) /*new MMImplicitInit*/; - variable[6] = variable[7]; - CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[0])(variable[0], variable[1] /*v*/, variable[6] /*p*/) /*MMSrcLocalClass::add_src_local_property*/; - } - return_label18: while(false); - tracehead = trace.prev; - return; -} -void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 233, LOCATE_mmbuilder___MMSrcLocalClass___add_src_local_property}; - static val_t once_value_34 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_35 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_36 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_37 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_38 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_39 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_40 = NIT_NULL; /* Once value for string variable[8]*/ - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::name*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[0])(variable[0]) /*MMSrcLocalClass::src_local_properties*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstract_collection___MapRead___has_key(variable[5])(variable[5], variable[4] /*pname*/) /*MapRead::has_key*/; - if (UNTAG_Bool(variable[5])) { /*if*/ - /* Register variable[5]: Result */ - 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]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[7]: Once String constant */ - if (once_value_34 != NIT_NULL) variable[7] = once_value_34; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: A property "), TAG_Int(18)) /*new String*/; - once_value_34 = variable[7]; - } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - variable[7] = variable[4] /*pname*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_35 != NIT_NULL) variable[7] = once_value_35; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" is already defined in class "), TAG_Int(29)) /*new String*/; - once_value_35 = variable[7]; + CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]); + } + label9: while(0); + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:218 */ + if (UNTAG_Bool(REGB0)) { + fra.me.REG[6] = NEW_Array_array___Array___init(); + fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:222 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[7] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]); + REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:224 */ + if (UNTAG_Bool(REGB0)) { + goto label10; + } + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]); + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[8])(fra.me.REG[8]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:225 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:226 */ + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + } + label10: while(0); + } else { + /* ./syntax//mmbuilder.nit:222 */ + goto label11; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]); } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/; - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_36 != NIT_NULL) variable[7] = once_value_36; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_36 = variable[7]; + label11: while(0); + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[5] = CALL_partial_order___PartialOrderElement___order(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[5] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = fra.me.REG[5]; + fra.me.REG[5] = NIT_NULL; + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/; - goto return_label33; - } - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[0])(variable[0]) /*MMSrcLocalClass::src_local_properties*/; - CALL_abstract_collection___Map_____braeq(variable[5])(variable[5], variable[4] /*pname*/, variable[2] /*prop*/) /*Map::[]=*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(variable[0])(variable[0], variable[4] /*pname*/) /*MMLocalClass::has_global_property_by_name*/; - if (UNTAG_Bool(variable[5])) { /*if*/ - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMLocalClass___properties_by_name(variable[0])(variable[0]) /*MMLocalClass::properties_by_name*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstract_collection___MapRead_____bra(variable[6])(variable[6], variable[4] /*pname*/) /*MapRead::[]*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*globs*/)( variable[5] /*globs*/) /*AbstractArrayRead::length*/; - /* Register variable[6]: Result */ - variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(1))); - if (UNTAG_Bool(variable[6])) { /*if*/ - /* Register variable[6]: Result */ - 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]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[8]: Once String constant */ - if (once_value_37 != NIT_NULL) variable[8] = once_value_37; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Name error: "), TAG_Int(12)) /*new String*/; - once_value_37 = variable[8]; + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); + REGB1 = TAG_Int(1); + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:234 */ + if (UNTAG_Bool(REGB1)) { + fra.me.REG[7] = 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); + /* ./syntax//mmbuilder.nit:235 */ + if (!once_value_12) { + 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_12 = fra.me.REG[9]; + register_static_object(&once_value_12); + } else fra.me.REG[9] = once_value_12; + array___Array___add(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]); + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_13) { + 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_13 = fra.me.REG[9]; + register_static_object(&once_value_13); + } else fra.me.REG[9] = once_value_13; + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_14) { + 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_14 = fra.me.REG[9]; + register_static_object(&once_value_14); + } else fra.me.REG[9] = once_value_14; + fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]); + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_15) { + 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_15 = fra.me.REG[9]; + register_static_object(&once_value_15); + } else fra.me.REG[9] = once_value_15; + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_16) { + 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_16 = fra.me.REG[9]; + register_static_object(&once_value_16); + } else fra.me.REG[9] = once_value_16; + fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]); + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_17) { + 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_17 = fra.me.REG[9]; + register_static_object(&once_value_17); + } else fra.me.REG[9] = once_value_17; + array___Array___add(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[7], fra.me.REG[8]); + /* ./syntax//mmbuilder.nit:236 */ + goto label1; + } else { + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Ensure var variable[0]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_38 != NIT_NULL) variable[8] = once_value_38; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" inherits "), TAG_Int(10)) /*new String*/; - once_value_38 = variable[8]; + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); + REGB0 = TAG_Int(1); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0)); + /* ./syntax//mmbuilder.nit:237 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB0 = TAG_Bool((REGB1)==(REGB0)); + REGB2 = REGB0; + /* ./syntax//mmbuilder.nit:237 */ } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstract_collection___Collection___length( variable[5] /*globs*/)( variable[5] /*globs*/) /*AbstractArrayRead::length*/; - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_39 != NIT_NULL) variable[8] = once_value_39; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" global properties named "), TAG_Int(25)) /*new String*/; - once_value_39 = variable[8]; + if (UNTAG_Bool(REGB2)) { + fra.me.REG[6] = CALL_abstract_collection___Collection___first(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[5] = fra.me.REG[6]; + /* ./syntax//mmbuilder.nit:238 */ } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - variable[8] = variable[4] /*pname*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_40 != NIT_NULL) variable[8] = once_value_40; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_40 = variable[8]; + } + fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:241 */ + while(1) { + REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB2)) { + fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:243 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB2 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB2 = REGB0; + } + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(true); + } else { + fra.me.REG[8] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[6])(fra.me.REG[6]); + REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[8],fra.me.REG[5])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]); + REGB0 = REGB1; + } + REGB2 = REGB0; + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:244 */ + CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]); + } + } else { + /* ./syntax//mmbuilder.nit:241 */ + goto label18; } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); } - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_abstract_collection___Collection___first( variable[5] /*globs*/)( variable[5] /*globs*/) /*IndexedCollectionRead::first*/; - variable[6] = variable[7]; - CALL_inheritance___MMLocalProperty___inherit_global( variable[2] /*prop*/)( variable[2] /*prop*/, variable[6] /*g*/) /*MMLocalProperty::inherit_global*/; - } - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - /* Register variable[5]: Result */ - 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*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - /* Register variable[6]: Result */ - 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_label33: while(false); - tracehead = trace.prev; + label18: while(0); + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = TAG_Bool(fra.me.REG[5]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:247 */ + if (UNTAG_Bool(REGB2)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 247); + nit_exit(1); + } + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 247); + nit_exit(1); + } + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]); + CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + } else { + 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[4], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:253 */ + CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(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; } -void mmbuilder___MMLocalProperty___accept_property_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 263, LOCATE_mmbuilder___MMLocalProperty___accept_property_visitor}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - return_label41: while(false); - tracehead = trace.prev; +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 = 258; + 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; + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]); + 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]); + /* ./syntax//mmbuilder.nit:264 */ + if (UNTAG_Bool(REGB0)) { + 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); + /* ./syntax//mmbuilder.nit:265 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:266 */ + goto label4; + } + fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:268 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]); + REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:271 */ + if (UNTAG_Bool(REGB0)) { + 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:273 */ + CALL_inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + } + REGB0 = CALL_abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:276 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:277 */ + CALL_abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]); + 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]); + /* ./syntax//mmbuilder.nit:278 */ + 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___MMImplicitInit___accept_property_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 270, LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor}; - static val_t once_value_44 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_45 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_46 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_47 = NIT_NULL; /* Once value for string variable[8]*/ - val_t variable[10]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Local variable */ - variable[3] = NIT_NULL /*null*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___MMImplicitInit___super_inits(variable[0])(variable[0]) /*MMImplicitInit::super_inits*/; - /* Register variable[4]: For iterator */ - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[5]: For 'is_ok' result */ - variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[6]: Local variable */ - variable[6] = variable[5]; - /* Register variable[7]: Result */ - variable[7] = CALL_static_type___MMLocalProperty___signature( variable[6] /*p*/)( variable[6] /*p*/) /*MMLocalProperty::signature*/; - /* Register variable[7]: Result */ - variable[7] = CALL_static_type___MMSignature___arity(variable[7])(variable[7]) /*MMSignature::arity*/; - /* Register variable[7]: Result */ - variable[7] = TAG_Bool(UNTAG_Int(variable[7])>UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[7])) { /*if*/ - /* Register variable[7]: Result */ - 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]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[8]: Once String constant */ - if (once_value_44 != NIT_NULL) variable[8] = once_value_44; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: explicit constructor needed in "), TAG_Int(38)) /*new String*/; - once_value_44 = variable[8]; - } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/; - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_45 != NIT_NULL) variable[8] = once_value_45; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" since both super-constructor "), TAG_Int(30)) /*new String*/; - once_value_45 = variable[8]; +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 = 284; + 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; + /* ./syntax//mmbuilder.nit:284 */ + stack_frame_head = fra.me.prev; + return; +} +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 = 290; + 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; + fra.me.REG[0] = ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:290 */ + 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[6];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + 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 = 291; + fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor; + 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] = NIT_NULL; + fra.me.REG[3] = CALL_syntax_base___MMImplicitInit___super_inits(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:294 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:295 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 295); + nit_exit(1); + } + REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = TAG_Int(0); + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:295 */ + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:296 */ + if (UNTAG_Bool(REGB1)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB1 = REGB0; + } } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[3] /*base*/)( variable[3] /*base*/) /*MMLocalProperty::full_name*/; - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_46 != NIT_NULL) variable[8] = once_value_46; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)) /*new String*/; - once_value_46 = variable[8]; + if (UNTAG_Bool(REGB1)) { + fra.me.REG[2] = fra.me.REG[4]; + /* ./syntax//mmbuilder.nit:297 */ + } else { + REGB1 = TAG_Int(7); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1); + /* ./syntax//mmbuilder.nit:299 */ + if (!once_value_1) { + fra.me.REG[6] = BOX_NativeString("Error: explicit constructor needed in "); + REGB1 = TAG_Int(38); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_1 = fra.me.REG[6]; + register_static_object(&once_value_1); + } else fra.me.REG[6] = once_value_1; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(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]); + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_2) { + fra.me.REG[6] = BOX_NativeString(" since both super-constructor "); + REGB1 = TAG_Int(30); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_2 = fra.me.REG[6]; + register_static_object(&once_value_2); + } else fra.me.REG[6] = once_value_2; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 299); + nit_exit(1); + } + fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_3) { + fra.me.REG[6] = BOX_NativeString(" and "); + REGB1 = TAG_Int(5); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1); + once_value_3 = fra.me.REG[6]; + register_static_object(&once_value_3); + } else fra.me.REG[6] = once_value_3; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[4])(fra.me.REG[4]); + array___Array___add(fra.me.REG[5], fra.me.REG[4]); + if (!once_value_4) { + fra.me.REG[4] = BOX_NativeString(" have paramters"); + REGB1 = TAG_Int(15); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_4 = fra.me.REG[4]; + register_static_object(&once_value_4); + } else fra.me.REG[4] = once_value_4; + array___Array___add(fra.me.REG[5], fra.me.REG[4]); + 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], NIT_NULL, fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:300 */ + goto label5; } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[6] /*p*/)( variable[6] /*p*/) /*MMLocalProperty::full_name*/; - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_47 != NIT_NULL) variable[8] = once_value_47; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" have paramters"), TAG_Int(15)) /*new String*/; - once_value_47 = variable[8]; + } + } else { + /* ./syntax//mmbuilder.nit:294 */ + goto label6; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); + } + label6: while(0); + /* ./syntax//mmbuilder.nit:304 */ + ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[2]; + fra.me.REG[3] = NEW_Array_array___Array___init(); + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:307 */ + if (UNTAG_Bool(REGB1)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB1 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB1 = REGB0; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:308 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 308); + nit_exit(1); + } + fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Int(0); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:309 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 309); + nit_exit(1); + } + REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[1] = NEW_Range_range___Range___without_last(REGB1, REGB0); + fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]); + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:310 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 310); + nit_exit(1); } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, NIT_NULL /*null*/, variable[7]) /*AbsSyntaxVisitor::error*/; - goto return_label42; + fra.me.REG[5] = CALL_static_type___MMSignature_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0); + array___Array___add(fra.me.REG[3], fra.me.REG[5]); + } else { + /* ./syntax//mmbuilder.nit:309 */ + goto label7; } + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); } - continue_43: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; - } - break_43: while(0); - ATTR_mmbuilder___MMImplicitInit____super_init(variable[0]) /*MMImplicitInit::_super_init*/ = variable[3] /*base*/; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = TAG_Bool(!UNTAG_Bool(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[5])) { /*if*/ - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMLocalProperty___signature( variable[3] /*base*/)( variable[3] /*base*/) /*MMLocalProperty::signature*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMSignature___arity( variable[5] /*sig*/)( variable[5] /*sig*/) /*MMSignature::arity*/; - /* Register variable[6]: Result */ - variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]) /*new Range[Int]*/; - /* Register variable[6]: For iterator */ - variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/; - while (true) { /*for*/ - /* Register variable[7]: For 'is_ok' result */ - variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[7])) break; /*for*/ - variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[8]: Local variable */ - variable[8] = variable[7]; - /* Register variable[9]: Result */ - variable[9] = CALL_static_type___MMSignature_____bra( variable[5] /*sig*/)( variable[5] /*sig*/, variable[8] /*i*/) /*MMSignature::[]*/; - CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[9]) /*AbstractArray::add*/; - continue_48: while(0); - CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/; + label7: while(0); + } + fra.me.REG[1] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:313 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:315 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + goto label5; + } + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:316 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 316); + nit_exit(1); + } + fra.me.REG[2] = CALL_static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_MMType, ID_MMType)) /*cast MMType*/; + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 316); + nit_exit(1); + } + array___Array___add(fra.me.REG[3], fra.me.REG[2]); + } else { + /* ./syntax//mmbuilder.nit:313 */ + goto label8; } - break_48: while(0); - } - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(variable[0])(variable[0]) /*MMImplicitInit::unassigned_attributes*/; - /* Register variable[5]: For iterator */ - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[6]: For 'is_ok' result */ - variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[7]: Local variable */ - variable[7] = variable[6]; - /* Register variable[8]: Result */ - variable[8] = CALL_static_type___MMLocalProperty___signature( variable[7] /*a*/)( variable[7] /*a*/) /*MMLocalProperty::signature*/; - /* Register variable[8]: Result */ - variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/; - CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[8]) /*AbstractArray::add*/; - continue_49: while(0); - CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/; - } - break_49: while(0); - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/; - /* Register variable[5]: Result */ - variable[5] = CALL_static_type___MMLocalClass___get_type(variable[5])(variable[5]) /*MMLocalClass::get_type*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMSignature_static_type___MMSignature___init( variable[4] /*params*/, NIT_NULL /*null*/, variable[5]) /*new MMSignature*/; - CALL_static_type___MMLocalProperty___signature__eq(variable[0])(variable[0], variable[5]) /*MMLocalProperty::signature=*/; - return_label42: while(false); - tracehead = trace.prev; + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); + } + label8: while(0); + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + 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[3], NIT_NULL, fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:318 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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, 269, LOCATE_mmbuilder___MMImplicitInit___super_init}; - val_t *variable = NULL; - struct WBT_ **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, 305, LOCATE_mmbuilder___MMSrcAncestor___local_class}; - val_t *variable = NULL; - struct WBT_ **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, 303, LOCATE_mmbuilder___MMSrcAncestor___node}; - val_t *variable = NULL; - struct WBT_ **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, 307, LOCATE_mmbuilder___MMSrcAncestor___init}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAncestor].i]) return; - /* Register variable[3]: Method return value and escape marker */ - ATTR_mmbuilder___MMSrcAncestor____node(variable[0]) /*MMSrcAncestor::_node*/ = variable[1] /*n*/; - ATTR_mmbuilder___MMSrcAncestor____local_class(variable[0]) /*MMSrcAncestor::_local_class*/ = variable[2] /*c*/; - return_label50: 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 = 326; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:326 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_local_class"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 326); + nit_exit(1); + } + 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 = 328; + 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; + fra.me.REG[2] = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:328 */ + CALL_static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table); + /* ./syntax//mmbuilder.nit:330 */ + ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; + init_table[itpos1] = 1; return; } -void mmbuilder___ClassBuilderVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 327, LOCATE_mmbuilder___ClassBuilderVisitor___visit}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_mmbuilder___PNode___accept_class_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::accept_class_builder*/; - return_label51: while(false); - 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 = 347; + 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; + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:347 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 347); + nit_exit(1); + } + 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___local_class_arity(val_t self) { - struct trace_t trace = {NULL, NULL, 321, LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity}; - val_t *variable = NULL; - struct WBT_ **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, 321, LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity__eq}; - val_t *variable = NULL; - struct WBT_ **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; +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 = 341; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:341 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_local_class_arity"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 341); + nit_exit(1); + } + 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 = 341; + 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:341 */ + ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___ClassBuilderVisitor___formals(val_t self) { - struct trace_t trace = {NULL, NULL, 324, LOCATE_mmbuilder___ClassBuilderVisitor___formals}; - val_t *variable = NULL; - struct WBT_ **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, 324, LOCATE_mmbuilder___ClassBuilderVisitor___formals__eq}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___ClassBuilderVisitor____formals( self) /*ClassBuilderVisitor::_formals*/ = param0; - 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 = 344; + 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; + fra.me.REG[0] = ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:344 */ + 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 = 344; + 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:344 */ + ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___ClassBuilderVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 328, LOCATE_mmbuilder___ClassBuilderVisitor___init}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassBuilderVisitor].i]) return; - /* Register variable[3]: Method return value and escape marker */ - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label52: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassBuilderVisitor].i] = 1; - 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 = 348; + 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:348 */ + 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___ClassSpecializationBuilderVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 335, LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___visit}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_mmbuilder___PNode___accept_class_specialization_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::accept_class_specialization_builder*/; - return_label53: while(false); - 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 = 355; + 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; + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:355 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 355); + nit_exit(1); + } + 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___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 336, LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___init}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i]) return; - /* Register variable[3]: Method return value and escape marker */ - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label54: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i] = 1; - 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 = 356; + 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:356 */ + 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___ClassAncestorBuilder___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 343, LOCATE_mmbuilder___ClassAncestorBuilder___visit}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_mmbuilder___PNode___accept_class_ancestor_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::accept_class_ancestor_builder*/; - return_label55: while(false); - 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 = 363; + 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; + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:363 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 363); + nit_exit(1); + } + 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___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 344, LOCATE_mmbuilder___ClassAncestorBuilder___init}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassAncestorBuilder].i]) return; - /* Register variable[3]: Method return value and escape marker */ - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label56: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassAncestorBuilder].i] = 1; - 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 = 364; + 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:364 */ + 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___ClassVerifierVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 351, LOCATE_mmbuilder___ClassVerifierVisitor___visit}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_mmbuilder___PNode___accept_class_verifier( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::accept_class_verifier*/; - return_label57: while(false); - 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 = 371; + 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; + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:371 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 371); + nit_exit(1); + } + 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___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 352, LOCATE_mmbuilder___ClassVerifierVisitor___init}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassVerifierVisitor].i]) return; - /* Register variable[3]: Method return value and escape marker */ - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label58: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassVerifierVisitor].i] = 1; - 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 = 372; + 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: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[itpos5] = 1; return; } -void mmbuilder___PropertyBuilderVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 362, LOCATE_mmbuilder___PropertyBuilderVisitor___visit}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_mmbuilder___PNode___accept_property_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::accept_property_builder*/; - return_label59: while(false); - 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 = 382; + 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; + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:382 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 382); + nit_exit(1); + } + 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___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 363, LOCATE_mmbuilder___PropertyBuilderVisitor___init}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i]) return; - /* Register variable[3]: Method return value and escape marker */ - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - return_label60: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i] = 1; - 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 = 383; + 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:383 */ + 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___PropertyVerifierVisitor___visit(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 374, LOCATE_mmbuilder___PropertyVerifierVisitor___visit}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_mmbuilder___PNode___accept_property_verifier( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::accept_property_verifier*/; - return_label61: 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 = 394; + 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; + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:394 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 394); + nit_exit(1); + } + 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, 371, LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder}; - val_t *variable = NULL; - struct WBT_ **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, 371, LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder__eq}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder( self) /*PropertyVerifierVisitor::_signature_builder*/ = param0; - 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 = 391; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:391 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_signature_builder"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 391); + nit_exit(1); + } + 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 = 391; + 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:391 */ + ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -void mmbuilder___PropertyVerifierVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 376, LOCATE_mmbuilder___PropertyVerifierVisitor___init}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i]) return; - /* Register variable[3]: Method return value and escape marker */ - CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/; - /* Register variable[4]: Result */ - variable[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init() /*new SignatureBuilder*/; - ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(variable[0]) /*PropertyVerifierVisitor::_signature_builder*/ = variable[4]; - return_label62: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i] = 1; - 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 = 396; + 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; + fra.me.REG[3] = fra.me.REG[0]; + /* ./syntax//mmbuilder.nit:398 */ + CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + fra.me.REG[2] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); + /* ./syntax//mmbuilder.nit:399 */ + ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2]; + stack_frame_head = fra.me.prev; + init_table[itpos7] = 1; return; } -val_t mmbuilder___SignatureBuilder___params(val_t self) { - struct trace_t trace = {NULL, NULL, 385, LOCATE_mmbuilder___SignatureBuilder___params}; - val_t *variable = NULL; - struct WBT_ **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, 385, LOCATE_mmbuilder___SignatureBuilder___params__eq}; - val_t *variable = NULL; - struct WBT_ **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___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 = 405; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:405 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_params"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 405); + nit_exit(1); + } + 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 = 405; + 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:405 */ + ATTR_mmbuilder___SignatureBuilder____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, 388, LOCATE_mmbuilder___SignatureBuilder___untyped_params}; - val_t *variable = NULL; - struct WBT_ **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, 388, LOCATE_mmbuilder___SignatureBuilder___untyped_params__eq}; - val_t *variable = NULL; - struct WBT_ **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___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 = 408; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:408 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_untyped_params"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 408); + nit_exit(1); + } + 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 = 408; + 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:408 */ + ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___vararg_rank(val_t self) { - struct trace_t trace = {NULL, NULL, 391, LOCATE_mmbuilder___SignatureBuilder___vararg_rank}; - val_t *variable = NULL; - struct WBT_ **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, 391, LOCATE_mmbuilder___SignatureBuilder___vararg_rank__eq}; - val_t *variable = NULL; - struct WBT_ **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___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 = 411; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:411 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_vararg_rank"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 411); + nit_exit(1); + } + 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 = 411; + 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:411 */ + ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___closure_decls(val_t self) { - struct trace_t trace = {NULL, NULL, 394, LOCATE_mmbuilder___SignatureBuilder___closure_decls}; - val_t *variable = NULL; - struct WBT_ **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, 394, LOCATE_mmbuilder___SignatureBuilder___closure_decls__eq}; - val_t *variable = NULL; - struct WBT_ **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___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 = 414; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:414 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_closure_decls"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 414); + nit_exit(1); + } + 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 = 414; + 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:414 */ + ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___SignatureBuilder___signature(val_t self) { - struct trace_t trace = {NULL, NULL, 397, LOCATE_mmbuilder___SignatureBuilder___signature}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___SignatureBuilder____signature( self) /*SignatureBuilder::_signature*/; +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 = 417; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:417 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_has_error_occured"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 417); + nit_exit(1); + } + 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 = 417; + 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:417 */ + ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; + return; } -void mmbuilder___SignatureBuilder___signature__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 397, LOCATE_mmbuilder___SignatureBuilder___signature__eq}; - val_t *variable = NULL; - struct WBT_ **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 = 420; + 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; + fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:420 */ + 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 = 420; + 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:420 */ + 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; - struct WBT_ **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, 404, LOCATE_mmbuilder___PNode___accept_class_builder}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label63: 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 = 427; + 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:427 */ + 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, 405, LOCATE_mmbuilder___PNode___accept_class_specialization_builder}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label64: 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 = 428; + 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:428 */ + 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, 406, LOCATE_mmbuilder___PNode___accept_class_ancestor_builder}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label65: 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 = 429; + 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:429 */ + 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, 407, LOCATE_mmbuilder___PNode___accept_class_verifier}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label66: 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 = 430; + 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:430 */ + 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, 408, LOCATE_mmbuilder___PNode___accept_property_builder}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label67: 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 = 431; + 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:431 */ + 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, 409, LOCATE_mmbuilder___PNode___accept_property_verifier}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/; - return_label68: 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 = 432; + 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:432 */ + 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, 413, LOCATE_mmbuilder___AModule___import_super_modules}; - static val_t once_value_71 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_72 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_73; static int once_bool_73; /* Once value for variable[8]*/ - static val_t once_value_74 = NIT_NULL; /* Once value for string variable[8]*/ - val_t variable[13]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = NEW_Array_array___Array___init() /*new Array[Symbol]*/; - variable[4] = variable[5]; - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = NEW_HashMap_hash___HashMap___init() /*new HashMap[Symbol, Int]*/; - variable[5] = variable[6]; - /* Register variable[6]: Local variable */ - variable[6] = NIT_NULL /*null*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___AModule___n_imports(variable[0])(variable[0]) /*AModule::n_imports*/; - /* Register variable[7]: For iterator */ - variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*List::iterator*/; - while (true) { /*for*/ - /* Register variable[8]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[9]: Local variable */ - variable[9] = variable[8]; - /* Register variable[10]: Local variable */ - /* Register variable[11]: Result */ - variable[11] = CALL_mmbuilder___PImport___module_name( variable[9] /*i*/)( variable[9] /*i*/) /*PImport::module_name*/; - variable[10] = variable[11]; - /* Register variable[11]: Result */ - 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*/; - /* Register variable[11]: Result */ - 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_70: while(0); - CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ListIterator::next*/; - } - break_70: while(0); - /* Register variable[7]: Result */ - 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*/ - /* Register variable[7]: Result */ - variable[7] = CALL_abstract_collection___Collection___is_empty( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArrayRead::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]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[8]: Once String constant */ - if (once_value_71 != NIT_NULL) variable[8] = once_value_71; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_71 = variable[8]; +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[7];} 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 = 436; + fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules; + fra.me.has_broke = 0; + fra.me.REG_size = 8; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[7] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + fra.me.REG[3] = NEW_Array_array___Array___init(); + fra.me.REG[4] = NEW_HashMap_hash_collection___HashMap___init(); + fra.me.REG[5] = NIT_NULL; + fra.me.REG[0] = CALL_parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:443 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[7] = CALL_mmbuilder___AImport___module_name(fra.me.REG[6])(fra.me.REG[6]); + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + /* ./syntax//mmbuilder.nit:445 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL); + REGB0 = REGB1; + } } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_parser_prod___PNode___locate( variable[6] /*no_import*/)( variable[6] /*no_import*/) /*Prod::locate*/; - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[8]: Once String constant */ - if (once_value_72 != NIT_NULL) variable[8] = once_value_72; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(": Error: Top modules cannot import other modules."), TAG_Int(49)) /*new String*/; - once_value_72 = variable[8]; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:446 */ + array___Array___add(fra.me.REG[3], fra.me.REG[7]); + REGB0 = CALL_mmbuilder___AImport___visibility_level(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:447 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7], REGB0); + } else { + fra.me.REG[5] = fra.me.REG[6]; + /* ./syntax//mmbuilder.nit:449 */ } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/; - CALL_mmloader___ToolContext___error( variable[1] /*tc*/)( variable[1] /*tc*/, variable[7]) /*ToolContext::error*/; + } else { + /* ./syntax//mmbuilder.nit:443 */ + goto label1; } - } else { /*if*/ - /* Register variable[7]: Result */ - variable[7] = CALL_abstract_collection___Collection___is_empty( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArrayRead::is_empty*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - /* Register variable[7]: Local variable */ - /* Register variable[8]: Once expression result */ - if (once_bool_73) variable[8] = once_value_73; - else { - /* Register variable[8]: Once String constant */ - if (once_value_74 != NIT_NULL) variable[8] = once_value_74; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString("standard"), TAG_Int(8)) /*new String*/; - once_value_74 = variable[8]; - } - /* Register variable[8]: Result */ - /* Register variable[8]: Result */ - variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/; - once_value_73 = variable[8]; - once_bool_73 = true; - } - /* Register variable[8]: Result */ - 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_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + } + label1: while(0); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:452 */ + 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; } } - CALL_mmloader___MMModule___import_supers_modules( variable[2] /*mod*/)( variable[2] /*mod*/, variable[4] /*module_names_to_import*/) /*MMModule::import_supers_modules*/; - /* Register variable[7]: For iterator */ - variable[7] = CALL_abstract_collection___Collection___iterator( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[8]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[9]: Local variable */ - variable[9] = variable[8]; - /* Register variable[10]: Local variable */ - /* Register variable[11]: Result */ - variable[11] = CALL_abstract_collection___MapRead_____bra( variable[5] /*module_visibility*/)( variable[5] /*module_visibility*/, variable[9] /*mname*/) /*CoupleMap::[]*/; - variable[10] = variable[11]; - /* Register variable[11]: Local variable */ - /* Register variable[12]: Result */ - 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_75: while(0); - CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/; - } - break_75: while(0); - return_label69: while(false); - tracehead = trace.prev; - return; -} -void mmbuilder___APackagedecl___accept_class_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 450, LOCATE_mmbuilder___APackagedecl___accept_class_builder}; - static val_t once_value_77 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_78 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_79 = NIT_NULL; /* Once value for string variable[5]*/ - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___APackagedecl___n_id(variable[0])(variable[0]) /*APackagedecl::n_id*/; - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___Token___to_symbol(variable[3])(variable[3]) /*Token::to_symbol*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMModule___name(variable[4])(variable[4]) /*MMModule::name*/; - /* Register variable[3]: Result */ - 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*/ - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___APackagedecl___n_id(variable[0])(variable[0]) /*APackagedecl::n_id*/; - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_77 != NIT_NULL) variable[5] = once_value_77; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Package name missmatch between "), TAG_Int(38)) /*new String*/; - once_value_77 = variable[5]; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:453 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:454 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 454); + nit_exit(1); + } + 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; + CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[0]); } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMModule___name(variable[5])(variable[5]) /*MMModule::name*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_78 != NIT_NULL) variable[5] = once_value_78; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)) /*new String*/; - once_value_78 = variable[5]; + } else { + REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:456 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:457 */ + 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] = 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; + /* ./syntax//mmbuilder.nit:458 */ + array___Array___add(fra.me.REG[3], fra.me.REG[0]); + REGB0 = TAG_Int(1); + /* ./syntax//mmbuilder.nit:459 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], REGB0); } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___APackagedecl___n_id(variable[0])(variable[0]) /*APackagedecl::n_id*/; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___Token___to_symbol(variable[5])(variable[5]) /*Token::to_symbol*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_79 != NIT_NULL) variable[5] = once_value_79; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_79 = variable[5]; + } + /* ./syntax//mmbuilder.nit:462 */ + CALL_mmloader___MMModule___import_supers_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:464 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + REGB0 = fra.me.REG[5]; + fra.me.REG[0] = CALL_mmloader___ToolContext___get_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:467 */ + CALL_abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0); + } else { + /* ./syntax//mmbuilder.nit:464 */ + goto label5; } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/; - } - return_label76: while(false); - tracehead = trace.prev; + CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); + } + label5: while(0); + stack_frame_head = fra.me.prev; + return; +} +void mmbuilder___APackagedecl___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 = 473; + fra.me.meth = LOCATE_mmbuilder___APackagedecl___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; + fra.me.REG[2] = CALL_parser_nodes___APackagedecl___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___module(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])); + /* ./syntax//mmbuilder.nit:475 */ + 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)) { + fra.me.REG[3] = CALL_parser_nodes___APackagedecl___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); + /* ./syntax//mmbuilder.nit:476 */ + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("Error: Package name missmatch between "); + REGB0 = TAG_Int(38); + 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; + array___Array___add(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___module(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[0] = CALL_parser_nodes___APackagedecl___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]); + array___Array___add(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; + array___Array___add(fra.me.REG[2], fra.me.REG[0]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + CALL_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, 459, LOCATE_mmbuilder___PImport___module_name}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; +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 = 482; + fra.me.meth = LOCATE_mmbuilder___AImport___module_name; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:482 */ fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 459); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 482); nit_exit(1); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmbuilder___PImport___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 462, LOCATE_mmbuilder___PImport___visibility_level}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; +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 = 485; + fra.me.meth = LOCATE_mmbuilder___AImport___visibility_level; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:485 */ fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 462); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 485); nit_exit(1); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmbuilder___AImport___module_name(val_t self) { - struct trace_t trace = {NULL, NULL, 466, LOCATE_mmbuilder___AImport___module_name}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Result */ - variable[2] = CALL_parser_nodes___AImport___n_id(variable[0])(variable[0]) /*AImport::n_id*/; - /* Register variable[2]: Result */ - variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/; - variable[1] = variable[2]; - goto return_label80; - return_label80: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AImport___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 470, LOCATE_mmbuilder___AImport___visibility_level}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Result */ - variable[2] = CALL_parser_nodes___AImport___n_visibility(variable[0])(variable[0]) /*AImport::n_visibility*/; - /* Register variable[2]: Result */ - variable[2] = CALL_mmbuilder___PVisibility___level(variable[2])(variable[2]) /*PVisibility::level*/; - variable[1] = variable[2]; - goto return_label81; - return_label81: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___ANoImport___module_name(val_t self) { - struct trace_t trace = {NULL, NULL, 476, LOCATE_mmbuilder___ANoImport___module_name}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = NIT_NULL /*null*/; - goto return_label82; - return_label82: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 483, LOCATE_mmbuilder___PVisibility___level}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; +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 = 489; + 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; + 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]); + /* ./syntax//mmbuilder.nit:491 */ + 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 = 493; + 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; + 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]); + /* ./syntax//mmbuilder.nit:495 */ + 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 = 499; + 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; + fra.me.REG[0] = NIT_NULL; + /* ./syntax//mmbuilder.nit:501 */ + 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 = 506; + fra.me.meth = LOCATE_mmbuilder___AVisibility___level; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:506 */ fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 483); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 506); nit_exit(1); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmbuilder___APublicVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 487, LOCATE_mmbuilder___APublicVisibility___level}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Int(1); - goto return_label83; - return_label83: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AProtectedVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 490, LOCATE_mmbuilder___AProtectedVisibility___level}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Int(2); - goto return_label84; - return_label84: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___APrivateVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 493, LOCATE_mmbuilder___APrivateVisibility___level}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Int(3); - goto return_label85; - return_label85: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AIntrudeVisibility___level(val_t self) { - struct trace_t trace = {NULL, NULL, 496, LOCATE_mmbuilder___AIntrudeVisibility___level}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Int(0); - goto return_label86; - return_label86: 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, 547, LOCATE_mmbuilder___PClassdef___accept_abs_syntax_visitor}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*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_label87: while(false); - tracehead = trace.prev; +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 = 510; + 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; + REGB0 = TAG_Int(1); + /* ./syntax//mmbuilder.nit:510 */ + 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 = 513; + 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; + REGB0 = TAG_Int(2); + /* ./syntax//mmbuilder.nit:513 */ + 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 = 516; + 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; + REGB0 = TAG_Int(3); + /* ./syntax//mmbuilder.nit:516 */ + 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 = 519; + 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; + REGB0 = TAG_Int(0); + /* ./syntax//mmbuilder.nit:519 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +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 = 573; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + fra.me.REG[2] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:575 */ + CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:576 */ + CALL_SUPER_mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:577 */ + 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___local_class(val_t self) { - struct trace_t trace = {NULL, NULL, 501, LOCATE_mmbuilder___PClassdef___local_class}; - val_t *variable = NULL; - struct WBT_ **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, 512, LOCATE_mmbuilder___PClassdef___accept_class_builder}; - static val_t once_value_89 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_90 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_91 = NIT_NULL; /* Once value for string variable[7]*/ - val_t variable[8]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Local variable */ - /*variable[3] is variable local_class*/ - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - variable[4] = variable[5]; - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___MMSrcModule___src_local_classes( variable[4] /*mod*/)( variable[4] /*mod*/) /*MMSrcModule::src_local_classes*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*PClassdef::name*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstract_collection___MapRead___has_key( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6]) /*MapRead::has_key*/; - if (UNTAG_Bool(variable[6])) { /*if*/ - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*PClassdef::name*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstract_collection___MapRead_____bra( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6]) /*MapRead::[]*/; - variable[3] = variable[6] /*local_class=*/; - /* Register variable[6]: Result */ - variable[6] = TAG_Bool((variable[0]==NIT_NULL) || VAL_ISA(variable[0], COLOR_AClassdef, ID_AClassdef)) /*cast AClassdef*/; - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[7]: Once String constant */ - if (once_value_89 != NIT_NULL) variable[7] = once_value_89; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: A class "), TAG_Int(15)) /*new String*/; - once_value_89 = variable[7]; +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 = 524; + 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; + fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:524 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 524); + nit_exit(1); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +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 = 536; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]); + 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]); + /* ./syntax//mmbuilder.nit:541 */ + if (UNTAG_Bool(REGB0)) { + 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]); + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AStdClassdef, ID_AStdClassdef)) /*cast AStdClassdef*/; + /* ./syntax//mmbuilder.nit:543 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:545 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 545); + nit_exit(1); + } + 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); + array___Array___add(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; + array___Array___add(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]); + /* ./syntax//mmbuilder.nit:546 */ + goto label4; + } + fra.me.REG[7] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:550 */ + while(1) { + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 550); + nit_exit(1); } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_90 != NIT_NULL) variable[7] = once_value_90; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" is already defined at line "), TAG_Int(28)) /*new String*/; - once_value_90 = variable[7]; + 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; + } } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = CALL_syntax_base___MMSrcLocalClass___nodes( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/; - /* Register variable[7]: Result */ - variable[7] = CALL_abstract_collection___Collection___first(variable[7])(variable[7]) /*IndexedCollectionRead::first*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_prod___Prod___first_token(variable[7])(variable[7]) /*Prod::first_token*/; - /* Register variable[7]: Result */ - variable[7] = CALL_lexer___Token___line(variable[7])(variable[7]) /*Token::line*/; - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_91 != NIT_NULL) variable[7] = once_value_91; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_91 = variable[7]; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 550); + nit_exit(1); + } + 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; } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[6]) /*AbsSyntaxVisitor::error*/; - goto return_label88; } - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___MMSrcLocalClass___nodes( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[0]) /*AbstractArray::add*/; - } else { /*if*/ - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*PClassdef::name*/; - /* Register variable[7]: Result */ - variable[7] = CALL_mmbuilder___PClassdef___arity(variable[0])(variable[0]) /*PClassdef::arity*/; - /* Register variable[6]: Result */ - variable[6] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init( variable[4] /*mod*/, variable[6], variable[0], variable[7]) /*new MMSrcLocalClass*/; - variable[3] = variable[6] /*local_class=*/; - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*PClassdef::name*/; - CALL_abstract_collection___Map_____braeq( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6], variable[3] /*local_class*/) /*Map::[]=*/; - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*PClassdef::name*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMModule___has_global_class_named( variable[4] /*mod*/)( variable[4] /*mod*/, variable[6]) /*MMModule::has_global_class_named*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/ - CALL_abstractmetamodel___MMLocalClass___new_global( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMLocalClass::new_global*/; - } else { /*if*/ - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*PClassdef::name*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMModule___global_class_named( variable[4] /*mod*/)( variable[4] /*mod*/, variable[6]) /*MMModule::global_class_named*/; - CALL_abstractmetamodel___MMLocalClass___set_global( variable[3] /*local_class*/)( variable[3] /*local_class*/, variable[6]) /*MMLocalClass::set_global*/; + label5: while(0); + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + /* ./syntax//mmbuilder.nit:551 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 551); + nit_exit(1); + } + CALL_syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]); + } else { + 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]; + fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:554 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]); + 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)); + /* ./syntax//mmbuilder.nit:555 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:556 */ + CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[6])(fra.me.REG[6]); + } else { + 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]); + /* ./syntax//mmbuilder.nit:558 */ + CALL_abstractmetamodel___MMLocalClass___set_global(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); } } - ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*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=*/; - /* Register variable[6]: Result */ - 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*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*PClassdef::_local_class*/; - /* Register variable[7]: Result */ - 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_label88: while(false); - tracehead = trace.prev; + /* ./syntax//mmbuilder.nit:562 */ + ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6]; + REGB0 = TAG_Int(0); + /* ./syntax//mmbuilder.nit:563 */ + CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0); + fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:564 */ + CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:567 */ + CALL_SUPER_mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:570 */ + 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, 503, LOCATE_mmbuilder___PClassdef___name}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; +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 = 527; + fra.me.meth = LOCATE_mmbuilder___AClassdef___name; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./syntax//mmbuilder.nit:527 */ fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 503); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 527); nit_exit(1); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return NIT_NULL; } -val_t mmbuilder___PClassdef___arity(val_t self) { - struct trace_t trace = {NULL, NULL, 506, LOCATE_mmbuilder___PClassdef___arity}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Int(0); - goto return_label92; - return_label92: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClassdef___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 509, LOCATE_mmbuilder___PClassdef___visibility_level}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Int(1); - goto return_label93; - return_label93: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClasskind___is_interface(val_t self) { - struct trace_t trace = {NULL, NULL, 556, LOCATE_mmbuilder___PClasskind___is_interface}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(false); - goto return_label94; - return_label94: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClasskind___is_universal(val_t self) { - struct trace_t trace = {NULL, NULL, 557, LOCATE_mmbuilder___PClasskind___is_universal}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(false); - goto return_label95; - return_label95: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___PClasskind___is_abstract(val_t self) { - struct trace_t trace = {NULL, NULL, 558, LOCATE_mmbuilder___PClasskind___is_abstract}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(false); - goto return_label96; - return_label96: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AInterfaceClasskind___is_interface(val_t self) { - struct trace_t trace = {NULL, NULL, 562, LOCATE_mmbuilder___AInterfaceClasskind___is_interface}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(true); - goto return_label97; - return_label97: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AUniversalClasskind___is_universal(val_t self) { - struct trace_t trace = {NULL, NULL, 565, LOCATE_mmbuilder___AUniversalClasskind___is_universal}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(true); - goto return_label98; - return_label98: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AAbstractClasskind___is_abstract(val_t self) { - struct trace_t trace = {NULL, NULL, 568, LOCATE_mmbuilder___AAbstractClasskind___is_abstract}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(true); - goto return_label99; - return_label99: 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, 580, LOCATE_mmbuilder___AClassdef___accept_class_verifier}; - static val_t once_value_101 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_102 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_104 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_105 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_106 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_107 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_108 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_109 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_110 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_111 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_112 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_113 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_114 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_115 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_116 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_117 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_118 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_119 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_120 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_121 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_122 = NIT_NULL; /* Once value for string variable[5]*/ - val_t variable[10]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___AClassdef___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super AClassdef::accept_class_verifier*/; - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*PClassdef::_local_class*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMLocalClass___global(variable[4])(variable[4]) /*MMLocalClass::global*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*PClassdef::_local_class*/; - /* Register variable[4]: Result */ - 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*/ - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PClassdef___visibility_level(variable[0])(variable[0]) /*AClassdef::visibility_level*/; - CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::visibility_level=*/; - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[0])(variable[0]) /*AClassdef::n_classkind*/; - /* Register variable[4]: Result */ - 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=*/; - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[0])(variable[0]) /*AClassdef::n_classkind*/; - /* Register variable[4]: Result */ - 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=*/; - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[0])(variable[0]) /*AClassdef::n_classkind*/; - /* Register variable[4]: Result */ - 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=*/; - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_kwredef(variable[0])(variable[0]) /*AClassdef::n_kwredef*/; - /* Register variable[4]: Result */ - 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] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_101 != NIT_NULL) variable[5] = once_value_101; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: No class "), TAG_Int(22)) /*new String*/; - once_value_101 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_102 != NIT_NULL) variable[5] = once_value_102; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" is imported. Remove the redef keyword to define a new class."), TAG_Int(61)) /*new String*/; - once_value_102 = variable[5]; +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 = 530; + 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; + REGB0 = TAG_Int(0); + /* ./syntax//mmbuilder.nit:531 */ + 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 = 533; + 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; + REGB0 = TAG_Int(1); + /* ./syntax//mmbuilder.nit:534 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +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 = 582; + 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; + REGB0 = TAG_Bool(false); + /* ./syntax//mmbuilder.nit:582 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AClasskind___is_universal(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___AClasskind___is_universal; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = TAG_Bool(false); + /* ./syntax//mmbuilder.nit:583 */ + 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 = 584; + 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; + REGB0 = TAG_Bool(false); + /* ./syntax//mmbuilder.nit:584 */ + 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 = 588; + 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; + REGB0 = TAG_Bool(true); + /* ./syntax//mmbuilder.nit:588 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +val_t mmbuilder___AUniversalClasskind___is_universal(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___AUniversalClasskind___is_universal; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = TAG_Bool(true); + /* ./syntax//mmbuilder.nit:591 */ + 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 = 594; + 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; + REGB0 = TAG_Bool(true); + /* ./syntax//mmbuilder.nit:594 */ + 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[7];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ + static val_t once_value_8; /* Once value */ + static val_t once_value_9; /* Once value */ + 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 = 606; + fra.me.meth = LOCATE_mmbuilder___AStdClassdef___accept_class_verifier; + fra.me.has_broke = 0; + fra.me.REG_size = 8; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[7] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:608 */ + CALL_SUPER_mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[1] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:609 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 609); + nit_exit(1); + } + fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]); + 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])); + /* ./syntax//mmbuilder.nit:610 */ + 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)) { + REGB0 = CALL_mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:612 */ + CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + 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]); + /* ./syntax//mmbuilder.nit:613 */ + CALL_abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + 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]); + /* ./syntax//mmbuilder.nit:614 */ + CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_mmbuilder___AClasskind___is_universal(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:615 */ + CALL_abstractmetamodel___MMGlobalClass___is_universal__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + 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); + /* ./syntax//mmbuilder.nit:616 */ + 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; } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[4]) /*AbsSyntaxVisitor::error*/; } - /* Register variable[4]: Result */ - variable[4] = ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*PClassdef::_local_class*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/; - /* Register variable[4]: Result */ - variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[4])(variable[4]) /*PartialOrderElement::direct_greaters*/; - /* Register variable[4]: For iterator */ - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[5]: For 'is_ok' result */ - variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[6]: Local variable */ - variable[6] = variable[5]; - /* Register variable[7]: Local variable */ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::global*/; - variable[7] = variable[8]; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_104 != NIT_NULL) variable[9] = once_value_104; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)) /*new String*/; - once_value_104 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_105 != NIT_NULL) variable[9] = once_value_105; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)) /*new String*/; - once_value_105 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_106 != NIT_NULL) variable[9] = once_value_106; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_106 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[8]: Result */ - 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] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_107 != NIT_NULL) variable[9] = once_value_107; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)) /*new String*/; - once_value_107 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_108 != NIT_NULL) variable[9] = once_value_108; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise class "), TAG_Int(25)) /*new String*/; - once_value_108 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_109 != NIT_NULL) variable[9] = once_value_109; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_109 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; - } - } - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_interface*/; - variable[8] = TAG_Bool(!UNTAG_Bool(variable[8])) /* Ensure var: Left 'and' operand*/; - if (UNTAG_Bool(variable[8])) { /* and */ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/; - variable[8] = TAG_Bool(!UNTAG_Bool(variable[8])); - } - /* Register variable[8]: Result */ - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_110 != NIT_NULL) variable[9] = once_value_110; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Universal class "), TAG_Int(31)) /*new String*/; - once_value_110 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_111 != NIT_NULL) variable[9] = once_value_111; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise class "), TAG_Int(25)) /*new String*/; - once_value_111 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_112 != NIT_NULL) variable[9] = once_value_112; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_112 = variable[9]; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:617 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[4], fra.me.REG[0]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]); + } + fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:620 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 620); + nit_exit(1); + } + 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]); + fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]); + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:622 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[5])(fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:623 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:624 */ + if (!once_value_3) { + fra.me.REG[7] = BOX_NativeString("Special error: Interface "); + REGB0 = TAG_Int(25); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_3 = fra.me.REG[7]; + register_static_object(&once_value_3); + } else fra.me.REG[7] = once_value_3; + array___Array___add(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]); + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_4) { + fra.me.REG[7] = BOX_NativeString(" try to specialise universal class "); + REGB0 = TAG_Int(35); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_4 = fra.me.REG[7]; + register_static_object(&once_value_4); + } else fra.me.REG[7] = once_value_4; + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_5) { + fra.me.REG[7] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_5 = fra.me.REG[7]; + register_static_object(&once_value_5); + } else fra.me.REG[7] = once_value_5; + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[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]); + } else { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:625 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:626 */ + if (!once_value_6) { + fra.me.REG[7] = BOX_NativeString("Special error: Interface "); + REGB0 = TAG_Int(25); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_6 = fra.me.REG[7]; + register_static_object(&once_value_6); + } else fra.me.REG[7] = once_value_6; + array___Array___add(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]); + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_7) { + fra.me.REG[7] = BOX_NativeString(" try to specialise class "); + REGB0 = TAG_Int(25); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_7 = fra.me.REG[7]; + register_static_object(&once_value_7); + } else fra.me.REG[7] = once_value_7; + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_8) { + fra.me.REG[7] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_8 = fra.me.REG[7]; + register_static_object(&once_value_8); + } else fra.me.REG[7] = once_value_8; + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]); } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; } - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_113 != NIT_NULL) variable[9] = once_value_113; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Class "), TAG_Int(21)) /*new String*/; - once_value_113 = variable[9]; + } else { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:628 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:629 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_114 != NIT_NULL) variable[9] = once_value_114; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)) /*new String*/; - once_value_114 = variable[9]; + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:630 */ + if (!once_value_9) { + fra.me.REG[7] = BOX_NativeString("Special error: Universal class "); + REGB0 = TAG_Int(31); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_9 = fra.me.REG[7]; + register_static_object(&once_value_9); + } else fra.me.REG[7] = once_value_9; + array___Array___add(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]); + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_10) { + fra.me.REG[7] = BOX_NativeString(" try to specialise class "); + REGB0 = TAG_Int(25); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_10 = fra.me.REG[7]; + register_static_object(&once_value_10); + } else fra.me.REG[7] = once_value_10; + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + if (!once_value_11) { + fra.me.REG[7] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0); + once_value_11 = fra.me.REG[7]; + register_static_object(&once_value_11); + } else fra.me.REG[7] = once_value_11; + array___Array___add(fra.me.REG[6], fra.me.REG[7]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]); } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_115 != NIT_NULL) variable[9] = once_value_115; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_115 = variable[9]; + } else { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[5])(fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:633 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:634 */ + if (!once_value_12) { + fra.me.REG[6] = BOX_NativeString("Special error: Class "); + REGB0 = TAG_Int(21); + 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; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(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]); + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_13) { + fra.me.REG[6] = BOX_NativeString(" try to specialise universal class "); + REGB0 = TAG_Int(35); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_13 = fra.me.REG[6]; + register_static_object(&once_value_13); + } else fra.me.REG[6] = once_value_13; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + array___Array___add(fra.me.REG[5], fra.me.REG[0]); + if (!once_value_14) { + fra.me.REG[0] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_14 = fra.me.REG[0]; + register_static_object(&once_value_14); + } else fra.me.REG[0] = once_value_14; + array___Array___add(fra.me.REG[5], fra.me.REG[0]); + 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[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]); } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; } } + } else { + /* ./syntax//mmbuilder.nit:620 */ + goto label15; } - continue_103: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; - } - break_103: while(0); - goto return_label100; - } - /* Register variable[4]: Result */ - variable[4] = 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[0], variable[4]) /*MMGlobalClass::check_visibility*/; - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_kwredef(variable[0])(variable[0]) /*AClassdef::n_kwredef*/; - /* Register variable[4]: Result */ - 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] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_116 != NIT_NULL) variable[5] = once_value_116; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)) /*new String*/; - once_value_116 = variable[5]; + CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_117 != NIT_NULL) variable[5] = once_value_117; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" is an imported class. Add the redef keyword to refine it."), TAG_Int(58)) /*new String*/; - once_value_117 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[4]) /*AbsSyntaxVisitor::error*/; - goto return_label100; - } - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMLocalClass___arity(variable[4])(variable[4]) /*MMLocalClass::arity*/; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*PClassdef::_local_class*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalClass___arity(variable[5])(variable[5]) /*MMLocalClass::arity*/; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool((variable[4])!=(variable[5])); - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_118 != NIT_NULL) variable[5] = once_value_118; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Formal parameter arity missmatch; got "), TAG_Int(51)) /*new String*/; - once_value_118 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___PClassdef____local_class(variable[0]) /*PClassdef::_local_class*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalClass___arity(variable[5])(variable[5]) /*MMLocalClass::arity*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_119 != NIT_NULL) variable[5] = once_value_119; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)) /*new String*/; - once_value_119 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalClass___arity(variable[5])(variable[5]) /*MMLocalClass::arity*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_120 != NIT_NULL) variable[5] = once_value_120; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_120 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[4]) /*AbsSyntaxVisitor::error*/; - } - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/; - variable[4] = TAG_Bool(!UNTAG_Bool(variable[4])) /* Ensure var: Left 'and' operand*/; - if (UNTAG_Bool(variable[4])) { /* and */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[0])(variable[0]) /*AClassdef::n_classkind*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PClasskind___is_interface(variable[4])(variable[4]) /*PClasskind::is_interface*/; - } - /* Register variable[4]: Result */ - /* Ensure var variable[4]: Left 'or' operand*/ - if (!UNTAG_Bool(variable[4])) { /* or */ - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMGlobalClass___is_abstract( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_abstract*/; - variable[4] = TAG_Bool(!UNTAG_Bool(variable[4])); - } - /* Register variable[4]: Result */ - /* Ensure var variable[4]: Left 'and' operand*/ - if (UNTAG_Bool(variable[4])) { /* and */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[0])(variable[0]) /*AClassdef::n_classkind*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PClasskind___is_abstract(variable[4])(variable[4]) /*PClasskind::is_abstract*/; - } - /* Register variable[4]: Result */ - /* Ensure var variable[4]: Left 'or' operand*/ - if (!UNTAG_Bool(variable[4])) { /* or */ - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_universal*/; - variable[4] = TAG_Bool(!UNTAG_Bool(variable[4])); - } - /* Register variable[4]: Result */ - /* Ensure var variable[4]: Left 'and' operand*/ - if (UNTAG_Bool(variable[4])) { /* and */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[0])(variable[0]) /*AClassdef::n_classkind*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PClasskind___is_universal(variable[4])(variable[4]) /*PClasskind::is_universal*/; - } - /* Register variable[4]: Result */ - if (UNTAG_Bool(variable[4])) { /*if*/ - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_121 != NIT_NULL) variable[5] = once_value_121; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: cannot change kind of class "), TAG_Int(41)) /*new String*/; - once_value_121 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PClassdef___name(variable[0])(variable[0]) /*AClassdef::name*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_122 != NIT_NULL) variable[5] = once_value_122; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_122 = variable[5]; - } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[4]) /*AbsSyntaxVisitor::error*/; - } - return_label100: while(false); - tracehead = trace.prev; - return; -} -val_t mmbuilder___AClassdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 572, LOCATE_mmbuilder___AClassdef___name}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Result */ - variable[2] = CALL_parser_nodes___AClassdef___n_id(variable[0])(variable[0]) /*AClassdef::n_id*/; - /* Register variable[2]: Result */ - variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/; - variable[1] = variable[2]; - goto return_label123; - return_label123: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AClassdef___arity(val_t self) { - struct trace_t trace = {NULL, NULL, 576, LOCATE_mmbuilder___AClassdef___arity}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Result */ - variable[2] = CALL_parser_nodes___AClassdef___n_formaldefs(variable[0])(variable[0]) /*AClassdef::n_formaldefs*/; - /* Register variable[2]: Result */ - variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*List::length*/; - variable[1] = variable[2]; - goto return_label124; - return_label124: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AClassdef___visibility_level(val_t self) { - struct trace_t trace = {NULL, NULL, 637, LOCATE_mmbuilder___AClassdef___visibility_level}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Result */ - variable[2] = CALL_parser_nodes___AClassdef___n_visibility(variable[0])(variable[0]) /*AClassdef::n_visibility*/; - /* Register variable[2]: Result */ - variable[2] = CALL_mmbuilder___PVisibility___level(variable[2])(variable[2]) /*PVisibility::level*/; - variable[1] = variable[2]; - goto return_label125; - return_label125: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AMainClassdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 644, LOCATE_mmbuilder___AMainClassdef___name}; - static val_t once_value_127; static int once_bool_127; /* Once value for variable[2]*/ - static val_t once_value_128 = NIT_NULL; /* Once value for string variable[2]*/ - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Once expression result */ - if (once_bool_127) variable[2] = once_value_127; - else { - /* Register variable[2]: Once String constant */ - if (once_value_128 != NIT_NULL) variable[2] = once_value_128; - else { - variable[2] = NEW_String_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)) /*new String*/; - once_value_128 = variable[2]; + label15: while(0); + /* ./syntax//mmbuilder.nit:639 */ + goto label16; + } + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:644 */ + 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[4]); + 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); + /* ./syntax//mmbuilder.nit:645 */ + 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; } - /* Register variable[2]: Result */ - /* Register variable[2]: Result */ - variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/; - once_value_127 = variable[2]; - once_bool_127 = true; - } - /* Register variable[2]: Result */ - variable[1] = variable[2]; - goto return_label126; - return_label126: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___ATopClassdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 651, LOCATE_mmbuilder___ATopClassdef___name}; - static val_t once_value_130; static int once_bool_130; /* Once value for variable[2]*/ - static val_t once_value_131 = NIT_NULL; /* Once value for string variable[2]*/ - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Once expression result */ - if (once_bool_130) variable[2] = once_value_130; - else { - /* Register variable[2]: Once String constant */ - if (once_value_131 != NIT_NULL) variable[2] = once_value_131; - else { - variable[2] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)) /*new String*/; - once_value_131 = variable[2]; + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:646 */ + if (!once_value_17) { + 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_17 = fra.me.REG[5]; + register_static_object(&once_value_17); + } else fra.me.REG[5] = once_value_17; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_mmbuilder___AClassdef___name(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]); + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_18) { + fra.me.REG[5] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it."); + REGB0 = TAG_Int(58); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_18 = fra.me.REG[5]; + register_static_object(&once_value_18); + } else fra.me.REG[5] = once_value_18; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:647 */ + goto label16; + } + fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:650 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 650); + nit_exit(1); + } + REGB1 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); + if (UNTAG_Bool(REGB2)) { + } else { + REGB1 = TAG_Bool((REGB0)==(REGB1)); + REGB2 = REGB1; + /* ./syntax//mmbuilder.nit:650 */ + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./syntax//mmbuilder.nit:651 */ + if (!once_value_19) { + fra.me.REG[5] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got "); + REGB2 = TAG_Int(51); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_19 = fra.me.REG[5]; + register_static_object(&once_value_19); + } else fra.me.REG[5] = once_value_19; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]); + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 651); + nit_exit(1); } - /* Register variable[2]: Result */ - /* Register variable[2]: Result */ - variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/; - once_value_130 = variable[2]; - once_bool_130 = true; - } - /* Register variable[2]: Result */ - variable[1] = variable[2]; - goto return_label129; - return_label129: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___MMSrcTypeFormalParameter___node(val_t self) { - struct trace_t trace = {NULL, NULL, 659, LOCATE_mmbuilder___MMSrcTypeFormalParameter___node}; - val_t *variable = NULL; - struct WBT_ **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, 662, LOCATE_mmbuilder___MMSrcTypeFormalParameter___init}; - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Local variable */ - variable[4] = param3; - if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeFormalParameter].i]) return; - /* Register variable[5]: Method return value and escape marker */ - CALL_genericity___MMTypeFormalParameter___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*pos*/, variable[3] /*local_class*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/; - ATTR_mmbuilder___MMSrcTypeFormalParameter____node(variable[0]) /*MMSrcTypeFormalParameter::_node*/ = variable[4] /*n*/; - return_label132: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeFormalParameter].i] = 1; - tracehead = trace.prev; + REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[5] = CALL_string___Object___to_s(REGB2)(REGB2); + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_20) { + fra.me.REG[5] = BOX_NativeString(", expected "); + REGB2 = TAG_Int(11); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_20 = fra.me.REG[5]; + register_static_object(&once_value_20); + } else fra.me.REG[5] = once_value_20; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]); + REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[5] = CALL_string___Object___to_s(REGB2)(REGB2); + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_21) { + fra.me.REG[5] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_21 = fra.me.REG[5]; + register_static_object(&once_value_21); + } else fra.me.REG[5] = once_value_21; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]); + } + REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]); + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + /* ./syntax//mmbuilder.nit:655 */ + if (UNTAG_Bool(REGB2)) { + fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[4])(fra.me.REG[4]); + } else { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(true); + } else { + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + REGB2 = REGB1; + /* ./syntax//mmbuilder.nit:655 */ + } + if (UNTAG_Bool(REGB2)) { + fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:655 */ + } else { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(true); + } else { + REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + REGB2 = REGB1; + /* ./syntax//mmbuilder.nit:655 */ + } + if (UNTAG_Bool(REGB2)) { + fra.me.REG[1] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_mmbuilder___AClasskind___is_universal(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:655 */ + } else { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + /* ./syntax//mmbuilder.nit:654 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(3); + fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./syntax//mmbuilder.nit:659 */ + if (!once_value_22) { + fra.me.REG[4] = BOX_NativeString("Redef error: cannot change kind of class "); + REGB2 = TAG_Int(41); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_22 = fra.me.REG[4]; + register_static_object(&once_value_22); + } else fra.me.REG[4] = once_value_22; + array___Array___add(fra.me.REG[1], 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]); + array___Array___add(fra.me.REG[1], fra.me.REG[4]); + if (!once_value_23) { + 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_23 = fra.me.REG[4]; + register_static_object(&once_value_23); + } else fra.me.REG[4] = once_value_23; + array___Array___add(fra.me.REG[1], fra.me.REG[4]); + 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, 673, LOCATE_mmbuilder___AFormaldef___accept_class_builder}; - val_t variable[7]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AFormaldef___n_id(variable[0])(variable[0]) /*AFormaldef::n_id*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/; - variable[3] = variable[4]; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/; - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMSrcTypeFormalParameter_mmbuilder___MMSrcTypeFormalParameter___init( variable[3] /*name*/, variable[5], variable[6], variable[0]) /*new MMSrcTypeFormalParameter*/; - variable[4] = variable[5]; - ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/ = variable[4] /*formal_type*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/; - /* Register variable[5]: Result */ - 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=*/; - /* Register variable[5]: Result */ - 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*/; - /* Register variable[5]: Result */ - 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_label133: while(false); - tracehead = trace.prev; +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 = 598; + 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; + 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); + /* ./syntax//mmbuilder.nit:600 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 600); + nit_exit(1); + } + 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 = 602; + 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; + 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]); + /* ./syntax//mmbuilder.nit:604 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +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 = 663; + 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; + 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]); + /* ./syntax//mmbuilder.nit:665 */ + 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 = 670; + 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:672 */ + 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] = 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; + 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 = 677; + 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:679 */ + 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] = 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; + 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 = 687; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + 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]); + 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:691 */ + ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5]; + REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]); + REGB1 = TAG_Int(1); + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:692 */ + CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1); + fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:693 */ + CALL_genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + 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); + /* ./syntax//mmbuilder.nit:694 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 694); + nit_exit(1); + } + CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:695 */ + 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, 684, LOCATE_mmbuilder___AFormaldef___accept_class_verifier}; - static val_t once_value_135 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_136 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_137 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_138 = NIT_NULL; /* Once value for string variable[7]*/ - val_t variable[8]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super AFormaldef::accept_class_verifier*/; - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - variable[3] = variable[4]; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalClass___global( variable[3] /*c*/)( variable[3] /*c*/) /*MMLocalClass::global*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[5])(variable[5]) /*MMGlobalClass::intro*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - 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*/ - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___AFormaldef___n_type(variable[0])(variable[0]) /*AFormaldef::n_type*/; - /* Register variable[5]: Result */ - 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*/ - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/; - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - /* Register variable[6]: Result */ - variable[6] = CALL_inheritance___MMModule___type_any(variable[6])(variable[6]) /*MMModule::type_any*/; - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMType___as_nullable(variable[6])(variable[6]) /*MMType::as_nullable*/; - CALL_genericity___MMTypeFormalParameter___bound__eq(variable[5])(variable[5], variable[6]) /*MMTypeFormalParameter::bound=*/; - } else { /*if*/ - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/; - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AFormaldef___n_type(variable[0])(variable[0]) /*AFormaldef::n_type*/; - /* Register variable[6]: Result */ - 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=*/; +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 = 698; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:700 */ + CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + 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]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0])); + /* ./syntax//mmbuilder.nit:703 */ + 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)) { + 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); + /* ./syntax//mmbuilder.nit:704 */ + 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; + } } - } else { /*if*/ - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/; - /* Register variable[6]: Result */ - variable[6] = CALL_genericity___MMTypeFormalParameter___position(variable[6])(variable[6]) /*MMTypeFormalParameter::position*/; - /* Register variable[6]: Result */ - variable[6] = CALL_genericity___MMLocalClass___get_formal( variable[4] /*o*/)( variable[4] /*o*/, variable[6]) /*MMLocalClass::get_formal*/; - /* Register variable[6]: Result */ - variable[6] = CALL_type_formal___MMTypeFormal___bound(variable[6])(variable[6]) /*MMTypeFormal::bound*/; - /* Register variable[7]: Result */ - variable[7] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMType___for_module(variable[6])(variable[6], variable[7]) /*MMType::for_module*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AFormaldef___n_type(variable[0])(variable[0]) /*AFormaldef::n_type*/; - /* Register variable[6]: Result */ - 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*/ - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/; - CALL_genericity___MMTypeFormalParameter___bound__eq(variable[6])(variable[6], variable[5] /*ob*/) /*MMTypeFormalParameter::bound=*/; - } else { /*if*/ - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___AFormaldef___n_type(variable[0])(variable[0]) /*AFormaldef::n_type*/; - /* Register variable[7]: Result */ - 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=*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/; - /* Register variable[6]: Result */ - variable[6] = CALL_type_formal___MMTypeFormal___bound(variable[6])(variable[6]) /*MMTypeFormal::bound*/; - /* Register variable[6]: Result */ - 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] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[7]: Once String constant */ - if (once_value_135 != NIT_NULL) variable[7] = once_value_135; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Cannot change formal parameter type of class "), TAG_Int(58)) /*new String*/; - once_value_135 = variable[7]; - } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - variable[7] = variable[3] /*c*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_136 != NIT_NULL) variable[7] = once_value_136; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("; got "), TAG_Int(6)) /*new String*/; - once_value_136 = variable[7]; + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___module(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); + /* ./syntax//mmbuilder.nit:705 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 705); + nit_exit(1); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + } else { + 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); + /* ./syntax//mmbuilder.nit:707 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 707); + nit_exit(1); + } + fra.me.REG[5] = CALL_syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:708 */ + 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; } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - variable[7] = ATTR_mmbuilder___AFormaldef____formal(variable[0]) /*AFormaldef::_formal*/; - /* Register variable[7]: Result */ - variable[7] = CALL_type_formal___MMTypeFormal___bound(variable[7])(variable[7]) /*MMTypeFormal::bound*/; - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_137 != NIT_NULL) variable[7] = once_value_137; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)) /*new String*/; - once_value_137 = variable[7]; + } + if (UNTAG_Bool(REGB0)) { + goto label1; + } + fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:709 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 709); + nit_exit(1); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + } + } else { + fra.me.REG[5] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:712 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 712); + nit_exit(1); + } + 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___module(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]); + 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); + /* ./syntax//mmbuilder.nit:713 */ + 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)) { + fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:714 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 714); + nit_exit(1); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + } else { + 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); + /* ./syntax//mmbuilder.nit:716 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 716); + nit_exit(1); + } + fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:717 */ + 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; } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - variable[7] = variable[5] /*ob*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_138 != NIT_NULL) variable[7] = once_value_138; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_138 = variable[7]; + } + if (UNTAG_Bool(REGB0)) { + goto label1; + } + fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:718 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 718); + nit_exit(1); + } + CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:719 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 719); + nit_exit(1); + } + 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)) { + REGB0 = TAG_Int(7); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:720 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 720); + nit_exit(1); } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[6]) /*AbsSyntaxVisitor::error*/; + 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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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_label134: 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, 712, LOCATE_mmbuilder___ASuperclass___accept_class_specialization_builder}; - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_specialization_builder*/; - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___ASuperclass___n_type(variable[0])(variable[0]) /*ASuperclass::n_type*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___PType___get_local_class(variable[4])(variable[4], variable[1] /*v*/) /*PType::get_local_class*/; - variable[3] = variable[4]; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(variable[0], variable[3] /*c*/) /*new MMSrcAncestor*/; - variable[4] = variable[5]; - ATTR_mmbuilder___ASuperclass____ancestor(variable[0]) /*ASuperclass::_ancestor*/ = variable[4] /*ancestor*/; - /* Register variable[5]: Result */ - 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_label139: while(false); - tracehead = trace.prev; +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 = 730; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:732 */ + CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:734 */ + 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; + } + fra.me.REG[1] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:736 */ + ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1]; + fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:737 */ + 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, 721, LOCATE_mmbuilder___ASuperclass___accept_class_ancestor_builder}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_ancestor_builder*/; - /* Register variable[3]: Result */ - variable[3] = ATTR_mmbuilder___ASuperclass____ancestor(variable[0]) /*ASuperclass::_ancestor*/; - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___ASuperclass___n_type(variable[0])(variable[0]) /*ASuperclass::n_type*/; - /* Register variable[4]: Result */ - 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=*/; - /* Register variable[3]: Result */ - variable[3] = ATTR_mmbuilder___ASuperclass____ancestor(variable[0]) /*ASuperclass::_ancestor*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[4]: Result */ - 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_label140: 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 = 740; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:742 */ + CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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); + /* ./syntax//mmbuilder.nit:743 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 743); + nit_exit(1); + } + CALL_static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + 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); + /* ./syntax//mmbuilder.nit:744 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 744); + nit_exit(1); + } + 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, 728, LOCATE_mmbuilder___ASuperclass___accept_class_verifier}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_verifier*/; - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___ASuperclass___n_type(variable[0])(variable[0]) /*ASuperclass::n_type*/; - CALL_syntax_base___PType___check_conform(variable[3])(variable[3], variable[1] /*v*/) /*PType::check_conform*/; - return_label141: 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 = 747; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:749 */ + CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[2] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:750 */ + 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, 710, LOCATE_mmbuilder___ASuperclass___ancestor}; - val_t *variable = NULL; - struct WBT_ **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, 736, LOCATE_mmbuilder___PPropdef___process_and_check}; - val_t variable[7]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Local variable */ - variable[4] = param3; - /* Register variable[5]: Method return value and escape marker */ - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[6])(variable[6]) /*MMGlobalProperty::intro*/; - /* Register variable[6]: Result */ - 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*/ - CALL_mmbuilder___PPropdef___do_and_check_intro(variable[0])(variable[0], variable[1] /*v*/, variable[2] /*prop*/, variable[3] /*has_redef*/, variable[4] /*visibility_level*/) /*PPropdef::do_and_check_intro*/; - } else { /*if*/ - CALL_mmbuilder___PPropdef___do_and_check_redef(variable[0])(variable[0], variable[1] /*v*/, variable[2] /*prop*/, variable[3] /*has_redef*/, variable[4] /*visibility_level*/) /*PPropdef::do_and_check_redef*/; - } - return_label142: 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 = 728; + 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; + fra.me.REG[0] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:728 */ + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +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 = 755; + 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; + 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])); + /* ./syntax//mmbuilder.nit:763 */ + 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:764 */ + 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:766 */ + 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, 751, LOCATE_mmbuilder___PPropdef___do_and_check_intro}; - static val_t once_value_144 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_145 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_146 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_147 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_148 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_149 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_150 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_151 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_152 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_153 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_154 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_155 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_156 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_157 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_158 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_159 = NIT_NULL; /* Once value for string variable[9]*/ - val_t variable[13]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Local variable */ - variable[4] = param3; - /* Register variable[5]: Method return value and escape marker */ - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - variable[6] = variable[7]; - /* Register variable[7]: Local variable */ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/; - variable[7] = variable[8]; - /* Register variable[8]: Result */ - variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[8])(variable[8]) /*MMGlobalClass::visibility_level*/; - /* Register variable[8]: Result */ - 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] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_144 != NIT_NULL) variable[9] = once_value_144; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: No property "), TAG_Int(19)) /*new String*/; - once_value_144 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_145 != NIT_NULL) variable[9] = once_value_145; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_145 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_146 != NIT_NULL) variable[9] = once_value_146; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" is inherited. Remove the redef keyword to define a new property."), TAG_Int(65)) /*new String*/; - once_value_146 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; - } - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_attribute( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_attribute*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_147 != NIT_NULL) variable[9] = once_value_147; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)) /*new String*/; - once_value_147 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_148 != NIT_NULL) variable[9] = once_value_148; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" in the interface "), TAG_Int(18)) /*new String*/; - once_value_148 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_149 != NIT_NULL) variable[9] = once_value_149; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_149 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_150 != NIT_NULL) variable[9] = once_value_150; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)) /*new String*/; - once_value_150 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_151 != NIT_NULL) variable[9] = once_value_151; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" in the universal class "), TAG_Int(24)) /*new String*/; - once_value_151 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_152 != NIT_NULL) variable[9] = once_value_152; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_152 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*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 = 770; + 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; + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + 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]); + 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); + REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3)); + /* ./syntax//mmbuilder.nit:775 */ + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Int(3); + REGB1 = REGB3; + /* ./syntax//mmbuilder.nit:777 */ + } + /* ./syntax//mmbuilder.nit:779 */ + CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1); + /* ./syntax//mmbuilder.nit:780 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:781 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); + } + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:783 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:784 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:785 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); + } else { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:786 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:787 */ + 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; + array___Array___add(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]); + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_8) { + fra.me.REG[6] = BOX_NativeString(" in the universal class "); + REGB0 = TAG_Int(24); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0); + once_value_8 = fra.me.REG[6]; + register_static_object(&once_value_8); + } else fra.me.REG[6] = once_value_8; + array___Array___add(fra.me.REG[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]); + array___Array___add(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; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); } } - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_153 != NIT_NULL) variable[9] = once_value_153; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)) /*new String*/; - once_value_153 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_154 != NIT_NULL) variable[9] = once_value_154; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" in the class "), TAG_Int(14)) /*new String*/; - once_value_154 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_155 != NIT_NULL) variable[9] = once_value_155; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_155 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_156 != NIT_NULL) variable[9] = once_value_156; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)) /*new String*/; - once_value_156 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_157 != NIT_NULL) variable[9] = once_value_157; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" in the universal "), TAG_Int(18)) /*new String*/; - once_value_157 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_158 != NIT_NULL) variable[9] = once_value_158; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_158 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; + } else { + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:789 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:790 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:791 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]); + } else { + REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:792 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:793 */ + 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; + array___Array___add(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]); + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_14) { + fra.me.REG[5] = BOX_NativeString(" in the universal "); + REGB0 = TAG_Int(18); + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); } } } } - /* Register variable[8]: Result */ - variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - /* Register variable[8]: Result */ - 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*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/; - if (UNTAG_Bool(variable[8])) { /*if*/ - /* Register variable[8]: Local variable */ - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Register variable[10]: Result */ - variable[10] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::name*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable[9])(variable[9], variable[10]) /*MMLocalClass::super_methods_named*/; - variable[8] = variable[9]; - CALL_mmbuilder___PPropdef___inherit_signature(variable[0])(variable[0], variable[1] /*v*/, variable[2] /*prop*/, variable[8] /*supers*/) /*PPropdef::inherit_signature*/; + 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); + /* ./syntax//mmbuilder.nit:796 */ + 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; } - /* Register variable[8]: Result */ - variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - /* Register variable[8]: Result */ - 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*/ - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[8])(variable[8]) /*SignatureBuilder::untyped_params*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstract_collection___Collection___is_empty(variable[8])(variable[8]) /*AbstractArrayRead::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[8])(variable[8]) /*SignatureBuilder::untyped_params*/; - /* Register variable[8]: Result */ - variable[8] = CALL_abstract_collection___Collection___first(variable[8])(variable[8]) /*IndexedCollectionRead::first*/; - /* Register variable[9]: Once String constant */ - if (once_value_159 != NIT_NULL) variable[9] = once_value_159; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Untyped parameter."), TAG_Int(25)) /*new String*/; - once_value_159 = variable[9]; - } - /* Register variable[9]: Result */ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - /* Register variable[9]: Result */ - variable[9] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[9]: Result */ - variable[9] = CALL_static_type___MMLocalClass___get_type(variable[9])(variable[9]) /*MMLocalClass::get_type*/; - /* Register variable[8]: Result */ - variable[8] = NEW_MMSignature_static_type___MMSignature___init(variable[8], NIT_NULL /*null*/, variable[9]) /*new MMSignature*/; - CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[8]) /*MMLocalProperty::signature=*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[8])(variable[8]) /*SignatureBuilder::closure_decls*/; - /* Register variable[8]: Result */ - 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*/ - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[8])(variable[8]) /*SignatureBuilder::closure_decls*/; - /* Register variable[8]: For iterator */ - variable[8] = CALL_abstract_collection___Collection___iterator(variable[8])(variable[8]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[9]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[10]: Local variable */ - variable[10] = variable[9]; - /* Register variable[11]: Result */ - variable[11] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - /* Register variable[11]: Result */ - variable[11] = CALL_static_type___MMSignature___closures(variable[11])(variable[11]) /*MMSignature::closures*/; - /* Register variable[12]: Result */ - variable[12] = CALL_syntax_base___PClosureDecl___variable( variable[10] /*clos*/)( variable[10] /*clos*/) /*AClosureDecl::variable*/; - /* Register variable[12]: Result */ - 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_160: while(0); - CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/; + } + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:797 */ + if (UNTAG_Bool(REGB0)) { + 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:799 */ + 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]); + } + 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); + /* ./syntax//mmbuilder.nit:801 */ + 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 { + 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)); + /* ./syntax//mmbuilder.nit:803 */ + if (UNTAG_Bool(REGB0)) { + 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]); + /* ./syntax//mmbuilder.nit:804 */ + 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; + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]); + } else { + 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]); + /* ./syntax//mmbuilder.nit:806 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + 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]); + fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:807 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:808 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 808); + nit_exit(1); + } + fra.me.REG[0] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]); + 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]); + array___Array___add(fra.me.REG[0], fra.me.REG[4]); + } else { + /* ./syntax//mmbuilder.nit:807 */ + goto label17; } - break_160: while(0); + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); } + label17: while(0); } } } - return_label143: 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, 797, LOCATE_mmbuilder___PPropdef___inherit_signature}; - val_t variable[16]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Method return value and escape marker */ - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - variable[5] = variable[6]; - /* Register variable[6]: For iterator */ - variable[6] = CALL_abstract_collection___Collection___iterator( variable[3] /*supers*/)( variable[3] /*supers*/) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[7]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[8]: Local variable */ - variable[8] = variable[7]; - /* Register variable[9]: Local variable */ - /* Register variable[10]: Result */ - variable[10] = CALL_static_type___MMLocalProperty___signature( variable[8] /*ip*/)( variable[8] /*ip*/) /*MMLocalProperty::signature*/; - /* Register variable[11]: Result */ - variable[11] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[11]: Result */ - variable[11] = CALL_static_type___MMLocalClass___get_type(variable[11])(variable[11]) /*MMLocalClass::get_type*/; - /* Register variable[10]: Result */ - variable[10] = CALL_static_type___MMSignature___adaptation_to(variable[10])(variable[10], variable[11]) /*MMSignature::adaptation_to*/; - variable[9] = variable[10]; - /* Register variable[10]: Result */ - 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*/ - /* Register variable[10]: Result */ - variable[10] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[10]: Result */ - variable[10] = CALL_mmbuilder___SignatureBuilder___params(variable[10])(variable[10]) /*SignatureBuilder::params*/; - /* Register variable[10]: Result */ - variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*AbstractArrayRead::length*/; - /* Register variable[11]: Result */ - variable[11] = CALL_static_type___MMSignature___arity( variable[9] /*isig*/)( variable[9] /*isig*/) /*MMSignature::arity*/; - /* Register variable[10]: Result */ - variable[10] = TAG_Bool((variable[10])!=(variable[11])); - if (UNTAG_Bool(variable[10])) { /*if*/ - goto return_label161; +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[8];} 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 = 814; + fra.me.meth = LOCATE_mmbuilder___APropdef___inherit_signature; + 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; + fra.me.REG[2] = p2; + fra.me.REG[3] = p3; + fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:817 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:818 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 818); + nit_exit(1); } - /* Register variable[10]: Result */ - variable[10] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[10]: Result */ - variable[10] = CALL_mmbuilder___SignatureBuilder___params(variable[10])(variable[10]) /*SignatureBuilder::params*/; - /* Register variable[10]: For iterator */ - variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[11]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[12]: Local variable */ - variable[12] = variable[11]; - /* Register variable[13]: Local variable */ - /* Register variable[14]: Result */ - variable[14] = CALL_syntax_base___PParam___position( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::position*/; - /* Register variable[14]: Result */ - 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=*/; - /* Register variable[14]: Result */ - variable[14] = CALL_syntax_base___PParam___position( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::position*/; - /* Register variable[15]: Result */ - variable[15] = CALL_vararg___MMSignature___vararg_rank( variable[9] /*isig*/)( variable[9] /*isig*/) /*MMSignature::vararg_rank*/; - /* Register variable[14]: Result */ - variable[14] = TAG_Bool((variable[14])==(variable[15])); - if (UNTAG_Bool(variable[14])) { /*if*/ - /* Register variable[14]: Result */ - 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=*/; + fra.me.REG[5] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:820 */ + 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; } - /* Register variable[14]: Result */ - 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_163: while(0); - CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/; } - break_163: 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=*/; + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[5])(fra.me.REG[5]); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); + /* ./syntax//mmbuilder.nit:821 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB1 = TAG_Bool((REGB0)==(REGB1)); + REGB2 = REGB1; + /* ./syntax//mmbuilder.nit:821 */ + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:822 */ + goto label1; + } + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:824 */ + while(1) { + REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB2)) { + fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); + REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[7] = CALL_static_type___MMSignature_____bra(fra.me.REG[5])(fra.me.REG[5], REGB2); + /* ./syntax//mmbuilder.nit:826 */ + CALL_mmbuilder___AParam___stype__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[6])(fra.me.REG[6]); + REGB1 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1)); + /* ./syntax//mmbuilder.nit:827 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool((REGB2)==(REGB1)); + REGB0 = REGB1; + /* ./syntax//mmbuilder.nit:827 */ + } + if (UNTAG_Bool(REGB0)) { + fra.me.REG[8] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]); + fra.me.REG[7] = fra.me.REG[8]; + /* ./syntax//mmbuilder.nit:828 */ + } + fra.me.REG[6] = CALL_syntax_base___AParam___variable(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:830 */ + CALL_syntax_base___Variable___stype__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + } else { + /* ./syntax//mmbuilder.nit:824 */ + goto label2; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); + } + label2: while(0); + fra.me.REG[0] = fra.me.REG[5]; + /* ./syntax//mmbuilder.nit:834 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); + } + } else { + /* ./syntax//mmbuilder.nit:817 */ + goto label3; } - continue_162: while(0); - CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); } - break_162: while(0); - return_label161: 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, 823, LOCATE_mmbuilder___PPropdef___do_and_check_redef}; - static val_t once_value_165 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_166 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_167 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_168 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_169 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_170 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_171 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_172 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_173 = NIT_NULL; /* Once value for string variable[9]*/ - static val_t once_value_175 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_176 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_177 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_178 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_179 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_180 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_181 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_182 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_183 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_184 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_185 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_186 = NIT_NULL; /* Once value for string variable[15]*/ - static val_t once_value_188 = NIT_NULL; /* Once value for string variable[16]*/ - static val_t once_value_189 = NIT_NULL; /* Once value for string variable[16]*/ - static val_t once_value_190 = NIT_NULL; /* Once value for string variable[16]*/ - static val_t once_value_191 = NIT_NULL; /* Once value for string variable[16]*/ - static val_t once_value_192 = NIT_NULL; /* Once value for string variable[16]*/ - static val_t once_value_193 = NIT_NULL; /* Once value for string variable[16]*/ - static val_t once_value_195 = NIT_NULL; /* Once value for string variable[19]*/ - static val_t once_value_196 = NIT_NULL; /* Once value for string variable[19]*/ - static val_t once_value_197 = NIT_NULL; /* Once value for string variable[19]*/ - static val_t once_value_198 = NIT_NULL; /* Once value for string variable[19]*/ - static val_t once_value_199 = NIT_NULL; /* Once value for string variable[19]*/ - static val_t once_value_200 = NIT_NULL; /* Once value for string variable[19]*/ - static val_t once_value_201 = NIT_NULL; /* Once value for string variable[19]*/ - static val_t once_value_202 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_203 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_204 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_205 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_206 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_207 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_208 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_209 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_210 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_211 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_212 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_213 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_214 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_215 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_216 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_217 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_218 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_219 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_220 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_221 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_222 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_223 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_224 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_225 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_226 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_227 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_228 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_229 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_230 = NIT_NULL; /* Once value for string variable[18]*/ - static val_t once_value_231 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_232 = NIT_NULL; /* Once value for string variable[10]*/ - static val_t once_value_233 = NIT_NULL; /* Once value for string variable[10]*/ - val_t variable[20]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Local variable */ - variable[4] = param3; - /* Register variable[5]: Method return value and escape marker */ - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = TAG_Bool((variable[0]==NIT_NULL) || VAL_ISA(variable[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/; - variable[6] = variable[7]; - /* Register variable[7]: Local variable */ - /* Register variable[8]: Result */ - 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] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_165 != NIT_NULL) variable[9] = once_value_165; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)) /*new String*/; - once_value_165 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_166 != NIT_NULL) variable[9] = once_value_166; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_166 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_167 != NIT_NULL) variable[9] = once_value_167; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword."), TAG_Int(65)) /*new String*/; - once_value_167 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; - goto return_label164; - } - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/; - /* Ensure var variable[8]: Left 'and' operand*/ - if (UNTAG_Bool(variable[8])) { /* and */ - variable[8] = TAG_Bool(!UNTAG_Bool( variable[6] /*is_init*/)); - } - /* Register variable[8]: Result */ - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_168 != NIT_NULL) variable[9] = once_value_168; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: A method "), TAG_Int(22)) /*new String*/; - once_value_168 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_169 != NIT_NULL) variable[9] = once_value_169; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_169 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_170 != NIT_NULL) variable[9] = once_value_170; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" cannot redefine a constructor."), TAG_Int(31)) /*new String*/; - once_value_170 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[8]: Result */ - variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/; - variable[8] = TAG_Bool(!UNTAG_Bool(variable[8])) /* Ensure var: Left 'and' operand*/; - if (UNTAG_Bool(variable[8])) { /* and */ - variable[8] = variable[6] /*is_init*/; +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[11];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + 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 = 839; + fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_redef; + fra.me.has_broke = 0; + fra.me.REG_size = 12; + 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[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + REGB0 = p3; + REGB1 = p4; + REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/; + fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:845 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:846 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:847 */ + goto label4; + } + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:849 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(!UNTAG_Bool(REGB2)); + } else { + REGB3 = TAG_Bool(false); + REGB0 = REGB3; + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:850 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); + } else { + REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//mmbuilder.nit:851 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB0 = TAG_Bool(false); + REGB2 = REGB0; } - /* Register variable[8]: Result */ - if (UNTAG_Bool(variable[8])) { /*if*/ - variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[9]: Once String constant */ - if (once_value_171 != NIT_NULL) variable[9] = once_value_171; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: A constructor "), TAG_Int(27)) /*new String*/; - once_value_171 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_172 != NIT_NULL) variable[9] = once_value_172; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_172 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - variable[9] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[9]: Once String constant */ - if (once_value_173 != NIT_NULL) variable[9] = once_value_173; - else { - variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" cannot redefine a method."), TAG_Int(26)) /*new String*/; - once_value_173 = variable[9]; - } - /* Register variable[9]: Result */ - /* Ensure var variable[9]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[8]) /*AbsSyntaxVisitor::error*/; + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./syntax//mmbuilder.nit:852 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]); } } - /* Register variable[8]: Local variable */ - /* Register variable[9]: Result */ - variable[9] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/; - variable[8] = variable[9]; - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMLocalProperty___prhe( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::prhe*/; - /* Register variable[9]: Result */ - variable[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[9])(variable[9]) /*PartialOrderElement::direct_greaters*/; - /* Register variable[9]: For iterator */ - variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[10]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[11]: Local variable */ - variable[11] = variable[10]; - /* Register variable[12]: Local variable */ - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[11] /*i*/)( variable[11] /*i*/) /*MMLocalProperty::local_class*/; - /* Register variable[14]: Result */ - variable[14] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/; - /* Register variable[13]: Result */ - variable[13] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[13])(variable[13], variable[14]) /*MMLocalClass::[]*/; - variable[12] = variable[13]; - /* Register variable[13]: Local variable */ - /* Register variable[14]: Result */ - variable[14] = CALL_static_type___MMLocalProperty___signature( variable[11] /*i*/)( variable[11] /*i*/) /*MMLocalProperty::signature*/; - /* Register variable[15]: Result */ - variable[15] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[15]: Result */ - variable[15] = CALL_static_type___MMLocalClass___get_type(variable[15])(variable[15]) /*MMLocalClass::get_type*/; - /* Register variable[14]: Result */ - variable[14] = CALL_static_type___MMSignature___adaptation_to(variable[14])(variable[14], variable[15]) /*MMSignature::adaptation_to*/; - variable[13] = variable[14]; - /* Register variable[14]: Result */ - 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*/ - /* Register variable[14]: Result */ - variable[14] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[14]: Result */ - variable[14] = CALL_mmbuilder___SignatureBuilder___params(variable[14])(variable[14]) /*SignatureBuilder::params*/; - /* Register variable[14]: Result */ - variable[14] = CALL_abstract_collection___Collection___length(variable[14])(variable[14]) /*AbstractArrayRead::length*/; - /* Register variable[15]: Result */ - variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - /* Register variable[14]: Result */ - variable[14] = TAG_Bool((variable[14])!=(variable[15])); - if (UNTAG_Bool(variable[14])) { /*if*/ - variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[15]: Once String constant */ - if (once_value_175 != NIT_NULL) variable[15] = once_value_175; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)) /*new String*/; - once_value_175 = variable[15]; - } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[15]: Result */ - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_176 != NIT_NULL) variable[15] = once_value_176; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_176 = variable[15]; - } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - variable[15] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_177 != NIT_NULL) variable[15] = once_value_177; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)) /*new String*/; - once_value_177 = variable[15]; - } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[15]: Result */ - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_178 != NIT_NULL) variable[15] = once_value_178; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_178 = variable[15]; - } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - variable[15] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_179 != NIT_NULL) variable[15] = once_value_179; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)) /*new String*/; - once_value_179 = variable[15]; - } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[15]: Result */ - variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_180 != NIT_NULL) variable[15] = once_value_180; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)) /*new String*/; - once_value_180 = variable[15]; + fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]); + 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]); + fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:857 */ + while(1) { + REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]); + if (UNTAG_Bool(REGB2)) { + fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[6] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[7] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[7])(fra.me.REG[7]); + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + /* ./syntax//mmbuilder.nit:859 */ + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 859); + nit_exit(1); + } + fra.me.REG[7] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); + REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:861 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(false); + REGB2 = REGB0; + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB2 = REGB0; } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[14]: Result */ - variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[14]) /*AbsSyntaxVisitor::error*/; - goto return_label164; } - /* Register variable[14]: Result */ - variable[14] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[14]: Result */ - variable[14] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[14])(variable[14]) /*SignatureBuilder::closure_decls*/; - /* Register variable[14]: Result */ - variable[14] = CALL_abstract_collection___Collection___length(variable[14])(variable[14]) /*AbstractArrayRead::length*/; - /* Register variable[15]: Result */ - variable[15] = CALL_static_type___MMSignature___closures( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::closures*/; - /* Register variable[15]: Result */ - variable[15] = CALL_abstract_collection___Collection___length(variable[15])(variable[15]) /*AbstractArrayRead::length*/; - /* Register variable[14]: Result */ - variable[14] = TAG_Bool((variable[14])!=(variable[15])); - if (UNTAG_Bool(variable[14])) { /*if*/ - variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[15]: Once String constant */ - if (once_value_181 != NIT_NULL) variable[15] = once_value_181; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)) /*new String*/; - once_value_181 = variable[15]; + if (UNTAG_Bool(REGB2)) { + fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[6] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[6])(fra.me.REG[6]); + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB2)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[15]: Result */ - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_182 != NIT_NULL) variable[15] = once_value_182; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_182 = variable[15]; + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); + REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]); + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0)); + /* ./syntax//mmbuilder.nit:863 */ + if (UNTAG_Bool(REGB3)) { + } else { + REGB0 = TAG_Bool((REGB2)==(REGB0)); + REGB3 = REGB0; + /* ./syntax//mmbuilder.nit:863 */ } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - variable[15] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_183 != NIT_NULL) variable[15] = once_value_183; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)) /*new String*/; - once_value_183 = variable[15]; + REGB3 = TAG_Bool(!UNTAG_Bool(REGB3)); + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Int(11); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB3); + /* ./syntax//mmbuilder.nit:864 */ + if (!once_value_11) { + fra.me.REG[9] = BOX_NativeString("Redef error: "); + REGB3 = TAG_Int(13); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3); + once_value_11 = fra.me.REG[9]; + register_static_object(&once_value_11); + } else fra.me.REG[9] = once_value_11; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_12) { + fra.me.REG[9] = BOX_NativeString("::"); + REGB3 = TAG_Int(2); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3); + once_value_12 = fra.me.REG[9]; + register_static_object(&once_value_12); + } else fra.me.REG[9] = once_value_12; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_13) { + fra.me.REG[9] = BOX_NativeString(" redefines "); + REGB3 = TAG_Int(11); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3); + once_value_13 = fra.me.REG[9]; + register_static_object(&once_value_13); + } else fra.me.REG[9] = once_value_13; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_14) { + fra.me.REG[9] = BOX_NativeString("::"); + REGB3 = TAG_Int(2); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3); + once_value_14 = fra.me.REG[9]; + register_static_object(&once_value_14); + } else fra.me.REG[9] = once_value_14; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_15) { + fra.me.REG[9] = BOX_NativeString(" with "); + REGB3 = TAG_Int(6); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3); + once_value_15 = fra.me.REG[9]; + register_static_object(&once_value_15); + } else fra.me.REG[9] = once_value_15; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[9] = CALL_string___Object___to_s(REGB3)(REGB3); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_16) { + fra.me.REG[9] = BOX_NativeString(" parameter(s)."); + REGB3 = TAG_Int(14); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3); + once_value_16 = fra.me.REG[9]; + register_static_object(&once_value_16); + } else fra.me.REG[9] = once_value_16; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + 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], fra.me.REG[0], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:865 */ + goto label4; } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[15]: Result */ - variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_184 != NIT_NULL) variable[15] = once_value_184; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_184 = variable[15]; + fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[6] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[6])(fra.me.REG[6]); + REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB3)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - variable[15] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_185 != NIT_NULL) variable[15] = once_value_185; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)) /*new String*/; - once_value_185 = variable[15]; + REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); + fra.me.REG[6] = CALL_static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]); + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[15]: Result */ - variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[15]: Once String constant */ - if (once_value_186 != NIT_NULL) variable[15] = once_value_186; - else { - variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" closure(s)."), TAG_Int(12)) /*new String*/; - once_value_186 = variable[15]; + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB0)); + /* ./syntax//mmbuilder.nit:867 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB0 = TAG_Bool((REGB3)==(REGB0)); + REGB2 = REGB0; + /* ./syntax//mmbuilder.nit:867 */ } - /* Register variable[15]: Result */ - /* Ensure var variable[15]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/; - /* Register variable[14]: Result */ - variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[14]) /*AbsSyntaxVisitor::error*/; - goto return_label164; - } - /* Register variable[14]: Result */ - variable[14] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[14]: Result */ - variable[14] = CALL_mmbuilder___SignatureBuilder___params(variable[14])(variable[14]) /*SignatureBuilder::params*/; - /* Register variable[14]: For iterator */ - variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[15]: For 'is_ok' result */ - variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[15])) break; /*for*/ - variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[16]: Local variable */ - variable[16] = variable[15]; - /* Register variable[17]: Local variable */ - /* Register variable[18]: Result */ - variable[18] = CALL_syntax_base___PParam___position( variable[16] /*p*/)( variable[16] /*p*/) /*PParam::position*/; - /* Register variable[18]: Result */ - variable[18] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/, variable[18]) /*MMSignature::[]*/; - variable[17] = variable[18]; - CALL_mmbuilder___PParam___stype__eq( variable[16] /*p*/)( variable[16] /*p*/, variable[17] /*t*/) /*PParam::stype=*/; - /* Register variable[18]: Result */ - variable[18] = CALL_syntax_base___PParam___position( variable[16] /*p*/)( variable[16] /*p*/) /*PParam::position*/; - /* Register variable[19]: Result */ - variable[19] = CALL_vararg___MMSignature___vararg_rank( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::vararg_rank*/; - /* Register variable[18]: Result */ - variable[18] = TAG_Bool((variable[18])==(variable[19])); - if (UNTAG_Bool(variable[18])) { /*if*/ - /* Register variable[18]: Result */ - variable[18] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/, variable[17] /*t*/) /*AbsSyntaxVisitor::type_array*/; - variable[17] = variable[18] /*t=*/; + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(11); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./syntax//mmbuilder.nit:868 */ + if (!once_value_17) { + fra.me.REG[9] = BOX_NativeString("Redef error: "); + REGB2 = TAG_Int(13); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2); + once_value_17 = fra.me.REG[9]; + register_static_object(&once_value_17); + } else fra.me.REG[9] = once_value_17; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_18) { + fra.me.REG[9] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2); + once_value_18 = fra.me.REG[9]; + register_static_object(&once_value_18); + } else fra.me.REG[9] = once_value_18; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_19) { + fra.me.REG[9] = BOX_NativeString(" redefines "); + REGB2 = TAG_Int(11); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2); + once_value_19 = fra.me.REG[9]; + register_static_object(&once_value_19); + } else fra.me.REG[9] = once_value_19; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_20) { + fra.me.REG[9] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2); + once_value_20 = fra.me.REG[9]; + register_static_object(&once_value_20); + } else fra.me.REG[9] = once_value_20; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_21) { + fra.me.REG[9] = BOX_NativeString(" with "); + REGB2 = TAG_Int(6); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2); + once_value_21 = fra.me.REG[9]; + register_static_object(&once_value_21); + } else fra.me.REG[9] = once_value_21; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[9] = CALL_string___Object___to_s(REGB2)(REGB2); + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + if (!once_value_22) { + fra.me.REG[9] = BOX_NativeString(" closure(s)."); + REGB2 = TAG_Int(12); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2); + once_value_22 = fra.me.REG[9]; + register_static_object(&once_value_22); + } else fra.me.REG[9] = once_value_22; + array___Array___add(fra.me.REG[6], fra.me.REG[9]); + 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], fra.me.REG[0], fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:869 */ + goto label4; } - /* Register variable[18]: Result */ - 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_187: while(0); - CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/; - } - break_187: 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=*/; - } - /* Register variable[14]: Local variable */ - /* Register variable[15]: Result */ - variable[15] = CALL_syntax_base___AbsSyntaxVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::tc*/; - /* Register variable[15]: Result */ - variable[15] = CALL_mmloader___ToolContext___error_count(variable[15])(variable[15]) /*ToolContext::error_count*/; - variable[14] = variable[15]; - /* Register variable[15]: Result */ - variable[15] = CALL_static_type___MMSignature___arity( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::arity*/; - /* Register variable[16]: Result */ - variable[16] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - /* Register variable[15]: Result */ - variable[15] = TAG_Bool((variable[15])!=(variable[16])); - if (UNTAG_Bool(variable[15])) { /*if*/ - variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[16]: Once String constant */ - if (once_value_188 != NIT_NULL) variable[16] = once_value_188; - else { - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)) /*new String*/; - once_value_188 = variable[16]; - } - /* Register variable[16]: Result */ - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/; - /* Register variable[16]: Result */ - variable[16] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[16]: Once String constant */ - if (once_value_189 != NIT_NULL) variable[16] = once_value_189; - else { - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_189 = variable[16]; - } - /* Register variable[16]: Result */ - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/; - variable[16] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[16]: Once String constant */ - if (once_value_190 != NIT_NULL) variable[16] = once_value_190; - else { - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)) /*new String*/; - once_value_190 = variable[16]; - } - /* Register variable[16]: Result */ - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/; - /* Register variable[16]: Result */ - variable[16] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[16]: Once String constant */ - if (once_value_191 != NIT_NULL) variable[16] = once_value_191; - else { - variable[16] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_191 = variable[16]; - } - /* Register variable[16]: Result */ - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/; - variable[16] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[16]: Once String constant */ - if (once_value_192 != NIT_NULL) variable[16] = once_value_192; - else { - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)) /*new String*/; - once_value_192 = variable[16]; - } - /* Register variable[16]: Result */ - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/; - /* Register variable[16]: Result */ - variable[16] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/; - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[16]: Once String constant */ - if (once_value_193 != NIT_NULL) variable[16] = once_value_193; - else { - variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)) /*new String*/; - once_value_193 = variable[16]; - } - /* Register variable[16]: Result */ - /* Ensure var variable[16]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/; - /* Register variable[15]: Result */ - 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[0], variable[15]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[15]: Result */ - variable[15] = CALL_static_type___MMSignature___arity( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::arity*/; - /* Register variable[15]: Result */ - variable[15] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[15]) /*new Range[Int]*/; - /* Register variable[15]: For iterator */ - variable[15] = CALL_abstract_collection___Collection___iterator(variable[15])(variable[15]) /*Range::iterator*/; - while (true) { /*for*/ - /* Register variable[16]: For 'is_ok' result */ - variable[16] = CALL_abstract_collection___Iterator___is_ok(variable[15])(variable[15]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[16])) break; /*for*/ - variable[16] = CALL_abstract_collection___Iterator___item(variable[15])(variable[15]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[17]: Local variable */ - variable[17] = variable[16]; - /* Register variable[18]: Result */ - variable[18] = CALL_static_type___MMSignature_____bra( variable[8] /*s*/)( variable[8] /*s*/, variable[17] /*i*/) /*MMSignature::[]*/; - /* Register variable[19]: Result */ - variable[19] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/, variable[17] /*i*/) /*MMSignature::[]*/; - /* Register variable[18]: Result */ - variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[18] == variable[19]) || ((variable[18] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[18])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[18],variable[19])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[18])(variable[18], variable[19]) /*Object::==*/))))))); - if (UNTAG_Bool(variable[18])) { /*if*/ - variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(13)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[19]: Once String constant */ - if (once_value_195 != NIT_NULL) variable[19] = once_value_195; - else { - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Expected "), TAG_Int(22)) /*new String*/; - once_value_195 = variable[19]; - } - /* Register variable[19]: Result */ - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/; - /* Register variable[19]: Result */ - variable[19] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/, variable[17] /*i*/) /*MMSignature::[]*/; - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[19]: Once String constant */ - if (once_value_196 != NIT_NULL) variable[19] = once_value_196; - else { - variable[19] = NEW_String_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)) /*new String*/; - once_value_196 = variable[19]; - } - /* Register variable[19]: Result */ - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/; - /* Register variable[19]: Result */ - variable[19] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[19]: Once String constant */ - if (once_value_197 != NIT_NULL) variable[19] = once_value_197; - else { - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_197 = variable[19]; - } - /* Register variable[19]: Result */ - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/; - variable[19] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[19]: Once String constant */ - if (once_value_198 != NIT_NULL) variable[19] = once_value_198; - else { - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)) /*new String*/; - once_value_198 = variable[19]; - } - /* Register variable[19]: Result */ - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/; - /* Register variable[19]: Result */ - variable[19] = CALL_static_type___MMSignature_____bra( variable[8] /*s*/)( variable[8] /*s*/, variable[17] /*i*/) /*MMSignature::[]*/; - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[19]: Once String constant */ - if (once_value_199 != NIT_NULL) variable[19] = once_value_199; - else { - variable[19] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)) /*new String*/; - once_value_199 = variable[19]; - } - /* Register variable[19]: Result */ - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/; - /* Register variable[19]: Result */ - variable[19] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[19]: Once String constant */ - if (once_value_200 != NIT_NULL) variable[19] = once_value_200; - else { - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_200 = variable[19]; - } - /* Register variable[19]: Result */ - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/; - variable[19] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[19]: Once String constant */ - if (once_value_201 != NIT_NULL) variable[19] = once_value_201; - else { - variable[19] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_201 = variable[19]; + fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[6] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]); + /* ./syntax//mmbuilder.nit:871 */ + while(1) { + REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]); + if (UNTAG_Bool(REGB2)) { + fra.me.REG[9] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]); + REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[9])(fra.me.REG[9]); + fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB2); + /* ./syntax//mmbuilder.nit:873 */ + CALL_mmbuilder___AParam___stype__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]); + REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[9])(fra.me.REG[9]); + REGB0 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]); + REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0)); + /* ./syntax//mmbuilder.nit:874 */ + if (UNTAG_Bool(REGB3)) { + } else { + REGB0 = TAG_Bool((REGB2)==(REGB0)); + REGB3 = REGB0; + /* ./syntax//mmbuilder.nit:874 */ + } + if (UNTAG_Bool(REGB3)) { + fra.me.REG[11] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]); + fra.me.REG[10] = fra.me.REG[11]; + /* ./syntax//mmbuilder.nit:875 */ + } + fra.me.REG[9] = CALL_syntax_base___AParam___variable(fra.me.REG[9])(fra.me.REG[9]); + /* ./syntax//mmbuilder.nit:877 */ + CALL_syntax_base___Variable___stype__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]); + } else { + /* ./syntax//mmbuilder.nit:871 */ + goto label23; } - /* Register variable[19]: Result */ - /* Ensure var variable[19]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - 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[0], variable[18]) /*AbsSyntaxVisitor::error*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]); } - continue_194: while(0); - CALL_abstract_collection___Iterator___next(variable[15])(variable[15]) /*Iterator::next*/; - } - break_194: while(0); - } - /* Register variable[15]: Local variable */ - /* Register variable[16]: Result */ - variable[16] = CALL_static_type___MMSignature___return_type( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::return_type*/; - variable[15] = variable[16]; - /* Register variable[16]: Local variable */ - /* Register variable[17]: Result */ - variable[17] = CALL_static_type___MMSignature___return_type( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::return_type*/; - variable[16] = variable[17]; - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(( variable[15] /*srt*/ == NIT_NULL /*null*/) || (( variable[15] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*srt*/)( variable[15] /*srt*/, NIT_NULL /*null*/) /*Object::==*/))))); - /* Ensure var variable[17]: Left 'and' operand*/ - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*isrt*/ == NIT_NULL /*null*/) || (( variable[16] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)( variable[16] /*isrt*/, NIT_NULL /*null*/) /*Object::==*/))))))); - } - /* Register variable[17]: Result */ - if (UNTAG_Bool(variable[17])) { /*if*/ - variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[18]: Once String constant */ - if (once_value_202 != NIT_NULL) variable[18] = once_value_202; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: The procedure "), TAG_Int(27)) /*new String*/; - once_value_202 = variable[18]; + label23: while(0); + fra.me.REG[4] = fra.me.REG[7]; + /* ./syntax//mmbuilder.nit:880 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_203 != NIT_NULL) variable[18] = once_value_203; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_203 = variable[18]; + fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]); + REGB3 = CALL_mmloader___ToolContext___error_count(fra.me.REG[6])(fra.me.REG[6]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:892 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 892); + nit_exit(1); } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_204 != NIT_NULL) variable[18] = once_value_204; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" redefines the function "), TAG_Int(24)) /*new String*/; - once_value_204 = variable[18]; + REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]); + REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]); + REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2)); + if (UNTAG_Bool(REGB4)) { + } else { + REGB2 = TAG_Bool((REGB0)==(REGB2)); + REGB4 = REGB2; + /* ./syntax//mmbuilder.nit:892 */ } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_205 != NIT_NULL) variable[18] = once_value_205; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_205 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_206 != NIT_NULL) variable[18] = once_value_206; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_206 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[17]: Result */ - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[17]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*srt*/ == NIT_NULL /*null*/) || (( variable[15] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*srt*/)( variable[15] /*srt*/, NIT_NULL /*null*/) /*Object::==*/))))))); - /* Ensure var variable[17]: Left 'and' operand*/ - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(( variable[16] /*isrt*/ == NIT_NULL /*null*/) || (( variable[16] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)( variable[16] /*isrt*/, NIT_NULL /*null*/) /*Object::==*/))))); - } - /* Register variable[17]: Result */ - if (UNTAG_Bool(variable[17])) { /*if*/ - variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[18]: Once String constant */ - if (once_value_207 != NIT_NULL) variable[18] = once_value_207; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: The function "), TAG_Int(26)) /*new String*/; - once_value_207 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_208 != NIT_NULL) variable[18] = once_value_208; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_208 = variable[18]; + REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Int(11); + fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB4); + /* ./syntax//mmbuilder.nit:893 */ + if (!once_value_24) { + 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_24 = fra.me.REG[10]; + register_static_object(&once_value_24); + } else fra.me.REG[10] = once_value_24; + array___Array___add(fra.me.REG[6], 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]); + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + if (!once_value_25) { + 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_25 = fra.me.REG[10]; + register_static_object(&once_value_25); + } else fra.me.REG[10] = once_value_25; + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + if (!once_value_26) { + 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_26 = fra.me.REG[10]; + register_static_object(&once_value_26); + } else fra.me.REG[10] = once_value_26; + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + if (!once_value_27) { + 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_27 = fra.me.REG[10]; + register_static_object(&once_value_27); + } else fra.me.REG[10] = once_value_27; + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + if (!once_value_28) { + 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_28 = fra.me.REG[10]; + register_static_object(&once_value_28); + } else fra.me.REG[10] = once_value_28; + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]); + fra.me.REG[10] = CALL_string___Object___to_s(REGB4)(REGB4); + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + if (!once_value_29) { + 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_29 = fra.me.REG[10]; + register_static_object(&once_value_29); + } else fra.me.REG[10] = once_value_29; + array___Array___add(fra.me.REG[6], fra.me.REG[10]); + 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], fra.me.REG[0], fra.me.REG[6]); + } else { + REGB4 = TAG_Int(0); + REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:895 */ + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 895); + nit_exit(1); } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_209 != NIT_NULL) variable[18] = once_value_209; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" redefines the procedure "), TAG_Int(25)) /*new String*/; - once_value_209 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_210 != NIT_NULL) variable[18] = once_value_210; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_210 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_211 != NIT_NULL) variable[18] = once_value_211; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_211 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[17]: Result */ - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[17]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*srt*/ == NIT_NULL /*null*/) || (( variable[15] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*srt*/)( variable[15] /*srt*/, NIT_NULL /*null*/) /*Object::==*/))))))); - /* Ensure var variable[17]: Left 'and' operand*/ - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*isrt*/ == NIT_NULL /*null*/) || (( variable[16] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)( variable[16] /*isrt*/, NIT_NULL /*null*/) /*Object::==*/))))))); + REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[6] = NEW_Range_range___Range___without_last(REGB4, REGB2); + fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]); + while(1) { + REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]); + if (UNTAG_Bool(REGB2)) { + REGB2 = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]); + REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:896 */ + if (UNTAG_Bool(REGB4)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 896); + nit_exit(1); + } + fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2); + fra.me.REG[9] = CALL_static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB2); + REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[9])); + if (UNTAG_Bool(REGB4)) { + } else { + REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]); + REGB4 = REGB0; + } + REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Int(13); + fra.me.REG[9] = NEW_Array_array___Array___with_capacity(REGB4); + /* ./syntax//mmbuilder.nit:897 */ + if (!once_value_30) { + fra.me.REG[10] = BOX_NativeString("Redef error: Expected "); + REGB4 = TAG_Int(22); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_30 = fra.me.REG[10]; + register_static_object(&once_value_30); + } else fra.me.REG[10] = once_value_30; + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB2); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_31) { + fra.me.REG[10] = BOX_NativeString(" (as in "); + REGB4 = TAG_Int(8); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_31 = fra.me.REG[10]; + register_static_object(&once_value_31); + } else fra.me.REG[10] = once_value_31; + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_32) { + 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_32 = fra.me.REG[10]; + register_static_object(&once_value_32); + } else fra.me.REG[10] = once_value_32; + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_33) { + fra.me.REG[10] = BOX_NativeString("), got "); + REGB4 = TAG_Int(7); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_33 = fra.me.REG[10]; + register_static_object(&once_value_33); + } else fra.me.REG[10] = once_value_33; + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 897); + nit_exit(1); + } + fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_34) { + fra.me.REG[10] = BOX_NativeString(" in "); + REGB2 = TAG_Int(4); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB2); + once_value_34 = fra.me.REG[10]; + register_static_object(&once_value_34); + } else fra.me.REG[10] = once_value_34; + array___Array___add(fra.me.REG[9], 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]); + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_35) { + fra.me.REG[10] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB2); + once_value_35 = fra.me.REG[10]; + register_static_object(&once_value_35); + } else fra.me.REG[10] = once_value_35; + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[9], fra.me.REG[10]); + if (!once_value_36) { + fra.me.REG[10] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB2); + once_value_36 = fra.me.REG[10]; + register_static_object(&once_value_36); + } else fra.me.REG[10] = once_value_36; + array___Array___add(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[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[9]); + } + } else { + /* ./syntax//mmbuilder.nit:895 */ + goto label37; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]); } - /* Register variable[17]: Result */ - /* Ensure var variable[17]: Left 'and' operand*/ - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = CALL_static_type___MMType_____l( variable[15] /*srt*/)( variable[15] /*srt*/, variable[16] /*isrt*/) /*MMType::<*/; - variable[17] = TAG_Bool(!UNTAG_Bool(variable[17])); + label37: while(0); + } + REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:902 */ + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 902); + nit_exit(1); + } + fra.me.REG[6] = CALL_static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[9] = CALL_static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]); + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + /* ./syntax//mmbuilder.nit:904 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } else { + REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB2 = REGB4; } - /* Register variable[17]: Result */ - if (UNTAG_Bool(variable[17])) { /*if*/ - variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(13)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[18]: Once String constant */ - if (once_value_212 != NIT_NULL) variable[18] = once_value_212; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Expected "), TAG_Int(22)) /*new String*/; - once_value_212 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[16] /*isrt*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_213 != NIT_NULL) variable[18] = once_value_213; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)) /*new String*/; - once_value_213 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_214 != NIT_NULL) variable[18] = once_value_214; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_214 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_215 != NIT_NULL) variable[18] = once_value_215; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)) /*new String*/; - once_value_215 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[15] /*srt*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_216 != NIT_NULL) variable[18] = once_value_216; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)) /*new String*/; - once_value_216 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_217 != NIT_NULL) variable[18] = once_value_217; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_217 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_218 != NIT_NULL) variable[18] = once_value_218; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_218 = variable[18]; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } else { + REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL); + REGB2 = REGB4; } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[17]: Result */ - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[17]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[17]: Result */ - variable[17] = CALL_static_type___MMSignature_____l( variable[8] /*s*/)( variable[8] /*s*/, variable[13] /*isig*/) /*MMSignature::<*/; - variable[17] = TAG_Bool(!UNTAG_Bool(variable[17])) /* Ensure var: Left 'and' operand*/; - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = CALL_syntax_base___AbsSyntaxVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::tc*/; - /* Register variable[17]: Result */ - variable[17] = CALL_mmloader___ToolContext___error_count(variable[17])(variable[17]) /*ToolContext::error_count*/; - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(( variable[14] /*nberr*/)==(variable[17])); + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + } else { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(9); + fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./syntax//mmbuilder.nit:905 */ + if (!once_value_38) { + fra.me.REG[11] = BOX_NativeString("Redef error: The procedure "); + REGB2 = TAG_Int(27); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_38 = fra.me.REG[11]; + register_static_object(&once_value_38); + } else fra.me.REG[11] = once_value_38; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_39) { + fra.me.REG[11] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_39 = fra.me.REG[11]; + register_static_object(&once_value_39); + } else fra.me.REG[11] = once_value_39; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_40) { + fra.me.REG[11] = BOX_NativeString(" redefines the function "); + REGB2 = TAG_Int(24); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_40 = fra.me.REG[11]; + register_static_object(&once_value_40); + } else fra.me.REG[11] = once_value_40; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_41) { + fra.me.REG[11] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_41 = fra.me.REG[11]; + register_static_object(&once_value_41); + } else fra.me.REG[11] = once_value_41; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_42) { + fra.me.REG[11] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_42 = fra.me.REG[11]; + register_static_object(&once_value_42); + } else fra.me.REG[11] = once_value_42; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + 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 { + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + /* ./syntax//mmbuilder.nit:906 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } else { + REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB2 = REGB4; } - /* Register variable[17]: Result */ - if (UNTAG_Bool(variable[17])) { /*if*/ - variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[18]: Once String constant */ - if (once_value_219 != NIT_NULL) variable[18] = once_value_219; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Incompatible redefinition of "), TAG_Int(42)) /*new String*/; - once_value_219 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_220 != NIT_NULL) variable[18] = once_value_220; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_220 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_221 != NIT_NULL) variable[18] = once_value_221; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)) /*new String*/; - once_value_221 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_222 != NIT_NULL) variable[18] = once_value_222; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_222 = variable[18]; + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } else { + REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL); + REGB2 = REGB4; } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_223 != NIT_NULL) variable[18] = once_value_223; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_223 = variable[18]; + } + } else { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(9); + fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./syntax//mmbuilder.nit:907 */ + if (!once_value_43) { + fra.me.REG[11] = BOX_NativeString("Redef error: The function "); + REGB2 = TAG_Int(26); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_43 = fra.me.REG[11]; + register_static_object(&once_value_43); + } else fra.me.REG[11] = once_value_43; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_44) { + fra.me.REG[11] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_44 = fra.me.REG[11]; + register_static_object(&once_value_44); + } else fra.me.REG[11] = once_value_44; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_45) { + fra.me.REG[11] = BOX_NativeString(" redefines the procedure "); + REGB2 = TAG_Int(25); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_45 = fra.me.REG[11]; + register_static_object(&once_value_45); + } else fra.me.REG[11] = once_value_45; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_46) { + fra.me.REG[11] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_46 = fra.me.REG[11]; + register_static_object(&once_value_46); + } else fra.me.REG[11] = once_value_46; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_47) { + fra.me.REG[11] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_47 = fra.me.REG[11]; + register_static_object(&once_value_47); + } else fra.me.REG[11] = once_value_47; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + 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 { + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + /* ./syntax//mmbuilder.nit:908 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } else { + REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB2 = REGB4; } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[17]: Result */ - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[17]) /*AbsSyntaxVisitor::error*/; - } else { /*if*/ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*srt*/ == NIT_NULL /*null*/) || (( variable[15] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*srt*/)( variable[15] /*srt*/, NIT_NULL /*null*/) /*Object::==*/))))))); - /* Ensure var variable[17]: Left 'and' operand*/ - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*isrt*/ == NIT_NULL /*null*/) || (( variable[16] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*isrt*/)( variable[16] /*isrt*/, NIT_NULL /*null*/) /*Object::==*/))))))); + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } else { + REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL); + REGB2 = REGB4; + } } - /* Register variable[17]: Result */ - /* Ensure var variable[17]: Left 'and' operand*/ - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*srt*/ == variable[16] /*isrt*/) || (( variable[15] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*srt*/, variable[16] /*isrt*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*srt*/)( variable[15] /*srt*/, variable[16] /*isrt*/) /*Object::==*/))))))); + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + } else { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 908); + nit_exit(1); } - /* Register variable[17]: Result */ - /* Ensure var variable[17]: Left 'and' operand*/ - if (UNTAG_Bool(variable[17])) { /* and */ - /* Register variable[17]: Result */ - variable[17] = TAG_Bool(( variable[2] /*prop*/==NIT_NULL) || VAL_ISA( variable[2] /*prop*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/; + REGB2 = CALL_static_type___MMType_____l(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]); + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + } else { + REGB4 = TAG_Bool(false); + REGB2 = REGB4; + } + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Int(13); + fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./syntax//mmbuilder.nit:909 */ + if (!once_value_48) { + fra.me.REG[11] = BOX_NativeString("Redef error: Expected "); + REGB2 = TAG_Int(22); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_48 = fra.me.REG[11]; + register_static_object(&once_value_48); + } else fra.me.REG[11] = once_value_48; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_49) { + fra.me.REG[11] = BOX_NativeString(" (as in "); + REGB2 = TAG_Int(8); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_49 = fra.me.REG[11]; + register_static_object(&once_value_49); + } else fra.me.REG[11] = once_value_49; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_50) { + fra.me.REG[11] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_50 = fra.me.REG[11]; + register_static_object(&once_value_50); + } else fra.me.REG[11] = once_value_50; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_51) { + fra.me.REG[11] = BOX_NativeString("), got "); + REGB2 = TAG_Int(7); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_51 = fra.me.REG[11]; + register_static_object(&once_value_51); + } else fra.me.REG[11] = once_value_51; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_52) { + fra.me.REG[11] = BOX_NativeString(" in "); + REGB2 = TAG_Int(4); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_52 = fra.me.REG[11]; + register_static_object(&once_value_52); + } else fra.me.REG[11] = once_value_52; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_53) { + fra.me.REG[11] = BOX_NativeString("::"); + REGB2 = TAG_Int(2); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_53 = fra.me.REG[11]; + register_static_object(&once_value_53); + } else fra.me.REG[11] = once_value_53; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + if (!once_value_54) { + fra.me.REG[11] = BOX_NativeString("."); + REGB2 = TAG_Int(1); + fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2); + once_value_54 = fra.me.REG[11]; + register_static_object(&once_value_54); + } else fra.me.REG[11] = once_value_54; + array___Array___add(fra.me.REG[10], fra.me.REG[11]); + 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 { + REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:910 */ + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 910); + nit_exit(1); } - /* Register variable[17]: Result */ - if (UNTAG_Bool(variable[17])) { /*if*/ - variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(13)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[18]: Once String constant */ - if (once_value_224 != NIT_NULL) variable[18] = once_value_224; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef warning: Expected "), TAG_Int(24)) /*new String*/; - once_value_224 = variable[18]; + REGB2 = CALL_static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + fra.me.REG[7] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]); + REGB2 = CALL_mmloader___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]); + REGB4 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB2)); + if (UNTAG_Bool(REGB4)) { + } else { + REGB2 = TAG_Bool((REGB3)==(REGB2)); + REGB4 = REGB2; + /* ./syntax//mmbuilder.nit:910 */ } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[16] /*isrt*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_225 != NIT_NULL) variable[18] = once_value_225; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)) /*new String*/; - once_value_225 = variable[18]; - } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_226 != NIT_NULL) variable[18] = once_value_226; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_226 = variable[18]; + } else { + REGB2 = TAG_Bool(false); + REGB4 = REGB2; + } + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Int(9); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB4); + /* ./syntax//mmbuilder.nit:912 */ + if (!once_value_55) { + fra.me.REG[10] = BOX_NativeString("Redef error: Incompatible redefinition of "); + REGB4 = TAG_Int(42); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_55 = fra.me.REG[10]; + register_static_object(&once_value_55); + } else fra.me.REG[10] = once_value_55; + array___Array___add(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]); + array___Array___add(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_56) { + 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_56 = fra.me.REG[10]; + register_static_object(&once_value_56); + } else fra.me.REG[10] = once_value_56; + array___Array___add(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_57) { + 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_57 = fra.me.REG[10]; + register_static_object(&once_value_57); + } else fra.me.REG[10] = once_value_57; + array___Array___add(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]); + array___Array___add(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_58) { + 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_58 = fra.me.REG[10]; + register_static_object(&once_value_58); + } else fra.me.REG[10] = once_value_58; + array___Array___add(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]); + array___Array___add(fra.me.REG[7], fra.me.REG[10]); + if (!once_value_59) { + fra.me.REG[10] = BOX_NativeString(""); + REGB4 = TAG_Int(0); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_59 = fra.me.REG[10]; + register_static_object(&once_value_59); + } else fra.me.REG[10] = once_value_59; + array___Array___add(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]); + } else { + REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + /* ./syntax//mmbuilder.nit:913 */ + if (UNTAG_Bool(REGB4)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB4 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL); + REGB4 = REGB2; + } } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[12] /*ip*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_227 != NIT_NULL) variable[18] = once_value_227; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)) /*new String*/; - once_value_227 = variable[18]; + REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB4 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL); + REGB4 = REGB2; + } + } + REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); + } else { + REGB2 = TAG_Bool(false); + REGB4 = REGB2; } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[15] /*srt*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_228 != NIT_NULL) variable[18] = once_value_228; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)) /*new String*/; - once_value_228 = variable[18]; + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[6],fra.me.REG[9])); + if (UNTAG_Bool(REGB4)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB4 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]); + REGB4 = REGB2; + } + } + REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); + } else { + REGB2 = TAG_Bool(false); + REGB4 = REGB2; } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[18]: Result */ - variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_229 != NIT_NULL) variable[18] = once_value_229; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_229 = variable[18]; + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/; + } else { + REGB2 = TAG_Bool(false); + REGB4 = REGB2; } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - variable[18] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[18]: Once String constant */ - if (once_value_230 != NIT_NULL) variable[18] = once_value_230; - else { - variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_230 = variable[18]; + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Int(13); + fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB4); + /* ./syntax//mmbuilder.nit:915 */ + if (!once_value_60) { + fra.me.REG[10] = BOX_NativeString("Redef warning: Expected "); + REGB4 = TAG_Int(24); + fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4); + once_value_60 = fra.me.REG[10]; + register_static_object(&once_value_60); + } else fra.me.REG[10] = once_value_60; + array___Array___add(fra.me.REG[7], fra.me.REG[10]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + array___Array___add(fra.me.REG[7], fra.me.REG[9]); + if (!once_value_61) { + fra.me.REG[9] = BOX_NativeString(" (as in "); + REGB4 = TAG_Int(8); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB4); + once_value_61 = fra.me.REG[9]; + register_static_object(&once_value_61); + } else fra.me.REG[9] = once_value_61; + array___Array___add(fra.me.REG[7], fra.me.REG[9]); + fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]); + fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]); + array___Array___add(fra.me.REG[7], fra.me.REG[9]); + if (!once_value_62) { + fra.me.REG[9] = BOX_NativeString("::"); + REGB4 = TAG_Int(2); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB4); + once_value_62 = fra.me.REG[9]; + register_static_object(&once_value_62); + } else fra.me.REG[9] = once_value_62; + array___Array___add(fra.me.REG[7], fra.me.REG[9]); + fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]); + array___Array___add(fra.me.REG[7], fra.me.REG[8]); + if (!once_value_63) { + fra.me.REG[8] = BOX_NativeString("), got "); + REGB4 = TAG_Int(7); + fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB4); + once_value_63 = fra.me.REG[8]; + register_static_object(&once_value_63); + } else fra.me.REG[8] = once_value_63; + array___Array___add(fra.me.REG[7], fra.me.REG[8]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]); + array___Array___add(fra.me.REG[7], fra.me.REG[6]); + if (!once_value_64) { + fra.me.REG[6] = BOX_NativeString(" in "); + REGB4 = TAG_Int(4); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB4); + once_value_64 = fra.me.REG[6]; + register_static_object(&once_value_64); + } else fra.me.REG[6] = once_value_64; + array___Array___add(fra.me.REG[7], 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]); + array___Array___add(fra.me.REG[7], fra.me.REG[6]); + if (!once_value_65) { + fra.me.REG[6] = BOX_NativeString("::"); + REGB4 = TAG_Int(2); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB4); + once_value_65 = fra.me.REG[6]; + register_static_object(&once_value_65); + } else fra.me.REG[6] = once_value_65; + array___Array___add(fra.me.REG[7], fra.me.REG[6]); + fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[7], fra.me.REG[6]); + if (!once_value_66) { + fra.me.REG[6] = BOX_NativeString("."); + REGB4 = TAG_Int(1); + fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB4); + once_value_66 = fra.me.REG[6]; + register_static_object(&once_value_66); + } else fra.me.REG[6] = once_value_66; + array___Array___add(fra.me.REG[7], fra.me.REG[6]); + fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]); + CALL_syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]); } - /* Register variable[18]: Result */ - /* Ensure var variable[18]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/; - /* Register variable[17]: Result */ - variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___warning( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[17]) /*AbsSyntaxVisitor::warning*/; } } } } + } else { + /* ./syntax//mmbuilder.nit:857 */ + goto label67; } - continue_174: while(0); - CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/; - } - break_174: while(0); - /* Register variable[9]: Result */ - variable[9] = TAG_Bool(( variable[4] /*visibility_level*/)!=( TAG_Int(1))); - /* Ensure var variable[9]: Left 'and' operand*/ - if (UNTAG_Bool(variable[9])) { /* and */ - /* Register variable[9]: Result */ - variable[9] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::visibility_level*/; - /* Register variable[9]: Result */ - variable[9] = TAG_Bool((variable[9])!=( variable[4] /*visibility_level*/)); - } - /* Register variable[9]: Result */ - if (UNTAG_Bool(variable[9])) { /*if*/ - variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[10]: Once String constant */ - if (once_value_231 != NIT_NULL) variable[10] = once_value_231; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)) /*new String*/; - once_value_231 = variable[10]; - } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[10]: Result */ - variable[10] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/; - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_232 != NIT_NULL) variable[10] = once_value_232; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_232 = variable[10]; - } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - variable[10] = variable[2] /*prop*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[10]: Once String constant */ - if (once_value_233 != NIT_NULL) variable[10] = once_value_233; - else { - variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" redefinition cannot change visibility."), TAG_Int(39)) /*new String*/; - once_value_233 = variable[10]; + CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]); + } + label67: while(0); + REGB4 = TAG_Int(1); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB4)); + /* ./syntax//mmbuilder.nit:919 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB4 = TAG_Bool((REGB1)==(REGB4)); + REGB2 = REGB4; + /* ./syntax//mmbuilder.nit:919 */ + } + REGB2 = TAG_Bool(!UNTAG_Bool(REGB2)); + if (UNTAG_Bool(REGB2)) { + REGB2 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]); + REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1)); + if (UNTAG_Bool(REGB4)) { + } else { + REGB1 = TAG_Bool((REGB2)==(REGB1)); + REGB4 = REGB1; + /* ./syntax//mmbuilder.nit:919 */ } - /* Register variable[10]: Result */ - /* Ensure var variable[10]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/; - /* Register variable[9]: Result */ - variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[9]) /*AbsSyntaxVisitor::error*/; - } - /* Register variable[9]: Result */ - variable[9] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/; - CALL_syntax_base___MMGlobalProperty___check_visibility( variable[7] /*glob*/)( variable[7] /*glob*/, variable[1] /*v*/, variable[0], variable[9], TAG_Bool(true)) /*MMGlobalProperty::check_visibility*/; - return_label164: while(false); - tracehead = trace.prev; + REGB4 = TAG_Bool(!UNTAG_Bool(REGB4)); + } else { + REGB1 = TAG_Bool(false); + REGB4 = REGB1; + } + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB4); + /* ./syntax//mmbuilder.nit:920 */ + if (!once_value_68) { + fra.me.REG[4] = BOX_NativeString("Redef error: "); + REGB4 = TAG_Int(13); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB4); + once_value_68 = fra.me.REG[4]; + register_static_object(&once_value_68); + } else fra.me.REG[4] = once_value_68; + array___Array___add(fra.me.REG[5], fra.me.REG[4]); + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(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]); + array___Array___add(fra.me.REG[5], fra.me.REG[4]); + if (!once_value_69) { + fra.me.REG[4] = BOX_NativeString("::"); + REGB4 = TAG_Int(2); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB4); + once_value_69 = fra.me.REG[4]; + register_static_object(&once_value_69); + } else fra.me.REG[4] = once_value_69; + array___Array___add(fra.me.REG[5], fra.me.REG[4]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[5], fra.me.REG[2]); + if (!once_value_70) { + fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility."); + REGB4 = TAG_Int(39); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB4); + once_value_70 = fra.me.REG[2]; + register_static_object(&once_value_70); + } else fra.me.REG[2] = once_value_70; + array___Array___add(fra.me.REG[5], fra.me.REG[2]); + 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]); + } + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[1])(fra.me.REG[1]); + REGB4 = TAG_Bool(true); + /* ./syntax//mmbuilder.nit:922 */ + CALL_syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0], fra.me.REG[5], REGB4); + label4: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 962, LOCATE_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___AAttrPropdef___prop(variable[0])(variable[0]) /*AAttrPropdef::prop*/; - CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/; - CALL_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super AAttrPropdef::accept_abs_syntax_visitor*/; - CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/; - return_label234: while(false); - tracehead = trace.prev; +void mmbuilder___AAttrPropdef___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 = 986; + fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + fra.me.REG[2] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:988 */ + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:989 */ + CALL_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:990 */ + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___AAttrPropdef___prop(val_t self) { - struct trace_t trace = {NULL, NULL, 913, LOCATE_mmbuilder___AAttrPropdef___prop}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___AAttrPropdef____prop( self) /*AAttrPropdef::_prop*/; -} -val_t mmbuilder___AAttrPropdef___readmethod(val_t self) { - struct trace_t trace = {NULL, NULL, 911, LOCATE_mmbuilder___AAttrPropdef___readmethod}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___AAttrPropdef____readmethod( self) /*AAttrPropdef::_readmethod*/; -} -val_t mmbuilder___AAttrPropdef___writemethod(val_t self) { - struct trace_t trace = {NULL, NULL, 912, LOCATE_mmbuilder___AAttrPropdef___writemethod}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___AAttrPropdef____writemethod( self) /*AAttrPropdef::_writemethod*/; -} -void mmbuilder___AAttrPropdef___accept_property_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 915, LOCATE_mmbuilder___AAttrPropdef___accept_property_builder}; - static val_t once_value_236 = NIT_NULL; /* Once value for string variable[6]*/ - val_t variable[7]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_builder(variable[0])(variable[0], variable[1]) /*super AAttrPropdef::accept_property_builder*/; - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AAttrPropdef___n_id(variable[0])(variable[0]) /*AAttrPropdef::n_id*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/; - variable[3] = variable[4]; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init( variable[3] /*name*/, variable[5], variable[0]) /*new MMSrcAttribute*/; - variable[4] = variable[5]; - ATTR_mmbuilder___AAttrPropdef____prop(variable[0]) /*AAttrPropdef::_prop*/ = variable[4] /*prop*/; - /* Register variable[5]: Result */ - 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*/; - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___AAttrPropdef___n_readable(variable[0])(variable[0]) /*AAttrPropdef::n_readable*/; - /* Register variable[5]: Result */ - 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*/ - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___AAttrPropdef___n_id(variable[0])(variable[0]) /*AAttrPropdef::n_id*/; - /* Register variable[5]: Result */ - variable[5] = CALL_lexer___Token___text(variable[5])(variable[5]) /*Token::text*/; - /* Register variable[5]: Result */ - variable[5] = CALL_string___AbstractString___substring_from(variable[5])(variable[5], TAG_Int(1)) /*AbstractString::substring_from*/; - /* Register variable[5]: Result */ - variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/; - variable[3] = variable[5] /*name=*/; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init( variable[3] /*name*/, variable[5], variable[0]) /*new MMReadImplementationMethod*/; - ATTR_mmbuilder___AAttrPropdef____readmethod(variable[0]) /*AAttrPropdef::_readmethod*/ = variable[5]; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[0]) /*AAttrPropdef::_readmethod*/; - CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[5])(variable[5], variable[1] /*v*/, variable[6]) /*MMSrcLocalClass::add_src_local_property*/; - } - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___AAttrPropdef___n_writable(variable[0])(variable[0]) /*AAttrPropdef::n_writable*/; - /* Register variable[5]: Result */ - 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*/ - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___AAttrPropdef___n_id(variable[0])(variable[0]) /*AAttrPropdef::n_id*/; - /* Register variable[5]: Result */ - variable[5] = CALL_lexer___Token___text(variable[5])(variable[5]) /*Token::text*/; - /* Register variable[5]: Result */ - variable[5] = CALL_string___AbstractString___substring_from(variable[5])(variable[5], TAG_Int(1)) /*AbstractString::substring_from*/; - /* Register variable[6]: Once String constant */ - if (once_value_236 != NIT_NULL) variable[6] = once_value_236; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)) /*new String*/; - once_value_236 = variable[6]; +val_t mmbuilder___AAttrPropdef___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 = 930; + fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___prop; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:930 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 930); + nit_exit(1); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___AAttrPropdef___readmethod(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 = 927; + fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___readmethod; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:927 */ + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t mmbuilder___AAttrPropdef___writemethod(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 = 928; + fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___writemethod; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:928 */ + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___AAttrPropdef___accept_property_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; + static val_t once_value_1; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 932; + fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_property_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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:934 */ + CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___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_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[4] = NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:938 */ + ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[4]; + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:939 */ + CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:941 */ + 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; } - /* Register variable[6]: Result */ - /* Register variable[5]: Result */ - variable[5] = CALL_string___String_____plus(variable[5])(variable[5], variable[6]) /*String::+*/; - /* Register variable[5]: Result */ - variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/; - variable[3] = variable[5] /*name=*/; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init( variable[3] /*name*/, variable[5], variable[0]) /*new MMWriteImplementationMethod*/; - ATTR_mmbuilder___AAttrPropdef____writemethod(variable[0]) /*AAttrPropdef::_writemethod*/ = variable[5]; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[0]) /*AAttrPropdef::_writemethod*/; - CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[5])(variable[5], variable[1] /*v*/, variable[6]) /*MMSrcLocalClass::add_src_local_property*/; - } - return_label235: while(false); - tracehead = trace.prev; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Int(1); + fra.me.REG[4] = CALL_string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB0); + fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[1] = fra.me.REG[4]; + fra.me.REG[4] = NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:944 */ + ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[4]; + fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:945 */ + CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[4]); + } + fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:947 */ + 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)) { + fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = CALL_lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Int(1); + fra.me.REG[4] = CALL_string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB0); + /* ./syntax//mmbuilder.nit:948 */ + if (!once_value_1) { + fra.me.REG[5] = BOX_NativeString("="); + REGB0 = TAG_Int(1); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0); + once_value_1 = fra.me.REG[5]; + register_static_object(&once_value_1); + } else fra.me.REG[5] = once_value_1; + fra.me.REG[5] = CALL_string___String_____plus(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[1] = fra.me.REG[5]; + fra.me.REG[0] = NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:950 */ + ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[0]; + fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:951 */ + 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___AAttrPropdef___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 935, LOCATE_mmbuilder___AAttrPropdef___accept_property_verifier}; - static val_t once_value_238 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_239 = NIT_NULL; /* Once value for string variable[5]*/ - static val_t once_value_240 = NIT_NULL; /* Once value for string variable[5]*/ - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super AAttrPropdef::accept_property_verifier*/; - /* Register variable[3]: Local variable */ - /*variable[3] is variable t*/ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AAttrPropdef___n_type(variable[0])(variable[0]) /*AAttrPropdef::n_type*/; - /* Register variable[4]: Result */ - 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*/ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AAttrPropdef___n_type(variable[0])(variable[0]) /*AAttrPropdef::n_type*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___PType___get_stype(variable[4])(variable[4], variable[1] /*v*/) /*PType::get_stype*/; - variable[3] = variable[4] /*t=*/; - } else { /*if*/ - variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[5]: Once String constant */ - if (once_value_238 != NIT_NULL) variable[5] = once_value_238; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Not yet implemented: Attribute definition "), TAG_Int(42)) /*new String*/; - once_value_238 = variable[5]; +void mmbuilder___AAttrPropdef___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 */ + 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 = 955; + fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:957 */ + CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:959 */ + 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)) { + fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:960 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 960); + nit_exit(1); + } + fra.me.REG[1] = CALL_syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:961 */ + 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; + } } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___AAttrPropdef____prop(variable[0]) /*AAttrPropdef::_prop*/; - /* Register variable[5]: Result */ - variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_239 != NIT_NULL) variable[5] = once_value_239; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/; - once_value_239 = variable[5]; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + } else { + goto label1; } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___AAttrPropdef____prop(variable[0]) /*AAttrPropdef::_prop*/; - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[5]: Once String constant */ - if (once_value_240 != NIT_NULL) variable[5] = once_value_240; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" requires an explicit type."), TAG_Int(27)) /*new String*/; - once_value_240 = variable[5]; + } else { + REGB0 = TAG_Int(5); + fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:963 */ + if (!once_value_2) { + fra.me.REG[4] = BOX_NativeString("Not yet implemented: Attribute definition "); + REGB0 = TAG_Int(42); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_2 = fra.me.REG[4]; + register_static_object(&once_value_2); + } else fra.me.REG[4] = once_value_2; + array___Array___add(fra.me.REG[0], fra.me.REG[4]); + fra.me.REG[4] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 963); + nit_exit(1); } - /* Register variable[5]: Result */ - /* Ensure var variable[5]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[4]) /*AbsSyntaxVisitor::error*/; - goto return_label237; - } - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMSignature_static_type___MMSignature___init(variable[5], variable[3] /*t*/, variable[6]) /*new MMSignature*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___AAttrPropdef____prop(variable[0]) /*AAttrPropdef::_prop*/; - CALL_static_type___MMLocalProperty___signature__eq(variable[5])(variable[5], variable[4] /*signature*/) /*MMLocalProperty::signature=*/; - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AAttrPropdef___n_visibility(variable[0])(variable[0]) /*AAttrPropdef::n_visibility*/; - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PVisibility___level(variable[6])(variable[6]) /*PVisibility::level*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AAttrPropdef____prop(variable[0]) /*AAttrPropdef::_prop*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___AAttrPropdef___n_kwredef(variable[0])(variable[0]) /*AAttrPropdef::n_kwredef*/; - /* Register variable[7]: Result */ - 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[0])(variable[0], variable[1] /*v*/, variable[6], variable[7], variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/; - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AAttrPropdef___n_readable(variable[0])(variable[0]) /*AAttrPropdef::n_readable*/; - /* Register variable[6]: Result */ - 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::==*/))))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[0]) /*AAttrPropdef::_readmethod*/; - CALL_static_type___MMLocalProperty___signature__eq(variable[6])(variable[6], variable[4] /*signature*/) /*MMLocalProperty::signature=*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[0]) /*AAttrPropdef::_readmethod*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___AAttrPropdef___n_readable(variable[0])(variable[0]) /*AAttrPropdef::n_readable*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___PAble___n_kwredef(variable[7])(variable[7]) /*PAble::n_kwredef*/; - /* Register variable[7]: Result */ - 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[0])(variable[0], variable[1] /*v*/, variable[6], variable[7], variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/; - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AAttrPropdef___n_type(variable[0])(variable[0]) /*AAttrPropdef::n_type*/; - /* Register variable[7]: Result */ - variable[7] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[0]) /*AAttrPropdef::_readmethod*/; - CALL_mmbuilder___PType___check_visibility(variable[6])(variable[6], variable[1] /*v*/, variable[7]) /*PType::check_visibility*/; - } - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AAttrPropdef___n_writable(variable[0])(variable[0]) /*AAttrPropdef::n_writable*/; - /* Register variable[6]: Result */ - 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::==*/))))))); - if (UNTAG_Bool(variable[6])) { /*if*/ - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[0]) /*AAttrPropdef::_writemethod*/; - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[MMType]*/ /* Ensure var: Literal array*/; - CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[3] /*t*/) /*AbstractArray::add*/; - /* Register variable[7]: Result */ - /* Register variable[7]: Result */ - variable[7] = NEW_Array_array___Array___with_items(variable[7]) /*new Array[MMType]*/; - /* Register variable[8]: Result */ - variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[8]: Result */ - variable[8] = CALL_static_type___MMLocalClass___get_type(variable[8])(variable[8]) /*MMLocalClass::get_type*/; - /* Register variable[7]: Result */ - variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[7], NIT_NULL /*null*/, variable[8]) /*new MMSignature*/; - CALL_static_type___MMLocalProperty___signature__eq(variable[6])(variable[6], variable[7]) /*MMLocalProperty::signature=*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[0]) /*AAttrPropdef::_writemethod*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___AAttrPropdef___n_writable(variable[0])(variable[0]) /*AAttrPropdef::n_writable*/; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___PAble___n_kwredef(variable[7])(variable[7]) /*PAble::n_kwredef*/; - /* Register variable[7]: Result */ - 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[0])(variable[0], variable[1] /*v*/, variable[6], variable[7], variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/; - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AAttrPropdef___n_type(variable[0])(variable[0]) /*AAttrPropdef::n_type*/; - /* Register variable[7]: Result */ - variable[7] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[0]) /*AAttrPropdef::_writemethod*/; - CALL_mmbuilder___PType___check_visibility(variable[6])(variable[6], variable[1] /*v*/, variable[7]) /*PType::check_visibility*/; - } - return_label237: while(false); - tracehead = trace.prev; + fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + array___Array___add(fra.me.REG[0], fra.me.REG[4]); + if (!once_value_3) { + fra.me.REG[4] = BOX_NativeString("::"); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_3 = fra.me.REG[4]; + register_static_object(&once_value_3); + } else fra.me.REG[4] = once_value_3; + array___Array___add(fra.me.REG[0], fra.me.REG[4]); + fra.me.REG[4] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + array___Array___add(fra.me.REG[0], fra.me.REG[4]); + if (!once_value_4) { + fra.me.REG[4] = BOX_NativeString(" requires an explicit type."); + REGB0 = TAG_Int(27); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_4 = fra.me.REG[4]; + register_static_object(&once_value_4); + } else fra.me.REG[4] = once_value_4; + array___Array___add(fra.me.REG[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:964 */ + goto label1; + } + fra.me.REG[0] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[4] = 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[4], fra.me.REG[1], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:969 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:971 */ + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB1 = REGB2; + } + } + 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[0], REGB1, REGB0); + fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:972 */ + 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] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:973 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 973); + nit_exit(1); + } + /* ./syntax//mmbuilder.nit:974 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:975 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 975); + nit_exit(1); + } + fra.me.REG[5] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; + } else { + REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL); + REGB1 = REGB2; + } + } + REGB1 = TAG_Bool(!UNTAG_Bool(REGB1)); + CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0); + fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:976 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 976); + nit_exit(1); + } + CALL_mmbuilder___AType___check_visibility(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]); + } + fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:978 */ + 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] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:979 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 979); + nit_exit(1); + } + REGB1 = TAG_Int(0); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1); + /* ./syntax//mmbuilder.nit:980 */ + array___Array___add(fra.me.REG[5], fra.me.REG[1]); + fra.me.REG[5] = NEW_Array_array___Array___with_items(fra.me.REG[5]); + fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + 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[5], NIT_NULL, fra.me.REG[1]); + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]); + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:981 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 981); + nit_exit(1); + } + fra.me.REG[1] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[1])(fra.me.REG[1]); + 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)); + CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0); + fra.me.REG[2] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//mmbuilder.nit:982 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 982); + nit_exit(1); + } + CALL_mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]); + } + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1018, LOCATE_mmbuilder___AMethPropdef___accept_abs_syntax_visitor}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___AMethPropdef___method(variable[0])(variable[0]) /*AMethPropdef::method*/; - CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/; - CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_abs_syntax_visitor*/; - CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/; - return_label241: 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 = 1047; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + fra.me.REG[2] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1049 */ + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1050 */ + CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1051 */ + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___AMethPropdef___method(val_t self) { - struct trace_t trace = {NULL, NULL, 974, LOCATE_mmbuilder___AMethPropdef___method}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___AMethPropdef____method( self) /*AMethPropdef::_method*/; -} -void mmbuilder___AMethPropdef___accept_property_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 976, LOCATE_mmbuilder___AMethPropdef___accept_property_builder}; - static val_t once_value_243; static int once_bool_243; /* Once value for variable[3]*/ - static val_t once_value_244 = NIT_NULL; /* Once value for string variable[3]*/ - static val_t once_value_245; static int once_bool_245; /* Once value for variable[3]*/ - static val_t once_value_246 = NIT_NULL; /* Once value for string variable[3]*/ - static val_t once_value_247; static int once_bool_247; /* Once value for variable[4]*/ - static val_t once_value_248 = NIT_NULL; /* Once value for string variable[4]*/ - static val_t once_value_249; static int once_bool_249; /* Once value for variable[4]*/ - static val_t once_value_250 = NIT_NULL; /* Once value for string variable[4]*/ - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___AMethPropdef___accept_property_builder(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_property_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___AMethPropdef___n_methid(variable[0])(variable[0]) /*AMethPropdef::n_methid*/; - /* Register variable[3]: Result */ - variable[3] = 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*/ - /* Register variable[3]: Result */ - variable[3] = TAG_Bool((variable[0]==NIT_NULL) || VAL_ISA(variable[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Once expression result */ - if (once_bool_243) variable[3] = once_value_243; - else { - /* Register variable[3]: Once String constant */ - if (once_value_244 != NIT_NULL) variable[3] = once_value_244; - else { - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)) /*new String*/; - once_value_244 = variable[3]; - } - /* Register variable[3]: Result */ - /* Register variable[3]: Result */ - variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/; - once_value_243 = variable[3]; - once_bool_243 = true; - } - /* Register variable[3]: Result */ - ATTR_mmbuilder___AMethPropdef____name(variable[0]) /*AMethPropdef::_name*/ = variable[3]; - } else { /*if*/ - /* Register variable[3]: Once expression result */ - if (once_bool_245) variable[3] = once_value_245; - else { - /* Register variable[3]: Once String constant */ - if (once_value_246 != NIT_NULL) variable[3] = once_value_246; - else { - variable[3] = NEW_String_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)) /*new String*/; - once_value_246 = variable[3]; - } - /* Register variable[3]: Result */ - /* Register variable[3]: Result */ - variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/; - once_value_245 = variable[3]; - once_bool_245 = true; - } - /* Register variable[3]: Result */ - ATTR_mmbuilder___AMethPropdef____name(variable[0]) /*AMethPropdef::_name*/ = variable[3]; +val_t mmbuilder___AMethPropdef___method(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 = 999; + fra.me.meth = LOCATE_mmbuilder___AMethPropdef___method; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:999 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 999); + nit_exit(1); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___AMethPropdef___accept_property_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 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1001; + fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1003 */ + CALL_SUPER_mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1005 */ + 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)) { + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/; + /* ./syntax//mmbuilder.nit:1006 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1007 */ + if (!once_value_1) { + if (!once_value_2) { + fra.me.REG[1] = BOX_NativeString("init"); + REGB0 = TAG_Int(4); + 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] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]); + once_value_1 = fra.me.REG[1]; + register_static_object(&once_value_1); + } else fra.me.REG[1] = once_value_1; + } else { + /* ./syntax//mmbuilder.nit:1009 */ + if (!once_value_3) { + if (!once_value_4) { + fra.me.REG[0] = BOX_NativeString("main"); + REGB0 = TAG_Int(4); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[0] = 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[1] = fra.me.REG[0]; + } + } else { + fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1012 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1012); + nit_exit(1); } - } else { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___AMethPropdef___n_methid(variable[0])(variable[0]) /*AMethPropdef::n_methid*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PMethid___name(variable[3])(variable[3]) /*PMethid::name*/; - ATTR_mmbuilder___AMethPropdef____name(variable[0]) /*AMethPropdef::_name*/ = variable[3]; - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___AMethPropdef___n_methid(variable[0])(variable[0]) /*AMethPropdef::n_methid*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PMethid___name(variable[3])(variable[3]) /*PMethid::name*/; - /* Register variable[4]: Once expression result */ - if (once_bool_247) variable[4] = once_value_247; - else { - /* Register variable[4]: Once String constant */ - if (once_value_248 != NIT_NULL) variable[4] = once_value_248; - else { - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)) /*new String*/; - once_value_248 = variable[4]; + fra.me.REG[0] = CALL_mmbuilder___AMethid___name(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1012); + nit_exit(1); + } + fra.me.REG[1] = fra.me.REG[0]; + fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1014 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1014); + nit_exit(1); + } + fra.me.REG[0] = CALL_mmbuilder___AMethid___name(fra.me.REG[0])(fra.me.REG[0]); + if (!once_value_5) { + if (!once_value_6) { + fra.me.REG[4] = BOX_NativeString("-"); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_6 = fra.me.REG[4]; + register_static_object(&once_value_6); + } else fra.me.REG[4] = once_value_6; + fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + once_value_5 = fra.me.REG[4]; + register_static_object(&once_value_5); + } else fra.me.REG[4] = once_value_5; + REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[0])); + 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], fra.me.REG[4]); + REGB0 = REGB1; } - /* Register variable[4]: Result */ - /* Register variable[4]: Result */ - variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/; - once_value_247 = variable[4]; - once_bool_247 = true; } - /* Register variable[4]: Result */ - /* Register variable[3]: Result */ - variable[3] = 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*/ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[0])(variable[0]) /*AMethPropdef::n_signature*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool(( variable[3] /*ns*/==NIT_NULL) || VAL_ISA( variable[3] /*ns*/, COLOR_ASignature, ID_ASignature)) /*cast ASignature*/; - /* Ensure var variable[4]: Left 'and' operand*/ - if (UNTAG_Bool(variable[4])) { /* and */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___ASignature___n_params( variable[3] /*ns*/)( variable[3] /*ns*/) /*ASignature::n_params*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool((variable[4])==( TAG_Int(0))); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1016 */ + 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; + } } - /* Register variable[4]: Result */ - if (UNTAG_Bool(variable[4])) { /*if*/ - /* Register variable[4]: Once expression result */ - if (once_bool_249) variable[4] = once_value_249; - else { - /* Register variable[4]: Once String constant */ - if (once_value_250 != NIT_NULL) variable[4] = once_value_250; - else { - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)) /*new String*/; - once_value_250 = variable[4]; - } - /* Register variable[4]: Result */ - /* Register variable[4]: Result */ - variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/; - once_value_249 = variable[4]; - once_bool_249 = true; + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1016); + nit_exit(1); + } + fra.me.REG[4] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]); + REGB1 = TAG_Int(0); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); + if (UNTAG_Bool(REGB2)) { + } else { + REGB1 = TAG_Bool((REGB0)==(REGB1)); + REGB2 = REGB1; + /* ./syntax//mmbuilder.nit:1016 */ } - /* Register variable[4]: Result */ - ATTR_mmbuilder___AMethPropdef____name(variable[0]) /*AMethPropdef::_name*/ = variable[4]; + } else { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + /* ./syntax//mmbuilder.nit:1017 */ + if (!once_value_7) { + if (!once_value_8) { + fra.me.REG[4] = BOX_NativeString("unary -"); + REGB2 = TAG_Int(7); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2); + once_value_8 = fra.me.REG[4]; + register_static_object(&once_value_8); + } else fra.me.REG[4] = once_value_8; + fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + once_value_7 = fra.me.REG[4]; + register_static_object(&once_value_7); + } else fra.me.REG[4] = once_value_7; + fra.me.REG[1] = fra.me.REG[4]; } } } - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = ATTR_mmbuilder___AMethPropdef____name(variable[0]) /*AMethPropdef::_name*/; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[4]: Result */ - variable[4] = NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(variable[4], variable[5], variable[0]) /*new MMMethSrcMethod*/; - variable[3] = variable[4]; - ATTR_mmbuilder___AMethPropdef____method(variable[0]) /*AMethPropdef::_method*/ = variable[3] /*prop*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[4])(variable[4], variable[1] /*v*/, variable[3] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/; - return_label242: while(false); - tracehead = trace.prev; - return; -} -void mmbuilder___AMethPropdef___accept_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1000, LOCATE_mmbuilder___AMethPropdef___accept_property_verifier}; - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init() /*new SignatureBuilder*/; - CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*PropertyVerifierVisitor::signature_builder=*/; - CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_property_verifier*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___signature(variable[3])(variable[3]) /*SignatureBuilder::signature*/; - /* Register variable[3]: Result */ - variable[3] = 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*/ - } else { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmbuilder___AMethPropdef____method(variable[0]) /*AMethPropdef::_method*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___SignatureBuilder___signature(variable[4])(variable[4]) /*SignatureBuilder::signature*/; - CALL_static_type___MMLocalProperty___signature__eq(variable[3])(variable[3], variable[4]) /*MMLocalProperty::signature=*/; - } - /* Register variable[3]: Local variable */ - variable[3] = TAG_Int(1); - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AMethPropdef___n_visibility(variable[0])(variable[0]) /*AMethPropdef::n_visibility*/; - /* Register variable[4]: Result */ - 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::==*/))))))); - /* Ensure var variable[4]: Left 'and' operand*/ - if (UNTAG_Bool(variable[4])) { /* and */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AMethPropdef___n_visibility(variable[0])(variable[0]) /*AMethPropdef::n_visibility*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PVisibility___level(variable[4])(variable[4]) /*PVisibility::level*/; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool(UNTAG_Int(variable[4])>UNTAG_Int( TAG_Int(1))); - } - /* Register variable[4]: Result */ - if (UNTAG_Bool(variable[4])) { /*if*/ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AMethPropdef___n_visibility(variable[0])(variable[0]) /*AMethPropdef::n_visibility*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PVisibility___level(variable[4])(variable[4]) /*PVisibility::level*/; - variable[3] = variable[4] /*visibility_level=*/; - } - /* Register variable[4]: Result */ - variable[4] = ATTR_mmbuilder___AMethPropdef____method(variable[0]) /*AMethPropdef::_method*/; - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___AMethPropdef___n_kwredef(variable[0])(variable[0]) /*AMethPropdef::n_kwredef*/; - /* Register variable[5]: Result */ - 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::==*/))))))); - CALL_mmbuilder___PPropdef___process_and_check(variable[0])(variable[0], variable[1] /*v*/, variable[4], variable[5], variable[3] /*visibility_level*/) /*PPropdef::process_and_check*/; - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[0])(variable[0]) /*AMethPropdef::n_signature*/; - /* Register variable[4]: Result */ - 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*/ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[0])(variable[0]) /*AMethPropdef::n_signature*/; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___AMethPropdef____method(variable[0]) /*AMethPropdef::_method*/; - CALL_mmbuilder___PSignature___check_visibility(variable[4])(variable[4], variable[1] /*v*/, variable[5]) /*PSignature::check_visibility*/; - } - return_label251: while(false); - tracehead = trace.prev; + /* ./syntax//mmbuilder.nit:1021 */ + ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1]; + fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[4] = NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1023 */ + ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[4]; + fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1024 */ + CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___AMethPropdef___name(val_t self) { - struct trace_t trace = {NULL, NULL, 971, LOCATE_mmbuilder___AMethPropdef___name}; - val_t *variable = NULL; - struct WBT_ **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, 1027, LOCATE_mmbuilder___AMainMethPropdef___process_and_check}; - val_t variable[8]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Local variable */ - variable[3] = param2; - /* Register variable[4]: Local variable */ - variable[4] = param3; - /* Register variable[5]: Method return value and escape marker */ - /* Register variable[6]: Result */ - 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=*/; - /* Register variable[6]: Result */ - variable[6] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - /* Register variable[7]: Result */ - variable[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[7]: Result */ - variable[7] = CALL_static_type___MMLocalClass___get_type(variable[7])(variable[7]) /*MMLocalClass::get_type*/; - /* Register variable[6]: Result */ - variable[6] = NEW_MMSignature_static_type___MMSignature___init(variable[6], NIT_NULL /*null*/, variable[7]) /*new MMSignature*/; - CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[6]) /*MMLocalProperty::signature=*/; - return_label252: 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 = 1027; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + fra.me.REG[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); + /* ./syntax//mmbuilder.nit:1029 */ + CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1030 */ + CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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]); + /* ./syntax//mmbuilder.nit:1032 */ + if (UNTAG_Bool(REGB0)) { + goto label1; + } + 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); + /* ./syntax//mmbuilder.nit:1034 */ + 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 { + 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); + /* ./syntax//mmbuilder.nit:1037 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1037); + nit_exit(1); + } + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + } + REGB0 = TAG_Int(1); + 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); + /* ./syntax//mmbuilder.nit:1040 */ + 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)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1040); + nit_exit(1); + } + REGB1 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = TAG_Int(1); + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); + /* ./syntax//mmbuilder.nit:1040 */ + } else { + REGB1 = TAG_Bool(false); + REGB2 = REGB1; + } + if (UNTAG_Bool(REGB2)) { + 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); + /* ./syntax//mmbuilder.nit:1041 */ + if (UNTAG_Bool(REGB2)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1041); + nit_exit(1); + } + REGB2 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = REGB2; + } + 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); + /* ./syntax//mmbuilder.nit:1043 */ + 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); + 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); + /* ./syntax//mmbuilder.nit:1044 */ + 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)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1044); + nit_exit(1); + } + 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; } -void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1056, LOCATE_mmbuilder___ATypePropdef___accept_abs_syntax_visitor}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___ATypePropdef___prop(variable[0])(variable[0]) /*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_label253: while(false); - tracehead = trace.prev; +val_t mmbuilder___AMethPropdef___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 = 995; + fra.me.meth = LOCATE_mmbuilder___AMethPropdef___name; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:995 */ + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +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 = 1056; + 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; + fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1058 */ + CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1); + 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]); + /* ./syntax//mmbuilder.nit:1059 */ + 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, 1036, LOCATE_mmbuilder___ATypePropdef___prop}; - val_t *variable = NULL; - struct WBT_ **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, 1038, LOCATE_mmbuilder___ATypePropdef___accept_property_builder}; - val_t variable[6]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_property_builder*/; - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___ATypePropdef___n_id(variable[0])(variable[0]) /*ATypePropdef::n_id*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/; - variable[3] = variable[4]; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init( variable[3] /*name*/, variable[5], variable[0]) /*new MMSrcTypeProperty*/; - variable[4] = variable[5]; - ATTR_mmbuilder___ATypePropdef____prop(variable[0]) /*ATypePropdef::_prop*/ = variable[4] /*prop*/; - /* Register variable[5]: Result */ - 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_label254: while(false); - 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 = 1086; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + fra.me.REG[2] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1088 */ + CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1089 */ + CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1090 */ + 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_property_verifier(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1047, LOCATE_mmbuilder___ATypePropdef___accept_property_verifier}; - val_t variable[7]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_property_verifier*/; - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___ATypePropdef___n_type(variable[0])(variable[0]) /*ATypePropdef::n_type*/; - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___PType___get_stype(variable[5])(variable[5], variable[1] /*v*/) /*PType::get_stype*/; - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/; - /* Register variable[4]: Result */ - variable[4] = NEW_MMSignature_static_type___MMSignature___init(variable[4], variable[5], variable[6]) /*new MMSignature*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = ATTR_mmbuilder___ATypePropdef____prop(variable[0]) /*ATypePropdef::_prop*/; - CALL_static_type___MMLocalProperty___signature__eq(variable[4])(variable[4], variable[3] /*signature*/) /*MMLocalProperty::signature=*/; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___ATypePropdef___n_visibility(variable[0])(variable[0]) /*ATypePropdef::n_visibility*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PVisibility___level(variable[5])(variable[5]) /*PVisibility::level*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - variable[5] = ATTR_mmbuilder___ATypePropdef____prop(variable[0]) /*ATypePropdef::_prop*/; - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___ATypePropdef___n_kwredef(variable[0])(variable[0]) /*ATypePropdef::n_kwredef*/; - /* Register variable[6]: Result */ - 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[0])(variable[0], variable[1] /*v*/, variable[5], variable[6], variable[4] /*visibility_level*/) /*PPropdef::process_and_check*/; - return_label255: 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 = 1065; + 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; + fra.me.REG[0] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1065 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1065); + nit_exit(1); + } + 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 = 1068; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1070 */ + CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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]); + 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:1073 */ + ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0]; + fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1074 */ + 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, 1068, LOCATE_mmbuilder___MethidAccumulator___visit}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Result */ - variable[3] = TAG_Bool(( variable[1] /*n*/==NIT_NULL) || VAL_ISA( variable[1] /*n*/, COLOR_Token, ID_Token)) /*cast Token*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_mmbuilder___MethidAccumulator____name(variable[0]) /*MethidAccumulator::_name*/; - /* Register variable[4]: Result */ - 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]) /*Buffer::append*/; - } else { /*if*/ - CALL_parser_prod___PNode___visit_all( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PNode::visit_all*/; - } - return_label256: 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 = 1077; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1079 */ + CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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]); + fra.me.REG[0] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1081 */ + CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + 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]); + 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); + /* ./syntax//mmbuilder.nit:1083 */ + 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, 1067, LOCATE_mmbuilder___MethidAccumulator___name}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - tracehead = trace.prev; - return ATTR_mmbuilder___MethidAccumulator____name( self) /*MethidAccumulator::_name*/; -} -void mmbuilder___PMethid___accept_property_builder(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 1082, LOCATE_mmbuilder___PMethid___accept_property_builder}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = NEW_MethidAccumulator_parser_prod___Visitor___init() /*new MethidAccumulator*/; - variable[3] = variable[4]; - CALL_parser_prod___Visitor___visit( variable[3] /*accumulator*/)( variable[3] /*accumulator*/, variable[0]) /*MethidAccumulator::visit*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___MethidAccumulator___name( variable[3] /*accumulator*/)( variable[3] /*accumulator*/) /*MethidAccumulator::name*/; - /* Register variable[4]: Result */ - variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Buffer::to_s*/; - /* Register variable[4]: Result */ - variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/; - ATTR_mmbuilder___PMethid____name(variable[0]) /*PMethid::_name*/ = variable[4]; - CALL_SUPER_mmbuilder___PMethid___accept_property_builder(variable[0])(variable[0], variable[1]) /*super PMethid::accept_property_builder*/; - return_label257: while(false); - tracehead = trace.prev; +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 = 1098; + 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; + REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Token, ID_Token)) /*cast Token*/; + /* ./syntax//mmbuilder.nit:1100 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1101 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_name"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1101); + nit_exit(1); + } + 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)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1101); + nit_exit(1); + } + 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 { + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1103 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1103); + nit_exit(1); + } + 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, 1079, LOCATE_mmbuilder___PMethid___name}; - val_t *variable = NULL; - struct WBT_ **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, 1092, LOCATE_mmbuilder___PSignature___check_visibility}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1092); - nit_exit(1); - 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 = 1097; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1097 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_name"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1097); + nit_exit(1); + } + 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___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 = 1112; + 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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = NEW_MethidAccumulator_parser_prod___Visitor___init(); + /* ./syntax//mmbuilder.nit:1115 */ + CALL_parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); + 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]); + /* ./syntax//mmbuilder.nit:1116 */ + ATTR_mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3]; + /* ./syntax//mmbuilder.nit:1117 */ + 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, 1097, LOCATE_mmbuilder___ASignature___accept_property_verifier}; - static val_t once_value_259 = NIT_NULL; /* Once value for string variable[4]*/ - val_t variable[10]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super ASignature::accept_property_verifier*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*AbstractArrayRead::is_empty*/; - if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*IndexedCollectionRead::first*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstract_collection___Collection___first(variable[4])(variable[4]) /*IndexedCollectionRead::first*/; - /* Register variable[3]: Result */ - 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::==*/))))))); - /* Ensure var variable[3]: Left 'or' operand*/ - if (!UNTAG_Bool(variable[3])) { /* or */ - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___ASignature___n_type(variable[0])(variable[0]) /*ASignature::n_type*/; - /* Register variable[3]: Result */ - 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::==*/))))))); - } - /* Register variable[3]: Result */ - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*IndexedCollectionRead::first*/; - /* Register variable[4]: Once String constant */ - if (once_value_259 != NIT_NULL) variable[4] = once_value_259; - else { - variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Syntax error: untyped parameter."), TAG_Int(32)) /*new String*/; - once_value_259 = variable[4]; +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 = 1109; + 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; + fra.me.REG[0] = ATTR_mmbuilder___AMethid____name(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1109 */ + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___ASignature___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; + 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 = 1122; + fra.me.meth = LOCATE_mmbuilder___ASignature___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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1124 */ + CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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]); + /* ./syntax//mmbuilder.nit:1125 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1126 */ + goto label1; + } else { + 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)); + /* ./syntax//mmbuilder.nit:1127 */ + if (UNTAG_Bool(REGB0)) { + 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])); + /* ./syntax//mmbuilder.nit:1128 */ + 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; + } } - /* Register variable[4]: Result */ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/; - goto return_label258; - } - } else { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___params(variable[3])(variable[3]) /*SignatureBuilder::params*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*AbstractArrayRead::is_empty*/; - variable[3] = TAG_Bool(!UNTAG_Bool(variable[3])) /* Ensure var: Left 'or' operand*/; - if (!UNTAG_Bool(variable[3])) { /* or */ - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___ASignature___n_type(variable[0])(variable[0]) /*ASignature::n_type*/; - /* Register variable[3]: Result */ - 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::==*/))))))); - } - /* Register variable[3]: Result */ - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/; - /* Register variable[4]: For iterator */ - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[5]: For 'is_ok' result */ - variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[6]: Local variable */ - variable[6] = variable[5]; - /* Register variable[7]: Result */ - 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_260: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; + 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_260: while(0); - /* Register variable[4]: Local variable */ - variable[4] = NIT_NULL /*null*/; - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___ASignature___n_type(variable[0])(variable[0]) /*ASignature::n_type*/; - /* Register variable[5]: Result */ - 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*/ - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___ASignature___n_type(variable[0])(variable[0]) /*ASignature::n_type*/; - /* Register variable[5]: Result */ - 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)) { + 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]); + /* ./syntax//mmbuilder.nit:1129 */ + 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; + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1130 */ + goto label1; } - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/; - /* Register variable[6]: Result */ - variable[6] = NEW_MMSignature_static_type___MMSignature___init( variable[3] /*pars*/, variable[4] /*ret*/, variable[6]) /*new MMSignature*/; - CALL_mmbuilder___SignatureBuilder___signature__eq(variable[5])(variable[5], variable[6]) /*SignatureBuilder::signature=*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[5])(variable[5]) /*SignatureBuilder::vararg_rank*/; - /* Register variable[5]: Result */ - variable[5] = TAG_Bool(UNTAG_Int(variable[5])>=UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable[5])) { /*if*/ - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___SignatureBuilder___signature(variable[5])(variable[5]) /*SignatureBuilder::signature*/; - /* Register variable[6]: Result */ - variable[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[6]: Result */ - 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 { + 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)); + /* ./syntax//mmbuilder.nit:1132 */ + 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; } - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[5])(variable[5]) /*SignatureBuilder::closure_decls*/; - /* Register variable[5]: For iterator */ - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[6]: For 'is_ok' result */ - variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[7]: Local variable */ - variable[7] = variable[6]; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___SignatureBuilder___signature(variable[8])(variable[8]) /*SignatureBuilder::signature*/; - /* Register variable[8]: Result */ - variable[8] = CALL_static_type___MMSignature___closures(variable[8])(variable[8]) /*MMSignature::closures*/; - /* Register variable[9]: Result */ - variable[9] = CALL_syntax_base___PClosureDecl___variable( variable[7] /*clos*/)( variable[7] /*clos*/) /*AClosureDecl::variable*/; - /* Register variable[9]: Result */ - 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_261: while(0); - CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/; + if (UNTAG_Bool(REGB0)) { + fra.me.REG[1] = NEW_Array_array___Array___init(); + 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___iterator(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1134 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_mmbuilder___AParam___stype(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1135 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1135); + nit_exit(1); + } + array___Array___add(fra.me.REG[1], fra.me.REG[4]); + } else { + /* ./syntax//mmbuilder.nit:1134 */ + goto label3; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + } + label3: while(0); + fra.me.REG[0] = NIT_NULL; + fra.me.REG[4] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1138 */ + 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)) { + 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); + /* ./syntax//mmbuilder.nit:1139 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1139); + nit_exit(1); + } + 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[0] = fra.me.REG[2]; + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1140 */ + 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)) { + fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(true); + /* ./syntax//mmbuilder.nit:1141 */ + CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0); + /* ./syntax//mmbuilder.nit:1142 */ + goto label1; + } + } + fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(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:1145 */ + CALL_mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[4])(fra.me.REG[4]); + REGB1 = TAG_Int(0); + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:1146 */ + if (UNTAG_Bool(REGB1)) { + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]); + 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[4]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1147 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1147); + nit_exit(1); + } + CALL_vararg___MMSignature___vararg_rank__eq(fra.me.REG[4])(fra.me.REG[4], REGB1); + } + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1149 */ + while(1) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); + 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]); + REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1150 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1150); + nit_exit(1); + } + fra.me.REG[0] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[0], fra.me.REG[2]); + } else { + /* ./syntax//mmbuilder.nit:1149 */ + goto label4; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); + } + label4: while(0); } - break_261: while(0); } } - return_label258: 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, 1124, LOCATE_mmbuilder___ASignature___check_visibility}; - val_t variable[8]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*p*/)( variable[2] /*p*/) /*MMLocalProperty::global*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[4])(variable[4]) /*MMGlobalProperty::visibility_level*/; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool(UNTAG_Int(variable[4])>=UNTAG_Int( TAG_Int(3))); - if (UNTAG_Bool(variable[4])) { /*if*/ - goto return_label262; - } - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___ASignature___n_params(variable[0])(variable[0]) /*ASignature::n_params*/; - /* Register variable[4]: For iterator */ - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/; - while (true) { /*for*/ - /* Register variable[5]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[6]: Local variable */ - variable[6] = variable[5]; - /* Register variable[7]: Result */ - variable[7] = CALL_parser_nodes___PParam___n_type( variable[6] /*n*/)( variable[6] /*n*/) /*PParam::n_type*/; - /* Register variable[7]: Result */ - 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*/ - /* Register variable[7]: Result */ - 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*/; +void mmbuilder___ASignature___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; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_mmbuilder; + fra.me.line = 1155; + fra.me.meth = LOCATE_mmbuilder___ASignature___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; + 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); + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:1158 */ + if (UNTAG_Bool(REGB1)) { + goto label1; + } + fra.me.REG[3] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1159 */ + while(1) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = CALL_parser_nodes___AParam___n_type(fra.me.REG[4])(fra.me.REG[4]); + REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1160 */ + 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)); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[4] = CALL_parser_nodes___AParam___n_type(fra.me.REG[4])(fra.me.REG[4]); + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1160); + nit_exit(1); + } + CALL_mmbuilder___AType___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[2]); + } + } else { + /* ./syntax//mmbuilder.nit:1159 */ + goto label2; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); + } + label2: while(0); + 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); + /* ./syntax//mmbuilder.nit:1162 */ + 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; } - continue_263: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/; - } - break_263: while(0); - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___ASignature___n_type(variable[0])(variable[0]) /*ASignature::n_type*/; - /* Register variable[4]: Result */ - 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*/ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___ASignature___n_type(variable[0])(variable[0]) /*ASignature::n_type*/; - CALL_mmbuilder___PType___check_visibility(variable[4])(variable[4], variable[1] /*v*/, variable[2] /*p*/) /*PType::check_visibility*/; - } - return_label262: while(false); - tracehead = trace.prev; + } + 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)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1162); + nit_exit(1); + } + 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, 1135, LOCATE_mmbuilder___PParam___position}; - val_t *variable = NULL; - struct WBT_ **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, 1137, LOCATE_mmbuilder___PParam___variable}; - val_t *variable = NULL; - struct WBT_ **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, 1142, LOCATE_mmbuilder___PParam___accept_property_verifier}; - static val_t once_value_266 = NIT_NULL; /* Once value for string variable[7]*/ - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - CALL_SUPER_mmbuilder___PParam___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super PParam::accept_property_verifier*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___params(variable[3])(variable[3]) /*SignatureBuilder::params*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArrayRead::length*/; - ATTR_mmbuilder___PParam____position(variable[0]) /*PParam::_position*/ = variable[3]; - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___PParam___n_id(variable[0])(variable[0]) /*PParam::n_id*/; - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___Token___to_symbol(variable[3])(variable[3]) /*Token::to_symbol*/; - /* Register variable[3]: Result */ - variable[3] = NEW_ParamVariable_syntax_base___ParamVariable___init(variable[3], variable[0]) /*new ParamVariable*/; - ATTR_mmbuilder___PParam____variable(variable[0]) /*PParam::_variable*/ = variable[3]; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___params(variable[3])(variable[3]) /*SignatureBuilder::params*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[0]) /*AbstractArray::add*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[3]: Result */ - variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[0]) /*AbstractArray::add*/; - /* Register variable[3]: Result */ - variable[3] = CALL_parser_nodes___PParam___n_type(variable[0])(variable[0]) /*PParam::n_type*/; - /* Register variable[3]: Result */ - 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*/ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_parser_nodes___PParam___n_type(variable[0])(variable[0]) /*PParam::n_type*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___PType___get_stype(variable[4])(variable[4], variable[1] /*v*/) /*PType::get_stype*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[4])(variable[4]) /*SignatureBuilder::untyped_params*/; - /* Register variable[4]: For iterator */ - variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/; - while (true) { /*for*/ - /* Register variable[5]: For 'is_ok' result */ - variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable[5])) break; /*for*/ - variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/; - /* Register variable[6]: Local variable */ - variable[6] = variable[5]; - CALL_mmbuilder___PParam___stype__eq( variable[6] /*p*/)( variable[6] /*p*/, variable[3] /*stype*/) /*PParam::stype=*/; - /* Register variable[7]: Result */ - variable[7] = CALL_mmbuilder___PParam___is_vararg(variable[0])(variable[0]) /*PParam::is_vararg*/; - if (UNTAG_Bool(variable[7])) { /*if*/ - /* Register variable[7]: Result */ - variable[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[7]: Result */ - variable[7] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[7])(variable[7]) /*SignatureBuilder::vararg_rank*/; - /* Register variable[8]: Result */ - variable[8] = TAG_Int(-UNTAG_Int( TAG_Int(1))); - /* Register variable[7]: Result */ - variable[7] = TAG_Bool((variable[7])==(variable[8])); - if (UNTAG_Bool(variable[7])) { /*if*/ - /* Register variable[7]: Result */ - variable[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[8]: Result */ - 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*/ - /* Register variable[7]: Once String constant */ - if (once_value_266 != NIT_NULL) variable[7] = once_value_266; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: A vararg parameter is already defined."), TAG_Int(45)) /*new String*/; - once_value_266 = variable[7]; +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 = 1167; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1167 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_position"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1167); + nit_exit(1); + } + 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 = 1169; + 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; + fra.me.REG[0] = ATTR_mmbuilder___AParam____variable(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1169 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1169); + nit_exit(1); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void mmbuilder___AParam___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 = 1175; + fra.me.meth = LOCATE_mmbuilder___AParam___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; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + /* ./syntax//mmbuilder.nit:1177 */ + CALL_SUPER_mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1178 */ + ATTR_mmbuilder___AParam____position(fra.me.REG[2]) = REGB0; + 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]); + /* ./syntax//mmbuilder.nit:1179 */ + ATTR_mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0]; + 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]); + /* ./syntax//mmbuilder.nit:1180 */ + array___Array___add(fra.me.REG[0], 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___untyped_params(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1181 */ + array___Array___add(fra.me.REG[0], fra.me.REG[2]); + 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); + /* ./syntax//mmbuilder.nit:1182 */ + 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)) { + 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); + /* ./syntax//mmbuilder.nit:1183 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1183); + nit_exit(1); + } + fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1184 */ + 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)) { + fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = TAG_Bool(true); + /* ./syntax//mmbuilder.nit:1185 */ + CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0); + /* ./syntax//mmbuilder.nit:1186 */ + goto label1; + } + 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___iterator(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1188 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//mmbuilder.nit:1189 */ + CALL_mmbuilder___AParam___stype__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + REGB0 = CALL_mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//mmbuilder.nit:1190 */ + if (UNTAG_Bool(REGB0)) { + fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB0 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]); + REGB1 = TAG_Int(1); + REGB1 = TAG_Int(-UNTAG_Int(REGB1)); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); + /* ./syntax//mmbuilder.nit:1191 */ + if (UNTAG_Bool(REGB2)) { + } else { + REGB1 = TAG_Bool((REGB0)==(REGB1)); + REGB2 = REGB1; + /* ./syntax//mmbuilder.nit:1191 */ } - /* Register variable[7]: Result */ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[7]) /*AbsSyntaxVisitor::error*/; + if (UNTAG_Bool(REGB2)) { + fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1192 */ + CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB2); + } else { + /* ./syntax//mmbuilder.nit:1194 */ + if (!once_value_2) { + fra.me.REG[5] = BOX_NativeString("Error: A vararg parameter is already defined."); + REGB2 = TAG_Int(45); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_2 = fra.me.REG[5]; + register_static_object(&once_value_2); + } else fra.me.REG[5] = once_value_2; + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]); + } + fra.me.REG[5] = 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[5]; + /* ./syntax//mmbuilder.nit:1196 */ } - /* Register variable[7]: Result */ - 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=*/; + fra.me.REG[4] = CALL_syntax_base___AParam___variable(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1198 */ + CALL_syntax_base___Variable___stype__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + } else { + /* ./syntax//mmbuilder.nit:1188 */ + goto label3; } - /* Register variable[7]: Result */ - 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_265: while(0); - CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); } - break_265: while(0); - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[4]: Result */ - 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_label264: while(false); - tracehead = trace.prev; + label3: while(0); + 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]); + /* ./syntax//mmbuilder.nit:1200 */ + CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]); + } + label1: while(0); + stack_frame_head = fra.me.prev; return; } -val_t mmbuilder___PParam___stype(val_t self) { - struct trace_t trace = {NULL, NULL, 1139, LOCATE_mmbuilder___PParam___stype}; - val_t *variable = NULL; - struct WBT_ **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, 1139, LOCATE_mmbuilder___PParam___stype__eq}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - ATTR_mmbuilder___PParam____stype( self) /*PParam::_stype*/ = param0; - tracehead = trace.prev; +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 = 1172; + 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; + fra.me.REG[0] = ATTR_mmbuilder___AParam____stype(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1172 */ + 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 = 1172; + 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:1172 */ + 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, 1167, LOCATE_mmbuilder___PParam___is_vararg}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1167); - nit_exit(1); - tracehead = trace.prev; - return NIT_NULL; -} -val_t mmbuilder___AParam___is_vararg(val_t self) { - struct trace_t trace = {NULL, NULL, 1171, LOCATE_mmbuilder___AParam___is_vararg}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Result */ - variable[2] = CALL_parser_nodes___AParam___n_dotdotdot(variable[0])(variable[0]) /*AParam::n_dotdotdot*/; - /* Register variable[2]: Result */ - 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_label267; - return_label267: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t mmbuilder___AClosureDecl___variable(val_t self) { - struct trace_t trace = {NULL, NULL, 1175, LOCATE_mmbuilder___AClosureDecl___variable}; - val_t *variable = NULL; - struct WBT_ **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, 1177, LOCATE_mmbuilder___AClosureDecl___accept_property_verifier}; - static val_t once_value_269 = NIT_NULL; /* Once value for string variable[5]*/ - val_t variable[10]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - /* Register variable[3]: Local variable */ - /* Register variable[4]: Result */ - variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - variable[3] = variable[4]; - /* Register variable[4]: Result */ - 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*/; - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/; - /* Register variable[5]: Result */ - variable[5] = CALL_mmbuilder___SignatureBuilder___signature(variable[5])(variable[5]) /*SignatureBuilder::signature*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - 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*/ - /* Register variable[5]: Result */ - variable[5] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - /* Register variable[6]: Result */ - variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/; - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/; - /* Register variable[5]: Result */ - variable[5] = NEW_MMSignature_static_type___MMSignature___init(variable[5], NIT_NULL /*null*/, variable[6]) /*new MMSignature*/; - variable[4] = variable[5] /*sig=*/; - } - /* Register variable[5]: Result */ - variable[5] = CALL_static_type___MMSignature___return_type( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::return_type*/; - /* Register variable[5]: Result */ - 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::==*/))))))); - /* Ensure var variable[5]: Left 'and' operand*/ - if (UNTAG_Bool(variable[5])) { /* and */ - /* Register variable[5]: Result */ - variable[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(variable[0])(variable[0]) /*AClosureDecl::n_kwbreak*/; - /* Register variable[5]: Result */ - 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::==*/))))))); - } - /* Register variable[5]: Result */ - if (UNTAG_Bool(variable[5])) { /*if*/ - /* Register variable[5]: Once String constant */ - if (once_value_269 != NIT_NULL) variable[5] = once_value_269; - else { - variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: A break block cannot have a return value."), TAG_Int(55)) /*new String*/; - once_value_269 = variable[5]; +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 = 1204; + 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; + 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); + /* ./syntax//mmbuilder.nit:1204 */ + 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; } - /* Register variable[5]: Result */ - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[5]) /*AbsSyntaxVisitor::error*/; - } - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = NEW_Array_array___Array___init() /*new Array[MMType]*/; - /* Register variable[6]: Result */ - variable[6] = NEW_MMSignature_static_type___MMSignature___init(variable[6], NIT_NULL /*null*/, NIT_NULL /*null*/) /*new MMSignature*/; - variable[5] = variable[6]; - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = NEW_MMClosure_static_type___MMClosure___init( variable[5] /*finalize_sig*/, TAG_Bool(false), TAG_Bool(true)) /*new MMClosure*/; - variable[6] = variable[7]; - /* Register variable[7]: Result */ - 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*/; - /* Register variable[7]: Local variable */ - /* Register variable[8]: Result */ - variable[8] = CALL_parser_nodes___AClosureDecl___n_kwbreak(variable[0])(variable[0]) /*AClosureDecl::n_kwbreak*/; - /* Register variable[8]: Result */ - 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::==*/))))))); - /* Register variable[9]: Result */ - variable[9] = CALL_parser_nodes___AClosureDecl___n_expr(variable[0])(variable[0]) /*AClosureDecl::n_expr*/; - /* Register variable[9]: Result */ - 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::==*/))))))); - /* Register variable[8]: Result */ - variable[8] = NEW_MMClosure_static_type___MMClosure___init( variable[4] /*sig*/, variable[8], variable[9]) /*new MMClosure*/; - variable[7] = variable[8]; - CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3] /*old_signature_builder*/) /*PropertyVerifierVisitor::signature_builder=*/; - /* Register variable[8]: Result */ - variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls( variable[3] /*old_signature_builder*/)( variable[3] /*old_signature_builder*/) /*SignatureBuilder::closure_decls*/; - CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[0]) /*AbstractArray::add*/; - /* Register variable[8]: Result */ - variable[8] = CALL_parser_nodes___AClosureDecl___n_id(variable[0])(variable[0]) /*AClosureDecl::n_id*/; - /* Register variable[8]: Result */ - variable[8] = CALL_syntax_base___Token___to_symbol(variable[8])(variable[8]) /*Token::to_symbol*/; - /* Register variable[8]: Result */ - variable[8] = NEW_ClosureVariable_syntax_base___ClosureVariable___init(variable[8], variable[0], variable[7] /*clos*/) /*new ClosureVariable*/; - ATTR_mmbuilder___AClosureDecl____variable(variable[0]) /*AClosureDecl::_variable*/ = variable[8]; - return_label268: while(false); - tracehead = trace.prev; - return; -} -void mmbuilder___PType___check_visibility(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 1203, LOCATE_mmbuilder___PType___check_visibility}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - fprintf(stderr, "Deferred method called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1203); - nit_exit(1); - tracehead = trace.prev; + } + 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 = 1208; + 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; + REGB0 = TAG_Bool(ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1208 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_position"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1208); + nit_exit(1); + } + 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 = 1210; + 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; + fra.me.REG[0] = ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL); + /* ./syntax//mmbuilder.nit:1210 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1210); + nit_exit(1); + } + 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[9];} 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 = 1213; + fra.me.meth = LOCATE_mmbuilder___AClosureDecl___accept_property_verifier; + fra.me.has_broke = 0; + fra.me.REG_size = 10; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[6] = NIT_NULL; + fra.me.REG[7] = NIT_NULL; + fra.me.REG[8] = NIT_NULL; + fra.me.REG[9] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = fra.me.REG[0]; + fra.me.REG[3] = fra.me.REG[1]; + fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[5] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); + /* ./syntax//mmbuilder.nit:1216 */ + CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:1217 */ + CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + 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]); + /* ./syntax//mmbuilder.nit:1218 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//mmbuilder.nit:1219 */ + goto label1; + } + 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); + /* ./syntax//mmbuilder.nit:1222 */ + 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)) { + 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:1223 */ + } + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1225 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1225); + nit_exit(1); + } + 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:1226 */ + 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; + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]); + } + fra.me.REG[5] = NEW_Array_array___Array___init(); + fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___module(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:1231 */ + 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] = 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; + 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); + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1232 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1232); + nit_exit(1); + } + fra.me.REG[5] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]); + array___Array___add(fra.me.REG[5], fra.me.REG[0]); + 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]); + 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); + /* ./syntax//mmbuilder.nit:1235 */ + 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); + fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]); + /* ./syntax//mmbuilder.nit:1236 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[7] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[7] = CALL_syntax_base___Token___to_symbol(fra.me.REG[7])(fra.me.REG[7]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[0])); + /* ./syntax//mmbuilder.nit:1237 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + fra.me.REG[7] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Int(5); + fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:1238 */ + if (!once_value_5) { + fra.me.REG[9] = BOX_NativeString("A closure '!"); + REGB0 = TAG_Int(12); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB0); + once_value_5 = fra.me.REG[9]; + register_static_object(&once_value_5); + } else fra.me.REG[9] = once_value_5; + array___Array___add(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]); + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_6) { + fra.me.REG[9] = BOX_NativeString("' already defined at "); + REGB0 = TAG_Int(21); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB0); + once_value_6 = fra.me.REG[9]; + register_static_object(&once_value_6); + } else fra.me.REG[9] = once_value_6; + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + fra.me.REG[6] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[6] = CALL_parser_nodes___ANode___location(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[9] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[9] = CALL_parser_nodes___ANode___location(fra.me.REG[9])(fra.me.REG[9]); + fra.me.REG[9] = CALL_location___Location___relative_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]); + array___Array___add(fra.me.REG[8], fra.me.REG[9]); + if (!once_value_7) { + fra.me.REG[9] = BOX_NativeString("."); + REGB0 = TAG_Int(1); + fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB0); + once_value_7 = fra.me.REG[9]; + register_static_object(&once_value_7); + } else fra.me.REG[9] = once_value_7; + array___Array___add(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[3])(fra.me.REG[3], fra.me.REG[7], fra.me.REG[8]); + /* ./syntax//mmbuilder.nit:1239 */ + goto label1; + } + } else { + /* ./syntax//mmbuilder.nit:1236 */ + goto label8; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]); + } + label8: while(0); + /* ./syntax//mmbuilder.nit:1242 */ + CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); + } + REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./syntax//mmbuilder.nit:1243 */ + ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0; + fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]); + /* ./syntax//mmbuilder.nit:1244 */ + array___Array___add(fra.me.REG[4], fra.me.REG[2]); + 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]); + /* ./syntax//mmbuilder.nit:1245 */ + 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, 1208, LOCATE_mmbuilder___AType___check_visibility}; - static val_t once_value_271 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_272 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_273 = NIT_NULL; /* Once value for string variable[7]*/ - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Local variable */ - variable[2] = param1; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*p*/)( variable[2] /*p*/) /*MMLocalProperty::global*/; - /* Register variable[4]: Result */ - variable[4] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[4])(variable[4]) /*MMGlobalProperty::visibility_level*/; - /* Register variable[4]: Result */ - variable[4] = TAG_Bool(UNTAG_Int(variable[4])>=UNTAG_Int( TAG_Int(3))); - if (UNTAG_Bool(variable[4])) { /*if*/ - goto return_label270; - } - /* Register variable[4]: Local variable */ - /* Register variable[5]: Result */ - variable[5] = CALL_syntax_base___PType___get_stype(variable[0])(variable[0], variable[1] /*v*/) /*AType::get_stype*/; - variable[4] = variable[5]; - /* Register variable[5]: Result */ - 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_label270; - } - /* Register variable[5]: Local variable */ - /* Register variable[6]: Result */ - variable[6] = CALL_static_type___MMType___local_class( variable[4] /*t*/)( variable[4] /*t*/) /*MMType::local_class*/; - variable[5] = variable[6]; - /* Register variable[6]: Result */ - 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_label270; - } - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[5] /*bc*/)( variable[5] /*bc*/) /*MMLocalClass::global*/; - /* Register variable[6]: Result */ - variable[6] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[6])(variable[6]) /*MMGlobalClass::visibility_level*/; - /* Register variable[6]: Result */ - variable[6] = TAG_Bool(UNTAG_Int(variable[6])>=UNTAG_Int( TAG_Int(3))); - if (UNTAG_Bool(variable[6])) { /*if*/ - variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[7]: Once String constant */ - if (once_value_271 != NIT_NULL) variable[7] = once_value_271; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Access error: Class "), TAG_Int(20)) /*new String*/; - once_value_271 = variable[7]; - } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - variable[7] = variable[5] /*bc*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_272 != NIT_NULL) variable[7] = once_value_272; - else { - variable[7] = 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*/; - once_value_272 = variable[7]; +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 = 1250; + 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; + 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); + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./syntax//mmbuilder.nit:1253 */ + if (UNTAG_Bool(REGB1)) { + goto label1; + } + fra.me.REG[3] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1255 */ + 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; } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - variable[7] = variable[2] /*p*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[7]: Once String constant */ - if (once_value_273 != NIT_NULL) variable[7] = once_value_273; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/; - once_value_273 = variable[7]; + } + if (UNTAG_Bool(REGB1)) { + goto label1; + } + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + /* ./syntax//mmbuilder.nit:1256 */ + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1256); + nit_exit(1); + } + fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]); + 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); + REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0)); + /* ./syntax//mmbuilder.nit:1257 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//mmbuilder.nit:1258 */ + 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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + array___Array___add(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; + array___Array___add(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]); + } + fra.me.REG[0] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1260 */ + while(1) { + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]); + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]); + /* ./syntax//mmbuilder.nit:1261 */ + CALL_mmbuilder___AType___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[2]); + } else { + /* ./syntax//mmbuilder.nit:1260 */ + goto label5; } - /* Register variable[7]: Result */ - /* Ensure var variable[7]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[6]) /*AbsSyntaxVisitor::error*/; - } - /* Register variable[6]: Result */ - variable[6] = CALL_parser_nodes___AType___n_types(variable[0])(variable[0]) /*AType::n_types*/; - /* Register variable[6]: For iterator */ - variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*List::iterator*/; - while (true) { /*for*/ - /* Register variable[7]: For 'is_ok' result */ - 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*/ /* Ensure var: For item*/; - /* Register variable[8]: Local variable */ - 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_274: while(0); - CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ListIterator::next*/; - } - break_274: while(0); - return_label270: while(false); - tracehead = trace.prev; + CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]); + } + label5: while(0); + 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, 1225, LOCATE_mmbuilder___PExpr___accept_class_builder}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - return_label275: while(false); - tracehead = trace.prev; +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 = 1267; + 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; + /* ./syntax//mmbuilder.nit:1267 */ + 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, 1226, LOCATE_mmbuilder___PExpr___accept_property_builder}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - return_label276: 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 = 1268; + 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; + /* ./syntax//mmbuilder.nit:1268 */ + 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, 1227, LOCATE_mmbuilder___PExpr___accept_property_verifier}; - val_t variable[3]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_mmbuilder; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Local variable */ - variable[1] = param0; - /* Register variable[2]: Method return value and escape marker */ - return_label277: 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 = 1269; + 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; + /* ./syntax//mmbuilder.nit:1269 */ + stack_frame_head = fra.me.prev; return; }