+val_t string_search___BM_Pattern___to_s(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_string_search;
+ fra.me.line = 67;
+ fra.me.meth = LOCATE_string_search___BM_Pattern___to_s;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./../lib/standard//string_search.nit:67 */
+ REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_motif", LOCATE_string_search, 67);
+ }
+ fra.me.REG[0] = ATTR_string_search___BM_Pattern____motif(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t string_search___BM_Pattern___search_index_in(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t REGB2;
+ val_t REGB3;
+ val_t REGB4;
+ val_t REGB5;
+ val_t REGB6;
+ val_t REGB7;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_string_search;
+ fra.me.line = 69;
+ fra.me.meth = LOCATE_string_search___BM_Pattern___search_index_in;
+ 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 = p2;
+ /* ./../lib/standard//string_search.nit:72 */
+ REGB1 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+ /* ./../lib/standard//string_search.nit:72 */
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_string_search, 72);
+ }
+ /* ./../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//string_search.nit:74 */
+ REGB2 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_string_search, 74);
+ }
+ REGB2 = ATTR_string_search___BM_Pattern____length(fra.me.REG[0]);
+ /* ./../lib/standard//string_search.nit:77 */
+ while(1) {
+ /* ./../lib/standard//kernel.nit:217 */
+ REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
+ /* ./../lib/standard//string_search.nit:77 */
+ REGB4 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB4 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB4));
+ /* ./../lib/standard//string_search.nit:77 */
+ if (UNTAG_Bool(REGB4)) {
+ /* ./../lib/standard//string_search.nit:78 */
+ REGB4 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:217 */
+ REGB4 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB4));
+ /* ./../lib/standard//string_search.nit:79 */
+ while(1) {
+ REGB3 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB3 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB3));
+ /* ./../lib/standard//string_search.nit:79 */
+ if (UNTAG_Bool(REGB3)) {
+ REGB3 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_motif", LOCATE_string_search, 79);
+ }
+ fra.me.REG[2] = ATTR_string_search___BM_Pattern____motif(fra.me.REG[0]);
+ REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB4);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
+ /* ./../lib/standard//string_search.nit:79 */
+ REGB5 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB5);
+ REGB6 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB5));
+ if (UNTAG_Bool(REGB6)) {
+ } else {
+ /* ./../lib/standard//kernel.nit:347 */
+ REGB5 = TAG_Bool((REGB3)==(REGB5));
+ /* ./../lib/standard//string_search.nit:79 */
+ REGB6 = REGB5;
+ }
+ } else {
+ REGB5 = TAG_Bool(false);
+ REGB6 = REGB5;
+ }
+ if (UNTAG_Bool(REGB6)) {
+ REGB6 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:217 */
+ REGB6 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB6));
+ /* ./../lib/standard//string_search.nit:79 */
+ REGB4 = REGB6;
+ } else {
+ goto label1;
+ }
+ }
+ label1: while(0);
+ /* ./../lib/standard//string_search.nit:80 */
+ REGB6 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB6 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB6));
+ /* ./../lib/standard//string_search.nit:80 */
+ if (UNTAG_Bool(REGB6)) {
+ /* ./../lib/standard//string_search.nit:81 */
+ REGB6 = REGB0;
+ goto label2;
+ } else {
+ /* ./../lib/standard//string_search.nit:83 */
+ REGB5 = TAG_Bool(ATTR_string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB5)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_gs", LOCATE_string_search, 83);
+ }
+ fra.me.REG[2] = ATTR_string_search___BM_Pattern____gs(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:243 */
+ REGB5 = REGB4;
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB3 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB3 = TAG_Bool(UNTAG_Int(REGB5)>=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(REGB5)<UNTAG_Int(REGB3));
+ } else {
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB7 = TAG_Bool(false);
+ REGB3 = REGB7;
+ }
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
+ }
+ /* ./../lib/standard//collection//array.nit:246 */
+ fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
+ REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ nit_abort("Reciever is null", NULL, LOCATE_array, 246);
+ }
+ /* ./../lib/standard//collection//array.nit:654 */
+ fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
+ /* ./../lib/standard//collection//array.nit:246 */
+ goto label3;
+ label3: while(0);
+ /* ./../lib/standard//string_search.nit:83 */
+ REGB5 = fra.me.REG[2];
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB3 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
+ /* ./../lib/standard//string_search.nit:84 */
+ REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB3);
+ REGB3 = CALL_string_search___BM_Pattern___bc(fra.me.REG[0])(fra.me.REG[0], REGB3);
+ /* ./../lib/standard//kernel.nit:217 */
+ REGB3 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
+ /* ./../lib/standard//string_search.nit:84 */
+ REGB7 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB7 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB7));
+ REGB4 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB4));
+ /* ./../lib/standard//kernel.nit:214 */
+ REGB7 = TAG_Bool(UNTAG_Int(REGB5)>UNTAG_Int(REGB4));
+ /* ./../lib/standard//string_search.nit:86 */
+ if (UNTAG_Bool(REGB7)) {
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
+ /* ./../lib/standard//string_search.nit:87 */
+ REGB0 = REGB5;
+ } else {
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
+ /* ./../lib/standard//string_search.nit:89 */
+ REGB0 = REGB4;
+ }
+ }
+ } else {
+ /* ./../lib/standard//string_search.nit:77 */
+ goto label4;
+ }
+ }
+ label4: while(0);
+ /* ./../lib/standard//string_search.nit:93 */
+ REGB0 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:216 */
+ REGB0 = TAG_Int(-UNTAG_Int(REGB0));
+ /* ./../lib/standard//string_search.nit:93 */
+ REGB6 = REGB0;
+ goto label2;
+ label2: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB6;