static int r_remove_tense_suffix()

in src/backend/snowball/libstemmer/stem_UTF_8_tamil.c [1498:1805]


static int r_remove_tense_suffix(struct SN_env * z) {
    z->I[1] = 0;
    {   int ret = r_has_min_length(z);
        if (ret <= 0) return ret;
    }
    z->lb = z->c; z->c = z->l;

    {   int m1 = z->l - z->c; (void)m1;
        {   int m2 = z->l - z->c; (void)m2;
            {   int m_test3 = z->l - z->c;
                z->ket = z->c;
                if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 141)) goto lab2;
                if (!(find_among_b(z, a_22, 2))) goto lab2;
                z->bra = z->c;
                {   int ret = slice_del(z);
                    if (ret < 0) return ret;
                }
                z->I[1] = 1;
                z->c = z->l - m_test3;
            }
            goto lab1;
        lab2:
            z->c = z->l - m2;
            {   int m_test4 = z->l - z->c;
                z->ket = z->c;
                {   int m5 = z->l - z->c; (void)m5;
                    if (!(eq_s_b(z, 12, s_104))) goto lab5;
                    goto lab4;
                lab5:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_105))) goto lab6;
                    goto lab4;
                lab6:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_106))) goto lab7;
                    goto lab4;
                lab7:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_107))) goto lab8;
                    goto lab4;
                lab8:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_108))) goto lab9;
                    goto lab4;
                lab9:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_109))) goto lab10;
                    goto lab4;
                lab10:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_110))) goto lab11;
                    {   int m_test6 = z->l - z->c;
                        {   int m7 = z->l - z->c; (void)m7;
                            if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12;
                            if (!(find_among_b(z, a_23, 12))) goto lab12;
                            goto lab11;
                        lab12:
                            z->c = z->l - m7;
                        }
                        z->c = z->l - m_test6;
                    }
                    goto lab4;
                lab11:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_111))) goto lab13;
                    goto lab4;
                lab13:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_112))) goto lab14;
                    goto lab4;
                lab14:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_113))) goto lab15;
                    goto lab4;
                lab15:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_114))) goto lab16;
                    goto lab4;
                lab16:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 3, s_115))) goto lab17;
                    goto lab4;
                lab17:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 3, s_116))) goto lab18;
                    goto lab4;
                lab18:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 3, s_117))) goto lab19;
                    goto lab4;
                lab19:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 3, s_118))) goto lab20;
                    goto lab4;
                lab20:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 3, s_119))) goto lab21;
                    goto lab4;
                lab21:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_120))) goto lab22;
                    goto lab4;
                lab22:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_121))) goto lab23;
                    goto lab4;
                lab23:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_122))) goto lab24;
                    goto lab4;
                lab24:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 6, s_123))) goto lab25;
                    {   int m_test8 = z->l - z->c;
                        {   int m9 = z->l - z->c; (void)m9;
                            if (!(find_among_b(z, a_24, 8))) goto lab26;
                            goto lab25;
                        lab26:
                            z->c = z->l - m9;
                        }
                        z->c = z->l - m_test8;
                    }
                    goto lab4;
                lab25:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 15, s_124))) goto lab27;
                    goto lab4;
                lab27:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_125))) goto lab28;
                    goto lab4;
                lab28:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 9, s_126))) goto lab29;
                    goto lab4;
                lab29:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_127))) goto lab30;
                    goto lab4;
                lab30:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_128))) goto lab31;
                    goto lab4;
                lab31:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_129))) goto lab32;
                    goto lab4;
                lab32:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 12, s_130))) goto lab33;
                    goto lab4;
                lab33:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 6, s_131))) goto lab34;
                    goto lab4;
                lab34:
                    z->c = z->l - m5;
                    if (!(eq_s_b(z, 6, s_132))) goto lab3;
                }
            lab4:
                z->bra = z->c;
                {   int ret = slice_del(z);
                    if (ret < 0) return ret;
                }
                z->I[1] = 1;
                z->c = z->l - m_test4;
            }
            goto lab1;
        lab3:
            z->c = z->l - m2;
            {   int m_test10 = z->l - z->c;
                z->ket = z->c;
                {   int m11 = z->l - z->c; (void)m11;
                    if (!(eq_s_b(z, 9, s_133))) goto lab37;
                    {   int m_test12 = z->l - z->c;
                        {   int m13 = z->l - z->c; (void)m13;
                            if (!(eq_s_b(z, 3, s_134))) goto lab38;
                            goto lab37;
                        lab38:
                            z->c = z->l - m13;
                        }
                        z->c = z->l - m_test12;
                    }
                    goto lab36;
                lab37:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_135))) goto lab39;
                    goto lab36;
                lab39:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_136))) goto lab40;
                    goto lab36;
                lab40:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_137))) goto lab41;
                    goto lab36;
                lab41:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 3, s_138))) goto lab42;
                    goto lab36;
                lab42:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_139))) goto lab43;
                    goto lab36;
                lab43:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_140))) goto lab44;
                    goto lab36;
                lab44:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_141))) goto lab45;
                    goto lab36;
                lab45:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_142))) goto lab46;
                    goto lab36;
                lab46:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 12, s_143))) goto lab47;
                    goto lab36;
                lab47:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 12, s_144))) goto lab48;
                    goto lab36;
                lab48:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 12, s_145))) goto lab49;
                    goto lab36;
                lab49:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 12, s_146))) goto lab50;
                    goto lab36;
                lab50:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_147))) goto lab51;
                    goto lab36;
                lab51:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 12, s_148))) goto lab52;
                    goto lab36;
                lab52:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 12, s_149))) goto lab53;
                    goto lab36;
                lab53:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 9, s_150))) goto lab54;
                    goto lab36;
                lab54:
                    z->c = z->l - m11;
                    if (!(eq_s_b(z, 12, s_151))) goto lab35;
                }
            lab36:
                z->bra = z->c;
                {   int ret = slice_from_s(z, 3, s_152);
                    if (ret < 0) return ret;
                }
                z->I[1] = 1;
                z->c = z->l - m_test10;
            }
            goto lab1;
        lab35:
            z->c = z->l - m2;
            {   int m_test14 = z->l - z->c;
                z->ket = z->c;
                {   int m15 = z->l - z->c; (void)m15;
                    if (!(eq_s_b(z, 6, s_153))) goto lab56;
                    goto lab55;
                lab56:
                    z->c = z->l - m15;
                    if (!(eq_s_b(z, 6, s_154))) goto lab0;
                }
            lab55:
                {   int m_test16 = z->l - z->c;
                    if (!(eq_s_b(z, 3, s_155))) goto lab0;
                    z->c = z->l - m_test16;
                }
                z->bra = z->c;
                {   int ret = slice_del(z);
                    if (ret < 0) return ret;
                }
                z->I[1] = 1;
                z->c = z->l - m_test14;
            }
        }
    lab1:
    lab0:
        z->c = z->l - m1;
    }
    {   int m17 = z->l - z->c; (void)m17;
        z->ket = z->c;
        if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab57;
        if (!(find_among_b(z, a_25, 6))) goto lab57;
        z->bra = z->c;
        {   int ret = slice_del(z);
            if (ret < 0) return ret;
        }
        z->I[1] = 1;
    lab57:
        z->c = z->l - m17;
    }
    z->c = z->lb;
    
    {   int ret = r_fix_endings(z);
        if (ret < 0) return ret;
    }
    return 1;
}