reverse forms implemented
[software/python-on-guile.git] / modules / language / python / module / re / parser.scm
index eae4b3f918f33376179730f4b21b2eb48d31fe94..a7210d1c7c32aa68f8e43bb0514627933208ebf1 100644 (file)
 
 (define lookh   (f-list #:?= "(?=" (Ds ee) ")"))
 (define lookh!  (f-list #:?! "(?!" (Ds ee) ")"))
+
+(define rev     (f-list #:?<= "(?<=" (Ds ee) ")"))
+(define rev!    (f-list #:?<! "(?<!" (Ds ee) ")"))
+
 (define bbody (f-cons (ch (f-reg "[\\]")) (ff* (ch (f-reg "[]\\]")))))
 
 (define (f-if a b c) (f-or! (f-seq a b) c))
@@ -52,7 +56,7 @@
 
 (define f-bar  (f-tag "|"))
 (define qq     (ch (f-reg "[][?+|*.$^() \\]")))
-(define atom   (f-or qq f-. choice subexpr anongroup namegroup incant coment lookh lookh! f-^ f-$))
+(define atom   (f-or qq f-. choice subexpr anongroup namegroup incant coment lookh lookh! rev rev! f-^ f-$))
 (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 line   (f-cons* #:seq aatom (ff* aatom )))