summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/language/python/module/re.scm9
-rw-r--r--modules/language/python/module/re/compile.scm13
-rw-r--r--modules/language/python/module/re/parser.scm11
3 files changed, 20 insertions, 13 deletions
diff --git a/modules/language/python/module/re.scm b/modules/language/python/module/re.scm
index 6765654..edd869d 100644
--- a/modules/language/python/module/re.scm
+++ b/modules/language/python/module/re.scm
@@ -1,6 +1,7 @@
(define-module (language python module re)
#:use-module (language python module re compile)
#:use-module (language python module re flags)
+ #:use-module (language python module re parser)
#:use-module (language python list)
#:use-module (language python dict)
#:use-module (language python try)
@@ -425,7 +426,13 @@
-(def (compile s (= flags 0)) (Regexp s flags))
+(def (compile s (= flags 0))
+ (with-fluids ((pretty #t))
+ (Regexp s flags)))
+
+(def (compile-r s (= flags 0))
+ (with-fluids ((pretty #f))
+ (Regexp s flags)))
(define (purge) (values))
diff --git a/modules/language/python/module/re/compile.scm b/modules/language/python/module/re/compile.scm
index 9fe6fc0..f92a8dd 100644
--- a/modules/language/python/module/re/compile.scm
+++ b/modules/language/python/module/re/compile.scm
@@ -4,7 +4,7 @@
#:use-module (language python list)
#:use-module (language python string)
#:use-module ((parser stis-parser) #:select
- ((parse . stisparse) <p-lambda> <p-cc> .. f-nl! f-nl
+ ((parse . stis-parse) <p-lambda> <p-cc> .. f-nl! f-nl
f-tag! f-tag f-seq f-or f-or! f-and f-true g* g+ gmn ng* ng+
ngmn f-reg! f-and! f-test N M X XL f-pk
g? ng? f-test! f-eof f-not! f-prev f-not f-out f-rev
@@ -13,7 +13,7 @@
#:use-module (parser stis-parser macros)
#:use-module (ice-9 match)
- #:export (compile-reg test-reg parse))
+ #:export (parse compile-reg test-reg parse))
(define trace? #f)
(define (trace nm f)
@@ -474,11 +474,6 @@
(let ((p (f-seq (f-out '(() ())) (compile (parse-reg x)))))
(list p (fluid-ref groups) (fluid-ref groupindex))))
-(define (test-reg y x)
+(define (parse s x)
(with-fluids ((*whitespace* f-true))
- (stisparse (maybe-add-nk y) (car (compile-reg x)))))
-
-(define (parse y x)
- (with-fluids ((*whitespace* f-true))
- (stisparse (maybe-add-nk y) x)))
-
+ (stis-parse s x)))
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)
+
+