X-Git-Url: http://nitlanguage.org diff --git a/c_src/control_flow._sep.c b/c_src/control_flow._sep.c index a0b95d0..6d4fe53 100644 --- a/c_src/control_flow._sep.c +++ b/c_src/control_flow._sep.c @@ -1,867 +1,1309 @@ /* This C file is generated by NIT to compile module control_flow. */ #include "control_flow._sep.h" -val_t control_flow___VariableContext___to_s(val_t self) { - struct trace_t trace = {NULL, NULL, 183, LOCATE_control_flow___VariableContext___to_s}; - static val_t once_value_2 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_3 = NIT_NULL; /* Once value for string variable[8]*/ - static val_t once_value_4 = NIT_NULL; /* Once value for string variable[8]*/ - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - /* Register variable[2]: Local variable */ - /* Register variable[3]: Result */ - variable[3] = NEW_Buffer_string___Buffer___init() /*new Buffer*/; - variable[2] = variable[3]; - /* Register variable[3]: Result */ - variable[3] = CALL_control_flow___VariableContext___node(variable[0])(variable[0]) /*VariableContext::node*/; - /* Register variable[3]: Result */ - variable[3] = CALL_parser_prod___PNode___locate(variable[3])(variable[3]) /*PNode::locate*/; - CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[3]) /*Buffer::append*/; - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___VariableContext____all_variables(variable[0]) /*VariableContext::_all_variables*/; - /* 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]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_control_flow___VariableContext___stype(variable[0])(variable[0], variable[5] /*v*/) /*VariableContext::stype*/; - variable[6] = variable[7]; - /* Register variable[7]: Result */ - variable[7] = TAG_Bool(( variable[6] /*t*/ == NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*t*/)( variable[6] /*t*/, NIT_NULL /*null*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[7])) { /*if*/ - goto continue_1; +val_t control_flow___VariableContext___to_s(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_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_control_flow; + fra.me.line = 179; + fra.me.meth = LOCATE_control_flow___VariableContext___to_s; + 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] = NEW_Buffer_string___Buffer___init(); + fra.me.REG[2] = CALL_control_flow___VariableContext___node(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//control_flow.nit:182 */ + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:183 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_all_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 183); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + 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]); + fra.me.REG[4] = CALL_control_flow___VariableContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* ./syntax//control_flow.nit:185 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + goto label1; + } + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./syntax//control_flow.nit:186 */ + if (!once_value_2) { + 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_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[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + array___Array___add(fra.me.REG[5], fra.me.REG[3]); + if (!once_value_3) { + fra.me.REG[3] = BOX_NativeString(":"); + REGB0 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_3 = fra.me.REG[3]; + register_static_object(&once_value_3); + } else fra.me.REG[3] = once_value_3; + array___Array___add(fra.me.REG[5], fra.me.REG[3]); + 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_4) { + fra.me.REG[4] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0); + once_value_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_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + label1: while(0); + } else { + /* ./syntax//control_flow.nit:183 */ + goto label5; } - variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[8]: Once String constant */ - if (once_value_2 != NIT_NULL) variable[8] = once_value_2; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)) /*new String*/; - once_value_2 = variable[8]; + CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); + } + label5: while(0); + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//control_flow.nit:188 */ + goto label6; + label6: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +val_t control_flow___VariableContext_____bra(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 25; + fra.me.meth = LOCATE_control_flow___VariableContext_____bra; + 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; + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:29 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_dico"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 29); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____dico(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:30 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_dico"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 30); + 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*/; - variable[8] = variable[5] /*v*/ /* 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_3 != NIT_NULL) variable[8] = once_value_3; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)) /*new String*/; - once_value_3 = variable[8]; + fra.me.REG[0] = ATTR_control_flow___VariableContext____dico(fra.me.REG[0]); + fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + goto label1; + } else { + fra.me.REG[1] = NIT_NULL; + /* ./syntax//control_flow.nit:32 */ + goto label1; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +void control_flow___VariableContext___add(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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 36; + fra.me.meth = LOCATE_control_flow___VariableContext___add; + 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] = CALL_syntax_base___Variable___name(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[2] = CALL_control_flow___VariableContext_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + /* ./syntax//control_flow.nit:40 */ + 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[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[6] /*t*/ /* 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_4 != NIT_NULL) variable[8] = once_value_4; - else { - variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_4 = variable[8]; + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____visitor(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:41 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_visitor"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 41); + 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_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[7]) /*Buffer::append*/; - continue_1: while(0); - CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/; - } - break_1: while(0); - /* Register variable[3]: Result */ - variable[3] = CALL_string___Object___to_s( variable[2] /*s*/)( variable[2] /*s*/) /*Buffer::to_s*/; - variable[1] = variable[3]; - goto return_label0; - return_label0: while(false); - tracehead = trace.prev; - return variable[1]; -} -val_t control_flow___VariableContext_____bra(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 25, LOCATE_control_flow___VariableContext_____bra}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____dico(variable[0]) /*VariableContext::_dico*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead___has_key(variable[3])(variable[3], variable[1] /*s*/) /*MapRead::has_key*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___VariableContext____dico(variable[0]) /*VariableContext::_dico*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3], variable[1] /*s*/) /*MapRead::[]*/; - variable[2] = variable[3]; - goto return_label5; - } else { /*if*/ - variable[2] = NIT_NULL /*null*/; - goto return_label5; - } - return_label5: while(false); - tracehead = trace.prev; - return variable[2]; -} -void control_flow___VariableContext___add(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 36, LOCATE_control_flow___VariableContext___add}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____dico(variable[0]) /*VariableContext::_dico*/; - /* Register variable[4]: Result */ - variable[4] = CALL_syntax_base___Variable___name( variable[1] /*v*/)( variable[1] /*v*/) /*Variable::name*/; - CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4], variable[1] /*v*/) /*Map::[]=*/; - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___VariableContext____all_variables(variable[0]) /*VariableContext::_all_variables*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1] /*v*/) /*SimpleCollection::add*/; - return_label6: while(false); - tracehead = trace.prev; + fra.me.REG[3] = ATTR_control_flow___VariableContext____visitor(fra.me.REG[0]); + fra.me.REG[4] = CALL_syntax_base___Variable___decl(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Int(5); + fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[6] = BOX_NativeString("Error: '"); + REGB0 = TAG_Int(8); + 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[1])(fra.me.REG[1]); + array___Array___add(fra.me.REG[5], fra.me.REG[6]); + if (!once_value_2) { + fra.me.REG[6] = BOX_NativeString("' already defined at "); + REGB0 = TAG_Int(21); + 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]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 41); + nit_exit(1); + } + fra.me.REG[2] = CALL_syntax_base___Variable___decl(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 41); + nit_exit(1); + } + fra.me.REG[2] = CALL_parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[6] = CALL_syntax_base___Variable___decl(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 41); + nit_exit(1); + } + fra.me.REG[6] = CALL_parser_nodes___ANode___location(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[6] = CALL_location___Location___relative_to(fra.me.REG[2])(fra.me.REG[2], 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[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]); + } + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:43 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_dico"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 43); + nit_exit(1); + } + fra.me.REG[5] = ATTR_control_flow___VariableContext____dico(fra.me.REG[0]); + fra.me.REG[4] = CALL_syntax_base___Variable___name(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[1]); + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:44 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_all_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 44); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void control_flow___VariableContext___mark_is_set(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 43, LOCATE_control_flow___VariableContext___mark_is_set}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____set_variables(variable[0]) /*VariableContext::_set_variables*/; - CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1] /*v*/) /*HashSet::add*/; - return_label7: while(false); - tracehead = trace.prev; +void control_flow___VariableContext___mark_is_set(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_control_flow; + fra.me.line = 47; + fra.me.meth = LOCATE_control_flow___VariableContext___mark_is_set; + 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(ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:49 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_set_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 49); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void control_flow___VariableContext___check_is_set(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 48, LOCATE_control_flow___VariableContext___check_is_set}; - static val_t once_value_9 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_10 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_12 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_13 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_14 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_15 = NIT_NULL; /* Once value for string variable[6]*/ - static val_t once_value_16 = NIT_NULL; /* Once value for string variable[7]*/ - static val_t once_value_17 = NIT_NULL; /* Once value for string variable[6]*/ - val_t variable[8]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___Variable___must_be_set( variable[2] /*v*/)( variable[2] /*v*/) /*Variable::must_be_set*/; - /* Ensure var variable[4]: Left 'and' operand*/ - if (UNTAG_Bool(variable[4])) { /* and */ - /* Register variable[4]: Result */ - variable[4] = CALL_control_flow___VariableContext___is_set(variable[0])(variable[0], variable[2] /*v*/) /*VariableContext::is_set*/; - variable[4] = TAG_Bool(!UNTAG_Bool(variable[4])); - } - /* Register variable[4]: Result */ - if (UNTAG_Bool(variable[4])) { /*if*/ - /* Register variable[4]: Result */ - variable[4] = ATTR_control_flow___VariableContext____visitor(variable[0]) /*VariableContext::_visitor*/; - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[6]: Once String constant */ - if (once_value_9 != NIT_NULL) variable[6] = once_value_9; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: variable '"), TAG_Int(17)) /*new String*/; - once_value_9 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - variable[6] = variable[2] /*v*/ /* Ensure var: super-string element*/; - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_10 != NIT_NULL) variable[6] = once_value_10; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString("' is possibly unset."), TAG_Int(20)) /*new String*/; - once_value_10 = variable[6]; +void control_flow___VariableContext___check_is_set(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_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_control_flow; + fra.me.line = 52; + fra.me.meth = LOCATE_control_flow___VariableContext___check_is_set; + 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; + REGB0 = CALL_control_flow___Variable___must_be_set(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//control_flow.nit:54 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_control_flow___VariableContext___is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____visitor(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:55 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_visitor"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 55); + nit_exit(1); } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - CALL_syntax_base___AbsSyntaxVisitor___error(variable[4])(variable[4], variable[1] /*n*/, variable[5]) /*AbsSyntaxVisitor::error*/; - /* Register variable[4]: Local variable */ - variable[4] = variable[0]; - while (true) { /*while*/ - if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/ - variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/; - /* Register variable[6]: Once String constant */ - if (once_value_12 != NIT_NULL) variable[6] = once_value_12; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(2)) /*new String*/; - once_value_12 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = CALL_control_flow___VariableContext___node( variable[4] /*x*/)( variable[4] /*x*/) /*VariableContext::node*/; - /* Register variable[6]: Result */ - variable[6] = CALL_parser_prod___PNode___locate(variable[6])(variable[6]) /*PNode::locate*/; - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_13 != NIT_NULL) variable[6] = once_value_13; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/; - once_value_13 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_control_flow___VariableContext____set_variables( variable[4] /*x*/) /*VariableContext::_set_variables*/; - /* Register variable[7]: Once String constant */ - if (once_value_14 != NIT_NULL) variable[7] = once_value_14; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/; - once_value_14 = variable[7]; - } - /* Register variable[7]: Result */ - /* Register variable[6]: Result */ - variable[6] = CALL_string___Collection___join(variable[6])(variable[6], variable[7]) /*Collection::join*/; - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_15 != NIT_NULL) variable[6] = once_value_15; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" ; "), TAG_Int(3)) /*new String*/; - once_value_15 = variable[6]; - } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Result */ - variable[6] = ATTR_control_flow___VariableContext____dico( variable[4] /*x*/) /*VariableContext::_dico*/; - /* Register variable[7]: Once String constant */ - if (once_value_16 != NIT_NULL) variable[7] = once_value_16; - else { - variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/; - once_value_16 = variable[7]; - } - /* Register variable[7]: Result */ - /* Register variable[6]: Result */ - variable[6] = CALL_string___Collection___join(variable[6])(variable[6], variable[7]) /*Collection::join*/; - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[6]: Once String constant */ - if (once_value_17 != NIT_NULL) variable[6] = once_value_17; - else { - variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/; - once_value_17 = variable[6]; + fra.me.REG[3] = ATTR_control_flow___VariableContext____visitor(fra.me.REG[0]); + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[5] = BOX_NativeString("Error: variable '"); + REGB0 = TAG_Int(17); + 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_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_2) { + fra.me.REG[5] = BOX_NativeString("' is possibly unset."); + 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[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[1], fra.me.REG[4]); + } else { + REGB0 = CALL_syntax_base___Variable___is_typed(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//control_flow.nit:56 */ + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = CALL_control_flow___VariableContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); + REGB0 = REGB1; + } } - /* Register variable[6]: Result */ - /* Ensure var variable[6]: super-string element*/ - CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/; - /* Register variable[5]: Result */ - variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/; - CALL_file___Object___print(variable[0])(variable[0], variable[5]) /*Object::print*/; - /* Register variable[5]: Local variable */ - variable[5] = variable[4] /*x*/; - /* Register variable[6]: Result */ - variable[6] = TAG_Bool(( variable[5] /*x0*/==NIT_NULL) || VAL_ISA( variable[5] /*x0*/, COLOR_SubVariableContext, ID_SubVariableContext)) /*cast SubVariableContext*/; - if (UNTAG_Bool(variable[6])) { /*if*/ - /* Register variable[6]: Result */ - variable[6] = CALL_control_flow___SubVariableContext___prev( variable[5] /*x0*/)( variable[5] /*x0*/) /*SubVariableContext::prev*/; - variable[4] = variable[6] /*x=*/; - } else { /*if*/ - goto break_11; + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____visitor(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:57 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_visitor"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 57); + nit_exit(1); } - continue_11: while(0); + fra.me.REG[0] = ATTR_control_flow___VariableContext____visitor(fra.me.REG[0]); + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0); + if (!once_value_3) { + fra.me.REG[3] = BOX_NativeString("Error: variable '"); + REGB0 = TAG_Int(17); + 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[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + array___Array___add(fra.me.REG[4], fra.me.REG[2]); + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString("' is untyped."); + REGB0 = TAG_Int(13); + 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; + array___Array___add(fra.me.REG[4], fra.me.REG[2]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]); } - break_11: while(0); } - return_label8: while(false); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return; } -val_t control_flow___VariableContext___stype(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 65, LOCATE_control_flow___VariableContext___stype}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____stypes(variable[0]) /*VariableContext::_stypes*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead___has_key(variable[3])(variable[3], variable[1] /*v*/) /*MapRead::has_key*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___VariableContext____stypes(variable[0]) /*VariableContext::_stypes*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3], variable[1] /*v*/) /*MapRead::[]*/; - variable[2] = variable[3]; - goto return_label18; - } else { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_syntax_base___Variable___stype( variable[1] /*v*/)( variable[1] /*v*/) /*Variable::stype*/; - variable[2] = variable[3]; - goto return_label18; - } - return_label18: while(false); - tracehead = trace.prev; - return variable[2]; +val_t control_flow___VariableContext___stype(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 61; + fra.me.meth = LOCATE_control_flow___VariableContext___stype; + 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; + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:65 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_stypes"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 65); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:66 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_stypes"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 66); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]); + fra.me.REG[0] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + goto label1; + } else { + fra.me.REG[1] = CALL_syntax_base___Variable___stype(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[0] = fra.me.REG[1]; + /* ./syntax//control_flow.nit:68 */ + goto label1; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void control_flow___VariableContext___stype__eq(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 76, LOCATE_control_flow___VariableContext___stype__eq}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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] = ATTR_control_flow___VariableContext____stypes(variable[0]) /*VariableContext::_stypes*/; - CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[1] /*v*/, variable[2] /*t*/) /*Map::[]=*/; - return_label19: while(false); - tracehead = trace.prev; +void control_flow___VariableContext___stype__eq(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 tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 72; + fra.me.meth = LOCATE_control_flow___VariableContext___stype__eq; + 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 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:76 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_stypes"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 76); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]); + 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; } -val_t control_flow___VariableContext___sub(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 92, LOCATE_control_flow___VariableContext___sub}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_SubVariableContext_control_flow___SubVariableContext___with_prev(variable[0], variable[1] /*node*/) /*new SubVariableContext*/; - variable[2] = variable[3]; - goto return_label20; - return_label20: while(false); - tracehead = trace.prev; - return variable[2]; +val_t control_flow___VariableContext___sub(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_control_flow; + fra.me.line = 88; + fra.me.meth = LOCATE_control_flow___VariableContext___sub; + 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; + fra.me.REG[1] = NEW_SubVariableContext_control_flow___SubVariableContext___with_prev(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//control_flow.nit:91 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t control_flow___VariableContext___sub_with(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 98, LOCATE_control_flow___VariableContext___sub_with}; - val_t variable[7]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext___sub(variable[0])(variable[0], variable[1] /*node*/) /*VariableContext::sub*/; - variable[5] = variable[6]; - CALL_control_flow___VariableContext___stype__eq( variable[5] /*ctx*/)( variable[5] /*ctx*/, variable[2] /*v*/, variable[3] /*t*/) /*VariableContext::stype=*/; - variable[4] = variable[5] /*ctx*/; - goto return_label21; - return_label21: while(false); - tracehead = trace.prev; - return variable[4]; +val_t control_flow___VariableContext___sub_with(val_t p0, val_t p1, val_t p2, val_t p3){ + 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_control_flow; + fra.me.line = 94; + fra.me.meth = LOCATE_control_flow___VariableContext___sub_with; + 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] = p3; + fra.me.REG[1] = CALL_control_flow___VariableContext___sub(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./syntax//control_flow.nit:98 */ + CALL_control_flow___VariableContext___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]); + /* ./syntax//control_flow.nit:99 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; } -val_t control_flow___VariableContext___node(val_t self) { - struct trace_t trace = {NULL, NULL, 109, LOCATE_control_flow___VariableContext___node}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - tracehead = trace.prev; - return ATTR_control_flow___VariableContext____node( self) /*VariableContext::_node*/; +val_t control_flow___VariableContext___node(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_control_flow; + fra.me.line = 105; + fra.me.meth = LOCATE_control_flow___VariableContext___node; + 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_control_flow___VariableContext____node(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:105 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_node"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 105); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___VariableContext____node(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void control_flow___VariableContext___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 112, LOCATE_control_flow___VariableContext___init}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_VariableContext].i]) return; - /* Register variable[3]: Method return value and escape marker */ - ATTR_control_flow___VariableContext____visitor(variable[0]) /*VariableContext::_visitor*/ = variable[1] /*visitor*/; - ATTR_control_flow___VariableContext____node(variable[0]) /*VariableContext::_node*/ = variable[2] /*node*/; - /* Register variable[4]: Result */ - variable[4] = NEW_HashMap_hash___HashMap___init() /*new HashMap[Symbol, Variable]*/; - ATTR_control_flow___VariableContext____dico(variable[0]) /*VariableContext::_dico*/ = variable[4]; - return_label22: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_VariableContext].i] = 1; - tracehead = trace.prev; +void control_flow___VariableContext___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_VariableContext].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t tmp; + if (init_table[itpos0]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 108; + fra.me.meth = LOCATE_control_flow___VariableContext___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//control_flow.nit:110 */ + ATTR_control_flow___VariableContext____visitor(fra.me.REG[0]) = fra.me.REG[1]; + /* ./syntax//control_flow.nit:111 */ + ATTR_control_flow___VariableContext____node(fra.me.REG[0]) = fra.me.REG[2]; + fra.me.REG[2] = NEW_HashMap_hash_collection___HashMap___init(); + /* ./syntax//control_flow.nit:112 */ + ATTR_control_flow___VariableContext____dico(fra.me.REG[0]) = fra.me.REG[2]; + stack_frame_head = fra.me.prev; + init_table[itpos0] = 1; return; } -val_t control_flow___VariableContext___unreash(val_t self) { - struct trace_t trace = {NULL, NULL, 119, LOCATE_control_flow___VariableContext___unreash}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - tracehead = trace.prev; - return ATTR_control_flow___VariableContext____unreash( self) /*VariableContext::_unreash*/; +val_t control_flow___VariableContext___unreash(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_control_flow; + fra.me.line = 115; + fra.me.meth = LOCATE_control_flow___VariableContext___unreash; + 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_control_flow___VariableContext____unreash(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:115 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_unreash"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 115); + nit_exit(1); + } + REGB0 = ATTR_control_flow___VariableContext____unreash(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; } -void control_flow___VariableContext___unreash__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 119, LOCATE_control_flow___VariableContext___unreash__eq}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - ATTR_control_flow___VariableContext____unreash( self) /*VariableContext::_unreash*/ = param0; - tracehead = trace.prev; +void control_flow___VariableContext___unreash__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_control_flow; + fra.me.line = 115; + fra.me.meth = LOCATE_control_flow___VariableContext___unreash__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//control_flow.nit:115 */ + ATTR_control_flow___VariableContext____unreash(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -val_t control_flow___VariableContext___already_unreash(val_t self) { - struct trace_t trace = {NULL, NULL, 122, LOCATE_control_flow___VariableContext___already_unreash}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - tracehead = trace.prev; - return ATTR_control_flow___VariableContext____already_unreash( self) /*VariableContext::_already_unreash*/; +val_t control_flow___VariableContext___already_unreash(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_control_flow; + fra.me.line = 118; + fra.me.meth = LOCATE_control_flow___VariableContext___already_unreash; + 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_control_flow___VariableContext____already_unreash(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:118 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_already_unreash"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 118); + nit_exit(1); + } + REGB0 = ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; } -void control_flow___VariableContext___already_unreash__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 122, LOCATE_control_flow___VariableContext___already_unreash__eq}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - ATTR_control_flow___VariableContext____already_unreash( self) /*VariableContext::_already_unreash*/ = param0; - tracehead = trace.prev; +void control_flow___VariableContext___already_unreash__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_control_flow; + fra.me.line = 118; + fra.me.meth = LOCATE_control_flow___VariableContext___already_unreash__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//control_flow.nit:118 */ + ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -val_t control_flow___VariableContext___set_variables(val_t self) { - struct trace_t trace = {NULL, NULL, 126, LOCATE_control_flow___VariableContext___set_variables}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - tracehead = trace.prev; - return ATTR_control_flow___VariableContext____set_variables( self) /*VariableContext::_set_variables*/; +val_t control_flow___VariableContext___set_variables(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_control_flow; + fra.me.line = 122; + fra.me.meth = LOCATE_control_flow___VariableContext___set_variables; + 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_control_flow___VariableContext____set_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:122 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_set_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 122); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t control_flow___VariableContext___is_set(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 129, LOCATE_control_flow___VariableContext___is_set}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____set_variables(variable[0]) /*VariableContext::_set_variables*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3], variable[1] /*v*/) /*HashSet::has*/; - variable[2] = variable[3]; - goto return_label23; - return_label23: while(false); - tracehead = trace.prev; - return variable[2]; +val_t control_flow___VariableContext___is_set(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_control_flow; + fra.me.line = 125; + fra.me.meth = LOCATE_control_flow___VariableContext___is_set; + 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(ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:128 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_set_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 128); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -void control_flow___VariableContext___merge(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 135, LOCATE_control_flow___VariableContext___merge}; - val_t variable[9]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext___unreash( variable[1] /*ctx*/)( variable[1] /*ctx*/) /*VariableContext::unreash*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - CALL_control_flow___VariableContext___unreash__eq(variable[0])(variable[0], TAG_Bool(true)) /*VariableContext::unreash=*/; - /* Register variable[3]: Result */ - variable[3] = CALL_control_flow___VariableContext___already_unreash( variable[1] /*ctx*/)( variable[1] /*ctx*/) /*VariableContext::already_unreash*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - CALL_control_flow___VariableContext___already_unreash__eq(variable[0])(variable[0], TAG_Bool(true)) /*VariableContext::already_unreash=*/; - } - goto return_label24; - } - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___VariableContext____all_variables(variable[0]) /*VariableContext::_all_variables*/; - /* 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_control_flow___VariableContext___is_set(variable[0])(variable[0], variable[5] /*v*/) /*VariableContext::is_set*/; - variable[6] = TAG_Bool(!UNTAG_Bool(variable[6])) /* Ensure var: Left 'and' operand*/; - if (UNTAG_Bool(variable[6])) { /* and */ - /* Register variable[6]: Result */ - variable[6] = CALL_control_flow___VariableContext___is_set( variable[1] /*ctx*/)( variable[1] /*ctx*/, variable[5] /*v*/) /*VariableContext::is_set*/; +void control_flow___VariableContext___merge(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_control_flow; + fra.me.line = 131; + fra.me.meth = LOCATE_control_flow___VariableContext___merge; + 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; + REGB0 = CALL_control_flow___VariableContext___unreash(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//control_flow.nit:134 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + /* ./syntax//control_flow.nit:135 */ + CALL_control_flow___VariableContext___unreash__eq(fra.me.REG[0])(fra.me.REG[0], REGB0); + REGB0 = CALL_control_flow___VariableContext___already_unreash(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//control_flow.nit:136 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + CALL_control_flow___VariableContext___already_unreash__eq(fra.me.REG[0])(fra.me.REG[0], REGB0); } - /* Register variable[6]: Result */ - if (UNTAG_Bool(variable[6])) { /*if*/ - CALL_control_flow___VariableContext___mark_is_set(variable[0])(variable[0], variable[5] /*v*/) /*VariableContext::mark_is_set*/; - } - /* Register variable[6]: Local variable */ - /* Register variable[7]: Result */ - variable[7] = CALL_control_flow___VariableContext___stype(variable[0])(variable[0], variable[5] /*v*/) /*VariableContext::stype*/; - variable[6] = variable[7]; - /* Register variable[7]: Local variable */ - /* Register variable[8]: Result */ - variable[8] = CALL_control_flow___VariableContext___stype( variable[1] /*ctx*/)( variable[1] /*ctx*/, variable[5] /*v*/) /*VariableContext::stype*/; - variable[7] = variable[8]; - /* Register variable[8]: Result */ - variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*s1*/ == variable[6] /*s*/) || (( variable[7] /*s1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*s1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*s1*/, variable[6] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*s1*/)( variable[7] /*s1*/, variable[6] /*s*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable[8])) { /*if*/ - CALL_control_flow___VariableContext___stype__eq(variable[0])(variable[0], variable[5] /*v*/, variable[7] /*s1*/) /*VariableContext::stype=*/; + /* ./syntax//control_flow.nit:137 */ + goto label1; + } + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:139 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_all_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 139); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + 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_control_flow___VariableContext___is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//control_flow.nit:140 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_control_flow___VariableContext___is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//control_flow.nit:141 */ + CALL_control_flow___VariableContext___mark_is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + } + fra.me.REG[4] = CALL_control_flow___VariableContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); + fra.me.REG[5] = CALL_control_flow___VariableContext___stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[5],fra.me.REG[4])); + /* ./syntax//control_flow.nit:145 */ + 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], fra.me.REG[4]); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + CALL_control_flow___VariableContext___stype__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[5]); + } + } else { + /* ./syntax//control_flow.nit:139 */ + goto label2; } - continue_25: while(0); - CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); } - break_25: while(0); - return_label24: while(false); - tracehead = trace.prev; + label2: while(0); + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void control_flow___VariableContext___merge2(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 153, LOCATE_control_flow___VariableContext___merge2}; - val_t variable[12]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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]: Result */ - variable[5] = CALL_control_flow___VariableContext___unreash( variable[1] /*ctx1*/)( variable[1] /*ctx1*/) /*VariableContext::unreash*/; - if (UNTAG_Bool(variable[5])) { /*if*/ - CALL_control_flow___VariableContext___merge(variable[0])(variable[0], variable[2] /*ctx2*/) /*VariableContext::merge*/; - } else { /*if*/ - /* Register variable[5]: Result */ - variable[5] = CALL_control_flow___VariableContext___unreash( variable[2] /*ctx2*/)( variable[2] /*ctx2*/) /*VariableContext::unreash*/; - if (UNTAG_Bool(variable[5])) { /*if*/ - CALL_control_flow___VariableContext___merge(variable[0])(variable[0], variable[1] /*ctx1*/) /*VariableContext::merge*/; +void control_flow___VariableContext___merge2(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 tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 149; + fra.me.meth = LOCATE_control_flow___VariableContext___merge2; + 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; + REGB0 = CALL_control_flow___VariableContext___unreash(fra.me.REG[1])(fra.me.REG[1]); + /* ./syntax//control_flow.nit:152 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//control_flow.nit:153 */ + CALL_control_flow___VariableContext___merge(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + } else { + REGB0 = CALL_control_flow___VariableContext___unreash(fra.me.REG[2])(fra.me.REG[2]); + /* ./syntax//control_flow.nit:154 */ + if (UNTAG_Bool(REGB0)) { + /* ./syntax//control_flow.nit:155 */ + CALL_control_flow___VariableContext___merge(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); } } - /* Register variable[5]: Result */ - variable[5] = ATTR_control_flow___VariableContext____all_variables(variable[0]) /*VariableContext::_all_variables*/; - /* Register variable[5]: For iterator */ - variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Collection::iterator*/; - while (true) { /*for*/ - /* Register variable[6]: For 'is_ok' result */ - variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/; - if (!UNTAG_Bool(variable[6])) break; /*for*/ - variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/; - /* Register variable[7]: Local variable */ - variable[7] = variable[6]; - /* Register variable[8]: Result */ - variable[8] = CALL_control_flow___VariableContext___is_set(variable[0])(variable[0], variable[7] /*v*/) /*VariableContext::is_set*/; - 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_control_flow___VariableContext___is_set( variable[1] /*ctx1*/)( variable[1] /*ctx1*/, variable[7] /*v*/) /*VariableContext::is_set*/; - } - /* Register variable[8]: Result */ - /* Ensure var variable[8]: Left 'and' operand*/ - if (UNTAG_Bool(variable[8])) { /* and */ - /* Register variable[8]: Result */ - variable[8] = CALL_control_flow___VariableContext___is_set( variable[2] /*ctx2*/)( variable[2] /*ctx2*/, variable[7] /*v*/) /*VariableContext::is_set*/; - } - /* Register variable[8]: Result */ - if (UNTAG_Bool(variable[8])) { /*if*/ - CALL_control_flow___VariableContext___mark_is_set(variable[0])(variable[0], variable[7] /*v*/) /*VariableContext::mark_is_set*/; - } - /* Register variable[8]: Local variable */ - /* Register variable[9]: Result */ - variable[9] = CALL_control_flow___VariableContext___stype(variable[0])(variable[0], variable[7] /*v*/) /*VariableContext::stype*/; - variable[8] = variable[9]; - /* Register variable[9]: Local variable */ - /* Register variable[10]: Result */ - variable[10] = CALL_control_flow___VariableContext___stype( variable[1] /*ctx1*/)( variable[1] /*ctx1*/, variable[7] /*v*/) /*VariableContext::stype*/; - variable[9] = variable[10]; - /* Register variable[10]: Local variable */ - /* Register variable[11]: Result */ - variable[11] = CALL_control_flow___VariableContext___stype( variable[2] /*ctx2*/)( variable[2] /*ctx2*/, variable[7] /*v*/) /*VariableContext::stype*/; - variable[10] = variable[11]; - /* Register variable[11]: Result */ - variable[11] = TAG_Bool(( variable[9] /*s1*/ == variable[8] /*s*/) || (( variable[9] /*s1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*s1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*s1*/, variable[8] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*s1*/)( variable[9] /*s1*/, variable[8] /*s*/) /*Object::==*/))))); - /* Ensure var variable[11]: Left 'and' operand*/ - if (UNTAG_Bool(variable[11])) { /* and */ - /* Register variable[11]: Result */ - variable[11] = TAG_Bool(( variable[10] /*s2*/ == variable[8] /*s*/) || (( variable[10] /*s2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*s2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*s2*/, variable[8] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*s2*/)( variable[10] /*s2*/, variable[8] /*s*/) /*Object::==*/))))); - } - /* Register variable[11]: Result */ - if (UNTAG_Bool(variable[11])) { /*if*/ - } else { /*if*/ - /* Register variable[11]: Result */ - variable[11] = TAG_Bool(( variable[9] /*s1*/ == variable[10] /*s2*/) || (( variable[9] /*s1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*s1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*s1*/, variable[10] /*s2*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*s1*/)( variable[9] /*s1*/, variable[10] /*s2*/) /*Object::==*/))))); - if (UNTAG_Bool(variable[11])) { /*if*/ - CALL_control_flow___VariableContext___stype__eq(variable[0])(variable[0], variable[7] /*v*/, variable[9] /*s1*/) /*VariableContext::stype=*/; - } else { /*if*/ - /* Register variable[11]: Result */ - variable[11] = CALL_static_type___MMType_____l( variable[9] /*s1*/)( variable[9] /*s1*/, variable[10] /*s2*/) /*MMType::<*/; - if (UNTAG_Bool(variable[11])) { /*if*/ - CALL_control_flow___VariableContext___stype__eq(variable[0])(variable[0], variable[7] /*v*/, variable[10] /*s2*/) /*VariableContext::stype=*/; - } else { /*if*/ - /* Register variable[11]: Result */ - variable[11] = CALL_static_type___MMType_____l( variable[10] /*s2*/)( variable[10] /*s2*/, variable[9] /*s1*/) /*MMType::<*/; - if (UNTAG_Bool(variable[11])) { /*if*/ - CALL_control_flow___VariableContext___stype__eq(variable[0])(variable[0], variable[7] /*v*/, variable[9] /*s1*/) /*VariableContext::stype=*/; - } else { /*if*/ - /* Register variable[11]: Result */ - variable[11] = CALL_control_flow___VariableContext___stype( variable[3] /*basectx*/)( variable[3] /*basectx*/, variable[7] /*v*/) /*VariableContext::stype*/; - CALL_control_flow___VariableContext___stype__eq(variable[0])(variable[0], variable[7] /*v*/, variable[11]) /*VariableContext::stype=*/; + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:157 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_all_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 157); + nit_exit(1); + } + fra.me.REG[4] = ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0]); + 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[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]); + REGB0 = CALL_control_flow___VariableContext___is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + /* ./syntax//control_flow.nit:158 */ + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_control_flow___VariableContext___is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + REGB0 = CALL_control_flow___VariableContext___is_set(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//control_flow.nit:159 */ + CALL_control_flow___VariableContext___mark_is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + } + fra.me.REG[6] = CALL_control_flow___VariableContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); + fra.me.REG[7] = CALL_control_flow___VariableContext___stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]); + fra.me.REG[8] = CALL_control_flow___VariableContext___stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]); + REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[7],fra.me.REG[6])); + /* ./syntax//control_flow.nit:165 */ + 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], fra.me.REG[6]); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[8],fra.me.REG[6])); + 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], fra.me.REG[6]); + REGB0 = REGB1; } } + } else { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; } + if (UNTAG_Bool(REGB0)) { + } else { + REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[7],fra.me.REG[8])); + /* ./syntax//control_flow.nit:167 */ + 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], fra.me.REG[8]); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//control_flow.nit:168 */ + CALL_control_flow___VariableContext___stype__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[7]); + } else { + REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL); + /* ./syntax//control_flow.nit:169 */ + 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; + } + } + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 169); + nit_exit(1); + } + REGB1 = CALL_static_type___MMType_____l(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//control_flow.nit:170 */ + CALL_control_flow___VariableContext___stype__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[8]); + } else { + REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); + /* ./syntax//control_flow.nit:171 */ + 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)) { + REGB0 = TAG_Bool(true); + } else { + REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 171); + nit_exit(1); + } + REGB1 = CALL_static_type___MMType_____l(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* ./syntax//control_flow.nit:172 */ + CALL_control_flow___VariableContext___stype__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[7]); + } else { + fra.me.REG[7] = CALL_control_flow___VariableContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); + /* ./syntax//control_flow.nit:174 */ + CALL_control_flow___VariableContext___stype__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[7]); + } + } + } + } + } else { + /* ./syntax//control_flow.nit:157 */ + goto label1; } - continue_27: while(0); - CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]); } - break_27: while(0); - return_label26: while(false); - tracehead = trace.prev; + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void control_flow___RootVariableContext___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 198, LOCATE_control_flow___RootVariableContext___init}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_RootVariableContext].i]) return; - /* Register variable[3]: Method return value and escape marker */ - CALL_control_flow___VariableContext___init(variable[0])(variable[0], variable[1] /*visitor*/, variable[2] /*node*/, init_table /*YYY*/) /*VariableContext::init*/; - /* Register variable[4]: Result */ - variable[4] = NEW_HashSet_hash___HashSet___init() /*new HashSet[Variable]*/; - ATTR_control_flow___VariableContext____all_variables(variable[0]) /*VariableContext::_all_variables*/ = variable[4]; - return_label28: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_RootVariableContext].i] = 1; - tracehead = trace.prev; +void control_flow___RootVariableContext___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_RootVariableContext].i; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + if (init_table[itpos1]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 194; + fra.me.meth = LOCATE_control_flow___RootVariableContext___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//control_flow.nit:196 */ + CALL_control_flow___VariableContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table); + fra.me.REG[2] = NEW_HashSet_hash_collection___HashSet___init(); + /* ./syntax//control_flow.nit:197 */ + ATTR_control_flow___VariableContext____all_variables(fra.me.REG[3]) = fra.me.REG[2]; + stack_frame_head = fra.me.prev; + init_table[itpos1] = 1; return; } -val_t control_flow___SubVariableContext_____bra(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 209, LOCATE_control_flow___SubVariableContext_____bra}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____dico(variable[0]) /*VariableContext::_dico*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead___has_key(variable[3])(variable[3], variable[1] /*s*/) /*MapRead::has_key*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___VariableContext____dico(variable[0]) /*VariableContext::_dico*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3], variable[1] /*s*/) /*MapRead::[]*/; - variable[2] = variable[3]; - goto return_label29; - } else { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_control_flow___SubVariableContext___prev(variable[0])(variable[0]) /*SubVariableContext::prev*/; - /* Register variable[3]: Result */ - variable[3] = CALL_control_flow___VariableContext_____bra(variable[3])(variable[3], variable[1] /*s*/) /*VariableContext::[]*/; - variable[2] = variable[3]; - goto return_label29; - } - return_label29: while(false); - tracehead = trace.prev; - return variable[2]; +val_t control_flow___SubVariableContext_____bra(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 205; + fra.me.meth = LOCATE_control_flow___SubVariableContext_____bra; + 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; + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:207 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_dico"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 207); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____dico(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:208 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_dico"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 208); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____dico(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + goto label1; + } else { + fra.me.REG[0] = CALL_control_flow___SubVariableContext___prev(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_control_flow___VariableContext_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[2] = fra.me.REG[1]; + /* ./syntax//control_flow.nit:210 */ + goto label1; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -val_t control_flow___SubVariableContext___stype(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 218, LOCATE_control_flow___SubVariableContext___stype}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____stypes(variable[0]) /*VariableContext::_stypes*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead___has_key(variable[3])(variable[3], variable[1] /*v*/) /*MapRead::has_key*/; - if (UNTAG_Bool(variable[3])) { /*if*/ - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___VariableContext____stypes(variable[0]) /*VariableContext::_stypes*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3], variable[1] /*v*/) /*MapRead::[]*/; - variable[2] = variable[3]; - goto return_label30; - } else { /*if*/ - /* Register variable[3]: Result */ - variable[3] = CALL_control_flow___SubVariableContext___prev(variable[0])(variable[0]) /*SubVariableContext::prev*/; - /* Register variable[3]: Result */ - variable[3] = CALL_control_flow___VariableContext___stype(variable[3])(variable[3], variable[1] /*v*/) /*VariableContext::stype*/; - variable[2] = variable[3]; - goto return_label30; - } - return_label30: while(false); - tracehead = trace.prev; - return variable[2]; +val_t control_flow___SubVariableContext___stype(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 214; + fra.me.meth = LOCATE_control_flow___SubVariableContext___stype; + 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; + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:216 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_stypes"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 216); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:217 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_stypes"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 217); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]); + fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + goto label1; + } else { + fra.me.REG[0] = CALL_control_flow___SubVariableContext___prev(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[1] = CALL_control_flow___VariableContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + fra.me.REG[2] = fra.me.REG[1]; + /* ./syntax//control_flow.nit:219 */ + goto label1; + } + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; } -val_t control_flow___SubVariableContext___is_set(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 234, LOCATE_control_flow___SubVariableContext___is_set}; - val_t variable[4]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_control_flow___VariableContext____set_variables(variable[0]) /*VariableContext::_set_variables*/; - /* Register variable[3]: Result */ - variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3], variable[1] /*v*/) /*HashSet::has*/; - /* Ensure var variable[3]: Left 'or' operand*/ - if (!UNTAG_Bool(variable[3])) { /* or */ - /* Register variable[3]: Result */ - variable[3] = ATTR_control_flow___SubVariableContext____prev(variable[0]) /*SubVariableContext::_prev*/; - /* Register variable[3]: Result */ - variable[3] = CALL_control_flow___VariableContext___is_set(variable[3])(variable[3], variable[1] /*v*/) /*VariableContext::is_set*/; - } - /* Register variable[3]: Result */ - variable[2] = variable[3]; - goto return_label31; - return_label31: while(false); - tracehead = trace.prev; - return variable[2]; +val_t control_flow___SubVariableContext___is_set(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_control_flow; + fra.me.line = 230; + fra.me.meth = LOCATE_control_flow___SubVariableContext___is_set; + 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; + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:232 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_set_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 232); + nit_exit(1); + } + fra.me.REG[2] = ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Bool(true); + } else { + REGB1 = TAG_Bool(ATTR_control_flow___SubVariableContext____prev(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_prev"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 232); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___SubVariableContext____prev(fra.me.REG[0]); + REGB1 = CALL_control_flow___VariableContext___is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + REGB0 = REGB1; + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -val_t control_flow___SubVariableContext___prev(val_t self) { - struct trace_t trace = {NULL, NULL, 207, LOCATE_control_flow___SubVariableContext___prev}; - val_t *variable = NULL; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - tracehead = trace.prev; - return ATTR_control_flow___SubVariableContext____prev( self) /*SubVariableContext::_prev*/; +val_t control_flow___SubVariableContext___prev(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_control_flow; + fra.me.line = 203; + fra.me.meth = LOCATE_control_flow___SubVariableContext___prev; + 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_control_flow___SubVariableContext____prev(fra.me.REG[0])!=NIT_NULL); + /* ./syntax//control_flow.nit:203 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_prev"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 203); + nit_exit(1); + } + fra.me.REG[0] = ATTR_control_flow___SubVariableContext____prev(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -void control_flow___SubVariableContext___with_prev(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, NULL, 227, LOCATE_control_flow___SubVariableContext___with_prev}; - val_t variable[5]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* 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_SubVariableContext].i]) return; - /* Register variable[3]: Method return value and escape marker */ - /* Register variable[4]: Result */ - variable[4] = ATTR_control_flow___VariableContext____visitor( variable[1] /*p*/) /*VariableContext::_visitor*/; - CALL_control_flow___VariableContext___init(variable[0])(variable[0], variable[4], variable[2] /*node*/, init_table /*YYY*/) /*VariableContext::init*/; - ATTR_control_flow___SubVariableContext____prev(variable[0]) /*SubVariableContext::_prev*/ = variable[1] /*p*/; - /* Register variable[4]: Result */ - variable[4] = ATTR_control_flow___VariableContext____all_variables( variable[1] /*p*/) /*VariableContext::_all_variables*/; - ATTR_control_flow___VariableContext____all_variables(variable[0]) /*VariableContext::_all_variables*/ = variable[4]; - return_label32: while(false); - init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_SubVariableContext].i] = 1; - tracehead = trace.prev; +void control_flow___SubVariableContext___with_prev(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_SubVariableContext].i; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos2]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_control_flow; + fra.me.line = 223; + fra.me.meth = LOCATE_control_flow___SubVariableContext___with_prev; + 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 = TAG_Bool(ATTR_control_flow___VariableContext____visitor(fra.me.REG[1])!=NIT_NULL); + /* ./syntax//control_flow.nit:225 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_visitor"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 225); + nit_exit(1); + } + fra.me.REG[3] = ATTR_control_flow___VariableContext____visitor(fra.me.REG[1]); + CALL_control_flow___VariableContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2], init_table); + /* ./syntax//control_flow.nit:226 */ + ATTR_control_flow___SubVariableContext____prev(fra.me.REG[0]) = fra.me.REG[1]; + REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[1])!=NIT_NULL); + /* ./syntax//control_flow.nit:227 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_all_variables"); + fprintf(stderr, " (%s:%d)\n", LOCATE_control_flow, 227); + nit_exit(1); + } + fra.me.REG[1] = ATTR_control_flow___VariableContext____all_variables(fra.me.REG[1]); + ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; + init_table[itpos2] = 1; return; } -val_t control_flow___Variable___must_be_set(val_t self) { - struct trace_t trace = {NULL, NULL, 241, LOCATE_control_flow___Variable___must_be_set}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(false); - goto return_label33; - return_label33: while(false); - tracehead = trace.prev; - return variable[1]; +val_t control_flow___Variable___must_be_set(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_control_flow; + fra.me.line = 237; + fra.me.meth = LOCATE_control_flow___Variable___must_be_set; + 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//control_flow.nit:238 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -val_t control_flow___VarVariable___must_be_set(val_t self) { - struct trace_t trace = {NULL, NULL, 246, LOCATE_control_flow___VarVariable___must_be_set}; - val_t variable[2]; - struct WBT_ **closurevariable = NULL; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_control_flow; - /* Register variable[0]: Local variable */ - variable[0] = self; - /* Register variable[1]: Method return value and escape marker */ - variable[1] = TAG_Bool(true); - goto return_label34; - return_label34: while(false); - tracehead = trace.prev; - return variable[1]; +val_t control_flow___VarVariable___must_be_set(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_control_flow; + fra.me.line = 242; + fra.me.meth = LOCATE_control_flow___VarVariable___must_be_set; + 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//control_flow.nit:242 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; }