Prims - Implement set-default-shape
[clnl] / src / main / lex.lisp
index 9433b55632fed979618724bd2e3c2df4ea693d6d..0adeb7d2b4323faf794ce688f53ce08ab142fa22 100644 (file)
@@ -107,7 +107,15 @@ DESCRIPTION:
    (if (numberp num?) num? (error "Invalid number")))))
 
 (deflex :initial (format nil "~A*" *identifier-char*) #'as-symbol)
-(deflex :initial (format nil "\"~A*\"" *string-text*) #'identity)
+(deflex :initial (format nil "\"~A*\"" *string-text*)
+ ; While this shouldn't let harmful strings in,
+ ; one can't be too careful
+ (lambda (text)
+  (let
+   ((*readtable* (copy-readtable nil))
+    (*read-eval* nil))
+   (read-from-string text))))
+
 (deflex :initial (format nil "\"~A*" *string-text*)
  (lambda (text) (declare (ignore text)) (error "Closing double quote is missing")))
 ;(deflex :initial "." (lambda (text) (error "Non standard character is not allowed")))