Liking cljdoc? Tell your friends :D

meander.syntax.gamma


any-form?clj/s

(any-form? x)

true if x is a symbol beginning with _.

true if x is a symbol beginning with _.
sourceraw docstring

any-node?clj/s

(any-node? x)

true if x is an :any node, false otherwise.

true if x is an :any node, false otherwise.
sourceraw docstring

childrenclj/smultimethod

(children node)

Return a sequential? of all children of node.

Return a sequential? of all children of node.
sourceraw docstring

defsyntaxclj/s≠macro

clj
(defsyntax name docstring? meta? arglist & body)
cljs
(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
source (clj)source (cljs)raw docstring

expand-seqclj/smultimethod

(expand-seq seq env)
source

foldclj/smultimethod

(fold f value node)
source

ground?clj/smultimethod

(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.
sourceraw docstring

logic-variable-form?clj/s

(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 \?.
sourceraw docstring

logic-variablesclj/s

(logic-variables node)

Return all :lvr nodes in node.

Return all :lvr nodes in node.
sourceraw docstring

lvr-node?clj/s

(lvr-node? x)
source

max-lengthclj/smultimethod

(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.
sourceraw docstring

memory-variable-form?clj/s

(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 \!.
sourceraw docstring

memory-variablesclj/s

(memory-variables node)

Return all :mvr nodes in node.

Return all :mvr nodes in node.
sourceraw docstring

min-lengthclj/smultimethod

(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.
sourceraw docstring

mvr-node?clj/s

(mvr-node? x)
source

node?clj/s

(node? x)

true if x is an AST node.

true if x is an AST node.
sourceraw docstring

parseclj/s

(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 []}}}
sourceraw docstring

postwalkclj/s

(postwalk f node)

Same as clojure.walk/postwalk but for AST nodes.

Same as clojure.walk/postwalk but for AST nodes.
sourceraw docstring

postwalk-replaceclj/s

(postwalk-replace smap form)

Same as clojure.walk/postwal-replace but for AST nodes.

Same as clojure.walk/postwal-replace but for AST nodes.
sourceraw docstring

prewalkclj/s

(prewalk f node)

Same as clojure.walk/prewalk but for AST nodes.

Same as clojure.walk/prewalk but for AST nodes.
sourceraw docstring

prewalk-replaceclj/s

(prewalk-replace smap form)

Same as clojure.walk/prewalk-replace but for AST nodes.

Same as clojure.walk/prewalk-replace but for AST nodes.
sourceraw docstring

proper-subnodesclj/s

(proper-subnodes node)

Return the all subnodes in node excluding node.

Return the all subnodes in node excluding node.
sourceraw docstring

re-matches?clj/s

(re-matches? re s)
source (clj)source (cljs)

ref-node?clj/s

(ref-node? x)
source

ref-sym?clj/s

(ref-sym? x)
source

search?clj/smultimethod

(search? node)

true if node represents a search, false otherwise.

true if node represents a search, false otherwise.
sourceraw docstring

subnodesclj/s

(subnodes node)

Return a sequence of all subnodes of node.

Return a sequence of all subnodes of node.
sourceraw docstring

tagclj/s

(tag node)

Return the tag of node.

Return the tag of node.
sourceraw docstring

unparseclj/smultimethod

(unparse node)

In pre-order fashion rewrite a node into a Clojure form.

In pre-order fashion rewrite a node into a Clojure form.
sourceraw docstring

variable-length?clj/s

(variable-length? node)

true if node may have a variable length.

true if node may have a variable length.
sourceraw docstring

variable-node?clj/s

(variable-node? x)
source

variablesclj/s

(variables node)

Return all :lvr and :mvr nodes in node.

Return all :lvr and :mvr nodes in node.
sourceraw docstring

walkclj/smultimethod

(walk inner outer node)

Same as clojure.walk/walk but for AST nodes.

Same as clojure.walk/walk but for AST nodes.
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close