docs: protected final Token consumeToken() throws ScanException, ParseException {
  		Token result = token;
  		if (lookahead.isEmpty()) {
  			token = scanner.next();
  			position = scanner.getPosition();
  		} else {
  			LookaheadToken next = lookahead.remove(0);
  			token = next.token;
  			position = next.position;
  		}
  		return result;
  	}