private bool r_append_U_to_stems_ending_with_d_or_g()

in src/Lucene.Net.Analysis.Common/Tartarus/Snowball/Ext/TurkishStemmer.cs [3151:3466]


        private bool r_append_U_to_stems_ending_with_d_or_g()
        {
            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;
            // (, line 430
            // test, line 431
            v_1 = m_limit - m_cursor;
            // (, line 431
            // or, line 431

            do
            {
                v_2 = m_limit - m_cursor;

                do
                {
                    // literal, line 431
                    if (!(Eq_S_B(1, "d")))
                    {
                        goto lab1;
                    }
                    goto lab0;
                } while (false);
                lab1:
                m_cursor = m_limit - v_2;
                // literal, line 431
                if (!(Eq_S_B(1, "g")))
                {
                    return false;
                }
            } while (false);
            lab0:
            m_cursor = m_limit - v_1;
            // or, line 433

            do
            {
                v_3 = m_limit - m_cursor;

                do
                {
                    // (, line 432
                    // test, line 432
                    v_4 = m_limit - m_cursor;
                    // (, line 432
                    // (, line 432
                    // goto, line 432

                    while (true)
                    {
                        v_5 = m_limit - m_cursor;

                        do
                        {
                            if (!(InGroupingB(g_vowel, 97, 305)))
                            {
                                goto lab5;
                            }
                            m_cursor = m_limit - v_5;
                            goto golab4;
                        } while (false);
                        lab5:
                        m_cursor = m_limit - v_5;
                        if (m_cursor <= m_limit_backward)
                        {
                            goto lab3;
                        }
                        m_cursor--;
                    }
                    golab4:
                    // or, line 432

                    do
                    {
                        v_6 = m_limit - m_cursor;

                        do
                        {
                            // literal, line 432
                            if (!(Eq_S_B(1, "a")))
                            {
                                goto lab7;
                            }
                            goto lab6;
                        } while (false);
                        lab7:
                        m_cursor = m_limit - v_6;
                        // literal, line 432
                        if (!(Eq_S_B(1, "\u0131")))
                        {
                            goto lab3;
                        }
                    } while (false);
                    lab6:
                    m_cursor = m_limit - v_4;
                    // <+, line 432
                    {
                        int c = m_cursor;
                        Insert(m_cursor, m_cursor, "\u0131");
                        m_cursor = c;
                    }
                    goto lab2;
                } while (false);
                lab3:
                m_cursor = m_limit - v_3;

                do
                {
                    // (, line 434
                    // test, line 434
                    v_7 = m_limit - m_cursor;
                    // (, line 434
                    // (, line 434
                    // goto, line 434

                    while (true)
                    {
                        v_8 = m_limit - m_cursor;

                        do
                        {
                            if (!(InGroupingB(g_vowel, 97, 305)))
                            {
                                goto lab10;
                            }
                            m_cursor = m_limit - v_8;
                            goto golab9;
                        } while (false);
                        lab10:
                        m_cursor = m_limit - v_8;
                        if (m_cursor <= m_limit_backward)
                        {
                            goto lab8;
                        }
                        m_cursor--;
                    }
                    golab9:
                    // or, line 434

                    do
                    {
                        v_9 = m_limit - m_cursor;

                        do
                        {
                            // literal, line 434
                            if (!(Eq_S_B(1, "e")))
                            {
                                goto lab12;
                            }
                            goto lab11;
                        } while (false);
                        lab12:
                        m_cursor = m_limit - v_9;
                        // literal, line 434
                        if (!(Eq_S_B(1, "i")))
                        {
                            goto lab8;
                        }
                    } while (false);
                    lab11:
                    m_cursor = m_limit - v_7;
                    // <+, line 434
                    {
                        int c = m_cursor;
                        Insert(m_cursor, m_cursor, "i");
                        m_cursor = c;
                    }
                    goto lab2;
                } while (false);
                lab8:
                m_cursor = m_limit - v_3;

                do
                {
                    // (, line 436
                    // test, line 436
                    v_10 = m_limit - m_cursor;
                    // (, line 436
                    // (, line 436
                    // goto, line 436

                    while (true)
                    {
                        v_11 = m_limit - m_cursor;

                        do
                        {
                            if (!(InGroupingB(g_vowel, 97, 305)))
                            {
                                goto lab15;
                            }
                            m_cursor = m_limit - v_11;
                            goto golab14;
                        } while (false);
                        lab15:
                        m_cursor = m_limit - v_11;
                        if (m_cursor <= m_limit_backward)
                        {
                            goto lab13;
                        }
                        m_cursor--;
                    }
                    golab14:
                    // or, line 436

                    do
                    {
                        v_12 = m_limit - m_cursor;

                        do
                        {
                            // literal, line 436
                            if (!(Eq_S_B(1, "o")))
                            {
                                goto lab17;
                            }
                            goto lab16;
                        } while (false);
                        lab17:
                        m_cursor = m_limit - v_12;
                        // literal, line 436
                        if (!(Eq_S_B(1, "u")))
                        {
                            goto lab13;
                        }
                    } while (false);
                    lab16:
                    m_cursor = m_limit - v_10;
                    // <+, line 436
                    {
                        int c = m_cursor;
                        Insert(m_cursor, m_cursor, "u");
                        m_cursor = c;
                    }
                    goto lab2;
                } while (false);
                lab13:
                m_cursor = m_limit - v_3;
                // (, line 438
                // test, line 438
                v_13 = m_limit - m_cursor;
                // (, line 438
                // (, line 438
                // goto, line 438

                while (true)
                {
                    v_14 = m_limit - m_cursor;

                    do
                    {
                        if (!(InGroupingB(g_vowel, 97, 305)))
                        {
                            goto lab19;
                        }
                        m_cursor = m_limit - v_14;
                        goto golab18;
                    } while (false);
                    lab19:
                    m_cursor = m_limit - v_14;
                    if (m_cursor <= m_limit_backward)
                    {
                        return false;
                    }
                    m_cursor--;
                }
                golab18:
                // or, line 438

                do
                {
                    v_15 = m_limit - m_cursor;

                    do
                    {
                        // literal, line 438
                        if (!(Eq_S_B(1, "\u00F6")))
                        {
                            goto lab21;
                        }
                        goto lab20;
                    } while (false);
                    lab21:
                    m_cursor = m_limit - v_15;
                    // literal, line 438
                    if (!(Eq_S_B(1, "\u00FC")))
                    {
                        return false;
                    }
                } while (false);
                lab20:
                m_cursor = m_limit - v_13;
                // <+, line 438
                {
                    int c = m_cursor;
                    Insert(m_cursor, m_cursor, "\u00FC");
                    m_cursor = c;
                }
            } while (false);
            lab2:
            return true;
        }