- (cond ((or win (and (not consumedp) (scanner-at-eof-p scanner)))
- ;; If we succeeded then there's nothing for us to do here. On the
- ;; other hand, if we failed, didn't consume any tokens, and we're
- ;; at end-of-file, then there's not much hope of making onward
- ;; progress, so in this case we propagate the failure rather than
- ;; trying to recover. And we assume that the continuation will
- ;; somehow arrange to report the problem, and avoid inundating the
- ;; user with error reports.
+ (cond ((or win
+ (and (not consumedp)
+ (or ignore-unconsumed
+ (scanner-at-eof-p scanner))))
+ ;; If we succeeded, or if we didn't consume any tokens and the
+ ;; caller's OK with that, then there's nothing for us to do here.
+ ;; On the other hand, if we failed, didn't consume any tokens, and
+ ;; we're at end-of-file, then there's not much hope of making
+ ;; onward progress, so in this case we propagate the failure
+ ;; rather than trying to recover. And we assume that the
+ ;; continuation will somehow arrange to report the problem, and
+ ;; avoid inundating the user with error reports.