chiark
/
gitweb
/
~mdw
/
sod
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6052935
)
src/final.lisp (test-parser): Set error location after making the scanner.
author
Mark Wooding
<mdw@distorted.org.uk>
Sat, 25 Mar 2017 18:20:43 +0000
(18:20 +0000)
committer
Mark Wooding
<mdw@distorted.org.uk>
Fri, 8 Jun 2018 18:58:28 +0000
(19:58 +0100)
Oops.
src/final.lisp
patch
|
blob
|
blame
|
history
diff --git
a/src/final.lisp
b/src/final.lisp
index 8cd42f83478d5834dd8424276a36a00d5c7a86f6..96e9625b3906957a4183cf9e7ae2921da2ab9390 100644
(file)
--- a/
src/final.lisp
+++ b/
src/final.lisp
@@
-110,16
+110,16
@@
(defmacro test-parser ((scanner &key backtrace) parser input)
,scanner (make-instance
'sod-token-scanner
:char-scanner ,char-scanner))
,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 ()
(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)
(let ((,where (scanner-capture-place ,char-scanner)))
(values ,value
(list ,nerror ,nwarn)