diff options
Diffstat (limited to 'modules/language/python/module/re/parser.scm')
-rw-r--r-- | modules/language/python/module/re/parser.scm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/language/python/module/re/parser.scm b/modules/language/python/module/re/parser.scm index b20d272..05ce4c6 100644 --- a/modules/language/python/module/re/parser.scm +++ b/modules/language/python/module/re/parser.scm @@ -1,6 +1,6 @@ (define-module (language python module re parser) #:use-module (parser stis-parser) - #:export(parse-reg e-matcher)) + #:export(parse-reg e-matcher pretty)) (define-syntax-rule (mk n tag str) (define n (f-seq tag (f-tag str)))) (mk f-. #:dot ".") @@ -85,11 +85,16 @@ (define spec (f-list #:op atom (f-or! q+? q?? q*? q* q? q+ repn? repnm? repn repnm))) (define aatom (f-or! spec atom)) (define f-com (f-seq (f-tag "#") (f* (f-not (f-or! f-eof f-nl))))) -(define ws (f* (f-or! f-com f-nl (f-reg "[ \t\r]")))) +(define ws (Ds (if (fluid-ref pretty) + (f* (f-or! f-com f-nl (f-reg "[ \t\r]"))) + f-true))) (define line (f-cons* #:seq ws aatom ws (ff* (f-seq ws aatom ws) ))) (define ee (f-cons* #:or line (ff* (f-seq f-bar line)))) +(define pretty (make-fluid #f)) (define (parse-reg str) (with-fluids ((*whitespace* ws)) - (parse str (f-seq ee f-eof)))) + (parse str (f-seq ee f-eof)))) (define e-matcher ee) + + |