chiark / gitweb /
src/class-{finalize,layout}-*.lisp: Relocate layout interface code.
[sod] / src / pset-parse.lisp
index ddc34e04f96eed91c43ed700ff10b3ae7a9a766c..b3b1d8ca571612e0e89f34a4200c9301bf664553 100644 (file)
@@ -100,7 +100,8 @@     (defun parse-expression (scanner)
                                   (sexp (read stream t)))
                              (scanner-step scanner)
                              (multiple-value-bind (type value)
-                                 (decode-property sexp)
+                                 (restart-case (decode-property (eval sexp))
+                                   (continue () (values :invalid nil)))
                                (values (cons type value) t t))))
                           (#\{
                            (values (cons :fragment
@@ -133,6 +134,7 @@     (defun parse-expression (scanner)
 ;;;--------------------------------------------------------------------------
 ;;; Parsing property sets.
 
+(export 'parse-property)
 (defun parse-property (scanner pset)
   "Parse a single property using the SCANNER; add it to the PSET."
   ;; property ::= id `=' expression