Skip to content

Instantly share code, notes, and snippets.

@js-choi
Created September 10, 2010 01:00
Show Gist options
  • Save js-choi/572866 to your computer and use it in GitHub Desktop.
Save js-choi/572866 to your computer and use it in GitHub Desktop.
ser=> (require '[edu.arizona.fnparse [core :as c] [hound :as h]] :reload)
java.lang.RuntimeException: Can't embed object in code, maybe print-dup not defined: clojure.lang.Delay@65f0518c (hound.clj:445)
(let*
[maker-var__35822__auto__
(clojure.core/defn
edu.arizona.fnparse.hound/validate
"Creates a validating rule.\n \n A convenience function. Returns a new rule that\n acts like the given `rule`, but also validates\n `rule`'s products with the given predicate.\n Basically just a shortcut for `for` and `when`."
{:no-memoize? true,
:success
"When `rule` succeeds and its product fulfills `(pred product)`.",
:product "`rule`'s product.",
:consumes "What `rule` consumes."}
[edu.arizona.fnparse.hound/pred
edu.arizona.fnparse.hound/message
edu.arizona.fnparse.hound/rule]
{:pre
#{(edu.arizona.fnparse.hound/rule? edu.arizona.fnparse.hound/rule)
(clojure.core/ifn? edu.arizona.fnparse.hound/pred)
(clojure.core/string? edu.arizona.fnparse.hound/message)}}
(edu.arizona.fnparse.hound/for
[edu.arizona.fnparse.hound/product
edu.arizona.fnparse.hound/rule
edu.arizona.fnparse.hound/_
(edu.arizona.fnparse.hound/when
(edu.arizona.fnparse.hound/pred
edu.arizona.fnparse.hound/product)
edu.arizona.fnparse.hound/message)]
edu.arizona.fnparse.hound/product))]
(clojure.core/alter-var-root
maker-var__35822__auto__
edu.arizona.fnparse.core/named-rule-maker
:edu.arizona.fnparse.hound/Rule)
(clojure.core/alter-meta!
maker-var__35822__auto__
clojure.core/update-in
[:doc]
edu.arizona.fnparse.core/rule-doc-str
(clojure.core/meta maker-var__35822__auto__)
"FnParse Hound rule-maker")
(clojure.core/when-not
(:no-memoize? (clojure.core/meta maker-var__35822__auto__))
(clojure.core/alter-var-root
maker-var__35822__auto__
clojure.core/memoize))
maker-var__35822__auto__)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment