summaryrefslogtreecommitdiff
path: root/parzival.lisp
diff options
context:
space:
mode:
authorBoutade <thegoofist@protonmail.com>2019-05-10 18:54:43 -0500
committerBoutade <thegoofist@protonmail.com>2019-05-10 18:54:43 -0500
commit6e2699e11f464228fecc7768cb72609abb5c048c (patch)
tree41d6c33b2bed39ff2947e2f3d25c3665bcfc1b1f /parzival.lisp
parenteb1c7ff85dce00538358ea7659a1f94988749824 (diff)
updated readme
Diffstat (limited to 'parzival.lisp')
-rw-r--r--parzival.lisp7
1 files changed, 4 insertions, 3 deletions
diff --git a/parzival.lisp b/parzival.lisp
index 441ccc3..9884068 100644
--- a/parzival.lisp
+++ b/parzival.lisp
@@ -165,9 +165,10 @@ in then. If the parse fails the combinator else is run instead."
(defmacro <<let (bindings expression)
- "Chain the results of several parses, failing whenever any of them fail, and
- combine them in a final parser. BINDINGS is a list of (variable parser)
- pairs. EXPRESSION should return a parser"
+ "Introduce bindings for the results of several consequtive parses. If one of
+ them fails then the whole expression fails. BINDINGS should be analogus to a
+ let expression, i.e. (variable parser) pairs. EXPRESSION should be any
+ expression that returns a parser - it can make use of the bound variables"
(if (null bindings) expression
`(<<bind ,(cadar bindings)
(lambda (,(caar bindings))