(any-form? x)
true if x is a symbol beginning with _.
true if x is a symbol beginning with _.
(any-node? x)
true if x is an :any node, false otherwise.
true if x is an :any node, false otherwise.
(children node)
Return a sequential? of all children of node.
Return a sequential? of all children of node.
(defsyntax name docstring? meta? arglist & body)
(defsyntax &form &env & args)
EXPERIMENTAL Like defn but for defining new pattern syntax by extending the parser. When parsing, if a seq is encountered starting with a symbol which can be resolved to the created var then the tail of the seq is applied to the var and the result is parsed.
Example
(defsyntax re [regex] `(~'pred (fn [s#] (and (string? s#) (re-matches ~regex s#)))))
(require '[meander.match.gamma :as r.match])
(r.match/match "elf" (re #"[a-z]+") :okay!) ;; => :okay
EXPERIMENTAL Like defn but for defining new pattern syntax by extending the parser. When parsing, if a seq is encountered starting with a symbol which can be resolved to the created var then the tail of the seq is applied to the var and the result is parsed. Example (defsyntax re [regex] `(~'pred (fn [s#] (and (string? s#) (re-matches ~regex s#))))) (require '[meander.match.gamma :as r.match]) (r.match/match "elf" (re #"[a-z]+") :okay!) ;; => :okay
(ground? node)
true if node is ground i.e. it contains no variables or is not a match operator.
true if node is ground i.e. it contains no variables or is not a match operator.
(logic-variable-form? x)
true if x is in the form of a logic variable i.e. a simple symbol with a name beginning with ?.
true if x is in the form of a logic variable i.e. a simple symbol with a name beginning with \?.
(logic-variables node)
Return all :lvr nodes in node.
Return all :lvr nodes in node.
(max-length node)
The maximum possible length the pattern described by node can be.
The maximum possible length the pattern described by node can be.
(memory-variable-form? x)
true if x is in the form of a memory variable i.e. a simple symbol with a name beginning with !.
true if x is in the form of a memory variable i.e. a simple symbol with a name beginning with \!.
(memory-variables node)
Return all :mvr nodes in node.
Return all :mvr nodes in node.
(min-length node)
The maximum possible length the pattern described by node can be.
The maximum possible length the pattern described by node can be.
(parse x)
(parse x env)
Parse x
into an abstract syntax tree (AST) optionally with
respect to the environment env
.
(parse '(?x1 ?x2 :as ?xs)) ;; => {:tag :seq :as {:tag :lvr :symbol ?xs} :prt {:tag :prt :left {:tag :cat :elements ({:tag :lvr :symbol ?x1} {:tag :lvr :symbol ?x2})} :right {:tag :cat :elements []}}}
Parse `x` into an abstract syntax tree (AST) optionally with respect to the environment `env`. (parse '(?x1 ?x2 :as ?xs)) ;; => {:tag :seq :as {:tag :lvr :symbol ?xs} :prt {:tag :prt :left {:tag :cat :elements ({:tag :lvr :symbol ?x1} {:tag :lvr :symbol ?x2})} :right {:tag :cat :elements []}}}
(postwalk f node)
Same as clojure.walk/postwalk but for AST nodes.
Same as clojure.walk/postwalk but for AST nodes.
(postwalk-replace smap form)
Same as clojure.walk/postwal-replace but for AST nodes.
Same as clojure.walk/postwal-replace but for AST nodes.
(prewalk f node)
Same as clojure.walk/prewalk but for AST nodes.
Same as clojure.walk/prewalk but for AST nodes.
(prewalk-replace smap form)
Same as clojure.walk/prewalk-replace but for AST nodes.
Same as clojure.walk/prewalk-replace but for AST nodes.
(proper-subnodes node)
Return the all subnodes in node excluding node.
Return the all subnodes in node excluding node.
(search? node)
true if node represents a search, false otherwise.
true if node represents a search, false otherwise.
(subnodes node)
Return a sequence of all subnodes of node.
Return a sequence of all subnodes of node.
(unparse node)
In pre-order fashion rewrite a node into a Clojure form.
In pre-order fashion rewrite a node into a Clojure form.
(variable-length? node)
true if node may have a variable length.
true if node may have a variable length.
(variables node)
Return all :lvr and :mvr nodes in node.
Return all :lvr and :mvr nodes in node.
(walk inner outer node)
Same as clojure.walk/walk but for AST nodes.
Same as clojure.walk/walk but for AST nodes.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close