in src/backend/snowball/libstemmer/stem_UTF_8_tamil.c [770:1002]
static int r_fix_ending(struct SN_env * z) {
if (!(len_utf8(z->p) > 3)) return 0;
z->lb = z->c; z->c = z->l;
{ int m1 = z->l - z->c; (void)m1;
z->ket = z->c;
if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 164)) goto lab1;
if (!(find_among_b(z, a_1, 3))) goto lab1;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab0;
lab1:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 6, s_14))) goto lab2;
{ int m_test2 = z->l - z->c;
if (!(find_among_b(z, a_2, 3))) goto lab2;
z->c = z->l - m_test2;
}
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab0;
lab2:
z->c = z->l - m1;
z->ket = z->c;
{ int m3 = z->l - z->c; (void)m3;
if (!(eq_s_b(z, 12, s_15))) goto lab5;
goto lab4;
lab5:
z->c = z->l - m3;
if (!(eq_s_b(z, 12, s_16))) goto lab3;
}
lab4:
z->bra = z->c;
{ int ret = slice_from_s(z, 6, s_17);
if (ret < 0) return ret;
}
goto lab0;
lab3:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 12, s_18))) goto lab6;
z->bra = z->c;
{ int ret = slice_from_s(z, 6, s_19);
if (ret < 0) return ret;
}
goto lab0;
lab6:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 12, s_20))) goto lab7;
z->bra = z->c;
{ int ret = slice_from_s(z, 6, s_21);
if (ret < 0) return ret;
}
goto lab0;
lab7:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 12, s_22))) goto lab8;
z->bra = z->c;
{ int ret = slice_from_s(z, 6, s_23);
if (ret < 0) return ret;
}
goto lab0;
lab8:
z->c = z->l - m1;
if (!(z->I[0])) goto lab9;
z->ket = z->c;
if (!(eq_s_b(z, 12, s_24))) goto lab9;
{ int m_test4 = z->l - z->c;
{ int m5 = z->l - z->c; (void)m5;
if (!(eq_s_b(z, 3, s_25))) goto lab10;
goto lab9;
lab10:
z->c = z->l - m5;
}
z->c = z->l - m_test4;
}
z->bra = z->c;
{ int ret = slice_from_s(z, 6, s_26);
if (ret < 0) return ret;
}
z->bra = z->c;
goto lab0;
lab9:
z->c = z->l - m1;
z->ket = z->c;
{ int m6 = z->l - z->c; (void)m6;
if (!(eq_s_b(z, 9, s_27))) goto lab13;
goto lab12;
lab13:
z->c = z->l - m6;
if (!(eq_s_b(z, 15, s_28))) goto lab11;
}
lab12:
z->bra = z->c;
{ int ret = slice_from_s(z, 3, s_29);
if (ret < 0) return ret;
}
goto lab0;
lab11:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 3, s_30))) goto lab14;
if (!(find_among_b(z, a_3, 6))) goto lab14;
if (!(eq_s_b(z, 3, s_31))) goto lab14;
if (!(find_among_b(z, a_4, 6))) goto lab14;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab0;
lab14:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 9, s_32))) goto lab15;
z->bra = z->c;
{ int ret = slice_from_s(z, 3, s_33);
if (ret < 0) return ret;
}
goto lab0;
lab15:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 3, s_34))) goto lab16;
if (!(find_among_b(z, a_5, 6))) goto lab16;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab0;
lab16:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 3, s_35))) goto lab17;
{ int m7 = z->l - z->c; (void)m7;
if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((4030464 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab19;
if (!(find_among_b(z, a_6, 6))) goto lab19;
goto lab18;
lab19:
z->c = z->l - m7;
if (!(find_among_b(z, a_7, 6))) goto lab17;
}
lab18:
if (!(eq_s_b(z, 3, s_36))) goto lab17;
z->bra = z->c;
{ int ret = slice_from_s(z, 3, s_37);
if (ret < 0) return ret;
}
goto lab0;
lab17:
z->c = z->l - m1;
z->ket = z->c;
if (!(find_among_b(z, a_8, 3))) goto lab20;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab0;
lab20:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 6, s_38))) goto lab21;
{ int m_test8 = z->l - z->c;
{ int m9 = z->l - z->c; (void)m9;
if (!(find_among_b(z, a_9, 8))) goto lab22;
goto lab21;
lab22:
z->c = z->l - m9;
}
z->c = z->l - m_test8;
}
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab0;
lab21:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 6, s_39))) goto lab23;
{ int m_test10 = z->l - z->c;
{ int m11 = z->l - z->c; (void)m11;
if (!(eq_s_b(z, 3, s_40))) goto lab24;
goto lab23;
lab24:
z->c = z->l - m11;
}
z->c = z->l - m_test10;
}
z->bra = z->c;
{ int ret = slice_from_s(z, 6, s_41);
if (ret < 0) return ret;
}
goto lab0;
lab23:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 6, s_42))) goto lab25;
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
goto lab0;
lab25:
z->c = z->l - m1;
z->ket = z->c;
if (!(eq_s_b(z, 3, s_43))) return 0;
{ int m_test12 = z->l - z->c;
{ int m13 = z->l - z->c; (void)m13;
if (!(find_among_b(z, a_10, 8))) goto lab27;
goto lab26;
lab27:
z->c = z->l - m13;
if (!(eq_s_b(z, 3, s_44))) return 0;
}
lab26:
z->c = z->l - m_test12;
}
z->bra = z->c;
{ int ret = slice_del(z);
if (ret < 0) return ret;
}
}
lab0:
z->c = z->lb;
return 1;
}