// This file was generated automatically by the Snowball to Java compiler

package org.tartarus.snowball.ext;

import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballProgram;

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

@SuppressWarnings("unused") public class KpStemmer extends SnowballProgram {

private static final long serialVersionUID = 1L;

        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();

                private final static Among a_0[] = {
                    new Among ( "nde", -1, 7, "", methodObject ),
                    new Among ( "en", -1, 6, "", methodObject ),
                    new Among ( "s", -1, 2, "", methodObject ),
                    new Among ( "'s", 2, 1, "", methodObject ),
                    new Among ( "es", 2, 4, "", methodObject ),
                    new Among ( "ies", 4, 3, "", methodObject ),
                    new Among ( "aus", 2, 5, "", methodObject )
                };

                private final static Among a_1[] = {
                    new Among ( "de", -1, 5, "", methodObject ),
                    new Among ( "ge", -1, 2, "", methodObject ),
                    new Among ( "ische", -1, 4, "", methodObject ),
                    new Among ( "je", -1, 1, "", methodObject ),
                    new Among ( "lijke", -1, 3, "", methodObject ),
                    new Among ( "le", -1, 9, "", methodObject ),
                    new Among ( "ene", -1, 10, "", methodObject ),
                    new Among ( "re", -1, 8, "", methodObject ),
                    new Among ( "se", -1, 7, "", methodObject ),
                    new Among ( "te", -1, 6, "", methodObject ),
                    new Among ( "ieve", -1, 11, "", methodObject )
                };

                private final static Among a_2[] = {
                    new Among ( "heid", -1, 3, "", methodObject ),
                    new Among ( "fie", -1, 7, "", methodObject ),
                    new Among ( "gie", -1, 8, "", methodObject ),
                    new Among ( "atie", -1, 1, "", methodObject ),
                    new Among ( "isme", -1, 5, "", methodObject ),
                    new Among ( "ing", -1, 5, "", methodObject ),
                    new Among ( "arij", -1, 6, "", methodObject ),
                    new Among ( "erij", -1, 5, "", methodObject ),
                    new Among ( "sel", -1, 3, "", methodObject ),
                    new Among ( "rder", -1, 4, "", methodObject ),
                    new Among ( "ster", -1, 3, "", methodObject ),
                    new Among ( "iteit", -1, 2, "", methodObject ),
                    new Among ( "dst", -1, 10, "", methodObject ),
                    new Among ( "tst", -1, 9, "", methodObject )
                };

                private final static Among a_3[] = {
                    new Among ( "end", -1, 10, "", methodObject ),
                    new Among ( "atief", -1, 2, "", methodObject ),
                    new Among ( "erig", -1, 10, "", methodObject ),
                    new Among ( "achtig", -1, 9, "", methodObject ),
                    new Among ( "ioneel", -1, 1, "", methodObject ),
                    new Among ( "baar", -1, 3, "", methodObject ),
                    new Among ( "laar", -1, 5, "", methodObject ),
                    new Among ( "naar", -1, 4, "", methodObject ),
                    new Among ( "raar", -1, 6, "", methodObject ),
                    new Among ( "eriger", -1, 10, "", methodObject ),
                    new Among ( "achtiger", -1, 9, "", methodObject ),
                    new Among ( "lijker", -1, 8, "", methodObject ),
                    new Among ( "tant", -1, 7, "", methodObject ),
                    new Among ( "erigst", -1, 10, "", methodObject ),
                    new Among ( "achtigst", -1, 9, "", methodObject ),
                    new Among ( "lijkst", -1, 8, "", methodObject )
                };

                private final static Among a_4[] = {
                    new Among ( "ig", -1, 1, "", methodObject ),
                    new Among ( "iger", -1, 1, "", methodObject ),
                    new Among ( "igst", -1, 1, "", methodObject )
                };

                private final static Among a_5[] = {
                    new Among ( "ft", -1, 2, "", methodObject ),
                    new Among ( "kt", -1, 1, "", methodObject ),
                    new Among ( "pt", -1, 3, "", methodObject )
                };

                private final static Among a_6[] = {
                    new Among ( "bb", -1, 1, "", methodObject ),
                    new Among ( "cc", -1, 2, "", methodObject ),
                    new Among ( "dd", -1, 3, "", methodObject ),
                    new Among ( "ff", -1, 4, "", methodObject ),
                    new Among ( "gg", -1, 5, "", methodObject ),
                    new Among ( "hh", -1, 6, "", methodObject ),
                    new Among ( "jj", -1, 7, "", methodObject ),
                    new Among ( "kk", -1, 8, "", methodObject ),
                    new Among ( "ll", -1, 9, "", methodObject ),
                    new Among ( "mm", -1, 10, "", methodObject ),
                    new Among ( "nn", -1, 11, "", methodObject ),
                    new Among ( "pp", -1, 12, "", methodObject ),
                    new Among ( "qq", -1, 13, "", methodObject ),
                    new Among ( "rr", -1, 14, "", methodObject ),
                    new Among ( "ss", -1, 15, "", methodObject ),
                    new Among ( "tt", -1, 16, "", methodObject ),
                    new Among ( "v", -1, 21, "", methodObject ),
                    new Among ( "vv", 16, 17, "", methodObject ),
                    new Among ( "ww", -1, 18, "", methodObject ),
                    new Among ( "xx", -1, 19, "", methodObject ),
                    new Among ( "z", -1, 22, "", methodObject ),
                    new Among ( "zz", 20, 20, "", methodObject )
                };

                private final static Among a_7[] = {
                    new Among ( "d", -1, 1, "", methodObject ),
                    new Among ( "t", -1, 2, "", methodObject )
                };

                private static final char g_v[] = {17, 65, 16, 1 };

                private static final char g_v_WX[] = {17, 65, 208, 1 };

                private static final char g_AOU[] = {1, 64, 16 };

                private static final char g_AIOU[] = {1, 65, 16 };

        private boolean B_GE_removed;
        private boolean B_stemmed;
        private boolean B_Y_found;
        private int I_p2;
        private int I_p1;
        private int I_x;
        private java.lang.StringBuilder S_ch = new java.lang.StringBuilder();

