@Override
	public Token LT(int i) {
		if ( i==-1 ) {
			return lastToken;
		}

		sync(i);
        int index = p + i - 1;
        if ( index < 0 ) {
			throw new IndexOutOfBoundsException("LT("+i+") gives negative index");
		}

		if ( index >= n ) {
			assert n > 0 && tokens[n-1].getType() == Token.EOF;
			return tokens[n-1];
		}

		return tokens[index];
	}
Absolute token index. It's the index of the token about to be read via
{@code LT(1)}. Goes from 0 to the number of tokens in the entire stream,
although the stream size is unknown before the end is reached.

<p>This value is used to set the token indexes if the stream provides tokens
that implement {@link WritableToken}.</p>
runtime/Java/src/org/antlr/v4/runtime/UnbufferedTokenStream.java