X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=clnl;a=blobdiff_plain;f=src%2Fmain%2Flex.lisp;h=0adeb7d2b4323faf794ce688f53ce08ab142fa22;hp=9433b55632fed979618724bd2e3c2df4ea693d6d;hb=9eef8ecae4fad1e01413807ebc80ae45b5990706;hpb=1dd12dd5293763a49a8f1d78d86f82aa5a4ed5fe diff --git a/src/main/lex.lisp b/src/main/lex.lisp index 9433b55..0adeb7d 100644 --- a/src/main/lex.lisp +++ b/src/main/lex.lisp @@ -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")))