                private void copy_from(KpStemmer other) {
                    B_GE_removed = other.B_GE_removed;
                    B_stemmed = other.B_stemmed;
                    B_Y_found = other.B_Y_found;
                    I_p2 = other.I_p2;
                    I_p1 = other.I_p1;
                    I_x = other.I_x;
                    S_ch = other.S_ch;
                    super.copy_from(other);
                }

                private boolean r_R1() {
                    // (, line 32
                    // setmark x, line 32
                    I_x = cursor;
                    if (!(I_x >= I_p1))
                    {
                        return false;
                    }
                    return true;
                }

                private boolean r_R2() {
                    // (, line 33
                    // setmark x, line 33
                    I_x = cursor;
                    if (!(I_x >= I_p2))
                    {
                        return false;
                    }
                    return true;
                }

                private boolean r_V() {
            int v_1;
            int v_2;
                    // test, line 35
                    v_1 = limit - cursor;
                    // (, line 35
                    // or, line 35
                    lab0: do {
                        v_2 = limit - cursor;
                        lab1: do {
                            if (!(in_grouping_b(g_v, 97, 121)))
                            {
                                break lab1;
                            }
                            break lab0;
                        } while (false);
                        cursor = limit - v_2;
                        // literal, line 35
                        if (!(eq_s_b(2, "ij")))
                        {
                            return false;
                        }
                    } while (false);
                    cursor = limit - v_1;
                    return true;
                }

                private boolean r_VX() {
            int v_1;
            int v_2;
                    // test, line 36
                    v_1 = limit - cursor;
                    // (, line 36
                    // next, line 36
                    if (cursor <= limit_backward)
                    {
                        return false;
                    }
                    cursor--;
                    // or, line 36
                    lab0: do {
                        v_2 = limit - cursor;
                        lab1: do {
                            if (!(in_grouping_b(g_v, 97, 121)))
                            {
                                break lab1;
                            }
                            break lab0;
                        } while (false);
                        cursor = limit - v_2;
                        // literal, line 36
                        if (!(eq_s_b(2, "ij")))
                        {
                            return false;
                        }
                    } while (false);
                    cursor = limit - v_1;
                    return true;
                }

                private boolean r_C() {
            int v_1;
            int v_2;
                    // test, line 37
                    v_1 = limit - cursor;
                    // (, line 37
                    // not, line 37
                    {
                        v_2 = limit - cursor;
                        lab0: do {
                            // literal, line 37
                            if (!(eq_s_b(2, "ij")))
                            {
                                break lab0;
                            }
                            return false;
                        } while (false);
                        cursor = limit - v_2;
                    }
                    if (!(out_grouping_b(g_v, 97, 121)))
                    {
                        return false;
                    }
                    cursor = limit - v_1;
                    return true;
                }

                private boolean r_lengthen_V() {
            int v_1;
            int v_2;
            int v_3;
            int v_4;
            int v_5;
            int v_6;
            int v_7;
            int v_8;
                    // do, line 39
                    v_1 = limit - cursor;
                    lab0: do {
                        // (, line 39
                        if (!(out_grouping_b(g_v_WX, 97, 121)))
                        {
                            break lab0;
                        }
                        // [, line 40
                        ket = cursor;
                        // or, line 40
                        lab1: do {
                            v_2 = limit - cursor;
                            lab2: do {
                                // (, line 40
                                if (!(in_grouping_b(g_AOU, 97, 117)))
                                {
                                    break lab2;
                                }
                                // ], line 40
                                bra = cursor;
                                // test, line 40
                                v_3 = limit - cursor;
                                // (, line 40
                                // or, line 40
                                lab3: do {
                                    v_4 = limit - cursor;
                                    lab4: do {
                                        if (!(out_grouping_b(g_v, 97, 121)))
                                        {
                                            break lab4;
                                        }
                                        break lab3;
                                    } while (false);
                                    cursor = limit - v_4;
                                    // atlimit, line 40
                                    if (cursor > limit_backward)
                                    {
                                        break lab2;
                                    }
                                } while (false);
                                cursor = limit - v_3;
                                break lab1;
                            } while (false);
                            cursor = limit - v_2;
                            // (, line 41
                            // literal, line 41
                            if (!(eq_s_b(1, "e")))
                            {
                                break lab0;
                            }
                            // ], line 41
                            bra = cursor;
                            // test, line 41
                            v_5 = limit - cursor;
                            // (, line 41
                            // or, line 41
                            lab5: do {
                                v_6 = limit - cursor;
                                lab6: do {
                                    if (!(out_grouping_b(g_v, 97, 121)))
                                    {
                                        break lab6;
                                    }
                                    break lab5;
                                } while (false);
                                cursor = limit - v_6;
                                // atlimit, line 41
                                if (cursor > limit_backward)
                                {
                                    break lab0;
                                }
                            } while (false);
                            // not, line 42
                            {
                                v_7 = limit - cursor;
                                lab7: do {
                                    if (!(in_grouping_b(g_AIOU, 97, 117)))
                                    {
                                        break lab7;
                                    }
                                    break lab0;
                                } while (false);
                                cursor = limit - v_7;
                            }
                            // not, line 43
                            {
                                v_8 = limit - cursor;
                                lab8: do {
                                    // (, line 43
                                    // next, line 43
                                    if (cursor <= limit_backward)
                                    {
                                        break lab8;
                                    }
                                    cursor--;
                                    if (!(in_grouping_b(g_AIOU, 97, 117)))
                                    {
                                        break lab8;
                                    }
                                    if (!(out_grouping_b(g_v, 97, 121)))
                                    {
                                        break lab8;
                                    }
                                    break lab0;
                                } while (false);
                                cursor = limit - v_8;
                            }
                            cursor = limit - v_5;
                        } while (false);
                        // -> ch, line 44
                        S_ch = slice_to(S_ch);
                        // <+ ch, line 44
                        {
                            int c = cursor;
                            insert(cursor, cursor, S_ch);
                            cursor = c;
                        }
                    } while (false);
                    cursor = limit - v_1;
                    return true;
                }

