public override bool Stem()

in src/Lucene.Net.Analysis.Common/Tartarus/Snowball/Ext/KpStemmer.cs [2061:2448]


        public override bool 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 = m_cursor;
            do
            {
                // (, line 218
                // [, line 218
                m_bra = m_cursor;
                // literal, line 218
                if (!(Eq_S(1, "y")))
                {
                    goto lab0;
                }
                // ], line 218
                m_ket = m_cursor;
                // <-, line 218
                SliceFrom("Y");
                // set Y_found, line 218
                B_Y_found = true;
            } while (false);
            lab0:
            m_cursor = v_1;
            // do, line 219
            v_2 = m_cursor;
            do
            {
                // repeat, line 219
                while (true)
                {
                    v_3 = m_cursor;
                    do
                    {
                        // (, line 219
                        // goto, line 219
                        while (true)
                        {
                            v_4 = m_cursor;
                            do
                            {
                                // (, line 219
                                if (!(InGrouping(g_v, 97, 121)))
                                {
                                    goto lab5;
                                }
                                // [, line 219
                                m_bra = m_cursor;
                                // literal, line 219
                                if (!(Eq_S(1, "y")))
                                {
                                    goto lab5;
                                }
                                // ], line 219
                                m_ket = m_cursor;
                                m_cursor = v_4;
                                goto golab4;
                            } while (false);
                            lab5:
                            m_cursor = v_4;
                            if (m_cursor >= m_limit)
                            {
                                goto lab3;
                            }
                            m_cursor++;
                        }
                        golab4:
                        // <-, line 219
                        SliceFrom("Y");
                        // set Y_found, line 219
                        B_Y_found = true;
                        // LUCENENET NOTE: continue label is not supported directly in .NET,
                        // so we just need to add another goto to get to the end of the outer loop.
                        // See: http://stackoverflow.com/a/359449/181087

                        // Original code:
                        //continue replab2;

                        goto end_of_outer_loop;

                    } while (false);
                    lab3:
                    m_cursor = v_3;
                    goto replab2;
                    end_of_outer_loop: { /* LUCENENET: intentionally empty */ }
                }
                replab2: {/* LUCENENET: intentionally blank */}
            } while (false);
            //lab1: // not referenced
            m_cursor = v_2;
            // call measure, line 221
            if (!r_measure())
            {
                return false;
            }
            // backwards, line 223
            m_limit_backward = m_cursor; m_cursor = m_limit;
            // (, line 223
            // do, line 224
            v_5 = m_limit - m_cursor;
            do
            {
                // (, line 224
                // call Step_1, line 224
                if (!r_Step_1())
                {
                    goto lab6;
                }
                // set stemmed, line 224
                B_stemmed = true;
            } while (false);
            lab6:
            m_cursor = m_limit - v_5;
            // do, line 225
            v_6 = m_limit - m_cursor;
            do
            {
                // (, line 225
                // call Step_2, line 225
                if (!r_Step_2())
                {
                    goto lab7;
                }
                // set stemmed, line 225
                B_stemmed = true;
            } while (false);
            lab7:
            m_cursor = m_limit - v_6;
            // do, line 226
            v_7 = m_limit - m_cursor;
            do
            {
                // (, line 226
                // call Step_3, line 226
                if (!r_Step_3())
                {
                    goto lab8;
                }
                // set stemmed, line 226
                B_stemmed = true;
            } while (false);
            lab8:
            m_cursor = m_limit - v_7;
            // do, line 227
            v_8 = m_limit - m_cursor;
            do
            {
                // (, line 227
                // call Step_4, line 227
                if (!r_Step_4())
                {
                    goto lab9;
                }
                // set stemmed, line 227
                B_stemmed = true;
            } while (false);
            lab9:
            m_cursor = m_limit - v_8;
            m_cursor = m_limit_backward;                    // unset GE_removed, line 229
            B_GE_removed = false;
            // do, line 230
            v_9 = m_cursor;
            do
            {
                // (, line 230
                // and, line 230
                v_10 = m_cursor;
                // call Lose_prefix, line 230
                if (!r_Lose_prefix())
                {
                    goto lab10;
                }
                m_cursor = v_10;
                // call measure, line 230
                if (!r_measure())
                {
                    goto lab10;
                }
            } while (false);
            lab10:
            m_cursor = v_9;
            // backwards, line 231
            m_limit_backward = m_cursor; m_cursor = m_limit;
            // (, line 231
            // do, line 232
            v_11 = m_limit - m_cursor;
            do
            {
                // (, line 232
                // bool test GE_removed, line 232
                if (!(B_GE_removed))
                {
                    goto lab11;
                }
                // call Step_1c, line 232
                if (!r_Step_1c())
                {
                    goto lab11;
                }
            } while (false);
            lab11:
            m_cursor = m_limit - v_11;
            m_cursor = m_limit_backward;                    // unset GE_removed, line 234
            B_GE_removed = false;
            // do, line 235
            v_12 = m_cursor;
            do
            {
                // (, line 235
                // and, line 235
                v_13 = m_cursor;
                // call Lose_infix, line 235
                if (!r_Lose_infix())
                {
                    goto lab12;
                }
                m_cursor = v_13;
                // call measure, line 235
                if (!r_measure())
                {
                    goto lab12;
                }
            } while (false);
            lab12:
            m_cursor = v_12;
            // backwards, line 236
            m_limit_backward = m_cursor; m_cursor = m_limit;
            // (, line 236
            // do, line 237
            v_14 = m_limit - m_cursor;
            do
            {
                // (, line 237
                // bool test GE_removed, line 237
                if (!(B_GE_removed))
                {
                    goto lab13;
                }
                // call Step_1c, line 237
                if (!r_Step_1c())
                {
                    goto lab13;
                }
            } while (false);
            lab13:
            m_cursor = m_limit - v_14;
            m_cursor = m_limit_backward;                    // backwards, line 239
            m_limit_backward = m_cursor; m_cursor = m_limit;
            // (, line 239
            // do, line 240
            v_15 = m_limit - m_cursor;
            do
            {
                // (, line 240
                // call Step_7, line 240
                if (!r_Step_7())
                {
                    goto lab14;
                }
                // set stemmed, line 240
                B_stemmed = true;
            } while (false);
            lab14:
            m_cursor = m_limit - v_15;
            // do, line 241
            v_16 = m_limit - m_cursor;
            do
            {
                // (, line 241
                // or, line 241
                do
                {
                    do
                    {
                        // bool test stemmed, line 241
                        if (!(B_stemmed))
                        {
                            goto lab17;
                        }
                        goto lab16;
                    } while (false);
                    lab17:
                    // bool test GE_removed, line 241
                    if (!(B_GE_removed))
                    {
                        goto lab15;
                    }
                } while (false);
                lab16:
                // call Step_6, line 241
                if (!r_Step_6())
                {
                    goto lab15;
                }
            } while (false);
            lab15:
            m_cursor = m_limit - v_16;
            m_cursor = m_limit_backward;                    // do, line 243
            v_18 = m_cursor;
            do
            {
                // (, line 243
                // bool test Y_found, line 243
                if (!(B_Y_found))
                {
                    goto lab18;
                }
                // repeat, line 243
                while (true)
                {
                    v_19 = m_cursor;
                    do
                    {
                        // (, line 243
                        // goto, line 243
                        while (true)
                        {
                            v_20 = m_cursor;
                            do
                            {
                                // (, line 243
                                // [, line 243
                                m_bra = m_cursor;
                                // literal, line 243
                                if (!(Eq_S(1, "Y")))
                                {
                                    goto lab22;
                                }
                                // ], line 243
                                m_ket = m_cursor;
                                m_cursor = v_20;
                                goto golab21;
                            } while (false);
                            lab22:
                            m_cursor = v_20;
                            if (m_cursor >= m_limit)
                            {
                                goto lab20;
                            }
                            m_cursor++;
                        }
                        golab21:
                        // <-, line 243
                        SliceFrom("y");
                        // LUCENENET NOTE: continue label is not supported directly in .NET,
                        // so we just need to add another goto to get to the end of the outer loop.
                        // See: http://stackoverflow.com/a/359449/181087

                        // Original code:
                        //continue replab19;

                        goto end_of_outer_loop_2;

                    } while (false);
                    lab20:
                    m_cursor = v_19;
                    goto replab19;
                    end_of_outer_loop_2: { /* LUCENENET: intentionally empty */ }
                }
                replab19: {/* LUCENENET: intentionally blank */}
            } while (false);
            lab18:
            m_cursor = v_18;
            return true;
        }