public boolean doMatch(CharStream cs, boolean ignore, boolean tent) {
        Label label = cs.mark();
        int ch = cs.next();
        if (ch == -1) {
            cs.unmark(label);
            return false;
        } else {
            if (a <= ch && ch <= b) {
                cs.unmark(label);
                return true;
            } else {
                cs.reset(label);
                cs.unmark(label);
                return false;
            }
        }
    }