                private boolean r_Step_1() {
            int among_var;
            int v_1;
            int v_2;
            int v_3;
            int v_4;
                    // (, line 48
                    // [, line 49
                    ket = cursor;
                    // among, line 49
                    among_var = find_among_b(a_0, 7);
                    if (among_var == 0)
                    {
                        return false;
                    }
                    // (, line 49
                    // ], line 49
                    bra = cursor;
                    switch(among_var) {
                        case 0:
                            return false;
                        case 1:
                            // (, line 51
                            // delete, line 51
                            slice_del();
                            break;
                        case 2:
                            // (, line 52
                            // call R1, line 52
                            if (!r_R1())
                            {
                                return false;
                            }
                            // not, line 52
                            {
                                v_1 = limit - cursor;
                                lab0: do {
                                    // (, line 52
                                    // literal, line 52
                                    if (!(eq_s_b(1, "t")))
                                    {
                                        break lab0;
                                    }
                                    // call R1, line 52
                                    if (!r_R1())
                                    {
                                        break lab0;
                                    }
                                    return false;
                                } while (false);
                                cursor = limit - v_1;
                            }
                            // call C, line 52
                            if (!r_C())
                            {
                                return false;
                            }
                            // delete, line 52
                            slice_del();
                            break;
                        case 3:
                            // (, line 53
                            // call R1, line 53
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 53
                            slice_from("ie");
                            break;
                        case 4:
                            // (, line 55
                            // or, line 55
                            lab1: do {
                                v_2 = limit - cursor;
                                lab2: do {
                                    // (, line 55
                                    // literal, line 55
                                    if (!(eq_s_b(2, "ar")))
                                    {
                                        break lab2;
                                    }
                                    // call R1, line 55
                                    if (!r_R1())
                                    {
                                        break lab2;
                                    }
                                    // call C, line 55
                                    if (!r_C())
                                    {
                                        break lab2;
                                    }
                                    // ], line 55
                                    bra = cursor;
                                    // delete, line 55
                                    slice_del();
                                    // call lengthen_V, line 55
                                    if (!r_lengthen_V())
                                    {
                                        break lab2;
                                    }
                                    break lab1;
                                } while (false);
                                cursor = limit - v_2;
                                lab3: do {
                                    // (, line 56
                                    // literal, line 56
                                    if (!(eq_s_b(2, "er")))
                                    {
                                        break lab3;
                                    }
                                    // call R1, line 56
                                    if (!r_R1())
                                    {
                                        break lab3;
                                    }
                                    // call C, line 56
                                    if (!r_C())
                                    {
                                        break lab3;
                                    }
                                    // ], line 56
                                    bra = cursor;
                                    // delete, line 56
                                    slice_del();
                                    break lab1;
                                } while (false);
                                cursor = limit - v_2;
                                // (, line 57
                                // call R1, line 57
                                if (!r_R1())
                                {
                                    return false;
                                }
                                // call C, line 57
                                if (!r_C())
                                {
                                    return false;
                                }
                                // <-, line 57
                                slice_from("e");
                            } while (false);
                            break;
                        case 5:
                            // (, line 59
                            // call R1, line 59
                            if (!r_R1())
                            {
                                return false;
                            }
                            // call V, line 59
                            if (!r_V())
                            {
                                return false;
                            }
                            // <-, line 59
                            slice_from("au");
                            break;
                        case 6:
                            // (, line 60
                            // or, line 60
                            lab4: do {
                                v_3 = limit - cursor;
                                lab5: do {
                                    // (, line 60
                                    // literal, line 60
                                    if (!(eq_s_b(3, "hed")))
                                    {
                                        break lab5;
                                    }
                                    // call R1, line 60
                                    if (!r_R1())
                                    {
                                        break lab5;
                                    }
                                    // ], line 60
                                    bra = cursor;
                                    // <-, line 60
                                    slice_from("heid");
                                    break lab4;
                                } while (false);
                                cursor = limit - v_3;
                                lab6: do {
                                    // (, line 61
                                    // literal, line 61
                                    if (!(eq_s_b(2, "nd")))
                                    {
                                        break lab6;
                                    }
                                    // delete, line 61
                                    slice_del();
                                    break lab4;
                                } while (false);
                                cursor = limit - v_3;
                                lab7: do {
                                    // (, line 62
                                    // literal, line 62
                                    if (!(eq_s_b(1, "d")))
                                    {
                                        break lab7;
                                    }
                                    // call R1, line 62
                                    if (!r_R1())
                                    {
                                        break lab7;
                                    }
                                    // call C, line 62
                                    if (!r_C())
                                    {
                                        break lab7;
                                    }
                                    // ], line 62
                                    bra = cursor;
                                    // delete, line 62
                                    slice_del();
                                    break lab4;
                                } while (false);
                                cursor = limit - v_3;
                                lab8: do {
                                    // (, line 63
                                    // or, line 63
                                    lab9: do {
                                        v_4 = limit - cursor;
                                        lab10: do {
                                            // literal, line 63
                                            if (!(eq_s_b(1, "i")))
                                            {
                                                break lab10;
                                            }
                                            break lab9;
                                        } while (false);
                                        cursor = limit - v_4;
                                        // literal, line 63
                                        if (!(eq_s_b(1, "j")))
                                        {
                                            break lab8;
                                        }
                                    } while (false);
                                    // call V, line 63
                                    if (!r_V())
                                    {
                                        break lab8;
                                    }
                                    // delete, line 63
                                    slice_del();
                                    break lab4;
                                } while (false);
                                cursor = limit - v_3;
                                // (, line 64
                                // call R1, line 64
                                if (!r_R1())
                                {
                                    return false;
                                }
                                // call C, line 64
                                if (!r_C())
                                {
                                    return false;
                                }
                                // delete, line 64
                                slice_del();
                                // call lengthen_V, line 64
                                if (!r_lengthen_V())
                                {
                                    return false;
                                }
                            } while (false);
                            break;
                        case 7:
                            // (, line 65
                            // <-, line 65
                            slice_from("nd");
                            break;
                    }
                    return true;
                }

