code: public List<String> peek(int tokens) {
  	advance(tokens);
  	return new ArrayList<String>(
  	    buffer.subList(0, Math.min(tokens, buffer.size())));
      }
docs: Returns an list of the next tokens in the stream based on the requested
  amount.  If the stream did not contain as many tokens as was requested,
  list will contain the remaining tokens, but will not throw an {@code
  NoSuchElementException}.
  
  @param tokens the number of tokens to access in the stream
  
  @return a list of the requested tokens or the remaining tokens in the
  stream, whichever is fewer