chiark / gitweb /
src/module-parse.lisp: Report an error if the top-level parse fails.
[sod] / src / module-parse.lisp
index 83cc0add4590593e6fc18709989d0eb669ee2add..9fa9a1fd1c3a5146e7f051bb25723f10f3fc10f0 100644 (file)
@@ -108,11 +108,14 @@   (define-module (pathname :location location :truename truename)
                                     :char-scanner char-scanner)))
        (with-default-error-location (scanner)
          (with-parser-context (token-scanner-context :scanner scanner)
-           (parse (skip-many ()
-                    (seq ((pset (parse-property-set scanner))
-                          (nil (error ()
-                                 (plug module scanner pset))))
-                      (check-unused-properties pset))))))))))
+           (multiple-value-bind (result winp consumedp)
+               (parse (skip-many ()
+                         (seq ((pset (parse-property-set scanner))
+                               (nil (error ()
+                                      (plug module scanner pset))))
+                           (check-unused-properties pset))))
+             (declare (ignore consumedp))
+             (unless winp (syntax-error scanner result)))))))))
 
 (define-pluggable-parser module test (scanner pset)
   ;; `demo' string `;'