                private boolean r_Step_2() {
            int among_var;
            int v_1;
                    // (, line 70
                    // [, line 71
                    ket = cursor;
                    // among, line 71
                    among_var = find_among_b(a_1, 11);
                    if (among_var == 0)
                    {
                        return false;
                    }
                    // (, line 71
                    // ], line 71
                    bra = cursor;
                    switch(among_var) {
                        case 0:
                            return false;
                        case 1:
                            // (, line 72
                            // or, line 72
                            lab0: do {
                                v_1 = limit - cursor;
                                lab1: do {
                                    // (, line 72
                                    // literal, line 72
                                    if (!(eq_s_b(2, "'t")))
                                    {
                                        break lab1;
                                    }
                                    // ], line 72
                                    bra = cursor;
                                    // delete, line 72
                                    slice_del();
                                    break lab0;
                                } while (false);
                                cursor = limit - v_1;
                                lab2: do {
                                    // (, line 73
                                    // literal, line 73
                                    if (!(eq_s_b(2, "et")))
                                    {
                                        break lab2;
                                    }
                                    // ], line 73
                                    bra = cursor;
                                    // call R1, line 73
                                    if (!r_R1())
                                    {
                                        break lab2;
                                    }
                                    // call C, line 73
                                    if (!r_C())
                                    {
                                        break lab2;
                                    }
                                    // delete, line 73
                                    slice_del();
                                    break lab0;
                                } while (false);
                                cursor = limit - v_1;
                                lab3: do {
                                    // (, line 74
                                    // literal, line 74
                                    if (!(eq_s_b(3, "rnt")))
                                    {
                                        break lab3;
                                    }
                                    // ], line 74
                                    bra = cursor;
                                    // <-, line 74
                                    slice_from("rn");
                                    break lab0;
                                } while (false);
                                cursor = limit - v_1;
                                lab4: do {
                                    // (, line 75
                                    // literal, line 75
                                    if (!(eq_s_b(1, "t")))
                                    {
                                        break lab4;
                                    }
                                    // ], line 75
                                    bra = cursor;
                                    // call R1, line 75
                                    if (!r_R1())
                                    {
                                        break lab4;
                                    }
                                    // call VX, line 75
                                    if (!r_VX())
                                    {
                                        break lab4;
                                    }
                                    // delete, line 75
                                    slice_del();
                                    break lab0;
                                } while (false);
                                cursor = limit - v_1;
                                lab5: do {
                                    // (, line 76
                                    // literal, line 76
                                    if (!(eq_s_b(3, "ink")))
                                    {
                                        break lab5;
                                    }
                                    // ], line 76
                                    bra = cursor;
                                    // <-, line 76
                                    slice_from("ing");
                                    break lab0;
                                } while (false);
                                cursor = limit - v_1;
                                lab6: do {
                                    // (, line 77
                                    // literal, line 77
                                    if (!(eq_s_b(2, "mp")))
                                    {
                                        break lab6;
                                    }
                                    // ], line 77
                                    bra = cursor;
                                    // <-, line 77
                                    slice_from("m");
                                    break lab0;
                                } while (false);
                                cursor = limit - v_1;
                                lab7: do {
                                    // (, line 78
                                    // literal, line 78
                                    if (!(eq_s_b(1, "'")))
                                    {
                                        break lab7;
                                    }
                                    // ], line 78
                                    bra = cursor;
                                    // call R1, line 78
                                    if (!r_R1())
                                    {
                                        break lab7;
                                    }
                                    // delete, line 78
                                    slice_del();
                                    break lab0;
                                } while (false);
                                cursor = limit - v_1;
                                // (, line 79
                                // ], line 79
                                bra = cursor;
                                // call R1, line 79
                                if (!r_R1())
                                {
                                    return false;
                                }
                                // call C, line 79
                                if (!r_C())
                                {
                                    return false;
                                }
                                // delete, line 79
                                slice_del();
                            } while (false);
                            break;
                        case 2:
                            // (, line 80
                            // call R1, line 80
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 80
                            slice_from("g");
                            break;
                        case 3:
                            // (, line 81
                            // call R1, line 81
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 81
                            slice_from("lijk");
                            break;
                        case 4:
                            // (, line 82
                            // call R1, line 82
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 82
                            slice_from("isch");
                            break;
                        case 5:
                            // (, line 83
                            // call R1, line 83
                            if (!r_R1())
                            {
                                return false;
                            }
                            // call C, line 83
                            if (!r_C())
                            {
                                return false;
                            }
                            // delete, line 83
                            slice_del();
                            break;
                        case 6:
                            // (, line 84
                            // call R1, line 84
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 84
                            slice_from("t");
                            break;
                        case 7:
                            // (, line 85
                            // call R1, line 85
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 85
                            slice_from("s");
                            break;
                        case 8:
                            // (, line 86
                            // call R1, line 86
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 86
                            slice_from("r");
                            break;
                        case 9:
                            // (, line 87
                            // call R1, line 87
                            if (!r_R1())
                            {
                                return false;
                            }
                            // delete, line 87
                            slice_del();
                            // attach, line 87
                            insert(cursor, cursor, "l");
                            // call lengthen_V, line 87
                            if (!r_lengthen_V())
                            {
                                return false;
                            }
                            break;
                        case 10:
                            // (, line 88
                            // call R1, line 88
                            if (!r_R1())
                            {
                                return false;
                            }
                            // call C, line 88
                            if (!r_C())
                            {
                                return false;
                            }
                            // delete, line 88
                            slice_del();
                            // attach, line 88
                            insert(cursor, cursor, "en");
                            // call lengthen_V, line 88
                            if (!r_lengthen_V())
                            {
                                return false;
                            }
                            break;
                        case 11:
                            // (, line 89
                            // call R1, line 89
                            if (!r_R1())
                            {
                                return false;
                            }
                            // call C, line 89
                            if (!r_C())
                            {
                                return false;
                            }
                            // <-, line 89
                            slice_from("ief");
                            break;
                    }
                    return true;
                }

