X-Git-Url: http://nitlanguage.org diff --git a/c_src/sorter._sep.c b/c_src/sorter._sep.c index ef41dae..cad08f7 100644 --- a/c_src/sorter._sep.c +++ b/c_src/sorter._sep.c @@ -1,340 +1,742 @@ /* This C file is generated by NIT to compile module sorter. */ #include "sorter._sep.h" -val_t sorter___AbstractSorter___compare(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 22, LOCATE_sorter___AbstractSorter___compare}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_sorter; - fprintf(stderr, "Deferred method %s called"); - fprintf(stderr, " (%s:%d)\n", LOCATE_sorter, 22); - nit_exit(1); - tracehead = trace.prev; +val_t sorter___AbstractSorter___compare(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_sorter; + fra.me.line = 22; + fra.me.meth = LOCATE_sorter___AbstractSorter___compare; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./../lib/standard//collection//sorter.nit:22 */ + nit_abort("Deferred method called", NULL, LOCATE_sorter, 22); + stack_frame_head = fra.me.prev; return NIT_NULL; } -void sorter___AbstractSorter___sort(val_t self, val_t param0) { - struct trace_t trace = {NULL, NULL, 29, LOCATE_sorter___AbstractSorter___sort}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_sorter; - variable0 = param0; - variable1 = ((array___AbstractArray___length_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Collection___length))( variable0 /*array*/) /*AbstractArray::length*/; - variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1))); - ((sorter___AbstractSorter___sub_sort_t)CALL( self,COLOR_sorter___AbstractSorter___sub_sort))( self, variable0 /*array*/, TAG_Int(0), variable1) /*AbstractSorter::sub_sort*/; - tracehead = trace.prev; +void sorter___AbstractSorter___sort(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_sorter; + fra.me.line = 29; + fra.me.meth = LOCATE_sorter___AbstractSorter___sort; + 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; + /* ./../lib/standard//collection//sorter.nit:30 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//collection//sorter.nit:30 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//sorter.nit:30 */ + CALL_sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB2); + stack_frame_head = fra.me.prev; return; } -void sorter___AbstractSorter___sub_sort(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 32, LOCATE_sorter___AbstractSorter___sub_sort}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_sorter; - variable0 = param0; - variable1 = param1; - variable2 = param2; - variable3 = TAG_Bool(UNTAG_Int( variable1 /*from*/)>=UNTAG_Int( variable2 /*to*/)); - if (UNTAG_Bool(variable3)) { /*if*/ - goto return_label1; - } else { /*if*/ - variable3 = TAG_Int(UNTAG_Int( variable1 /*from*/)+UNTAG_Int( TAG_Int(7))); - variable3 = TAG_Bool(UNTAG_Int(variable3)=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//sorter.nit:35 */ + if (UNTAG_Bool(REGB2)) { + /* ./../lib/standard//collection//sorter.nit:36 */ + goto label1; + } else { + /* ./../lib/standard//collection//sorter.nit:37 */ + REGB2 = TAG_Int(7); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB2)=UNTAG_Int( TAG_Int(0))); - variable6 = variable5; - if (UNTAG_Bool(variable6)) { /* and */ - variable6 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable6 = TAG_Bool(UNTAG_Int( variable4 /*index*/)=UNTAG_Int(REGB3)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB3)) { + REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB3)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB2)UNTAG_Int( variable4 /*i*/)); - if (!UNTAG_Bool(variable6)) break; /* while*/ - while (true) { /*while*/ - variable6 = TAG_Bool(UNTAG_Int( variable4 /*i*/)<=UNTAG_Int( variable2 /*to*/)); - variable7 = variable6; - if (UNTAG_Bool(variable7)) { /* and */ - variable7 = variable4 /*i*/; - variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)val[UNTAG_Int(REGB2)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label1; + label1: while(0); + /* ./../lib/standard//collection//sorter.nit:48 */ + REGB2 = REGB0; + /* ./../lib/standard//collection//sorter.nit:49 */ + REGB3 = REGB1; + /* ./../lib/standard//collection//sorter.nit:50 */ + while(1) { + /* ./../lib/standard//kernel.nit:214 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//sorter.nit:50 */ + if (UNTAG_Bool(REGB4)) { + /* ./../lib/standard//collection//sorter.nit:51 */ + while(1) { + /* ./../lib/standard//kernel.nit:211 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//sorter.nit:51 */ + if (UNTAG_Bool(REGB4)) { + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[3] = fra.me.REG[1]; + REGB4 = REGB2; + /* ./../lib/standard//collection//array.nit:245 */ + REGB5 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB5)) { + REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB5)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)val[UNTAG_Int(REGB4)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label2; + label2: while(0); + /* ./../lib/standard//collection//sorter.nit:51 */ + REGB4 = CALL_sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); + REGB5 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:211 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5)); + } else { + /* ./../lib/standard//collection//sorter.nit:51 */ + REGB4 = TAG_Bool(false); + REGB5 = REGB4; } - variable8 = variable9; - if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);} - variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/; - variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)]; - goto return_label6; - return_label6: while(false); - variable7 = variable8; - variable7 = ((sorter___AbstractSorter___compare_t)CALL( self,COLOR_sorter___AbstractSorter___compare))( self, variable7, variable3 /*pivot*/) /*AbstractSorter::compare*/; - variable7 = TAG_Bool(UNTAG_Int(variable7)<=UNTAG_Int( TAG_Int(0))); - } - variable6 = variable7; - if (!UNTAG_Bool(variable6)) break; /* while*/ - variable4 = TAG_Int(UNTAG_Int(variable4)+UNTAG_Int( TAG_Int(1))) /*i*/; - continue_5: while(0); - } - break_5: while(0); - while (true) { /*while*/ - variable6 = TAG_Bool(UNTAG_Int( variable5 /*j*/)>UNTAG_Int( variable4 /*i*/)); - variable7 = variable6; - if (UNTAG_Bool(variable7)) { /* and */ - variable7 = variable5 /*j*/; - variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)=UNTAG_Int( TAG_Int(0))); } - variable6 = variable7; - if (!UNTAG_Bool(variable6)) break; /* while*/ - variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1))) /*j*/; - continue_7: while(0); - } - break_7: while(0); - variable6 = TAG_Bool(UNTAG_Int( variable5 /*j*/)>UNTAG_Int( variable4 /*i*/)); - if (UNTAG_Bool(variable6)) { /*if*/ - variable7 = variable4 /*i*/; - variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//sorter.nit:52 */ + if (UNTAG_Bool(REGB5)) { + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[3] = fra.me.REG[1]; + REGB5 = REGB3; + /* ./../lib/standard//collection//array.nit:245 */ + REGB4 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB5)val[UNTAG_Int(REGB5)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label4; + label4: while(0); + /* ./../lib/standard//collection//sorter.nit:52 */ + REGB5 = CALL_sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]); + REGB4 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4)); + } else { + /* ./../lib/standard//collection//sorter.nit:52 */ + REGB5 = TAG_Bool(false); + REGB4 = REGB5; + } + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4)); + /* ./../lib/standard//collection//sorter.nit:52 */ + REGB3 = REGB4; + } else { + goto label5; + } } - variable8 = variable9; - if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);} - variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/; - variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)]; - goto return_label9; - return_label9: while(false); - variable7 = variable8; - variable6 = variable7; - variable7 = variable5 /*j*/; - variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//sorter.nit:53 */ + if (UNTAG_Bool(REGB4)) { + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[3] = fra.me.REG[1]; + REGB4 = REGB2; + /* ./../lib/standard//collection//array.nit:245 */ + REGB5 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB5)) { + REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB5)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)val[UNTAG_Int(REGB4)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label6; + label6: while(0); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[4] = fra.me.REG[1]; + REGB4 = REGB3; + /* ./../lib/standard//collection//array.nit:245 */ + REGB5 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB5)) { + REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB5)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)val[UNTAG_Int(REGB4)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label7; + label7: while(0); + /* ./../lib/standard//collection//sorter.nit:55 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[4]); + /* ./../lib/standard//collection//sorter.nit:56 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[3]); } - variable8 = variable9; - if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);} - variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/; - variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)]; - goto return_label10; - return_label10: while(false); - variable7 = variable8; - ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/, variable4 /*i*/, variable7) /*Array::[]=*/; - ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/, variable5 /*j*/, variable6 /*t*/) /*Array::[]=*/; + } else { + /* ./../lib/standard//collection//sorter.nit:50 */ + goto label8; + } + } + label8: while(0); + /* ./../lib/standard//collection//sorter.nit:59 */ + REGB3 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3)); + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[3] = fra.me.REG[1]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB4 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); } - continue_4: while(0); + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB3)=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)val[UNTAG_Int(REGB3)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label9; + label9: while(0); + /* ./../lib/standard//collection//sorter.nit:59 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[3]); + /* ./../lib/standard//collection//sorter.nit:60 */ + REGB3 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:217 */ + REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3)); + /* ./../lib/standard//collection//sorter.nit:60 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]); + /* ./../lib/standard//collection//sorter.nit:61 */ + REGB3 = TAG_Int(2); + /* ./../lib/standard//kernel.nit:217 */ + REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3)); + /* ./../lib/standard//collection//sorter.nit:61 */ + CALL_sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB3); + /* ./../lib/standard//collection//sorter.nit:62 */ + CALL_sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2, REGB1); + stack_frame_head = fra.me.prev; return; } -void sorter___AbstractSorter___bubble_sort(val_t self, val_t param0, val_t param1, val_t param2) { - struct trace_t trace = {NULL, NULL, 65, LOCATE_sorter___AbstractSorter___bubble_sort}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - val_t variable7; - val_t variable8; - val_t variable9; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_sorter; - variable0 = param0; - variable1 = param1; - variable2 = param2; - variable3 = variable1 /*from*/; - while (true) { /*while*/ - variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)=UNTAG_Int( TAG_Int(0))); - variable8 = variable7; - if (UNTAG_Bool(variable8)) { /* and */ - variable8 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)=UNTAG_Int(REGB4)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB3)UNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable7)) { /*if*/ - variable4 = variable6 /*j*/ /*min=*/; - variable7 = variable6 /*j*/; - variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)val[UNTAG_Int(REGB3)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label1; + label1: while(0); + /* ./../lib/standard//collection//sorter.nit:72 */ + REGB3 = REGB0; + /* ./../lib/standard//collection//sorter.nit:73 */ + while(1) { + /* ./../lib/standard//kernel.nit:211 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//sorter.nit:73 */ + if (UNTAG_Bool(REGB4)) { + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[3] = fra.me.REG[1]; + REGB4 = REGB3; + /* ./../lib/standard//collection//array.nit:245 */ + REGB5 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB5)) { + REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB5)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)val[UNTAG_Int(REGB4)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label2; + label2: while(0); + /* ./../lib/standard//collection//sorter.nit:74 */ + REGB4 = CALL_sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]); + REGB5 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//sorter.nit:74 */ + if (UNTAG_Bool(REGB5)) { + /* ./../lib/standard//collection//sorter.nit:75 */ + REGB2 = REGB3; + /* ./../lib/standard//collection//array.nit:243 */ + fra.me.REG[3] = fra.me.REG[1]; + REGB5 = REGB3; + /* ./../lib/standard//collection//array.nit:245 */ + REGB4 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB4)) { + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB5)val[UNTAG_Int(REGB5)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label3; + label3: while(0); + /* ./../lib/standard//collection//sorter.nit:76 */ + fra.me.REG[2] = fra.me.REG[3]; + } + /* ./../lib/standard//collection//sorter.nit:78 */ + REGB5 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//sorter.nit:78 */ + REGB3 = REGB5; + } else { + /* ./../lib/standard//collection//sorter.nit:73 */ + goto label4; } - variable8 = variable9; - if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);} - variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/; - variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)]; - goto return_label17; - return_label17: while(false); - variable7 = variable8; - variable5 = variable7 /*min_v=*/; } - variable6 = TAG_Int(UNTAG_Int(variable6)+UNTAG_Int( TAG_Int(1))) /*j*/; - continue_15: while(0); - } - break_15: while(0); - variable7 = TAG_Bool(( variable4 /*min*/)!=( variable3 /*i*/)); - if (UNTAG_Bool(variable7)) { /*if*/ - variable7 = variable3 /*i*/; - variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable9 = variable8; - if (UNTAG_Bool(variable9)) { /* and */ - variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/; - variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)=UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB5)) { + REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB5)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB5 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label5; + label5: while(0); + /* ./../lib/standard//collection//sorter.nit:81 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[3]); + /* ./../lib/standard//collection//sorter.nit:82 */ + CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]); } - variable8 = variable9; - if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);} - variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/; - variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)]; - goto return_label18; - return_label18: while(false); - variable7 = variable8; - ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/, variable4 /*min*/, variable7) /*Array::[]=*/; - ((array___Array_____braeq_t)CALL( variable0 /*array*/,COLOR_abstract_collection___Map_____braeq))( variable0 /*array*/, variable3 /*i*/, variable5 /*min_v*/) /*Array::[]=*/; + /* ./../lib/standard//collection//sorter.nit:84 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//sorter.nit:84 */ + REGB0 = REGB2; + } else { + /* ./../lib/standard//collection//sorter.nit:69 */ + goto label6; } - variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( TAG_Int(1))) /*i*/; - continue_13: while(0); } - break_13: while(0); - tracehead = trace.prev; + label6: while(0); + stack_frame_head = fra.me.prev; return; } -void sorter___AbstractSorter___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 0, LOCATE_sorter___AbstractSorter___init}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_sorter; - tracehead = trace.prev; +void sorter___AbstractSorter___init(val_t p0, int* init_table){ + int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AbstractSorter].i; + struct {struct stack_frame_t me;} fra; + val_t tmp; + if (init_table[itpos0]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_sorter; + fra.me.line = 0; + fra.me.meth = LOCATE_sorter___AbstractSorter___init; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + stack_frame_head = fra.me.prev; + init_table[itpos0] = 1; return; } -val_t sorter___ComparableSorter___compare(val_t self, val_t param0, val_t param1) { - struct trace_t trace = {NULL, NULL, 93, LOCATE_sorter___ComparableSorter___compare}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_sorter; - variable0 = param0; - variable1 = param1; - variable2 = ((kernel___Comparable_____leqg_t)CALL( variable0 /*a*/,COLOR_kernel___Comparable_____leqg))( variable0 /*a*/, variable1 /*b*/) /*Comparable::<=>*/; - goto return_label19; - return_label19: while(false); - tracehead = trace.prev; - return variable2; +val_t sorter___ComparableSorter___compare(val_t p0, val_t p1, val_t p2){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_sorter; + fra.me.line = 93; + fra.me.meth = LOCATE_sorter___ComparableSorter___compare; + fra.me.has_broke = 0; + fra.me.REG_size = 3; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + /* ./../lib/standard//collection//sorter.nit:94 */ + REGB0 = CALL_kernel___Comparable_____leqg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; } -void sorter___ComparableSorter___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, NULL, 96, LOCATE_sorter___ComparableSorter___init}; - trace.prev = tracehead; tracehead = &trace; - trace.file = LOCATE_sorter; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ComparableSorter].i]) return; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ComparableSorter].i] = 1; - tracehead = trace.prev; +void sorter___ComparableSorter___init(val_t p0, int* init_table){ + int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ComparableSorter].i; + struct {struct stack_frame_t me;} fra; + val_t tmp; + if (init_table[itpos1]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_sorter; + fra.me.line = 96; + fra.me.meth = LOCATE_sorter___ComparableSorter___init; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + /* ./../lib/standard//collection//sorter.nit:96 */ + CALL_sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos1] = 1; return; }