From 84a4d4b68ebd5d1f9a7ed7fd50b813327e416061 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 10 Aug 2015 15:46:50 -0400 Subject: Add parse-match. --- parser-combinators.scm | 4 ++++ 1 file changed, 4 insertions(+) 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)) -- cgit v1.2.3