                private boolean r_Step_3() {
            int among_var;
                    // (, line 94
                    // [, line 95
                    ket = cursor;
                    // among, line 95
                    among_var = find_among_b(a_2, 14);
                    if (among_var == 0)
                    {
                        return false;
                    }
                    // (, line 95
                    // ], line 95
                    bra = cursor;
                    switch(among_var) {
                        case 0:
                            return false;
                        case 1:
                            // (, line 96
                            // call R1, line 96
                            if (!r_R1())
                            {
                                return false;
                            }
                            // <-, line 96
                            slice_from("eer");
                            break;
                        case 2:
                            // (, line 97
                            // call R1, line 97
                            if (!r_R1())
                            {
                                return false;
                            }
                            // delete, line 97
                            slice_del();
                            // call lengthen_V, line 97
                            if (!r_lengthen_V())
                            {
                                return false;
                            }
                            break;
                        case 3:
                            // (, line 100
                            // call R1, line 100
                            if (!r_R1())
                            {
                                return false;
                            }
                            // delete, line 100
                            slice_del();
                            break;
                        case 4:
                            // (, line 101
                            // <-, line 101
                            slice_from("r");
                            break;
                        case 5:
                            // (, line 104
                            // call R1, line 104
                            if (!r_R1())
                            {
                                return false;
                            }
                            // delete, line 104
                            slice_del();
                            // call lengthen_V, line 104
                            if (!r_lengthen_V())
                            {
                                return false;
                            }
                            break;
                        case 6:
                            // (, line 105
                            // call R1, line 105
                            if (!r_R1())
                            {
                                return false;
                            }
                            // call C, line 105
                            if (!r_C())
                            {
                                return false;
                            }
                            // <-, line 105
                            slice_from("aar");
                            break;
                        case 7:
                            // (, line 106
                            // call R2, line 106
                            if (!r_R2())
                            {
                                return false;
                            }
                            // delete, line 106
                            slice_del();
                            // attach, line 106
                            insert(cursor, cursor, "f");
                            // call lengthen_V, line 106
                            if (!r_lengthen_V())
                            {
                                return false;
                            }
                            break;
                        case 8:
                            // (, line 107
                            // call R2, line 107
                            if (!r_R2())
                            {
                                return false;
                            }
                            // delete, line 107
                            slice_del();
                            // attach, line 107
                            insert(cursor, cursor, "g");
                            // call lengthen_V, line 107
                            if (!r_lengthen_V())
                            {
                                return false;
                            }
                            break;
                        case 9:
                            // (, line 108
                            // call R1, line 108
                            if (!r_R1())
                            {
                                return false;
                            }
                            // call C, line 108
                            if (!r_C())
                            {
                                return false;
                            }
                            // <-, line 108
                            slice_from("t");
                            break;
                        case 10:
                            // (, line 109
                            // call R1, line 109
                            if (!r_R1())
                            {
                                return false;
                            }
                            // call C, line 109
                            if (!r_C())
                            {
                                return false;
                            }
                            // <-, line 109
                            slice_from("d");
                            break;
                    }
                    return true;
                }

                private boolean r_Step_4() {
            int among_var;
            int v_1;
                    // (, line 114
                    // or, line 134
                    lab0: do {
                        v_1 = limit - cursor;
                        lab1: do {
                            // (, line 115
                            // [, line 115
                            ket = cursor;
                            // among, line 115
                            among_var = find_among_b(a_3, 16);
                            if (among_var == 0)
                            {
                                break lab1;
                            }
                            // (, line 115
                            // ], line 115
                            bra = cursor;
                            switch(among_var) {
                                case 0:
                                    break lab1;
                                case 1:
                                    // (, line 116
                                    // call R1, line 116
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // <-, line 116
                                    slice_from("ie");
                                    break;
                                case 2:
                                    // (, line 117
                                    // call R1, line 117
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // <-, line 117
                                    slice_from("eer");
                                    break;
                                case 3:
                                    // (, line 118
                                    // call R1, line 118
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // delete, line 118
                                    slice_del();
                                    break;
                                case 4:
                                    // (, line 119
                                    // call R1, line 119
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // call V, line 119
                                    if (!r_V())
                                    {
                                        break lab1;
                                    }
                                    // <-, line 119
                                    slice_from("n");
                                    break;
                                case 5:
                                    // (, line 120
                                    // call R1, line 120
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // call V, line 120
                                    if (!r_V())
                                    {
                                        break lab1;
                                    }
                                    // <-, line 120
                                    slice_from("l");
                                    break;
                                case 6:
                                    // (, line 121
                                    // call R1, line 121
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // call V, line 121
                                    if (!r_V())
                                    {
                                        break lab1;
                                    }
                                    // <-, line 121
                                    slice_from("r");
                                    break;
                                case 7:
                                    // (, line 122
                                    // call R1, line 122
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // <-, line 122
                                    slice_from("teer");
                                    break;
                                case 8:
                                    // (, line 124
                                    // call R1, line 124
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // <-, line 124
                                    slice_from("lijk");
                                    break;
                                case 9:
                                    // (, line 127
                                    // call R1, line 127
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // delete, line 127
                                    slice_del();
                                    break;
                                case 10:
                                    // (, line 131
                                    // call R1, line 131
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    // call C, line 131
                                    if (!r_C())
                                    {
                                        break lab1;
                                    }
                                    // delete, line 131
                                    slice_del();
                                    // call lengthen_V, line 131
                                    if (!r_lengthen_V())
                                    {
                                        break lab1;
                                    }
                                    break;
                            }
                            break lab0;
                        } while (false);
                        cursor = limit - v_1;
                        // (, line 135
                        // [, line 135
                        ket = cursor;
                        // among, line 135
                        among_var = find_among_b(a_4, 3);
                        if (among_var == 0)
                        {
                            return false;
                        }
                        // (, line 135
                        // ], line 135
                        bra = cursor;
                        switch(among_var) {
                            case 0:
                                return false;
                            case 1:
                                // (, line 138
                                // call R1, line 138
                                if (!r_R1())
                                {
                                    return false;
                                }
                                // call C, line 138
                                if (!r_C())
                                {
                                    return false;
                                }
                                // delete, line 138
                                slice_del();
                                // call lengthen_V, line 138
                                if (!r_lengthen_V())
                                {
                                    return false;
                                }
                                break;
                        }
                    } while (false);
                    return true;
                }

                private boolean r_Step_7() {
            int among_var;
                    // (, line 144
                    // [, line 145
                    ket = cursor;
                    // among, line 145
                    among_var = find_among_b(a_5, 3);
                    if (among_var == 0)
                    {
                        return false;
                    }
                    // (, line 145
                    // ], line 145
                    bra = cursor;
                    switch(among_var) {
                        case 0:
                            return false;
                        case 1:
                            // (, line 146
                            // <-, line 146
                            slice_from("k");
                            break;
                        case 2:
                            // (, line 147
                            // <-, line 147
                            slice_from("f");
                            break;
                        case 3:
                            // (, line 148
                            // <-, line 148
                            slice_from("p");
                            break;
                    }
                    return true;
                }

