private bool r_standard_suffix()

in src/Lucene.Net.Analysis.Common/Tartarus/Snowball/Ext/DutchStemmer.cs [612:941]


        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;
            // (, line 106
            // do, line 107
            v_1 = m_limit - m_cursor;

            do
            {
                // (, line 107
                // [, line 108
                m_ket = m_cursor;
                // substring, line 108
                among_var = FindAmongB(a_3, 5);
                if (among_var == 0)
                {
                    goto lab0;
                }
                // ], line 108
                m_bra = m_cursor;
                switch (among_var)
                {
                    case 0:
                        goto lab0;
                    case 1:
                        // (, line 110
                        // call R1, line 110
                        if (!r_R1())
                        {
                            goto lab0;
                        }
                        // <-, line 110
                        SliceFrom("heid");
                        break;
                    case 2:
                        // (, line 113
                        // call en_ending, line 113
                        if (!r_en_ending())
                        {
                            goto lab0;
                        }
                        break;
                    case 3:
                        // (, line 116
                        // call R1, line 116
                        if (!r_R1())
                        {
                            goto lab0;
                        }
                        if (!(OutGroupingB(g_v_j, 97, 232)))
                        {
                            goto lab0;
                        }
                        // delete, line 116
                        SliceDel();
                        break;
                }
            } while (false);
            lab0:
            m_cursor = m_limit - v_1;
            // do, line 120
            v_2 = m_limit - m_cursor;

            do
            {
                // call e_ending, line 120
                if (!r_e_ending())
                {
                    goto lab1;
                }
            } while (false);
            lab1:
            m_cursor = m_limit - v_2;
            // do, line 122
            v_3 = m_limit - m_cursor;

            do
            {
                // (, line 122
                // [, line 122
                m_ket = m_cursor;
                // literal, line 122
                if (!(Eq_S_B(4, "heid")))
                {
                    goto lab2;
                }
                // ], line 122
                m_bra = m_cursor;
                // call R2, line 122
                if (!r_R2())
                {
                    goto lab2;
                }
                // not, line 122
                {
                    v_4 = m_limit - m_cursor;

                    do
                    {
                        // literal, line 122
                        if (!(Eq_S_B(1, "c")))
                        {
                            goto lab3;
                        }
                        goto lab2;
                    } while (false);
                    lab3:
                    m_cursor = m_limit - v_4;
                }
                // delete, line 122
                SliceDel();
                // [, line 123
                m_ket = m_cursor;
                // literal, line 123
                if (!(Eq_S_B(2, "en")))
                {
                    goto lab2;
                }
                // ], line 123
                m_bra = m_cursor;
                // call en_ending, line 123
                if (!r_en_ending())
                {
                    goto lab2;
                }
            } while (false);
            lab2:
            m_cursor = m_limit - v_3;
            // do, line 126
            v_5 = m_limit - m_cursor;

            do
            {
                // (, line 126
                // [, line 127
                m_ket = m_cursor;
                // substring, line 127
                among_var = FindAmongB(a_4, 6);
                if (among_var == 0)
                {
                    goto lab4;
                }
                // ], line 127
                m_bra = m_cursor;
                switch (among_var)
                {
                    case 0:
                        goto lab4;
                    case 1:
                        // (, line 129
                        // call R2, line 129
                        if (!r_R2())
                        {
                            goto lab4;
                        }
                        // delete, line 129
                        SliceDel();
                        // or, line 130

                        do
                        {
                            v_6 = m_limit - m_cursor;

                            do
                            {
                                // (, line 130
                                // [, line 130
                                m_ket = m_cursor;
                                // literal, line 130
                                if (!(Eq_S_B(2, "ig")))
                                {
                                    goto lab6;
                                }
                                // ], line 130
                                m_bra = m_cursor;
                                // call R2, line 130
                                if (!r_R2())
                                {
                                    goto lab6;
                                }
                                // not, line 130
                                {
                                    v_7 = m_limit - m_cursor;

                                    do
                                    {
                                        // literal, line 130
                                        if (!(Eq_S_B(1, "e")))
                                        {
                                            goto lab7;
                                        }
                                        goto lab6;
                                    } while (false);
                                    lab7:
                                    m_cursor = m_limit - v_7;
                                }
                                // delete, line 130
                                SliceDel();
                                goto lab5;
                            } while (false);
                            lab6:
                            m_cursor = m_limit - v_6;
                            // call undouble, line 130
                            if (!r_undouble())
                            {
                                goto lab4;
                            }
                        } while (false);
                        lab5:
                        break;
                    case 2:
                        // (, line 133
                        // call R2, line 133
                        if (!r_R2())
                        {
                            goto lab4;
                        }
                        // not, line 133
                        {
                            v_8 = m_limit - m_cursor;

                            do
                            {
                                // literal, line 133
                                if (!(Eq_S_B(1, "e")))
                                {
                                    goto lab8;
                                }
                                goto lab4;
                            } while (false);
                            lab8:
                            m_cursor = m_limit - v_8;
                        }
                        // delete, line 133
                        SliceDel();
                        break;
                    case 3:
                        // (, line 136
                        // call R2, line 136
                        if (!r_R2())
                        {
                            goto lab4;
                        }
                        // delete, line 136
                        SliceDel();
                        // call e_ending, line 136
                        if (!r_e_ending())
                        {
                            goto lab4;
                        }
                        break;
                    case 4:
                        // (, line 139
                        // call R2, line 139
                        if (!r_R2())
                        {
                            goto lab4;
                        }
                        // delete, line 139
                        SliceDel();
                        break;
                    case 5:
                        // (, line 142
                        // call R2, line 142
                        if (!r_R2())
                        {
                            goto lab4;
                        }
                        // Boolean test e_found, line 142
                        if (!(B_e_found))
                        {
                            goto lab4;
                        }
                        // delete, line 142
                        SliceDel();
                        break;
                }
            } while (false);
            lab4:
            m_cursor = m_limit - v_5;
            // do, line 146
            v_9 = m_limit - m_cursor;

            do
            {
                // (, line 146
                if (!(OutGroupingB(g_v_I, 73, 232)))
                {
                    goto lab9;
                }
                // test, line 148
                v_10 = m_limit - m_cursor;
                // (, line 148
                // among, line 149
                if (FindAmongB(a_5, 4) == 0)
                {
                    goto lab9;
                }
                if (!(OutGroupingB(g_v, 97, 232)))
                {
                    goto lab9;
                }
                m_cursor = m_limit - v_10;
                // [, line 152
                m_ket = m_cursor;
                // next, line 152
                if (m_cursor <= m_limit_backward)
                {
                    goto lab9;
                }
                m_cursor--;
                // ], line 152
                m_bra = m_cursor;
                // delete, line 152
                SliceDel();
            } while (false);
            lab9:
            m_cursor = m_limit - v_9;
            return true;
        }