src/main/java/com/googlecode/javaewah/BufferedIterator.java
@Override
    public void discardFirstWords(long x) {
        while (x > 0) {
            if (this.iteratingBrlw.getRunningLength() > x) {
                this.iteratingBrlw.discardFirstWords(x);
                return;
            }
            this.iteratingBrlw.discardFirstWords(this.iteratingBrlw.getRunningLength());
            x -= this.iteratingBrlw.getRunningLength();
            long toDiscard = x > this.iteratingBrlw.getNumberOfLiteralWords()
                    ? this.iteratingBrlw.getNumberOfLiteralWords()
                    : x;

            this.iteratingBrlw.discardFirstWords(toDiscard);
            x -= toDiscard;
            if ((x > 0) || (this.iteratingBrlw.size() == 0)) {
                if (!this.next()) {
                    break;
                }
            }
        }
    }
@Override
    public void discardFirstWords(long x) {
        while (x > 0) {
            if (this.iteratingBrlw.getRunningLength() > x) {
                this.iteratingBrlw.discardFirstWords(x);
                return;
            }
            this.iteratingBrlw.discardFirstWords(this.iteratingBrlw.getRunningLength());
            x -= this.iteratingBrlw.getRunningLength();
            long toDiscard = x > this.iteratingBrlw.getNumberOfLiteralWords()
                    ? this.iteratingBrlw.getNumberOfLiteralWords()
                    : x;

            this.iteratingBrlw.discardFirstWords(toDiscard);
            x -= toDiscard;
            if ((x > 0) || (this.iteratingBrlw.size() == 0)) {
                if (!this.next()) {
                    break;
                }
            }
        }
    }
@ Override public void discardFirstWords ( long x ) { while ( x > 0 ) { if ( this . iteratingBrlw . getRunningLength ( ) > x ) { this . iteratingBrlw . discardFirstWords ( x ) ; return ; } this . iteratingBrlw . discardFirstWords ( this . iteratingBrlw . getRunningLength ( ) ) ; x -= this . iteratingBrlw . getRunningLength ( ) ; long toDiscard = x > this . iteratingBrlw . getNumberOfLiteralWords ( ) ? this . iteratingBrlw . getNumberOfLiteralWords ( ) : x ; this . iteratingBrlw . discardFirstWords ( toDiscard ) ; x -= toDiscard ; if ( ( x > 0 ) || ( this . iteratingBrlw . size ( ) == 0 ) ) { if ( ! this . next ( ) ) { break ; } } } }
Discard first words, iterating to the next running length word if
needed.

@param x the number of words to be discarded
Discard first words iterating to the next running length word if needed .