                private boolean r_Step_6() {
            int among_var;
                    // (, line 153
                    // [, line 154
                    ket = cursor;
                    // among, line 154
                    among_var = find_among_b(a_6, 22);
                    if (among_var == 0)
                    {
                        return false;
                    }
                    // (, line 154
                    // ], line 154
                    bra = cursor;
                    switch(among_var) {
                        case 0:
                            return false;
                        case 1:
                            // (, line 155
                            // <-, line 155
                            slice_from("b");
                            break;
                        case 2:
                            // (, line 156
                            // <-, line 156
                            slice_from("c");
                            break;
                        case 3:
                            // (, line 157
                            // <-, line 157
                            slice_from("d");
                            break;
                        case 4:
                            // (, line 158
                            // <-, line 158
                            slice_from("f");
                            break;
                        case 5:
                            // (, line 159
                            // <-, line 159
                            slice_from("g");
                            break;
                        case 6:
                            // (, line 160
                            // <-, line 160
                            slice_from("h");
                            break;
                        case 7:
                            // (, line 161
                            // <-, line 161
                            slice_from("j");
                            break;
                        case 8:
                            // (, line 162
                            // <-, line 162
                            slice_from("k");
                            break;
                        case 9:
                            // (, line 163
                            // <-, line 163
                            slice_from("l");
                            break;
                        case 10:
                            // (, line 164
                            // <-, line 164
                            slice_from("m");
                            break;
                        case 11:
                            // (, line 165
                            // <-, line 165
                            slice_from("n");
                            break;
                        case 12:
                            // (, line 166
                            // <-, line 166
                            slice_from("p");
                            break;
                        case 13:
                            // (, line 167
                            // <-, line 167
                            slice_from("q");
                            break;
                        case 14:
                            // (, line 168
                            // <-, line 168
                            slice_from("r");
                            break;
                        case 15:
                            // (, line 169
                            // <-, line 169
                            slice_from("s");
                            break;
                        case 16:
                            // (, line 170
                            // <-, line 170
                            slice_from("t");
                            break;
                        case 17:
                            // (, line 171
                            // <-, line 171
                            slice_from("v");
                            break;
                        case 18:
                            // (, line 172
                            // <-, line 172
                            slice_from("w");
                            break;
                        case 19:
                            // (, line 173
                            // <-, line 173
                            slice_from("x");
                            break;
                        case 20:
                            // (, line 174
                            // <-, line 174
                            slice_from("z");
                            break;
                        case 21:
                            // (, line 175
                            // <-, line 175
                            slice_from("f");
                            break;
                        case 22:
                            // (, line 176
                            // <-, line 176
                            slice_from("s");
                            break;
                    }
                    return true;
                }

                private boolean r_Step_1c() {
            int among_var;
            int v_1;
            int v_2;
                    // (, line 181
                    // [, line 182
                    ket = cursor;
                    // among, line 182
                    among_var = find_among_b(a_7, 2);
                    if (among_var == 0)
                    {
                        return false;
                    }
                    // (, line 182
                    // ], line 182
                    bra = cursor;
                    // call R1, line 182
                    if (!r_R1())
                    {
                        return false;
                    }
                    // call C, line 182
                    if (!r_C())
                    {
                        return false;
                    }
                    switch(among_var) {
                        case 0:
                            return false;
                        case 1:
                            // (, line 183
                            // not, line 183
                            {
                                v_1 = limit - cursor;
                                lab0: do {
                                    // (, line 183
                                    // literal, line 183
                                    if (!(eq_s_b(1, "n")))
                                    {
                                        break lab0;
                                    }
                                    // call R1, line 183
                                    if (!r_R1())
                                    {
                                        break lab0;
                                    }
                                    return false;
                                } while (false);
                                cursor = limit - v_1;
                            }
                            // delete, line 183
                            slice_del();
                            break;
                        case 2:
                            // (, line 184
                            // not, line 184
                            {
                                v_2 = limit - cursor;
                                lab1: do {
                                    // (, line 184
                                    // literal, line 184
                                    if (!(eq_s_b(1, "h")))
                                    {
                                        break lab1;
                                    }
                                    // call R1, line 184
                                    if (!r_R1())
                                    {
                                        break lab1;
                                    }
                                    return false;
                                } while (false);
                                cursor = limit - v_2;
                            }
                            // delete, line 184
                            slice_del();
                            break;
                    }
                    return true;
                }

                private boolean r_Lose_prefix() {
            int v_1;
            int v_2;
            int v_3;
                    // (, line 189
                    // [, line 190
                    bra = cursor;
                    // literal, line 190
                    if (!(eq_s(2, "ge")))
                    {
                        return false;
                    }
                    // ], line 190
                    ket = cursor;
                    // test, line 190
                    v_1 = cursor;
                    // hop, line 190
                    {
                        int c = cursor + 3;
                        if (0 > c || c > limit)
                        {
                            return false;
                        }
                        cursor = c;
                    }
                    cursor = v_1;
                    // (, line 190
                    // goto, line 190
                    golab0: while(true)
                    {
                        v_2 = cursor;
                        lab1: do {
                            if (!(in_grouping(g_v, 97, 121)))
                            {
                                break lab1;
                            }
                            cursor = v_2;
                            break golab0;
                        } while (false);
                        cursor = v_2;
                        if (cursor >= limit)
                        {
                            return false;
                        }
                        cursor++;
                    }
                    // goto, line 190
                    golab2: while(true)
                    {
                        v_3 = cursor;
                        lab3: do {
                            if (!(out_grouping(g_v, 97, 121)))
                            {
                                break lab3;
                            }
                            cursor = v_3;
                            break golab2;
                        } while (false);
                        cursor = v_3;
                        if (cursor >= limit)
                        {
                            return false;
                        }
                        cursor++;
                    }
                    // set GE_removed, line 191
                    B_GE_removed = true;
                    // delete, line 192
                    slice_del();
                    return true;
                }

