protected int fill(int n) {
		for (int i=0; i<n; i++) {
			if (this.n > 0 && tokens[this.n-1].getType() == Token.EOF) {
				return i;
			}

			Token t = tokenSource.nextToken();
			add(t);
		}

		return n;
	}
Add {@code n} elements to the buffer. Returns the number of tokens
actually added to the buffer. If the return value is less than {@code n},
then EOF was reached before {@code n} tokens could be added.
runtime/Java/src/org/antlr/v4/runtime/UnbufferedTokenStream.java