diff options
Diffstat (limited to 'parser-combinators.scm')
-rw-r--r-- | parser-combinators.scm | 4 |
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)) |