,scanner (make-instance
'sod-token-scanner
:char-scanner ,char-scanner))
- (multiple-value-bind (,value ,winp ,consumedp)
- (parse ,parser)
- (declare (ignore ,consumedp))
- (cond (,winp ,value)
- (t (syntax-error ,scanner ,value)
- nil)))))
+ (with-default-error-location (,scanner)
+ (multiple-value-bind (,value ,winp ,consumedp)
+ (parse ,parser)
+ (declare (ignore ,consumedp))
+ (cond (,winp ,value)
+ (t (syntax-error ,scanner ,value)
+ nil))))))
(if ,backtrace (,body)
(count-and-report-errors ()
- (with-default-error-location (,scanner)
- (,body)))))
+ (,body))))
(let ((,where (scanner-capture-place ,char-scanner)))
(values ,value
(list ,nerror ,nwarn)