Character reader
authorDavid Vazquez <davazp@gmail.com>
Tue, 18 Dec 2012 01:47:37 +0000 (01:47 +0000)
committerDavid Vazquez <davazp@gmail.com>
Tue, 18 Dec 2012 01:47:37 +0000 (01:47 +0000)
lispstrack.lisp

index b53db0a..9e864b5 100644 (file)
          (#\'
           (list 'function (ls-read stream)))
          (#\\
-          (%read-char stream))
+          (let ((cname (read-until stream #'terminalp)))
+            (cond
+              ((string= cname "space") (char-code #\space))
+              ((string= cname "newline") (char-code #\newline))
+              (t (char-code (char cname 0))))))
          (#\+
           (let ((feature (read-until stream #'terminalp)))
             (cond
               ((string= feature "common-lisp")
-               (ls-read stream);ignore
+               (ls-read stream)         ;ignore
                (ls-read stream))
               ((string= feature "lispstrack")
                (ls-read stream))
               (t
-               (error "Unknown reader form.")))))
-         ))
+               (error "Unknown reader form.")))))))
       (t
        (let ((string (read-until stream #'terminalp)))
          (if (every #'digit-char-p string)
              (parse-integer string)
-             (intern (string-upcase string))))))))
+             (intern (string-upcase string)))))))))
 
 (defun ls-read-from-string (string)
   (ls-read (make-string-stream string)))