docs: protected final Token lookahead(int index) throws ScanException, ParseException {
  		if (lookahead.isEmpty()) {
  			lookahead = new LinkedList<LookaheadToken>();
  		}
  		while (index >= lookahead.size()) {
  			lookahead.add(new LookaheadToken(scanner.next(), scanner.getPosition()));
  		}
  		return lookahead.get(index).token;
  	}