code: public T peek() {
      if (nextToken == null) {
        nextToken = getNext();
      }
      if (nextToken == null) {
        throw new NoSuchElementException();
      }
      return nextToken;
    }
docs: This is an optional operation, by default supported.
  
  @return The next token in the token stream.
  @throws java.util.NoSuchElementException
  if the token stream has no more tokens.