summaryrefslogtreecommitdiff
path: root/modules/language/python/module/re/parser.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/re/parser.scm')
-rw-r--r--modules/language/python/module/re/parser.scm11
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)
+
+