- variable[5] = variable[6];
- CALL_control_flow___ControlFlowContext___unreash__eq( variable[3] /*old_control_flow_ctx*/)( variable[3] /*old_control_flow_ctx*/, variable[5]) /*ControlFlowContext::unreash=*/;
- variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
- variable[5] = CALL_control_flow___ControlFlowContext___unreash(variable[5])(variable[5]) /*ControlFlowContext::unreash*/;
- if (UNTAG_Bool(variable[5])) { /*if*/
- CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4] /*then_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
- }
- variable[5] = CALL_control_flow___ControlFlowContext___unreash( variable[4] /*then_control_flow_ctx*/)( variable[4] /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
- if (UNTAG_Bool(variable[5])) { /*if*/
- variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
- variable[4] = variable[5] /*then_control_flow_ctx=*/;
- }
- variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
- variable[5] = CALL_control_flow___ControlFlowContext___set_variables(variable[5])(variable[5]) /*ControlFlowContext::set_variables*/;
- variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*HashSet::iterator*/;
- while (true) { /*for*/
- 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*/;
- variable[7] = variable[6];
- variable[8] = CALL_control_flow___ControlFlowContext___is_set( variable[4] /*then_control_flow_ctx*/)( variable[4] /*then_control_flow_ctx*/, variable[7] /*variable*/) /*ControlFlowContext::is_set*/;
- if (UNTAG_Bool(variable[8])) { /*if*/
- variable[8] = CALL_control_flow___ControlFlowContext___set_variables( variable[3] /*old_control_flow_ctx*/)( variable[3] /*old_control_flow_ctx*/) /*ControlFlowContext::set_variables*/;
- CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[7] /*variable*/) /*HashSet::add*/;
+ }
+ 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]);
+ }
+ }
+ }