X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fread.lisp;h=87ceb1ac4642da4489ee258b6a8aa8722e69b2a0;hb=e8992591d4100811ac125bf97c5b153ddecb0250;hp=e8ca5eb2b66d3bd24d61015dc0ce9d8b85dc606a;hpb=7143bafa06d1de63cb839fbe95d39913e5ed3445;p=jscl.git diff --git a/src/read.lisp b/src/read.lisp index e8ca5eb..87ceb1a 100644 --- a/src/read.lisp +++ b/src/read.lisp @@ -16,6 +16,7 @@ ;; You should have received a copy of the GNU General Public License ;; along with JSCL. If not, see . +(/debug "loading read.lisp!") ;;;; Reader @@ -204,6 +205,8 @@ (case ch (#\' (list 'function (ls-read stream eof-error-p eof-value t))) + (#\. + (eval (ls-read stream))) (#\( (do ((elements nil) (result nil) @@ -247,14 +250,14 @@ (ls-read stream eof-error-p eof-value t) (prog2 (ls-read stream) (ls-read stream eof-error-p eof-value t))))) - (#\J + ((#\J #\j) (unless (char= (%peek-char stream) #\:) (error "FFI descriptor must start with a semicolon.")) (let ((descriptor (subseq (read-until stream #'terminalp) 1)) (subdescriptors nil)) (do* ((start 0 (1+ end)) - (end (position #\: (subseq descriptor start)) - (position #\: (subseq descriptor start)))) + (end (position #\: descriptor :start start) + (position #\: descriptor :start start))) ((null end) (push (subseq descriptor start) subdescriptors) `(oget *root* ,@(reverse subdescriptors)))