diff options
Diffstat (limited to 'modules/language/python/module/re/parser.scm')
-rw-r--r-- | modules/language/python/module/re/parser.scm | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/language/python/module/re/parser.scm b/modules/language/python/module/re/parser.scm index 89462ae..9ecc756 100644 --- a/modules/language/python/module/re/parser.scm +++ b/modules/language/python/module/re/parser.scm @@ -81,9 +81,13 @@ lookh lookh! rev rev! f-^ f-$ flags)) (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 ))) +(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 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 (parse-reg str) (pk (parse str (f-seq ee f-eof)))) +(define (parse-reg str) + (pk + (with-fluids ((*whitespace* ws)) + (parse str (f-seq ee f-eof))))) (define e-matcher ee) |