if (useTokenList && token != null) { token.setPreviousToken(previousToken); previousToken = token; }
    public Token next() throws ParseException {        Token  token = null;                do {            token = nextToken();            if (token == null) {                return null;            } else if (token.getPattern().isError()) {                throw new ParseException(                    ParseException.INVALID_TOKEN_ERROR,                    token.getPattern().getErrorMessage(),                    token.getStartLine(),                    token.getStartColumn());            } else if (token.getPattern().isIgnore()) {                token = null;            }        } while (token == null);        return token;    }