better error reporting for (1 . 2 <EOF>
authorAndrea Griffini <agriff@tin.it>
Sat, 4 May 2013 08:22:59 +0000 (10:22 +0200)
committerAndrea Griffini <agriff@tin.it>
Sat, 4 May 2013 08:22:59 +0000 (10:22 +0200)
src/read.lisp

index 0cfe563..83f1af8 100644 (file)
                       (if (terminalp (%peek-char stream))
                           (prog1 (ls-read stream) ; Dotted pair notation
                             (skip-whitespaces-and-comments stream)
-                            (if (char= (%peek-char stream) #\) )
-                                (discard-char stream #\))
-                                (error "More than one object follows . in list")))
+                            (let ((ch (%peek-char stream)))
+                              (if (or (null ch) (char= #\) ch))
+                                  (discard-char stream #\))
+                                  (error "Multiple objects following . in a list"))))
                           (let ((token (concat "." (read-escaped-until stream #'terminalp))))
                             (cons (interpret-token token)
                                   (%read-list stream)))))