summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parser-combinators.scm4
1 files changed, 4 insertions, 0 deletions
diff --git a/parser-combinators.scm b/parser-combinators.scm
index 3c4958e..a92cd72 100644
--- a/parser-combinators.scm
+++ b/parser-combinators.scm
@@ -41,6 +41,7 @@
parse-return
parse-lift
parse-map
+ parse-match
parse-any
parse-each
parse-zero-or-more
@@ -98,6 +99,9 @@
"Return a new parser that applies PROC to result of PARSER."
(parse-bind (parse-lift proc) parser))
+(define-syntax-rule (parse-match parser matchers ...)
+ (parse-map (match-lambda matchers ...) parser))
+
(define (%parse-any . parsers)
(lambda (stream)
(let loop ((parsers parsers))