                private boolean r_Lose_infix() {
            int v_2;
            int v_3;
            int v_4;
                    // (, line 195
                    // next, line 196
                    if (cursor >= limit)
                    {
                        return false;
                    }
                    cursor++;
                    // gopast, line 197
                    golab0: while(true)
                    {
                        lab1: do {
                            // (, line 197
                            // [, line 197
                            bra = cursor;
                            // literal, line 197
                            if (!(eq_s(2, "ge")))
                            {
                                break lab1;
                            }
                            // ], line 197
                            ket = cursor;
                            break golab0;
                        } while (false);
                        if (cursor >= limit)
                        {
                            return false;
                        }
                        cursor++;
                    }
                    // test, line 197
                    v_2 = cursor;
                    // hop, line 197
                    {
                        int c = cursor + 3;
                        if (0 > c || c > limit)
                        {
                            return false;
                        }
                        cursor = c;
                    }
                    cursor = v_2;
                    // (, line 197
                    // goto, line 197
                    golab2: while(true)
                    {
                        v_3 = cursor;
                        lab3: do {
                            if (!(in_grouping(g_v, 97, 121)))
                            {
                                break lab3;
                            }
                            cursor = v_3;
                            break golab2;
                        } while (false);
                        cursor = v_3;
                        if (cursor >= limit)
                        {
                            return false;
                        }
                        cursor++;
                    }
                    // goto, line 197
                    golab4: while(true)
                    {
                        v_4 = cursor;
                        lab5: do {
                            if (!(out_grouping(g_v, 97, 121)))
                            {
                                break lab5;
                            }
                            cursor = v_4;
                            break golab4;
                        } while (false);
                        cursor = v_4;
                        if (cursor >= limit)
                        {
                            return false;
                        }
                        cursor++;
                    }
                    // set GE_removed, line 198
                    B_GE_removed = true;
                    // delete, line 199
                    slice_del();
                    return true;
                }

                private boolean r_measure() {
            int v_1;
            int v_2;
            int v_5;
            int v_6;
            int v_9;
            int v_10;
                    // (, line 202
                    // do, line 203
                    v_1 = cursor;
                    lab0: do {
                        // (, line 203
                        // tolimit, line 204
                        cursor = limit;
                        // setmark p1, line 205
                        I_p1 = cursor;
                        // setmark p2, line 206
                        I_p2 = cursor;
                    } while (false);
                    cursor = v_1;
                    // do, line 208
                    v_2 = cursor;
                    lab1: do {
                        // (, line 208
                        // repeat, line 209
                        replab2: while(true)
                        {
                            lab3: do {
                                if (!(out_grouping(g_v, 97, 121)))
                                {
                                    break lab3;
                                }
                                continue replab2;
                            } while (false);
                            break replab2;
                        }
                        // atleast, line 209
                        {
                            int v_4 = 1;
                            // atleast, line 209
                            replab4: while(true)
                            {
                                v_5 = cursor;
                                lab5: do {
                                    // (, line 209
                                    // or, line 209
                                    lab6: do {
                                        v_6 = cursor;
                                        lab7: do {
                                            // literal, line 209
                                            if (!(eq_s(2, "ij")))
                                            {
                                                break lab7;
                                            }
                                            break lab6;
                                        } while (false);
                                        cursor = v_6;
                                        if (!(in_grouping(g_v, 97, 121)))
                                        {
                                            break lab5;
                                        }
                                    } while (false);
                                    v_4--;
                                    continue replab4;
                                } while (false);
                                cursor = v_5;
                                break replab4;
                            }
                            if (v_4 > 0)
                            {
                                break lab1;
                            }
                        }
                        if (!(out_grouping(g_v, 97, 121)))
                        {
                            break lab1;
                        }
                        // setmark p1, line 209
                        I_p1 = cursor;
                        // repeat, line 210
                        replab8: while(true)
                        {
                            lab9: do {
                                if (!(out_grouping(g_v, 97, 121)))
                                {
                                    break lab9;
                                }
                                continue replab8;
                            } while (false);
                            break replab8;
                        }
                        // atleast, line 210
                        {
                            int v_8 = 1;
                            // atleast, line 210
                            replab10: while(true)
                            {
                                v_9 = cursor;
                                lab11: do {
                                    // (, line 210
                                    // or, line 210
                                    lab12: do {
                                        v_10 = cursor;
                                        lab13: do {
                                            // literal, line 210
                                            if (!(eq_s(2, "ij")))
                                            {
                                                break lab13;
                                            }
                                            break lab12;
                                        } while (false);
                                        cursor = v_10;
                                        if (!(in_grouping(g_v, 97, 121)))
                                        {
                                            break lab11;
                                        }
                                    } while (false);
                                    v_8--;
                                    continue replab10;
                                } while (false);
                                cursor = v_9;
                                break replab10;
                            }
                            if (v_8 > 0)
                            {
                                break lab1;
                            }
                        }
                        if (!(out_grouping(g_v, 97, 121)))
                        {
                            break lab1;
                        }
                        // setmark p2, line 210
                        I_p2 = cursor;
                    } while (false);
                    cursor = v_2;
                    return true;
                }

