private bool r_standard_suffix()

in src/Lucene.Net.Analysis.Common/Tartarus/Snowball/Ext/SpanishStemmer.cs [719:1007]


        private bool r_standard_suffix()
        {
            int among_var;
            int v_1;
            int v_2;
            int v_3;
            int v_4;
            int v_5;
            // (, line 86
            // [, line 87
            m_ket = m_cursor;
            // substring, line 87
            among_var = FindAmongB(a_6, 46);
            if (among_var == 0)
            {
                return false;
            }
            // ], line 87
            m_bra = m_cursor;
            switch (among_var)
            {
                case 0:
                    return false;
                case 1:
                    // (, line 98
                    // call R2, line 99
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 99
                    SliceDel();
                    break;
                case 2:
                    // (, line 104
                    // call R2, line 105
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 105
                    SliceDel();
                    // try, line 106
                    v_1 = m_limit - m_cursor;
                    do
                    {
                        // (, line 106
                        // [, line 106
                        m_ket = m_cursor;
                        // literal, line 106
                        if (!(Eq_S_B(2, "ic")))
                        {
                            m_cursor = m_limit - v_1;
                            goto lab0;
                        }
                        // ], line 106
                        m_bra = m_cursor;
                        // call R2, line 106
                        if (!r_R2())
                        {
                            m_cursor = m_limit - v_1;
                            goto lab0;
                        }
                        // delete, line 106
                        SliceDel();
                    } while (false);
                    lab0:
                    break;
                case 3:
                    // (, line 110
                    // call R2, line 111
                    if (!r_R2())
                    {
                        return false;
                    }
                    // <-, line 111
                    SliceFrom("log");
                    break;
                case 4:
                    // (, line 114
                    // call R2, line 115
                    if (!r_R2())
                    {
                        return false;
                    }
                    // <-, line 115
                    SliceFrom("u");
                    break;
                case 5:
                    // (, line 118
                    // call R2, line 119
                    if (!r_R2())
                    {
                        return false;
                    }
                    // <-, line 119
                    SliceFrom("ente");
                    break;
                case 6:
                    // (, line 122
                    // call R1, line 123
                    if (!r_R1())
                    {
                        return false;
                    }
                    // delete, line 123
                    SliceDel();
                    // try, line 124
                    v_2 = m_limit - m_cursor;
                    do
                    {
                        // (, line 124
                        // [, line 125
                        m_ket = m_cursor;
                        // substring, line 125
                        among_var = FindAmongB(a_3, 4);
                        if (among_var == 0)
                        {
                            m_cursor = m_limit - v_2;
                            goto lab1;
                        }
                        // ], line 125
                        m_bra = m_cursor;
                        // call R2, line 125
                        if (!r_R2())
                        {
                            m_cursor = m_limit - v_2;
                            goto lab1;
                        }
                        // delete, line 125
                        SliceDel();
                        switch (among_var)
                        {
                            case 0:
                                m_cursor = m_limit - v_2;
                                goto lab1;
                            case 1:
                                // (, line 126
                                // [, line 126
                                m_ket = m_cursor;
                                // literal, line 126
                                if (!(Eq_S_B(2, "at")))
                                {
                                    m_cursor = m_limit - v_2;
                                    goto lab1;
                                }
                                // ], line 126
                                m_bra = m_cursor;
                                // call R2, line 126
                                if (!r_R2())
                                {
                                    m_cursor = m_limit - v_2;
                                    goto lab1;
                                }
                                // delete, line 126
                                SliceDel();
                                break;
                        }
                    } while (false);
                    lab1:
                    break;
                case 7:
                    // (, line 134
                    // call R2, line 135
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 135
                    SliceDel();
                    // try, line 136
                    v_3 = m_limit - m_cursor;
                    do
                    {
                        // (, line 136
                        // [, line 137
                        m_ket = m_cursor;
                        // substring, line 137
                        among_var = FindAmongB(a_4, 3);
                        if (among_var == 0)
                        {
                            m_cursor = m_limit - v_3;
                            goto lab2;
                        }
                        // ], line 137
                        m_bra = m_cursor;
                        switch (among_var)
                        {
                            case 0:
                                m_cursor = m_limit - v_3;
                                goto lab2;
                            case 1:
                                // (, line 140
                                // call R2, line 140
                                if (!r_R2())
                                {
                                    m_cursor = m_limit - v_3;
                                    goto lab2;
                                }
                                // delete, line 140
                                SliceDel();
                                break;
                        }
                    } while (false);
                    lab2:
                    break;
                case 8:
                    // (, line 146
                    // call R2, line 147
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 147
                    SliceDel();
                    // try, line 148
                    v_4 = m_limit - m_cursor;
                    do
                    {
                        // (, line 148
                        // [, line 149
                        m_ket = m_cursor;
                        // substring, line 149
                        among_var = FindAmongB(a_5, 3);
                        if (among_var == 0)
                        {
                            m_cursor = m_limit - v_4;
                            goto lab3;
                        }
                        // ], line 149
                        m_bra = m_cursor;
                        switch (among_var)
                        {
                            case 0:
                                m_cursor = m_limit - v_4;
                                goto lab3;
                            case 1:
                                // (, line 152
                                // call R2, line 152
                                if (!r_R2())
                                {
                                    m_cursor = m_limit - v_4;
                                    goto lab3;
                                }
                                // delete, line 152
                                SliceDel();
                                break;
                        }
                    } while (false);
                    lab3:
                    break;
                case 9:
                    // (, line 158
                    // call R2, line 159
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 159
                    SliceDel();
                    // try, line 160
                    v_5 = m_limit - m_cursor;
                    do
                    {
                        // (, line 160
                        // [, line 161
                        m_ket = m_cursor;
                        // literal, line 161
                        if (!(Eq_S_B(2, "at")))
                        {
                            m_cursor = m_limit - v_5;
                            goto lab4;
                        }
                        // ], line 161
                        m_bra = m_cursor;
                        // call R2, line 161
                        if (!r_R2())
                        {
                            m_cursor = m_limit - v_5;
                            goto lab4;
                        }
                        // delete, line 161
                        SliceDel();
                    } while (false);
                    lab4:
                    break;
            }
            return true;
        }