From b543a2d9ec559d6de94853821984534499fd87c1 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sat, 25 Mar 2017 18:20:43 +0000 Subject: [PATCH] src/final.lisp (test-parser): Set error location after making the scanner. Organization: Straylight/Edgeware From: Mark Wooding Oops. --- src/final.lisp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/final.lisp b/src/final.lisp index 8cd42f8..96e9625 100644 --- 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)) - (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) -- [mdw]