                @Override
                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;
            int v_11;
            int v_12;
            int v_13;
            int v_14;
            int v_15;
            int v_16;
            int v_18;
            int v_19;
            int v_20;
                    // (, line 214
                    // unset Y_found, line 216
                    B_Y_found = false;
                    // unset stemmed, line 217
                    B_stemmed = false;
                    // do, line 218
                    v_1 = cursor;
                    lab0: do {
                        // (, line 218
                        // [, line 218
                        bra = cursor;
                        // literal, line 218
                        if (!(eq_s(1, "y")))
                        {
                            break lab0;
                        }
                        // ], line 218
                        ket = cursor;
                        // <-, line 218
                        slice_from("Y");
                        // set Y_found, line 218
                        B_Y_found = true;
                    } while (false);
                    cursor = v_1;
                    // do, line 219
                    v_2 = cursor;
                    lab1: do {
                        // repeat, line 219
                        replab2: while(true)
                        {
                            v_3 = cursor;
                            lab3: do {
                                // (, line 219
                                // goto, line 219
                                golab4: while(true)
                                {
                                    v_4 = cursor;
                                    lab5: do {
                                        // (, line 219
                                        if (!(in_grouping(g_v, 97, 121)))
                                        {
                                            break lab5;
                                        }
                                        // [, line 219
                                        bra = cursor;
                                        // literal, line 219
                                        if (!(eq_s(1, "y")))
                                        {
                                            break lab5;
                                        }
                                        // ], line 219
                                        ket = cursor;
                                        cursor = v_4;
                                        break golab4;
                                    } while (false);
                                    cursor = v_4;
                                    if (cursor >= limit)
                                    {
                                        break lab3;
                                    }
                                    cursor++;
                                }
                                // <-, line 219
                                slice_from("Y");
                                // set Y_found, line 219
                                B_Y_found = true;
                                continue replab2;
                            } while (false);
                            cursor = v_3;
                            break replab2;
                        }
                    } while (false);
                    cursor = v_2;
                    // call measure, line 221
                    if (!r_measure())
                    {
                        return false;
                    }
                    // backwards, line 223
                    limit_backward = cursor; cursor = limit;
                    // (, line 223
                    // do, line 224
                    v_5 = limit - cursor;
                    lab6: do {
                        // (, line 224
                        // call Step_1, line 224
                        if (!r_Step_1())
                        {
                            break lab6;
                        }
                        // set stemmed, line 224
                        B_stemmed = true;
                    } while (false);
                    cursor = limit - v_5;
                    // do, line 225
                    v_6 = limit - cursor;
                    lab7: do {
                        // (, line 225
                        // call Step_2, line 225
                        if (!r_Step_2())
                        {
                            break lab7;
                        }
                        // set stemmed, line 225
                        B_stemmed = true;
                    } while (false);
                    cursor = limit - v_6;
                    // do, line 226
                    v_7 = limit - cursor;
                    lab8: do {
                        // (, line 226
                        // call Step_3, line 226
                        if (!r_Step_3())
                        {
                            break lab8;
                        }
                        // set stemmed, line 226
                        B_stemmed = true;
                    } while (false);
                    cursor = limit - v_7;
                    // do, line 227
                    v_8 = limit - cursor;
                    lab9: do {
                        // (, line 227
                        // call Step_4, line 227
                        if (!r_Step_4())
                        {
                            break lab9;
                        }
                        // set stemmed, line 227
                        B_stemmed = true;
                    } while (false);
                    cursor = limit - v_8;
                    cursor = limit_backward;                    // unset GE_removed, line 229
                    B_GE_removed = false;
                    // do, line 230
                    v_9 = cursor;
                    lab10: do {
                        // (, line 230
                        // and, line 230
                        v_10 = cursor;
                        // call Lose_prefix, line 230
                        if (!r_Lose_prefix())
                        {
                            break lab10;
                        }
                        cursor = v_10;
                        // call measure, line 230
                        if (!r_measure())
                        {
                            break lab10;
                        }
                    } while (false);
                    cursor = v_9;
                    // backwards, line 231
                    limit_backward = cursor; cursor = limit;
                    // (, line 231
                    // do, line 232
                    v_11 = limit - cursor;
                    lab11: do {
                        // (, line 232
                        // Boolean test GE_removed, line 232
                        if (!(B_GE_removed))
                        {
                            break lab11;
                        }
                        // call Step_1c, line 232
                        if (!r_Step_1c())
                        {
                            break lab11;
                        }
                    } while (false);
                    cursor = limit - v_11;
                    cursor = limit_backward;                    // unset GE_removed, line 234
                    B_GE_removed = false;
                    // do, line 235
                    v_12 = cursor;
                    lab12: do {
                        // (, line 235
                        // and, line 235
                        v_13 = cursor;
                        // call Lose_infix, line 235
                        if (!r_Lose_infix())
                        {
                            break lab12;
                        }
                        cursor = v_13;
                        // call measure, line 235
                        if (!r_measure())
                        {
                            break lab12;
                        }
                    } while (false);
                    cursor = v_12;
                    // backwards, line 236
                    limit_backward = cursor; cursor = limit;
                    // (, line 236
                    // do, line 237
                    v_14 = limit - cursor;
                    lab13: do {
                        // (, line 237
                        // Boolean test GE_removed, line 237
                        if (!(B_GE_removed))
                        {
                            break lab13;
                        }
                        // call Step_1c, line 237
                        if (!r_Step_1c())
                        {
                            break lab13;
                        }
                    } while (false);
                    cursor = limit - v_14;
                    cursor = limit_backward;                    // backwards, line 239
                    limit_backward = cursor; cursor = limit;
                    // (, line 239
                    // do, line 240
                    v_15 = limit - cursor;
                    lab14: do {
                        // (, line 240
                        // call Step_7, line 240
                        if (!r_Step_7())
                        {
                            break lab14;
                        }
                        // set stemmed, line 240
                        B_stemmed = true;
                    } while (false);
                    cursor = limit - v_15;
                    // do, line 241
                    v_16 = limit - cursor;
                    lab15: do {
                        // (, line 241
                        // or, line 241
                        lab16: do {
                            lab17: do {
                                // Boolean test stemmed, line 241
                                if (!(B_stemmed))
                                {
                                    break lab17;
                                }
                                break lab16;
                            } while (false);
                            // Boolean test GE_removed, line 241
                            if (!(B_GE_removed))
                            {
                                break lab15;
                            }
                        } while (false);
                        // call Step_6, line 241
                        if (!r_Step_6())
                        {
                            break lab15;
                        }
                    } while (false);
                    cursor = limit - v_16;
                    cursor = limit_backward;                    // do, line 243
                    v_18 = cursor;
                    lab18: do {
                        // (, line 243
                        // Boolean test Y_found, line 243
                        if (!(B_Y_found))
                        {
                            break lab18;
                        }
                        // repeat, line 243
                        replab19: while(true)
                        {
                            v_19 = cursor;
                            lab20: do {
                                // (, line 243
                                // goto, line 243
                                golab21: while(true)
                                {
                                    v_20 = cursor;
                                    lab22: do {
                                        // (, line 243
                                        // [, line 243
                                        bra = cursor;
                                        // literal, line 243
                                        if (!(eq_s(1, "Y")))
                                        {
                                            break lab22;
                                        }
                                        // ], line 243
                                        ket = cursor;
                                        cursor = v_20;
                                        break golab21;
                                    } while (false);
                                    cursor = v_20;
                                    if (cursor >= limit)
                                    {
                                        break lab20;
                                    }
                                    cursor++;
                                }
                                // <-, line 243
                                slice_from("y");
                                continue replab19;
                            } while (false);
                            cursor = v_19;
                            break replab19;
                        }
                    } while (false);
                    cursor = v_18;
                    return true;
                }

        @Override
        public boolean equals( Object o ) {
            return o instanceof KpStemmer;
        }

        @Override
        public int hashCode() {
            return KpStemmer.class.getName().hashCode();
        }



}

