All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tartarus.snowball.ext.tamilStemmer Maven / Gradle / Ivy

The newest version!
// This file was generated automatically by the Snowball to Java compiler
// http://snowballstem.org/

package org.tartarus.snowball.ext;

import org.tartarus.snowball.Among;

 /**
  * This class was automatically generated by a Snowball to Java compiler
  * It implements the stemming algorithm defined by a snowball script.
  */

public class tamilStemmer extends org.tartarus.snowball.SnowballStemmer {

    private static final long serialVersionUID = 1L;

    private final static Among a_0[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B99", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9E", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BA8", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BAE", -1, -1 ),
        new Among ( "\u0BAF", -1, -1 ),
        new Among ( "\u0BB5", -1, -1 )
    };

    private final static Among a_1[] = {
        new Among ( "\u0BA8\u0BCD\u0BA4", -1, -1 ),
        new Among ( "\u0BA8\u0BCD\u0BA4\u0BCD", -1, -1 ),
        new Among ( "\u0BA8\u0BCD", -1, -1 )
    };

    private final static Among a_2[] = {
        new Among ( "\u0BBF", -1, -1 ),
        new Among ( "\u0BC0", -1, -1 ),
        new Among ( "\u0BC8", -1, -1 )
    };

    private final static Among a_3[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9F", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BB1", -1, -1 )
    };

    private final static Among a_4[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9F", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BB1", -1, -1 )
    };

    private final static Among a_5[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9F", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BB1", -1, -1 )
    };

    private final static Among a_6[] = {
        new Among ( "\u0BAF", -1, -1 ),
        new Among ( "\u0BB0", -1, -1 ),
        new Among ( "\u0BB2", -1, -1 ),
        new Among ( "\u0BB3", -1, -1 ),
        new Among ( "\u0BB4", -1, -1 ),
        new Among ( "\u0BB5", -1, -1 )
    };

    private final static Among a_7[] = {
        new Among ( "\u0B99", -1, -1 ),
        new Among ( "\u0B9E", -1, -1 ),
        new Among ( "\u0BA3", -1, -1 ),
        new Among ( "\u0BA8", -1, -1 ),
        new Among ( "\u0BA9", -1, -1 ),
        new Among ( "\u0BAE", -1, -1 )
    };

    private final static Among a_8[] = {
        new Among ( "\u0BAF", -1, -1 ),
        new Among ( "\u0BB5", -1, -1 ),
        new Among ( "\u0BB5\u0BCD", -1, -1 )
    };

    private final static Among a_9[] = {
        new Among ( "\u0BBE", -1, -1 ),
        new Among ( "\u0BBF", -1, -1 ),
        new Among ( "\u0BC0", -1, -1 ),
        new Among ( "\u0BC1", -1, -1 ),
        new Among ( "\u0BC2", -1, -1 ),
        new Among ( "\u0BC6", -1, -1 ),
        new Among ( "\u0BC7", -1, -1 ),
        new Among ( "\u0BC8", -1, -1 )
    };

    private final static Among a_10[] = {
        new Among ( "\u0BBE", -1, -1 ),
        new Among ( "\u0BBF", -1, -1 ),
        new Among ( "\u0BC0", -1, -1 ),
        new Among ( "\u0BC1", -1, -1 ),
        new Among ( "\u0BC2", -1, -1 ),
        new Among ( "\u0BC6", -1, -1 ),
        new Among ( "\u0BC7", -1, -1 ),
        new Among ( "\u0BC8", -1, -1 )
    };

    private final static Among a_11[] = {
        new Among ( "\u0B85", -1, -1 ),
        new Among ( "\u0B87", -1, -1 ),
        new Among ( "\u0B89", -1, -1 )
    };

    private final static Among a_12[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B99", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9E", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BA8", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BAE", -1, -1 ),
        new Among ( "\u0BAF", -1, -1 ),
        new Among ( "\u0BB5", -1, -1 )
    };

    private final static Among a_13[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9F", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BB1", -1, -1 )
    };

    private final static Among a_14[] = {
        new Among ( "\u0BBE", -1, -1 ),
        new Among ( "\u0BC7", -1, -1 ),
        new Among ( "\u0BCB", -1, -1 )
    };

    private final static Among a_15[] = {
        new Among ( "\u0BAA\u0BBF", -1, -1 ),
        new Among ( "\u0BB5\u0BBF", -1, -1 )
    };

    private final static Among a_16[] = {
        new Among ( "\u0BBE", -1, -1 ),
        new Among ( "\u0BBF", -1, -1 ),
        new Among ( "\u0BC0", -1, -1 ),
        new Among ( "\u0BC1", -1, -1 ),
        new Among ( "\u0BC2", -1, -1 ),
        new Among ( "\u0BC6", -1, -1 ),
        new Among ( "\u0BC7", -1, -1 ),
        new Among ( "\u0BC8", -1, -1 )
    };

    private final static Among a_17[] = {
        new Among ( "\u0BAA\u0B9F\u0BCD\u0B9F", -1, -1 ),
        new Among ( "\u0BAA\u0B9F\u0BCD\u0B9F\u0BA3", -1, -1 ),
        new Among ( "\u0BA4\u0BBE\u0BA9", -1, -1 ),
        new Among ( "\u0BAA\u0B9F\u0BBF\u0BA4\u0BBE\u0BA9", 2, -1 ),
        new Among ( "\u0B95\u0BC1\u0BB0\u0BBF\u0BAF", -1, -1 ),
        new Among ( "\u0BAA\u0B9F\u0BBF", -1, -1 ),
        new Among ( "\u0BAA\u0BB1\u0BCD\u0BB1\u0BBF", -1, -1 ),
        new Among ( "\u0BAA\u0B9F\u0BC1", -1, -1 ),
        new Among ( "\u0BB5\u0BBF\u0B9F\u0BC1", -1, -1 ),
        new Among ( "\u0BAA\u0B9F\u0BCD\u0B9F\u0BC1", -1, -1 ),
        new Among ( "\u0BB5\u0BBF\u0B9F\u0BCD\u0B9F\u0BC1", -1, -1 ),
        new Among ( "\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1", -1, -1 ),
        new Among ( "\u0BC6\u0BB2\u0BCD\u0BB2\u0BBE\u0BAE\u0BCD", -1, -1 )
    };

    private final static Among a_18[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9F", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BB1", -1, -1 )
    };

    private final static Among a_19[] = {
        new Among ( "\u0B95", -1, -1 ),
        new Among ( "\u0B9A", -1, -1 ),
        new Among ( "\u0B9F", -1, -1 ),
        new Among ( "\u0BA4", -1, -1 ),
        new Among ( "\u0BAA", -1, -1 ),
        new Among ( "\u0BB1", -1, -1 )
    };

    private final static Among a_20[] = {
        new Among ( "\u0BBE", -1, -1 ),
        new Among ( "\u0BBF", -1, -1 ),
        new Among ( "\u0BC0", -1, -1 ),
        new Among ( "\u0BC1", -1, -1 ),
        new Among ( "\u0BC2", -1, -1 ),
        new Among ( "\u0BC6", -1, -1 ),
        new Among ( "\u0BC7", -1, -1 ),
        new Among ( "\u0BC8", -1, -1 )
    };

    private final static Among a_21[] = {
        new Among ( "\u0BBE", -1, -1 ),
        new Among ( "\u0BBF", -1, -1 ),
        new Among ( "\u0BC0", -1, -1 ),
        new Among ( "\u0BC1", -1, -1 ),
        new Among ( "\u0BC2", -1, -1 ),
        new Among ( "\u0BC6", -1, -1 ),
        new Among ( "\u0BC7", -1, -1 ),
        new Among ( "\u0BC8", -1, -1 )
    };

    private final static Among a_22[] = {
        new Among ( "\u0BAA\u0B9F\u0BC1", -1, -1 ),
        new Among ( "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BCD", -1, -1 )
    };

    private final static Among a_23[] = {
        new Among ( "\u0B85", -1, -1 ),
        new Among ( "\u0B86", -1, -1 ),
        new Among ( "\u0B87", -1, -1 ),
        new Among ( "\u0B88", -1, -1 ),
        new Among ( "\u0B89", -1, -1 ),
        new Among ( "\u0B8A", -1, -1 ),
        new Among ( "\u0B8E", -1, -1 ),
        new Among ( "\u0B8F", -1, -1 ),
        new Among ( "\u0B90", -1, -1 ),
        new Among ( "\u0B92", -1, -1 ),
        new Among ( "\u0B93", -1, -1 ),
        new Among ( "\u0B94", -1, -1 )
    };

    private final static Among a_24[] = {
        new Among ( "\u0BBE", -1, -1 ),
        new Among ( "\u0BBF", -1, -1 ),
        new Among ( "\u0BC0", -1, -1 ),
        new Among ( "\u0BC1", -1, -1 ),
        new Among ( "\u0BC2", -1, -1 ),
        new Among ( "\u0BC6", -1, -1 ),
        new Among ( "\u0BC7", -1, -1 ),
        new Among ( "\u0BC8", -1, -1 )
    };

    private final static Among a_25[] = {
        new Among ( "\u0B95\u0BBF\u0BB1", -1, -1 ),
        new Among ( "\u0B95\u0BBF\u0BA9\u0BCD\u0BB1", -1, -1 ),
        new Among ( "\u0BBE\u0BA8\u0BBF\u0BA9\u0BCD\u0BB1", -1, -1 ),
        new Among ( "\u0B95\u0BBF\u0BB1\u0BCD", -1, -1 ),
        new Among ( "\u0B95\u0BBF\u0BA9\u0BCD\u0BB1\u0BCD", -1, -1 ),
        new Among ( "\u0BBE\u0BA8\u0BBF\u0BA9\u0BCD\u0BB1\u0BCD", -1, -1 )
    };

    private int I_length;
    private boolean B_found_wrong_ending;
    private boolean B_found_vetrumai_urupu;
    private boolean B_found_a_match;


    private boolean r_has_min_length() {
        // (, line 104
        I_length = (current.length());
        if (!(I_length > 4))
        {
            return false;
        }
        return true;
    }

    private boolean r_fix_va_start() {
        int v_1;
        int v_2;
        int v_3;
        int v_4;
        int v_5;
        int v_6;
        int v_7;
        int v_8;
        int v_9;
        // (, line 109
        // or, line 110
        lab0: do {
            v_1 = cursor;
            lab1: do {
                // (, line 110
                // and, line 110
                v_2 = cursor;
                // try, line 110
                v_3 = cursor;
                lab2: do {
                    // literal, line 110
                    if (!(eq_s("\u0BB5\u0BCB")))
                    {
                        cursor = v_3;
                        break lab2;
                    }
                } while (false);
                cursor = v_2;
                // [, line 110
                bra = cursor;
                // literal, line 110
                if (!(eq_s("\u0BB5\u0BCB")))
                {
                    break lab1;
                }
                // ], line 110
                ket = cursor;
                // <-, line 110
                slice_from("\u0B93");
                break lab0;
            } while (false);
            cursor = v_1;
            lab3: do {
                // (, line 111
                // and, line 111
                v_4 = cursor;
                // try, line 111
                v_5 = cursor;
                lab4: do {
                    // literal, line 111
                    if (!(eq_s("\u0BB5\u0BCA")))
                    {
                        cursor = v_5;
                        break lab4;
                    }
                } while (false);
                cursor = v_4;
                // [, line 111
                bra = cursor;
                // literal, line 111
                if (!(eq_s("\u0BB5\u0BCA")))
                {
                    break lab3;
                }
                // ], line 111
                ket = cursor;
                // <-, line 111
                slice_from("\u0B92");
                break lab0;
            } while (false);
            cursor = v_1;
            lab5: do {
                // (, line 112
                // and, line 112
                v_6 = cursor;
                // try, line 112
                v_7 = cursor;
                lab6: do {
                    // literal, line 112
                    if (!(eq_s("\u0BB5\u0BC1")))
                    {
                        cursor = v_7;
                        break lab6;
                    }
                } while (false);
                cursor = v_6;
                // [, line 112
                bra = cursor;
                // literal, line 112
                if (!(eq_s("\u0BB5\u0BC1")))
                {
                    break lab5;
                }
                // ], line 112
                ket = cursor;
                // <-, line 112
                slice_from("\u0B89");
                break lab0;
            } while (false);
            cursor = v_1;
            // (, line 113
            // and, line 113
            v_8 = cursor;
            // try, line 113
            v_9 = cursor;
            lab7: do {
                // literal, line 113
                if (!(eq_s("\u0BB5\u0BC2")))
                {
                    cursor = v_9;
                    break lab7;
                }
            } while (false);
            cursor = v_8;
            // [, line 113
            bra = cursor;
            // literal, line 113
            if (!(eq_s("\u0BB5\u0BC2")))
            {
                return false;
            }
            // ], line 113
            ket = cursor;
            // <-, line 113
            slice_from("\u0B8A");
        } while (false);
        return true;
    }

    private boolean r_fix_endings() {
        int v_1;
        int v_2;
        // (, line 116
        // set found_wrong_ending, line 117
        B_found_wrong_ending = true;
        // repeat, line 118
        replab0: while(true)
        {
            v_1 = cursor;
            lab1: do {
                // (, line 118
                // Boolean test found_wrong_ending, line 118
                if (!(B_found_wrong_ending))
                {
                    break lab1;
                }
                // (, line 118
                // do, line 118
                v_2 = cursor;
                lab2: do {
                    // call fix_ending, line 118
                    if (!r_fix_ending())
                    {
                        break lab2;
                    }
                } while (false);
                cursor = v_2;
                continue replab0;
            } while (false);
            cursor = v_1;
            break replab0;
        }
        return true;
    }

    private boolean r_remove_question_prefixes() {
        int v_1;
        // (, line 121
        // [, line 122
        bra = cursor;
        // (, line 122
        // literal, line 122
        if (!(eq_s("\u0B8E")))
        {
            return false;
        }
        // among, line 122
        if (find_among(a_0) == 0)
        {
            return false;
        }
        // literal, line 122
        if (!(eq_s("\u0BCD")))
        {
            return false;
        }
        // ], line 122
        ket = cursor;
        // delete, line 122
        slice_del();
        // do, line 123
        v_1 = cursor;
        lab0: do {
            // call fix_va_start, line 123
            if (!r_fix_va_start())
            {
                break lab0;
            }
        } while (false);
        cursor = v_1;
        return true;
    }

    private boolean r_fix_ending() {
        int v_1;
        int v_2;
        int v_3;
        int v_4;
        int v_5;
        int v_6;
        int v_7;
        int v_8;
        int v_9;
        int v_10;
        int v_11;
        int v_12;
        int v_13;
        // (, line 126
        // unset found_wrong_ending, line 127
        B_found_wrong_ending = false;
        I_length = (current.length());
        if (!(I_length > 3))
        {
            return false;
        }
        // backwards, line 130
        limit_backward = cursor; cursor = limit;
        // (, line 130
        // or, line 132
        lab0: do {
            v_1 = limit - cursor;
            lab1: do {
                // (, line 131
                // [, line 131
                ket = cursor;
                // among, line 131
                if (find_among_b(a_1) == 0)
                {
                    break lab1;
                }
                // ], line 131
                bra = cursor;
                // delete, line 131
                slice_del();
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab2: do {
                // (, line 133
                // [, line 133
                ket = cursor;
                // literal, line 133
                if (!(eq_s_b("\u0BAF\u0BCD")))
                {
                    break lab2;
                }
                // test, line 133
                v_2 = limit - cursor;
                // among, line 133
                if (find_among_b(a_2) == 0)
                {
                    break lab2;
                }
                cursor = limit - v_2;
                // ], line 133
                bra = cursor;
                // delete, line 133
                slice_del();
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab3: do {
                // (, line 135
                // [, line 135
                ket = cursor;
                // or, line 135
                lab4: do {
                    v_3 = limit - cursor;
                    lab5: do {
                        // literal, line 135
                        if (!(eq_s_b("\u0B9F\u0BCD\u0BAA\u0BCD")))
                        {
                            break lab5;
                        }
                        break lab4;
                    } while (false);
                    cursor = limit - v_3;
                    // literal, line 135
                    if (!(eq_s_b("\u0B9F\u0BCD\u0B95\u0BCD")))
                    {
                        break lab3;
                    }
                } while (false);
                // ], line 135
                bra = cursor;
                // <-, line 135
                slice_from("\u0BB3\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab6: do {
                // (, line 137
                // [, line 137
                ket = cursor;
                // literal, line 137
                if (!(eq_s_b("\u0BA9\u0BCD\u0BB1\u0BCD")))
                {
                    break lab6;
                }
                // ], line 137
                bra = cursor;
                // <-, line 137
                slice_from("\u0BB2\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab7: do {
                // (, line 140
                // [, line 140
                ket = cursor;
                // literal, line 140
                if (!(eq_s_b("\u0BB1\u0BCD\u0B95\u0BCD")))
                {
                    break lab7;
                }
                // ], line 140
                bra = cursor;
                // <-, line 140
                slice_from("\u0BB2\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab8: do {
                // (, line 142
                // [, line 142
                ket = cursor;
                // literal, line 142
                if (!(eq_s_b("\u0B9F\u0BCD\u0B9F\u0BCD")))
                {
                    break lab8;
                }
                // ], line 142
                bra = cursor;
                // <-, line 142
                slice_from("\u0B9F\u0BC1");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab9: do {
                // (, line 144
                // Boolean test found_vetrumai_urupu, line 144
                if (!(B_found_vetrumai_urupu))
                {
                    break lab9;
                }
                // [, line 144
                ket = cursor;
                // literal, line 144
                if (!(eq_s_b("\u0BA4\u0BCD\u0BA4\u0BCD")))
                {
                    break lab9;
                }
                // (, line 144
                // test, line 144
                v_4 = limit - cursor;
                // not, line 144
                {
                    v_5 = limit - cursor;
                    lab10: do {
                        // literal, line 144
                        if (!(eq_s_b("\u0BC8")))
                        {
                            break lab10;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_5;
                }
                cursor = limit - v_4;
                // ], line 144
                bra = cursor;
                // <-, line 144
                slice_from("\u0BAE\u0BCD");
                // ], line 144
                bra = cursor;
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab11: do {
                // (, line 146
                // [, line 146
                ket = cursor;
                // or, line 146
                lab12: do {
                    v_6 = limit - cursor;
                    lab13: do {
                        // literal, line 146
                        if (!(eq_s_b("\u0BC1\u0B95\u0BCD")))
                        {
                            break lab13;
                        }
                        break lab12;
                    } while (false);
                    cursor = limit - v_6;
                    // literal, line 146
                    if (!(eq_s_b("\u0BC1\u0B95\u0BCD\u0B95\u0BCD")))
                    {
                        break lab11;
                    }
                } while (false);
                // ], line 146
                bra = cursor;
                // <-, line 146
                slice_from("\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab14: do {
                // (, line 148
                // [, line 148
                ket = cursor;
                // literal, line 148
                if (!(eq_s_b("\u0BCD")))
                {
                    break lab14;
                }
                // among, line 148
                if (find_among_b(a_3) == 0)
                {
                    break lab14;
                }
                // literal, line 148
                if (!(eq_s_b("\u0BCD")))
                {
                    break lab14;
                }
                // among, line 148
                if (find_among_b(a_4) == 0)
                {
                    break lab14;
                }
                // ], line 148
                bra = cursor;
                // delete, line 148
                slice_del();
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab15: do {
                // (, line 150
                // [, line 150
                ket = cursor;
                // literal, line 150
                if (!(eq_s_b("\u0BC1\u0B95\u0BCD")))
                {
                    break lab15;
                }
                // ], line 150
                bra = cursor;
                // <-, line 150
                slice_from("\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab16: do {
                // (, line 152
                // [, line 152
                ket = cursor;
                // literal, line 152
                if (!(eq_s_b("\u0BCD")))
                {
                    break lab16;
                }
                // among, line 152
                if (find_among_b(a_5) == 0)
                {
                    break lab16;
                }
                // ], line 152
                bra = cursor;
                // delete, line 152
                slice_del();
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab17: do {
                // (, line 154
                // [, line 154
                ket = cursor;
                // literal, line 154
                if (!(eq_s_b("\u0BCD")))
                {
                    break lab17;
                }
                // (, line 154
                // or, line 154
                lab18: do {
                    v_7 = limit - cursor;
                    lab19: do {
                        // among, line 154
                        if (find_among_b(a_6) == 0)
                        {
                            break lab19;
                        }
                        break lab18;
                    } while (false);
                    cursor = limit - v_7;
                    // among, line 154
                    if (find_among_b(a_7) == 0)
                    {
                        break lab17;
                    }
                } while (false);
                // literal, line 154
                if (!(eq_s_b("\u0BCD")))
                {
                    break lab17;
                }
                // ], line 154
                bra = cursor;
                // <-, line 154
                slice_from("\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab20: do {
                // (, line 156
                // [, line 156
                ket = cursor;
                // among, line 156
                if (find_among_b(a_8) == 0)
                {
                    break lab20;
                }
                // ], line 156
                bra = cursor;
                // delete, line 156
                slice_del();
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab21: do {
                // (, line 158
                // [, line 158
                ket = cursor;
                // literal, line 158
                if (!(eq_s_b("\u0BA9\u0BC1")))
                {
                    break lab21;
                }
                // (, line 158
                // test, line 158
                v_8 = limit - cursor;
                // not, line 158
                {
                    v_9 = limit - cursor;
                    lab22: do {
                        // among, line 158
                        if (find_among_b(a_9) == 0)
                        {
                            break lab22;
                        }
                        break lab21;
                    } while (false);
                    cursor = limit - v_9;
                }
                cursor = limit - v_8;
                // ], line 158
                bra = cursor;
                // delete, line 158
                slice_del();
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab23: do {
                // (, line 160
                // [, line 160
                ket = cursor;
                // literal, line 160
                if (!(eq_s_b("\u0B99\u0BCD")))
                {
                    break lab23;
                }
                // (, line 160
                // test, line 160
                v_10 = limit - cursor;
                // not, line 160
                {
                    v_11 = limit - cursor;
                    lab24: do {
                        // literal, line 160
                        if (!(eq_s_b("\u0BC8")))
                        {
                            break lab24;
                        }
                        break lab23;
                    } while (false);
                    cursor = limit - v_11;
                }
                cursor = limit - v_10;
                // ], line 160
                bra = cursor;
                // <-, line 160
                slice_from("\u0BAE\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab25: do {
                // (, line 162
                // [, line 162
                ket = cursor;
                // literal, line 162
                if (!(eq_s_b("\u0B99\u0BCD")))
                {
                    break lab25;
                }
                // ], line 162
                bra = cursor;
                // delete, line 162
                slice_del();
                break lab0;
            } while (false);
            cursor = limit - v_1;
            // (, line 164
            // [, line 164
            ket = cursor;
            // literal, line 164
            if (!(eq_s_b("\u0BCD")))
            {
                return false;
            }
            // (, line 164
            // test, line 164
            v_12 = limit - cursor;
            // (, line 164
            // or, line 164
            lab26: do {
                v_13 = limit - cursor;
                lab27: do {
                    // among, line 164
                    if (find_among_b(a_10) == 0)
                    {
                        break lab27;
                    }
                    break lab26;
                } while (false);
                cursor = limit - v_13;
                // literal, line 164
                if (!(eq_s_b("\u0BCD")))
                {
                    return false;
                }
            } while (false);
            cursor = limit - v_12;
            // ], line 164
            bra = cursor;
            // delete, line 164
            slice_del();
        } while (false);
        cursor = limit_backward;        // set found_wrong_ending, line 167
        B_found_wrong_ending = true;
        return true;
    }

    private boolean r_remove_pronoun_prefixes() {
        int v_1;
        // (, line 170
        // unset found_a_match, line 171
        B_found_a_match = false;
        // [, line 172
        bra = cursor;
        // among, line 172
        if (find_among(a_11) == 0)
        {
            return false;
        }
        // among, line 172
        if (find_among(a_12) == 0)
        {
            return false;
        }
        // literal, line 172
        if (!(eq_s("\u0BCD")))
        {
            return false;
        }
        // ], line 172
        ket = cursor;
        // delete, line 172
        slice_del();
        // (, line 173
        // set found_a_match, line 173
        B_found_a_match = true;
        // do, line 174
        v_1 = cursor;
        lab0: do {
            // call fix_va_start, line 174
            if (!r_fix_va_start())
            {
                break lab0;
            }
        } while (false);
        cursor = v_1;
        return true;
    }

    private boolean r_remove_plural_suffix() {
        int v_1;
        int v_2;
        int v_3;
        // (, line 177
        // unset found_a_match, line 178
        B_found_a_match = false;
        // backwards, line 179
        limit_backward = cursor; cursor = limit;
        // (, line 179
        // or, line 180
        lab0: do {
            v_1 = limit - cursor;
            lab1: do {
                // (, line 180
                // [, line 180
                ket = cursor;
                // literal, line 180
                if (!(eq_s_b("\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD")))
                {
                    break lab1;
                }
                // (, line 180
                // test, line 180
                v_2 = limit - cursor;
                // not, line 180
                {
                    v_3 = limit - cursor;
                    lab2: do {
                        // among, line 180
                        if (find_among_b(a_13) == 0)
                        {
                            break lab2;
                        }
                        break lab1;
                    } while (false);
                    cursor = limit - v_3;
                }
                cursor = limit - v_2;
                // ], line 180
                bra = cursor;
                // <-, line 180
                slice_from("\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab3: do {
                // (, line 181
                // [, line 181
                ket = cursor;
                // literal, line 181
                if (!(eq_s_b("\u0BB1\u0BCD\u0B95\u0BB3\u0BCD")))
                {
                    break lab3;
                }
                // ], line 181
                bra = cursor;
                // <-, line 181
                slice_from("\u0BB2\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab4: do {
                // (, line 182
                // [, line 182
                ket = cursor;
                // literal, line 182
                if (!(eq_s_b("\u0B9F\u0BCD\u0B95\u0BB3\u0BCD")))
                {
                    break lab4;
                }
                // ], line 182
                bra = cursor;
                // <-, line 182
                slice_from("\u0BB3\u0BCD");
                break lab0;
            } while (false);
            cursor = limit - v_1;
            // (, line 183
            // [, line 183
            ket = cursor;
            // literal, line 183
            if (!(eq_s_b("\u0B95\u0BB3\u0BCD")))
            {
                return false;
            }
            // ], line 183
            bra = cursor;
            // delete, line 183
            slice_del();
        } while (false);
        // (, line 184
        // set found_a_match, line 184
        B_found_a_match = true;
        cursor = limit_backward;        return true;
    }

    private boolean r_remove_question_suffixes() {
        int v_1;
        int v_2;
        // (, line 188
        // call has_min_length, line 189
        if (!r_has_min_length())
        {
            return false;
        }
        // unset found_a_match, line 190
        B_found_a_match = false;
        // backwards, line 191
        limit_backward = cursor; cursor = limit;
        // (, line 191
        // do, line 192
        v_1 = limit - cursor;
        lab0: do {
            // (, line 192
            // [, line 193
            ket = cursor;
            // among, line 193
            if (find_among_b(a_14) == 0)
            {
                break lab0;
            }
            // ], line 193
            bra = cursor;
            // <-, line 193
            slice_from("\u0BCD");
            // (, line 194
            // set found_a_match, line 194
            B_found_a_match = true;
        } while (false);
        cursor = limit - v_1;
        cursor = limit_backward;        // do, line 197
        v_2 = cursor;
        lab1: do {
            // call fix_endings, line 197
            if (!r_fix_endings())
            {
                break lab1;
            }
        } while (false);
        cursor = v_2;
        return true;
    }

    private boolean r_remove_command_suffixes() {
        // (, line 200
        // call has_min_length, line 201
        if (!r_has_min_length())
        {
            return false;
        }
        // unset found_a_match, line 202
        B_found_a_match = false;
        // backwards, line 203
        limit_backward = cursor; cursor = limit;
        // (, line 203
        // [, line 204
        ket = cursor;
        // among, line 204
        if (find_among_b(a_15) == 0)
        {
            return false;
        }
        // ], line 204
        bra = cursor;
        // delete, line 204
        slice_del();
        // (, line 205
        // set found_a_match, line 205
        B_found_a_match = true;
        cursor = limit_backward;        return true;
    }

    private boolean r_remove_um() {
        int v_1;
        // (, line 209
        // unset found_a_match, line 210
        B_found_a_match = false;
        // call has_min_length, line 211
        if (!r_has_min_length())
        {
            return false;
        }
        // backwards, line 212
        limit_backward = cursor; cursor = limit;
        // (, line 212
        // [, line 212
        ket = cursor;
        // literal, line 212
        if (!(eq_s_b("\u0BC1\u0BAE\u0BCD")))
        {
            return false;
        }
        // ], line 212
        bra = cursor;
        // <-, line 212
        slice_from("\u0BCD");
        // (, line 213
        // set found_a_match, line 213
        B_found_a_match = true;
        cursor = limit_backward;        // do, line 215
        v_1 = cursor;
        lab0: do {
            // call fix_ending, line 215
            if (!r_fix_ending())
            {
                break lab0;
            }
        } while (false);
        cursor = v_1;
        return true;
    }

    private boolean r_remove_common_word_endings() {
        int v_1;
        int v_2;
        int v_3;
        int v_4;
        int v_5;
        int v_6;
        int v_7;
        // (, line 218
        // unset found_a_match, line 222
        B_found_a_match = false;
        // call has_min_length, line 223
        if (!r_has_min_length())
        {
            return false;
        }
        // backwards, line 224
        limit_backward = cursor; cursor = limit;
        // (, line 224
        // or, line 241
        lab0: do {
            v_1 = limit - cursor;
            lab1: do {
                // test, line 225
                v_2 = limit - cursor;
                // (, line 225
                // [, line 225
                ket = cursor;
                // or, line 225
                lab2: do {
                    v_3 = limit - cursor;
                    lab3: do {
                        // literal, line 225
                        if (!(eq_s_b("\u0BC1\u0B9F\u0BA9\u0BCD")))
                        {
                            break lab3;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab4: do {
                        // literal, line 226
                        if (!(eq_s_b("\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8")))
                        {
                            break lab4;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab5: do {
                        // literal, line 227
                        if (!(eq_s_b("\u0BBF\u0B9F\u0BAE\u0BCD")))
                        {
                            break lab5;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab6: do {
                        // literal, line 228
                        if (!(eq_s_b("\u0BBF\u0BA9\u0BCD\u0BB1\u0BBF")))
                        {
                            break lab6;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab7: do {
                        // literal, line 229
                        if (!(eq_s_b("\u0BBE\u0B95\u0BBF")))
                        {
                            break lab7;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab8: do {
                        // literal, line 230
                        if (!(eq_s_b("\u0BBE\u0B95\u0BBF\u0BAF")))
                        {
                            break lab8;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab9: do {
                        // literal, line 231
                        if (!(eq_s_b("\u0BC6\u0BA9\u0BCD\u0BB1\u0BC1")))
                        {
                            break lab9;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab10: do {
                        // literal, line 232
                        if (!(eq_s_b("\u0BC1\u0BB3\u0BCD\u0BB3")))
                        {
                            break lab10;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab11: do {
                        // literal, line 233
                        if (!(eq_s_b("\u0BC1\u0B9F\u0BC8\u0BAF")))
                        {
                            break lab11;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab12: do {
                        // literal, line 234
                        if (!(eq_s_b("\u0BC1\u0B9F\u0BC8")))
                        {
                            break lab12;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab13: do {
                        // literal, line 235
                        if (!(eq_s_b("\u0BC6\u0BA9\u0BC1\u0BAE\u0BCD")))
                        {
                            break lab13;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab14: do {
                        // (, line 236
                        // literal, line 236
                        if (!(eq_s_b("\u0BB2\u0BCD\u0BB2")))
                        {
                            break lab14;
                        }
                        // test, line 236
                        v_4 = limit - cursor;
                        // (, line 236
                        // not, line 236
                        {
                            v_5 = limit - cursor;
                            lab15: do {
                                // among, line 236
                                if (find_among_b(a_16) == 0)
                                {
                                    break lab15;
                                }
                                break lab14;
                            } while (false);
                            cursor = limit - v_5;
                        }
                        cursor = limit - v_4;
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    lab16: do {
                        // literal, line 237
                        if (!(eq_s_b("\u0BC6\u0BA9")))
                        {
                            break lab16;
                        }
                        break lab2;
                    } while (false);
                    cursor = limit - v_3;
                    // literal, line 238
                    if (!(eq_s_b("\u0BBE\u0B95\u0BBF")))
                    {
                        break lab1;
                    }
                } while (false);
                // ], line 238
                bra = cursor;
                // <-, line 238
                slice_from("\u0BCD");
                // (, line 239
                // set found_a_match, line 239
                B_found_a_match = true;
                cursor = limit - v_2;
                break lab0;
            } while (false);
            cursor = limit - v_1;
            // test, line 242
            v_6 = limit - cursor;
            // (, line 242
            // [, line 242
            ket = cursor;
            // among, line 242
            if (find_among_b(a_17) == 0)
            {
                return false;
            }
            // ], line 255
            bra = cursor;
            // delete, line 255
            slice_del();
            // (, line 256
            // set found_a_match, line 256
            B_found_a_match = true;
            cursor = limit - v_6;
        } while (false);
        cursor = limit_backward;        // do, line 259
        v_7 = cursor;
        lab17: do {
            // call fix_endings, line 259
            if (!r_fix_endings())
            {
                break lab17;
            }
        } while (false);
        cursor = v_7;
        return true;
    }

    private boolean r_remove_vetrumai_urupukal() {
        int v_1;
        int v_2;
        int v_3;
        int v_4;
        int v_5;
        int v_6;
        int v_7;
        int v_8;
        int v_9;
        int v_10;
        int v_11;
        int v_12;
        int v_13;
        int v_14;
        int v_15;
        int v_16;
        int v_17;
        int v_18;
        int v_19;
        int v_20;
        int v_21;
        // (, line 262
        // unset found_a_match, line 263
        B_found_a_match = false;
        // unset found_vetrumai_urupu, line 264
        B_found_vetrumai_urupu = false;
        // call has_min_length, line 265
        if (!r_has_min_length())
        {
            return false;
        }
        // backwards, line 266
        limit_backward = cursor; cursor = limit;
        // (, line 266
        // (, line 267
        // or, line 269
        lab0: do {
            v_1 = limit - cursor;
            lab1: do {
                // test, line 268
                v_2 = limit - cursor;
                // (, line 268
                // [, line 268
                ket = cursor;
                // literal, line 268
                if (!(eq_s_b("\u0BA9\u0BC8")))
                {
                    break lab1;
                }
                // ], line 268
                bra = cursor;
                // delete, line 268
                slice_del();
                cursor = limit - v_2;
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab2: do {
                // test, line 270
                v_3 = limit - cursor;
                // (, line 270
                // [, line 270
                ket = cursor;
                // or, line 271
                lab3: do {
                    v_4 = limit - cursor;
                    lab4: do {
                        // (, line 270
                        // or, line 270
                        lab5: do {
                            v_5 = limit - cursor;
                            lab6: do {
                                // literal, line 270
                                if (!(eq_s_b("\u0BBF\u0BA9\u0BC8")))
                                {
                                    break lab6;
                                }
                                break lab5;
                            } while (false);
                            cursor = limit - v_5;
                            // literal, line 271
                            if (!(eq_s_b("\u0BC8")))
                            {
                                break lab4;
                            }
                        } while (false);
                        // (, line 271
                        // test, line 271
                        v_6 = limit - cursor;
                        // not, line 271
                        {
                            v_7 = limit - cursor;
                            lab7: do {
                                // among, line 271
                                if (find_among_b(a_18) == 0)
                                {
                                    break lab7;
                                }
                                break lab4;
                            } while (false);
                            cursor = limit - v_7;
                        }
                        cursor = limit - v_6;
                        break lab3;
                    } while (false);
                    cursor = limit - v_4;
                    // (, line 272
                    // literal, line 272
                    if (!(eq_s_b("\u0BC8")))
                    {
                        break lab2;
                    }
                    // (, line 272
                    // test, line 272
                    v_8 = limit - cursor;
                    // (, line 272
                    // among, line 272
                    if (find_among_b(a_19) == 0)
                    {
                        break lab2;
                    }
                    // literal, line 272
                    if (!(eq_s_b("\u0BCD")))
                    {
                        break lab2;
                    }
                    cursor = limit - v_8;
                } while (false);
                // ], line 273
                bra = cursor;
                // <-, line 273
                slice_from("\u0BCD");
                cursor = limit - v_3;
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab8: do {
                // test, line 276
                v_9 = limit - cursor;
                // (, line 276
                // [, line 276
                ket = cursor;
                // or, line 277
                lab9: do {
                    v_10 = limit - cursor;
                    lab10: do {
                        // literal, line 277
                        if (!(eq_s_b("\u0BCA\u0B9F\u0BC1")))
                        {
                            break lab10;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab11: do {
                        // literal, line 278
                        if (!(eq_s_b("\u0BCB\u0B9F\u0BC1")))
                        {
                            break lab11;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab12: do {
                        // literal, line 279
                        if (!(eq_s_b("\u0BBF\u0BB2\u0BCD")))
                        {
                            break lab12;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab13: do {
                        // literal, line 280
                        if (!(eq_s_b("\u0BBF\u0BB1\u0BCD")))
                        {
                            break lab13;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab14: do {
                        // (, line 281
                        // literal, line 281
                        if (!(eq_s_b("\u0BBF\u0BA9\u0BCD")))
                        {
                            break lab14;
                        }
                        // (, line 281
                        // test, line 281
                        v_11 = limit - cursor;
                        // not, line 281
                        {
                            v_12 = limit - cursor;
                            lab15: do {
                                // literal, line 281
                                if (!(eq_s_b("\u0BAE")))
                                {
                                    break lab15;
                                }
                                break lab14;
                            } while (false);
                            cursor = limit - v_12;
                        }
                        cursor = limit - v_11;
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab16: do {
                        // literal, line 282
                        if (!(eq_s_b("\u0BBF\u0BA9\u0BCD\u0BB1\u0BC1")))
                        {
                            break lab16;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab17: do {
                        // literal, line 283
                        if (!(eq_s_b("\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1")))
                        {
                            break lab17;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab18: do {
                        // literal, line 284
                        if (!(eq_s_b("\u0BB5\u0BBF\u0B9F")))
                        {
                            break lab18;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab19: do {
                        // (, line 285
                        if (!(I_length >= 7))
                        {
                            break lab19;
                        }
                        // literal, line 285
                        if (!(eq_s_b("\u0BBF\u0B9F\u0BAE\u0BCD")))
                        {
                            break lab19;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab20: do {
                        // literal, line 286
                        if (!(eq_s_b("\u0BBE\u0BB2\u0BCD")))
                        {
                            break lab20;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab21: do {
                        // literal, line 287
                        if (!(eq_s_b("\u0BC1\u0B9F\u0BC8")))
                        {
                            break lab21;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab22: do {
                        // literal, line 288
                        if (!(eq_s_b("\u0BBE\u0BAE\u0BB2\u0BCD")))
                        {
                            break lab22;
                        }
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    lab23: do {
                        // (, line 289
                        // literal, line 289
                        if (!(eq_s_b("\u0BB2\u0BCD")))
                        {
                            break lab23;
                        }
                        // (, line 289
                        // test, line 289
                        v_13 = limit - cursor;
                        // not, line 289
                        {
                            v_14 = limit - cursor;
                            lab24: do {
                                // among, line 289
                                if (find_among_b(a_20) == 0)
                                {
                                    break lab24;
                                }
                                break lab23;
                            } while (false);
                            cursor = limit - v_14;
                        }
                        cursor = limit - v_13;
                        break lab9;
                    } while (false);
                    cursor = limit - v_10;
                    // literal, line 290
                    if (!(eq_s_b("\u0BC1\u0BB3\u0BCD")))
                    {
                        break lab8;
                    }
                } while (false);
                // ], line 291
                bra = cursor;
                // <-, line 291
                slice_from("\u0BCD");
                cursor = limit - v_9;
                break lab0;
            } while (false);
            cursor = limit - v_1;
            lab25: do {
                // test, line 294
                v_15 = limit - cursor;
                // (, line 294
                // [, line 294
                ket = cursor;
                // or, line 295
                lab26: do {
                    v_16 = limit - cursor;
                    lab27: do {
                        // literal, line 295
                        if (!(eq_s_b("\u0B95\u0BA3\u0BCD")))
                        {
                            break lab27;
                        }
                        break lab26;
                    } while (false);
                    cursor = limit - v_16;
                    lab28: do {
                        // literal, line 296
                        if (!(eq_s_b("\u0BAE\u0BC1\u0BA9\u0BCD")))
                        {
                            break lab28;
                        }
                        break lab26;
                    } while (false);
                    cursor = limit - v_16;
                    lab29: do {
                        // literal, line 297
                        if (!(eq_s_b("\u0BAE\u0BC7\u0BB2\u0BCD")))
                        {
                            break lab29;
                        }
                        break lab26;
                    } while (false);
                    cursor = limit - v_16;
                    lab30: do {
                        // literal, line 298
                        if (!(eq_s_b("\u0BAE\u0BC7\u0BB1\u0BCD")))
                        {
                            break lab30;
                        }
                        break lab26;
                    } while (false);
                    cursor = limit - v_16;
                    lab31: do {
                        // literal, line 299
                        if (!(eq_s_b("\u0B95\u0BC0\u0BB4\u0BCD")))
                        {
                            break lab31;
                        }
                        break lab26;
                    } while (false);
                    cursor = limit - v_16;
                    lab32: do {
                        // literal, line 300
                        if (!(eq_s_b("\u0BAA\u0BBF\u0BA9\u0BCD")))
                        {
                            break lab32;
                        }
                        break lab26;
                    } while (false);
                    cursor = limit - v_16;
                    // (, line 301
                    // literal, line 301
                    if (!(eq_s_b("\u0BA4\u0BC1")))
                    {
                        break lab25;
                    }
                    // (, line 301
                    // test, line 301
                    v_17 = limit - cursor;
                    // not, line 301
                    {
                        v_18 = limit - cursor;
                        lab33: do {
                            // among, line 301
                            if (find_among_b(a_21) == 0)
                            {
                                break lab33;
                            }
                            break lab25;
                        } while (false);
                        cursor = limit - v_18;
                    }
                    cursor = limit - v_17;
                } while (false);
                // ], line 302
                bra = cursor;
                // delete, line 302
                slice_del();
                cursor = limit - v_15;
                break lab0;
            } while (false);
            cursor = limit - v_1;
            // test, line 305
            v_19 = limit - cursor;
            // (, line 305
            // [, line 305
            ket = cursor;
            // literal, line 305
            if (!(eq_s_b("\u0BC0")))
            {
                return false;
            }
            // ], line 305
            bra = cursor;
            // <-, line 305
            slice_from("\u0BBF");
            cursor = limit - v_19;
        } while (false);
        // (, line 307
        // set found_a_match, line 307
        B_found_a_match = true;
        // (, line 308
        // set found_vetrumai_urupu, line 308
        B_found_vetrumai_urupu = true;
        // do, line 309
        v_20 = limit - cursor;
        lab34: do {
            // (, line 309
            // [, line 309
            ket = cursor;
            // literal, line 309
            if (!(eq_s_b("\u0BBF\u0BA9\u0BCD")))
            {
                break lab34;
            }
            // ], line 309
            bra = cursor;
            // <-, line 309
            slice_from("\u0BCD");
        } while (false);
        cursor = limit - v_20;
        cursor = limit_backward;        // do, line 311
        v_21 = cursor;
        lab35: do {
            // call fix_endings, line 311
            if (!r_fix_endings())
            {
                break lab35;
            }
        } while (false);
        cursor = v_21;
        return true;
    }

    private boolean r_remove_tense_suffixes() {
        int v_1;
        int v_2;
        // (, line 314
        // set found_a_match, line 315
        B_found_a_match = true;
        // repeat, line 316
        replab0: while(true)
        {
            v_1 = cursor;
            lab1: do {
                // (, line 316
                // Boolean test found_a_match, line 316
                if (!(B_found_a_match))
                {
                    break lab1;
                }
                // (, line 316
                // do, line 316
                v_2 = cursor;
                lab2: do {
                    // call remove_tense_suffix, line 316
                    if (!r_remove_tense_suffix())
                    {
                        break lab2;
                    }
                } while (false);
                cursor = v_2;
                continue replab0;
            } while (false);
            cursor = v_1;
            break replab0;
        }
        return true;
    }

    private boolean r_remove_tense_suffix() {
        int v_1;
        int v_2;
        int v_3;
        int v_4;
        int v_5;
        int v_6;
        int v_7;
        int v_8;
        int v_9;
        int v_10;
        int v_11;
        int v_12;
        int v_13;
        int v_14;
        int v_15;
        int v_16;
        int v_17;
        int v_18;
        // (, line 319
        // unset found_a_match, line 320
        B_found_a_match = false;
        // call has_min_length, line 321
        if (!r_has_min_length())
        {
            return false;
        }
        // backwards, line 322
        limit_backward = cursor; cursor = limit;
        // (, line 322
        // do, line 323
        v_1 = limit - cursor;
        lab0: do {
            // (, line 323
            // or, line 330
            lab1: do {
                v_2 = limit - cursor;
                lab2: do {
                    // test, line 324
                    v_3 = limit - cursor;
                    // (, line 324
                    // [, line 324
                    ket = cursor;
                    // among, line 324
                    if (find_among_b(a_22) == 0)
                    {
                        break lab2;
                    }
                    // ], line 327
                    bra = cursor;
                    // delete, line 327
                    slice_del();
                    // (, line 328
                    // set found_a_match, line 328
                    B_found_a_match = true;
                    cursor = limit - v_3;
                    break lab1;
                } while (false);
                cursor = limit - v_2;
                lab3: do {
                    // test, line 331
                    v_4 = limit - cursor;
                    // (, line 331
                    // [, line 331
                    ket = cursor;
                    // or, line 332
                    lab4: do {
                        v_5 = limit - cursor;
                        lab5: do {
                            // literal, line 332
                            if (!(eq_s_b("\u0BAE\u0BBE\u0BB0\u0BCD")))
                            {
                                break lab5;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab6: do {
                            // literal, line 333
                            if (!(eq_s_b("\u0BAE\u0BBF\u0BA9\u0BCD")))
                            {
                                break lab6;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab7: do {
                            // literal, line 334
                            if (!(eq_s_b("\u0BA9\u0BA9\u0BCD")))
                            {
                                break lab7;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab8: do {
                            // literal, line 335
                            if (!(eq_s_b("\u0BA9\u0BBE\u0BA9\u0BCD")))
                            {
                                break lab8;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab9: do {
                            // literal, line 336
                            if (!(eq_s_b("\u0BA9\u0BBE\u0BB3\u0BCD")))
                            {
                                break lab9;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab10: do {
                            // literal, line 337
                            if (!(eq_s_b("\u0BA9\u0BBE\u0BB0\u0BCD")))
                            {
                                break lab10;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab11: do {
                            // (, line 338
                            // literal, line 338
                            if (!(eq_s_b("\u0BB5\u0BA9\u0BCD")))
                            {
                                break lab11;
                            }
                            // test, line 338
                            v_6 = limit - cursor;
                            // (, line 338
                            // not, line 338
                            {
                                v_7 = limit - cursor;
                                lab12: do {
                                    // among, line 338
                                    if (find_among_b(a_23) == 0)
                                    {
                                        break lab12;
                                    }
                                    break lab11;
                                } while (false);
                                cursor = limit - v_7;
                            }
                            cursor = limit - v_6;
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab13: do {
                            // literal, line 339
                            if (!(eq_s_b("\u0BA9\u0BB3\u0BCD")))
                            {
                                break lab13;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab14: do {
                            // literal, line 340
                            if (!(eq_s_b("\u0BB5\u0BB3\u0BCD")))
                            {
                                break lab14;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab15: do {
                            // literal, line 341
                            if (!(eq_s_b("\u0BA9\u0BB0\u0BCD")))
                            {
                                break lab15;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab16: do {
                            // literal, line 342
                            if (!(eq_s_b("\u0BB5\u0BB0\u0BCD")))
                            {
                                break lab16;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab17: do {
                            // literal, line 343
                            if (!(eq_s_b("\u0BA9")))
                            {
                                break lab17;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab18: do {
                            // literal, line 343
                            if (!(eq_s_b("\u0BAA")))
                            {
                                break lab18;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab19: do {
                            // literal, line 343
                            if (!(eq_s_b("\u0B95")))
                            {
                                break lab19;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab20: do {
                            // literal, line 343
                            if (!(eq_s_b("\u0BA4")))
                            {
                                break lab20;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab21: do {
                            // literal, line 343
                            if (!(eq_s_b("\u0BAF")))
                            {
                                break lab21;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab22: do {
                            // literal, line 344
                            if (!(eq_s_b("\u0BAA\u0BA9\u0BCD")))
                            {
                                break lab22;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab23: do {
                            // literal, line 345
                            if (!(eq_s_b("\u0BAA\u0BB3\u0BCD")))
                            {
                                break lab23;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab24: do {
                            // literal, line 346
                            if (!(eq_s_b("\u0BAA\u0BB0\u0BCD")))
                            {
                                break lab24;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab25: do {
                            // (, line 347
                            // literal, line 347
                            if (!(eq_s_b("\u0BA4\u0BC1")))
                            {
                                break lab25;
                            }
                            // (, line 347
                            // test, line 347
                            v_8 = limit - cursor;
                            // not, line 347
                            {
                                v_9 = limit - cursor;
                                lab26: do {
                                    // among, line 347
                                    if (find_among_b(a_24) == 0)
                                    {
                                        break lab26;
                                    }
                                    break lab25;
                                } while (false);
                                cursor = limit - v_9;
                            }
                            cursor = limit - v_8;
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab27: do {
                            // literal, line 348
                            if (!(eq_s_b("\u0BBF\u0BB1\u0BCD\u0BB1\u0BC1")))
                            {
                                break lab27;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab28: do {
                            // literal, line 349
                            if (!(eq_s_b("\u0BAA\u0BAE\u0BCD")))
                            {
                                break lab28;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab29: do {
                            // literal, line 350
                            if (!(eq_s_b("\u0BA9\u0BAE\u0BCD")))
                            {
                                break lab29;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab30: do {
                            // literal, line 351
                            if (!(eq_s_b("\u0BA4\u0BC1\u0BAE\u0BCD")))
                            {
                                break lab30;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab31: do {
                            // literal, line 352
                            if (!(eq_s_b("\u0BB1\u0BC1\u0BAE\u0BCD")))
                            {
                                break lab31;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab32: do {
                            // literal, line 353
                            if (!(eq_s_b("\u0B95\u0BC1\u0BAE\u0BCD")))
                            {
                                break lab32;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab33: do {
                            // literal, line 354
                            if (!(eq_s_b("\u0BA9\u0BC6\u0BA9\u0BCD")))
                            {
                                break lab33;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        lab34: do {
                            // literal, line 355
                            if (!(eq_s_b("\u0BA9\u0BC8")))
                            {
                                break lab34;
                            }
                            break lab4;
                        } while (false);
                        cursor = limit - v_5;
                        // literal, line 356
                        if (!(eq_s_b("\u0BB5\u0BC8")))
                        {
                            break lab3;
                        }
                    } while (false);
                    // ], line 357
                    bra = cursor;
                    // delete, line 357
                    slice_del();
                    // (, line 358
                    // set found_a_match, line 358
                    B_found_a_match = true;
                    cursor = limit - v_4;
                    break lab1;
                } while (false);
                cursor = limit - v_2;
                lab35: do {
                    // test, line 361
                    v_10 = limit - cursor;
                    // (, line 361
                    // [, line 361
                    ket = cursor;
                    // or, line 362
                    lab36: do {
                        v_11 = limit - cursor;
                        lab37: do {
                            // (, line 362
                            // literal, line 362
                            if (!(eq_s_b("\u0BBE\u0BA9\u0BCD")))
                            {
                                break lab37;
                            }
                            // test, line 362
                            v_12 = limit - cursor;
                            // (, line 362
                            // not, line 362
                            {
                                v_13 = limit - cursor;
                                lab38: do {
                                    // literal, line 362
                                    if (!(eq_s_b("\u0B9A")))
                                    {
                                        break lab38;
                                    }
                                    break lab37;
                                } while (false);
                                cursor = limit - v_13;
                            }
                            cursor = limit - v_12;
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab39: do {
                            // literal, line 363
                            if (!(eq_s_b("\u0BBE\u0BB3\u0BCD")))
                            {
                                break lab39;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab40: do {
                            // literal, line 364
                            if (!(eq_s_b("\u0BBE\u0BB0\u0BCD")))
                            {
                                break lab40;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab41: do {
                            // literal, line 365
                            if (!(eq_s_b("\u0BC7\u0BA9\u0BCD")))
                            {
                                break lab41;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab42: do {
                            // literal, line 366
                            if (!(eq_s_b("\u0BBE")))
                            {
                                break lab42;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab43: do {
                            // literal, line 367
                            if (!(eq_s_b("\u0BBE\u0BAE\u0BCD")))
                            {
                                break lab43;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab44: do {
                            // literal, line 368
                            if (!(eq_s_b("\u0BC6\u0BAE\u0BCD")))
                            {
                                break lab44;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab45: do {
                            // literal, line 369
                            if (!(eq_s_b("\u0BC7\u0BAE\u0BCD")))
                            {
                                break lab45;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab46: do {
                            // literal, line 370
                            if (!(eq_s_b("\u0BCB\u0BAE\u0BCD")))
                            {
                                break lab46;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab47: do {
                            // literal, line 371
                            if (!(eq_s_b("\u0B95\u0BC1\u0BAE\u0BCD")))
                            {
                                break lab47;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab48: do {
                            // literal, line 372
                            if (!(eq_s_b("\u0BA4\u0BC1\u0BAE\u0BCD")))
                            {
                                break lab48;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab49: do {
                            // literal, line 373
                            if (!(eq_s_b("\u0B9F\u0BC1\u0BAE\u0BCD")))
                            {
                                break lab49;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab50: do {
                            // literal, line 374
                            if (!(eq_s_b("\u0BB1\u0BC1\u0BAE\u0BCD")))
                            {
                                break lab50;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab51: do {
                            // literal, line 375
                            if (!(eq_s_b("\u0BBE\u0BAF\u0BCD")))
                            {
                                break lab51;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab52: do {
                            // literal, line 376
                            if (!(eq_s_b("\u0BA9\u0BC6\u0BA9\u0BCD")))
                            {
                                break lab52;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab53: do {
                            // literal, line 377
                            if (!(eq_s_b("\u0BA9\u0BBF\u0BB0\u0BCD")))
                            {
                                break lab53;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        lab54: do {
                            // literal, line 378
                            if (!(eq_s_b("\u0BC0\u0BB0\u0BCD")))
                            {
                                break lab54;
                            }
                            break lab36;
                        } while (false);
                        cursor = limit - v_11;
                        // literal, line 379
                        if (!(eq_s_b("\u0BC0\u0BAF\u0BB0\u0BCD")))
                        {
                            break lab35;
                        }
                    } while (false);
                    // ], line 380
                    bra = cursor;
                    // <-, line 380
                    slice_from("\u0BCD");
                    // (, line 381
                    // set found_a_match, line 381
                    B_found_a_match = true;
                    cursor = limit - v_10;
                    break lab1;
                } while (false);
                cursor = limit - v_2;
                // test, line 384
                v_14 = limit - cursor;
                // (, line 384
                // (, line 384
                // [, line 384
                ket = cursor;
                // or, line 384
                lab55: do {
                    v_15 = limit - cursor;
                    lab56: do {
                        // literal, line 384
                        if (!(eq_s_b("\u0B95\u0BC1")))
                        {
                            break lab56;
                        }
                        break lab55;
                    } while (false);
                    cursor = limit - v_15;
                    // literal, line 384
                    if (!(eq_s_b("\u0BA4\u0BC1")))
                    {
                        break lab0;
                    }
                } while (false);
                // (, line 384
                // test, line 384
                v_16 = limit - cursor;
                // literal, line 384
                if (!(eq_s_b("\u0BCD")))
                {
                    break lab0;
                }
                cursor = limit - v_16;
                // ], line 384
                bra = cursor;
                // delete, line 384
                slice_del();
                // (, line 385
                // set found_a_match, line 385
                B_found_a_match = true;
                cursor = limit - v_14;
            } while (false);
        } while (false);
        cursor = limit - v_1;
        // do, line 388
        v_17 = limit - cursor;
        lab57: do {
            // (, line 388
            // [, line 388
            ket = cursor;
            // among, line 388
            if (find_among_b(a_25) == 0)
            {
                break lab57;
            }
            // ], line 395
            bra = cursor;
            // delete, line 395
            slice_del();
            // (, line 396
            // set found_a_match, line 396
            B_found_a_match = true;
        } while (false);
        cursor = limit - v_17;
        cursor = limit_backward;        // do, line 399
        v_18 = cursor;
        lab58: do {
            // call fix_endings, line 399
            if (!r_fix_endings())
            {
                break lab58;
            }
        } while (false);
        cursor = v_18;
        return true;
    }

    public boolean stem() {
        int v_1;
        int v_2;
        int v_3;
        int v_4;
        int v_5;
        int v_6;
        int v_7;
        int v_8;
        int v_9;
        int v_10;
        // (, line 402
        // unset found_vetrumai_urupu, line 403
        B_found_vetrumai_urupu = false;
        // do, line 404
        v_1 = cursor;
        lab0: do {
            // call fix_ending, line 404
            if (!r_fix_ending())
            {
                break lab0;
            }
        } while (false);
        cursor = v_1;
        // call has_min_length, line 405
        if (!r_has_min_length())
        {
            return false;
        }
        // do, line 406
        v_2 = cursor;
        lab1: do {
            // call remove_question_prefixes, line 406
            if (!r_remove_question_prefixes())
            {
                break lab1;
            }
        } while (false);
        cursor = v_2;
        // do, line 407
        v_3 = cursor;
        lab2: do {
            // call remove_pronoun_prefixes, line 407
            if (!r_remove_pronoun_prefixes())
            {
                break lab2;
            }
        } while (false);
        cursor = v_3;
        // do, line 408
        v_4 = cursor;
        lab3: do {
            // call remove_question_suffixes, line 408
            if (!r_remove_question_suffixes())
            {
                break lab3;
            }
        } while (false);
        cursor = v_4;
        // do, line 409
        v_5 = cursor;
        lab4: do {
            // call remove_um, line 409
            if (!r_remove_um())
            {
                break lab4;
            }
        } while (false);
        cursor = v_5;
        // do, line 410
        v_6 = cursor;
        lab5: do {
            // call remove_common_word_endings, line 410
            if (!r_remove_common_word_endings())
            {
                break lab5;
            }
        } while (false);
        cursor = v_6;
        // do, line 411
        v_7 = cursor;
        lab6: do {
            // call remove_vetrumai_urupukal, line 411
            if (!r_remove_vetrumai_urupukal())
            {
                break lab6;
            }
        } while (false);
        cursor = v_7;
        // do, line 412
        v_8 = cursor;
        lab7: do {
            // call remove_plural_suffix, line 412
            if (!r_remove_plural_suffix())
            {
                break lab7;
            }
        } while (false);
        cursor = v_8;
        // do, line 413
        v_9 = cursor;
        lab8: do {
            // call remove_command_suffixes, line 413
            if (!r_remove_command_suffixes())
            {
                break lab8;
            }
        } while (false);
        cursor = v_9;
        // do, line 414
        v_10 = cursor;
        lab9: do {
            // call remove_tense_suffixes, line 414
            if (!r_remove_tense_suffixes())
            {
                break lab9;
            }
        } while (false);
        cursor = v_10;
        return true;
    }

    public boolean equals( Object o ) {
        return o instanceof tamilStemmer;
    }

    public int hashCode() {
        return tamilStemmer.class.getName().hashCode();
    }



}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy