No matching definitions.

scscm/expander

src/scscm/expander.tur
defn

scscm-macros-reset

(scscm-macros-reset)

forget every defmacro. The table holds AST nodes,

defn

expand

(expand [ast : int])

expand macros in a single AST node.

astAST node handle (from parser)

Expanded AST node handle, built from core forms (may be a new allocation; input nodes are shared, not copied).

(expand (parse-one-form my-tokens))

Since: SC3

defn

expand-all

(expand-all [asts : int])

expand macros in a cons list of top-level AST nodes.

astscons list of AST node handles

Cons list of expanded AST node handles, in order. A defmacro is recorded and becomes an empty form, which codegen drops.

(expand-all top-level-nodes)

Since: SC3

Internal definitions
scscm-macro-env-op
scscm-macro-get
scscm-macro-set
scscm-macro-define
scscm-macro-lookup-loop
scscm-macro-lookup
scscm-kind?
scscm-sym
scscm-kw
scscm-num
scscm-str
scscm-nil
scscm-add
scscm-l1
scscm-l2
scscm-l3
scscm-l4
scscm-l5
scscm-append-from
scscm-call-from
scscm-fn-from
scscm-do-from
scscm-send
scscm-class-send
scscm-default-clock
scscm-done-action-2
scscm-arg
scscm-bind-0
scscm-bind-1
scscm-params1
scscm-sym-string
scscm-thread-first
scscm-thread-last
scscm-mac-when
scscm-mac-unless
scscm-else-test?
scscm-cond-clauses?
scscm-cond-ifs
scscm-cond-split
scscm-mac-cond
scscm-mac-iterate
scscm-mac-accumulate
scscm-comp-from
scscm-mac-partial
scscm-mac-defsynth
scscm-mac-definst
scscm-mac-routine
scscm-mac-pattern
scscm-mac-pbind
scscm-mac-ctl
scscm-mac-sched
scscm-mac-demo
scscm-mac-adsr
scscm-mac-perc
scscm-mac-env-line
scscm-mac-degrees
scscm-pct-index
scscm-pct-op
scscm-pct-scan
scscm-pct-scan-children
scscm-pct-name
scscm-pct-subst
scscm-pct-subst-fill
scscm-pct-params
scscm-mac-hash-fn
scscm-kind-int
scscm-bind-params
scscm-cons-to-list
scscm-cons-to-list-fill
scscm-env-lookup
scscm-subst
scscm-subst-fill
scscm-qq
scscm-qq-fill
scscm-macro-body
scscm-macro-apply
scscm-children-cons
scscm-children-cons-loop
scscm-expand-from
scscm-expand-fill
scscm-expand-let
scscm-expand-bindings
scscm-handle-defmacro
scscm-builtin
scscm-expand-list
scscm-expand-dot