chiark / gitweb /
src/lexer-proto.lisp (lexer-error): Improve error reporting.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 8 Jun 2018 18:58:28 +0000 (19:58 +0100)
Now EXPECTED can be `nil' to produce a simple `unexpected THING'
message.

src/lexer-proto.lisp

index 349e2a0ee5c325f181337ed4c461e55cd1310b96..8f194016fe347358df16529aabbfaf5948f3b616 100644 (file)
@@ -84,8 +84,10 @@ (defun lexer-error (char-scanner expected &key location)
   "Signal a continuable lexical error."
   (cerror*-with-location (or location char-scanner)
                         "Lexical error: ~
-                         expected ~{~#[<bug>~;~A~;~A or ~A~:;~A, ~]~} ~
-                         but found ~/sod::show-char/"
+                         ~:[unexpected~;~
+                            expected ~:*~{~#[~;~A~;~A or ~A~:;~A, ~]~} ~
+                            but found~] ~
+                         ~/sod::show-char/"
           (mapcar (lambda (exp)
                     (typecase exp
                       (character (format nil "~/sod::show-char/" exp))