public boolean stem() {
        int v_1;
        int v_2;
        int v_3;
        int v_4;
        // (, line 157
        // do, line 159
        v_1 = cursor;
        lab0:
        do {
            // call prelude, line 159
            if (!r_prelude()) {
                break lab0;
            }
        } while (false);
        cursor = v_1;
        // do, line 160
        v_2 = cursor;
        lab1:
        do {
            // call mark_regions, line 160
            if (!r_mark_regions()) {
                break lab1;
            }
        } while (false);
        cursor = v_2;
        // backwards, line 161
        limit_backward = cursor;
        cursor = limit;
        // do, line 162
        v_3 = limit - cursor;
        lab2:
        do {
            // call standard_suffix, line 162
            if (!r_standard_suffix()) {
                break lab2;
            }
        } while (false);
        cursor = limit - v_3;
        cursor = limit_backward;                    // do, line 163
        v_4 = cursor;
        lab3:
        do {
            // call postlude, line 163
            if (!r_postlude()) {
                break lab3;
            }
        } while (false);
        cursor = v_4;
        return true;
    }