compiler/nodes
This library provides a series of methods for interacting with the internal representation of nodes.
builtin
Native defined at lib/compiler/nodes.lisp:64:1
Get the builtin with the given NAME.
builtin?
Native defined at lib/compiler/nodes.lisp:54:1
Determine whether the specified NODE is the given BUILTIN.
Example
> (builtin? (symbol->var `lambda) :lambda)
out = true
constant?
Native defined at lib/compiler/nodes.lisp:68:1
Determine whether the specified NODE is a constant.
(fix-symbol symbol)
Defined at lib/compiler/nodes.lisp:46:2
Convert the quasi-quoted SYMBOL into a fully resolved one.
node->val
Native defined at lib/compiler/nodes.lisp:72:1
Gets the constant value of NODE.
node-contains-var?
Native defined at lib/compiler/nodes.lisp:80:1
Determine whether NODE contains a reference to the given VAR.
node-contains-vars?
Native defined at lib/compiler/nodes.lisp:84:1
Determine whether NODE contains a reference to any of the given VARS.
VARS must be a struct, mapping variable names to true.
symbol->var
Native defined at lib/compiler/nodes.lisp:34:1
Extract the variable from the given SYMBOL.
This will work with quasi-quoted symbols, and those from resolved ASTs. You should not use this on macro arguments as it will not return anything useful.
traverse-node
Native defined at lib/compiler/nodes.lisp:20:1
Traverse NODE with VISITOR.
VISITOR should be a function which accepts the current node and the
visitor. It should return the replacement node, or the current node
if no changes should be made.
traverse-nodes
Native defined at lib/compiler/nodes.lisp:28:1
Traverse a list of NODES, starting at IDX, using the specified VISITOR.
See traverse-node for more information about the VISITOR.
val->node
Native defined at lib/compiler/nodes.lisp:76:1
Gets the node representation of the constant VALUE.
var->symbol
Native defined at lib/compiler/nodes.lisp:42:1
Create a new symbol referencing the given VARIABLE.
visit-node
Native defined at lib/compiler/nodes.lisp:6:1
Visit NODE with VISITOR.
VISITOR should be a function which accepts the current node and the
visitor. This is called before traversing the child nodes. You can
return false to not visit them.
visit-nodes
Native defined at lib/compiler/nodes.lisp:14:1
Visit a list of NODES, starting at IDX, using the specified VISITOR.
See visit-node for more information about the VISITOR.