From: Andrea Griffini Date: Wed, 1 May 2013 09:34:32 +0000 (+0200) Subject: merged trunk X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=b62cf4a43e2694e9b985cd575b45f8a89c534d2d;p=jscl.git merged trunk --- b62cf4a43e2694e9b985cd575b45f8a89c534d2d diff --cc src/read.lisp index 6d015f7,ad25704..b33bee6 --- a/src/read.lisp +++ b/src/read.lisp @@@ -258,9 -247,10 +276,9 @@@ (incf index)))) (unless (= index size) (return)) ;; Everything went ok, we have a float + ;; XXX: Use FLOAT when implemented. - (/ (* sign (expt 10.0d0 (* exponent-sign exponent)) number) divisor)))) - + (/ (* sign (expt 10.0 (* exponent-sign exponent)) number) divisor)))) - (defun !parse-integer (string junk-allow) (block nil (let ((value 0) @@@ -331,14 -321,9 +349,14 @@@ (list 'unquote (ls-read-1 stream)))) ((char= ch #\#) (read-sharp stream)) + ((char= ch #\|) + (%read-char stream) + (let ((string (read-escaped-until stream (lambda (x) (char= x #\|))))) + (%read-char stream) + (read-symbol string))) (t - (let ((string (read-until stream #'terminalp))) + (let ((string (read-escaped-until stream #'terminalp))) - (or (values (!parse-integer string nil)) + (or (read-integer string) (read-float string) (read-symbol string)))))))