From a8bc78318db49efeb25d4a042fafde7c0ca1c0a5 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sun, 26 Mar 2017 15:16:18 +0100 Subject: [PATCH 1/1] src/module-parse.lisp (read-module): Provide sensible default error-recovery. Organization: Straylight/Edgeware From: Mark Wooding By default, if there's an error parsing a module item, skip and consume until the next `;' or `}'. This actually seems to work quite well. --- src/module-parse.lisp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/module-parse.lisp b/src/module-parse.lisp index 197e3e4..211f2c7 100644 --- a/src/module-parse.lisp +++ b/src/module-parse.lisp @@ -112,7 +112,9 @@ (define-module (pathname :location location :truename truename) (parse (skip-many () (seq ((pset (parse-property-set scanner)) (nil (error () - (plug module scanner pset)))) + (plug module scanner pset) + (skip-until (:keep-end nil) + #\; #\})))) (check-unused-properties pset)))) (declare (ignore consumedp)) (unless winp (syntax-error scanner result))))))))) -- [mdw]