private bool r_standard_suffix()

in src/Lucene.Net.Analysis.Common/Tartarus/Snowball/Ext/FrenchStemmer.cs [692:1211]


        private bool r_standard_suffix()
        {
            int among_var;
            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;
            // (, line 91
            // [, line 92
            m_ket = m_cursor;
            // substring, line 92
            among_var = FindAmongB(a_4, 43);
            if (among_var == 0)
            {
                return false;
            }
            // ], line 92
            m_bra = m_cursor;
            switch (among_var)
            {
                case 0:
                    return false;
                case 1:
                    // (, line 96
                    // call R2, line 96
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 96
                    SliceDel();
                    break;
                case 2:
                    // (, line 99
                    // call R2, line 99
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 99
                    SliceDel();
                    // try, line 100
                    v_1 = m_limit - m_cursor;

                    do
                    {
                        // (, line 100
                        // [, line 100
                        m_ket = m_cursor;
                        // literal, line 100
                        if (!(Eq_S_B(2, "ic")))
                        {
                            m_cursor = m_limit - v_1;
                            goto lab0;
                        }
                        // ], line 100
                        m_bra = m_cursor;
                        // or, line 100

                        do
                        {
                            v_2 = m_limit - m_cursor;

                            do
                            {
                                // (, line 100
                                // call R2, line 100
                                if (!r_R2())
                                {
                                    goto lab2;
                                }
                                // delete, line 100
                                SliceDel();
                                goto lab1;
                            } while (false);
                            lab2:
                            m_cursor = m_limit - v_2;
                            // <-, line 100
                            SliceFrom("iqU");
                        } while (false);
                        lab1: {/* LUCENENET: intentionally blank */};
                    } while (false);
                    lab0:
                    break;
                case 3:
                    // (, line 104
                    // call R2, line 104
                    if (!r_R2())
                    {
                        return false;
                    }
                    // <-, line 104
                    SliceFrom("log");
                    break;
                case 4:
                    // (, line 107
                    // call R2, line 107
                    if (!r_R2())
                    {
                        return false;
                    }
                    // <-, line 107
                    SliceFrom("u");
                    break;
                case 5:
                    // (, line 110
                    // call R2, line 110
                    if (!r_R2())
                    {
                        return false;
                    }
                    // <-, line 110
                    SliceFrom("ent");
                    break;
                case 6:
                    // (, line 113
                    // call RV, line 114
                    if (!r_RV())
                    {
                        return false;
                    }
                    // delete, line 114
                    SliceDel();
                    // try, line 115
                    v_3 = m_limit - m_cursor;

                    do
                    {
                        // (, line 115
                        // [, line 116
                        m_ket = m_cursor;
                        // substring, line 116
                        among_var = FindAmongB(a_2, 6);
                        if (among_var == 0)
                        {
                            m_cursor = m_limit - v_3;
                            goto lab3;
                        }
                        // ], line 116
                        m_bra = m_cursor;
                        switch (among_var)
                        {
                            case 0:
                                m_cursor = m_limit - v_3;
                                goto lab3;
                            case 1:
                                // (, line 117
                                // call R2, line 117
                                if (!r_R2())
                                {
                                    m_cursor = m_limit - v_3;
                                    goto lab3;
                                }
                                // delete, line 117
                                SliceDel();
                                // [, line 117
                                m_ket = m_cursor;
                                // literal, line 117
                                if (!(Eq_S_B(2, "at")))
                                {
                                    m_cursor = m_limit - v_3;
                                    goto lab3;
                                }
                                // ], line 117
                                m_bra = m_cursor;
                                // call R2, line 117
                                if (!r_R2())
                                {
                                    m_cursor = m_limit - v_3;
                                    goto lab3;
                                }
                                // delete, line 117
                                SliceDel();
                                break;
                            case 2:
                                // (, line 118
                                // or, line 118

                                do
                                {
                                    v_4 = m_limit - m_cursor;

                                    do
                                    {
                                        // (, line 118
                                        // call R2, line 118
                                        if (!r_R2())
                                        {
                                            goto lab5;
                                        }
                                        // delete, line 118
                                        SliceDel();
                                        goto lab4;
                                    } while (false);
                                    lab5:
                                    m_cursor = m_limit - v_4;
                                    // (, line 118
                                    // call R1, line 118
                                    if (!r_R1())
                                    {
                                        m_cursor = m_limit - v_3;
                                        goto lab3;
                                    }
                                    // <-, line 118
                                    SliceFrom("eux");
                                } while (false);
                                lab4:
                                break;
                            case 3:
                                // (, line 120
                                // call R2, line 120
                                if (!r_R2())
                                {
                                    m_cursor = m_limit - v_3;
                                    goto lab3;
                                }
                                // delete, line 120
                                SliceDel();
                                break;
                            case 4:
                                // (, line 122
                                // call RV, line 122
                                if (!r_RV())
                                {
                                    m_cursor = m_limit - v_3;
                                    goto lab3;
                                }
                                // <-, line 122
                                SliceFrom("i");
                                break;
                        }
                    } while (false);
                    lab3:
                    break;
                case 7:
                    // (, line 128
                    // call R2, line 129
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 129
                    SliceDel();
                    // try, line 130
                    v_5 = m_limit - m_cursor;

                    do
                    {
                        // (, line 130
                        // [, line 131
                        m_ket = m_cursor;
                        // substring, line 131
                        among_var = FindAmongB(a_3, 3);
                        if (among_var == 0)
                        {
                            m_cursor = m_limit - v_5;
                            goto lab6;
                        }
                        // ], line 131
                        m_bra = m_cursor;
                        switch (among_var)
                        {
                            case 0:
                                m_cursor = m_limit - v_5;
                                goto lab6;
                            case 1:
                                // (, line 132
                                // or, line 132

                                do
                                {
                                    v_6 = m_limit - m_cursor;

                                    do
                                    {
                                        // (, line 132
                                        // call R2, line 132
                                        if (!r_R2())
                                        {
                                            goto lab8;
                                        }
                                        // delete, line 132
                                        SliceDel();
                                        goto lab7;
                                    } while (false);
                                    lab8:
                                    m_cursor = m_limit - v_6;
                                    // <-, line 132
                                    SliceFrom("abl");
                                } while (false);
                                lab7:
                                break;
                            case 2:
                                // (, line 133
                                // or, line 133

                                do
                                {
                                    v_7 = m_limit - m_cursor;

                                    do
                                    {
                                        // (, line 133
                                        // call R2, line 133
                                        if (!r_R2())
                                        {
                                            goto lab10;
                                        }
                                        // delete, line 133
                                        SliceDel();
                                        goto lab9;
                                    } while (false);
                                    lab10:
                                    m_cursor = m_limit - v_7;
                                    // <-, line 133
                                    SliceFrom("iqU");
                                } while (false);
                                lab9:
                                break;
                            case 3:
                                // (, line 134
                                // call R2, line 134
                                if (!r_R2())
                                {
                                    m_cursor = m_limit - v_5;
                                    goto lab6;
                                }
                                // delete, line 134
                                SliceDel();
                                break;
                        }
                    } while (false);
                    lab6:
                    break;
                case 8:
                    // (, line 140
                    // call R2, line 141
                    if (!r_R2())
                    {
                        return false;
                    }
                    // delete, line 141
                    SliceDel();
                    // try, line 142
                    v_8 = m_limit - m_cursor;

                    do
                    {
                        // (, line 142
                        // [, line 142
                        m_ket = m_cursor;
                        // literal, line 142
                        if (!(Eq_S_B(2, "at")))
                        {
                            m_cursor = m_limit - v_8;
                            goto lab11;
                        }
                        // ], line 142
                        m_bra = m_cursor;
                        // call R2, line 142
                        if (!r_R2())
                        {
                            m_cursor = m_limit - v_8;
                            goto lab11;
                        }
                        // delete, line 142
                        SliceDel();
                        // [, line 142
                        m_ket = m_cursor;
                        // literal, line 142
                        if (!(Eq_S_B(2, "ic")))
                        {
                            m_cursor = m_limit - v_8;
                            goto lab11;
                        }
                        // ], line 142
                        m_bra = m_cursor;
                        // or, line 142

                        do
                        {
                            v_9 = m_limit - m_cursor;

                            do
                            {
                                // (, line 142
                                // call R2, line 142
                                if (!r_R2())
                                {
                                    goto lab13;
                                }
                                // delete, line 142
                                SliceDel();
                                goto lab12;
                            } while (false);
                            lab13:
                            m_cursor = m_limit - v_9;
                            // <-, line 142
                            SliceFrom("iqU");
                        } while (false);
                        lab12: {/* LUCENENET: intentionally blank */}
                    } while (false);
                    lab11:
                    break;
                case 9:
                    // (, line 144
                    // <-, line 144
                    SliceFrom("eau");
                    break;
                case 10:
                    // (, line 145
                    // call R1, line 145
                    if (!r_R1())
                    {
                        return false;
                    }
                    // <-, line 145
                    SliceFrom("al");
                    break;
                case 11:
                    // (, line 147
                    // or, line 147

                    do
                    {
                        v_10 = m_limit - m_cursor;

                        do
                        {
                            // (, line 147
                            // call R2, line 147
                            if (!r_R2())
                            {
                                goto lab15;
                            }
                            // delete, line 147
                            SliceDel();
                            goto lab14;
                        } while (false);
                        lab15:
                        m_cursor = m_limit - v_10;
                        // (, line 147
                        // call R1, line 147
                        if (!r_R1())
                        {
                            return false;
                        }
                        // <-, line 147
                        SliceFrom("eux");
                    } while (false);
                    lab14:
                    break;
                case 12:
                    // (, line 150
                    // call R1, line 150
                    if (!r_R1())
                    {
                        return false;
                    }
                    if (!(OutGroupingB(g_v, 97, 251)))
                    {
                        return false;
                    }
                    // delete, line 150
                    SliceDel();
                    break;
                case 13:
                    // (, line 155
                    // call RV, line 155
                    if (!r_RV())
                    {
                        return false;
                    }
                    // fail, line 155
                    // (, line 155
                    // <-, line 155
                    SliceFrom("ant");
                    return false;
                case 14:
                    // (, line 156
                    // call RV, line 156
                    if (!r_RV())
                    {
                        return false;
                    }
                    // fail, line 156
                    // (, line 156
                    // <-, line 156
                    SliceFrom("ent");
                    return false;
                case 15:
                    // (, line 158
                    // test, line 158
                    v_11 = m_limit - m_cursor;
                    // (, line 158
                    if (!(InGroupingB(g_v, 97, 251)))
                    {
                        return false;
                    }
                    // call RV, line 158
                    if (!r_RV())
                    {
                        return false;
                    }
                    m_cursor = m_limit - v_11;
                    // fail, line 158
                    // (, line 158
                    // delete, line 158
                    SliceDel();
                    return false;
            }
            return true;
        }