Liking cljdoc? Tell your friends :D

meander.match.ir.delta

Functions for working with the Meander's match compiler intermediate representation (IR).

Functions for working with the Meander's match compiler
intermediate representation (IR).
raw docstring

branch?clj/s

(branch? node)

true if node has any children, false otherwise.

true if node has any children, false otherwise.
sourceraw docstring

can-merge?clj/smultimethoddeprecated

DEPRECATED: true if two nodes a and b can be merged, false otherwise.

DEPRECATED: `true` if two nodes `a` and `b` can be merged, `false`
otherwise.
sourceraw docstring

check?clj/s

(check? x)
source

childrenclj/s

(children node)

Return the child nodes of node, a sequence of ::node.

Return the child nodes of node, a sequence of ::node.
sourceraw docstring

compileclj/s

(compile ir fail kind)
(compile ir fail kind env)
source

compile*clj/smultimethod

(compile* ir fail kind)
source

def-remove-unusedclj/s

(def-remove-unused node)
source

defopclj/s≠macro

clj
(defop symbol op params & body)
cljs
(defop &form &env symbol op params & body)
source (clj)source (cljs)

do-mergeclj/s

(do-merge a b then)
(do-merge a b then else)

Attempts to merge two nodes a and b into a new node. If the merge is successful the function then is invoked with the new node. If the merge fails and the optional function else was passed, then else is invoked with a and b. If the merge fails and else was not passed, then the value ::merge-fail is returned.

Attempts to merge two nodes `a` and `b` into a new node.  If the
merge is successful the function `then` is invoked with the new
node. If the merge fails and the optional function `else` was
passed, then `else` is invoked with `a` and `b`. If the merge fails
and `else` was not passed, then the value `::merge-fail` is
returned.
sourceraw docstring

drop-formclj/s

(drop-form n target-form kind)
source

FAILclj/s

Special value signaling a match failure. Generated code will often utilize this value as for control flow purposes.

Special value signaling a match failure. Generated code will often
utilize this value as for control flow purposes.
sourceraw docstring

fail-formclj/s

(fail-form kind)

Returns (list FAIL) if kind is :search,FAIL otherwise. This is used when compiling :def nodes to ensure the correct type of data is returned to code compiled for :call nodes.

Returns `(list FAIL) if kind is :search, `FAIL otherwise. This is
used when compiling :def nodes to ensure the correct type of data is
returned to code compiled for :call nodes.
sourceraw docstring

fail?clj/s

(fail? x)
source

heightclj/s

(height node)

Return the height of node.

Return the height of node.
sourceraw docstring

js-array-equals-formclj/s

(js-array-equals-form a b)

Form used to test if two arrays a and b are equal in ClojureScript.

Form used to test if two arrays a and b are equal in
ClojureScript.
sourceraw docstring

make-nodeclj/s

(make-node node new-children)
source

mergeclj/smultimethod

(merge a b)

Attempt to merge the nodes a and b. Returns the result of the merge if the merge succeeds. Returns a :branch node with :arms [a b] if the merge fails.

Attempt to merge the nodes `a` and `b`. Returns the result of the merge
if the merge succeeds. Returns a `:branch` node with `:arms` `[a b]`
if the merge fails.
sourceraw docstring

merge*clj/smultimethod

(merge* node-a node-b)

Attempts to merge two nodes into one node returning node* if successful and ::merge-fail otherwise.

Attempts to merge two nodes into one node returning node* if
successful and ::merge-fail otherwise.
sourceraw docstring

merge-allclj/s

(merge-all nodes)

Attempts to successively merge all nodes in nodes from left to right.

Attempts to successively merge all nodes in `nodes` from left to
right.
sourceraw docstring

node?clj/s

(node? x)

true if x is a ::node, false otherwise.

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

nodesclj/s

(nodes node)

Return all subnodes of node, a sequence of ::node.

Return all subnodes of node, a sequence of ::node.
sourceraw docstring

opclj/s

(op node)

Return the ::op of node.

Return the ::op of node.
sourceraw docstring

op-applyclj/s

(op-apply target fn-expr body-fn)
source

op-bindclj/s

(op-bind symbol value then)
source

op-branchclj/s

(op-branch arms)
source

op-caseclj/s

(op-case target clauses else)
source

op-checkclj/s

(op-check test then)
source

op-check-arrayclj/s

(op-check-array target then)
source

op-check-array-equalsclj/s

(op-check-array-equals target-1 target-2 then)
source

op-check-booleanclj/s

(op-check-boolean test then)
source

op-check-boundsclj/s

(op-check-bounds target length kind then)
source

op-check-emptyclj/s

(op-check-empty target then)
source

op-check-equalclj/s

(op-check-equal target-1 target-2 then)
source

op-check-litclj/s

(op-check-lit target value then)
source

op-check-mapclj/s

(op-check-map target then)
source

op-check-seqclj/s

(op-check-seq target then)
source

op-check-setclj/s

(op-check-set target then)
source

op-check-vectorclj/s

(op-check-vector target then)
source

op-dropclj/s

(op-drop target n kind)
source

op-evalclj/s

(op-eval form)
source

op-failclj/s

(op-fail)
source

op-fail?clj/s

(op-fail? x)
source

op-findclj/s

(op-find symbol value body)
source

op-loadclj/s

(op-load id)
source

op-lookupclj/s

(op-lookup target key)
source

op-lvr-bindclj/s

(op-lvr-bind symbol target then)
source

op-lvr-checkclj/s

(op-lvr-check symbol target then)
source

op-mut-bindclj/s

(op-mut-bind symbol target then)
source

op-mvr-appendclj/s

(op-mvr-append symbol target then)
source

op-mvr-bindclj/s

(op-mvr-bind symbol target then)
source

op-mvr-initclj/s

(op-mvr-init symbol then)
source

op-nthclj/s

(op-nth target index)
source

op-passclj/s

(op-pass then)
source

op-plusclj/s

(op-plus input n m kind return-symbols body-fn then)
source

op-returnclj/s

(op-return value)
source

op-saveclj/s

(op-save id body-1 body-2)
source

(op-search symbol value body)
source

op-starclj/s

(op-star input n kind return-symbols body-fn then)
source

op-takeclj/s

(op-take target n kind)
source

op=clj/s

(op= node op)
source

postwalkclj/s

(postwalk f node)
source

prewalkclj/s

(prewalk f node)
source

rewriteclj/s

(rewrite node)
source

rewrite*clj/s

(rewrite* node)
source

rewrite-branch-check-lits-to-caseclj/s

(rewrite-branch-check-lits-to-case node)
source

rewrite-case-duplicate-actionsclj/s

(rewrite-case-duplicate-actions node)
source

rewrite-move-mvr-init-to-top-levelclj/s

(rewrite-move-mvr-init-to-top-level node)
source

run-findclj/s

(run-find space body-f fail-f)
source

run-star-js-arrayclj/s

(run-star-js-array coll rets n body-f then-f)
source

(run-star-js-array-search coll rets n body-f then-f)
source

run-star-seqclj/s

(run-star-seq coll rets n body-f then-f)
source

(run-star-seq-search coll rets n body-f then-f)
source

run-star-vecclj/s

(run-star-vec coll rets n body-f then-f)
source

(run-star-vec-search coll rets n body-f then-f)
source

take-formclj/s

(take-form n target-form kind)
source

walkclj/s

(walk inner outer node)
source

zipperclj/s

(zipper node)
source

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

× close