No matching definitions.

tur/codegen

src/scscm/codegen.tur
defn

scscm-ast-value

(scscm-ast-value [node :int])
defn

scscm-cstr-eq?

(scscm-cstr-eq? [a :cstr b :cstr])

transform a scscm symbol name to a valid sclang identifier.

defn

list-nil?

(list-nil? [lst :int])
defn

ast-kind

(ast-kind [node :int])
defn

ast-symbol-name

(ast-symbol-name [node :int])
defn

ast-number-value

(ast-number-value [node :int])
defn

ast-string-value

(ast-string-value [node :int])
defn

ast-list-len

(ast-list-len [node :int])
defn

ast-list-get

(ast-list-get [node :int i :int])
defn

scscm-sym-escape

(scscm-sym-escape [name :cstr])
defn

scscm-is-binary-op?

(scscm-is-binary-op? [name :cstr])
defn

scscm-sclang-op

(scscm-sclang-op [name :cstr])
defn

scscm-concat

(scscm-concat [a :cstr b :cstr])
defn

scscm-brace

(scscm-brace [s :cstr])
defn

scscm-gen-args

(scscm-gen-args [node :int i :int])
defn

scscm-gen-cons-list

(scscm-gen-cons-list [nodes :int])
defn

scscm-gen-params

(scscm-gen-params [node :int i :int])
defn

scscm-gen-stmts

(scscm-gen-stmts [node :int i :int])
defn

scscm-gen-let-bindings

(scscm-gen-let-bindings [bvec :int i :int])
defn

scscm-gen-dot

(scscm-gen-dot [node :int])
defn

scscm-gen-dotdot

(scscm-gen-dotdot [node :int])
defn

scscm-gen-fn

(scscm-gen-fn [node :int])
defn

scscm-gen-defn

(scscm-gen-defn [node :int])
defn

scscm-gen-if

(scscm-gen-if [node :int])
defn

scscm-gen-let

(scscm-gen-let [node :int])
defn

scscm-gen-quote

(scscm-gen-quote [node :int])
defn

scscm-gen-list-sym

(scscm-gen-list-sym [node :int head-name :cstr])
defn

scscm-gen-list

(scscm-gen-list [node :int])
defn

scscm-kw-name

(scscm-kw-name [raw :cstr])
defn

generate

(generate [node :int])

emit sclang text for a single AST node.

nodeAST node handle

Heap-allocated :cstr of the sclang representation.

(generate my-ast-node)  ; => "foo_bar(1, 2)"

Since: SC2

defn

scscm-gen-all-loop

(scscm-gen-all-loop [nodes :int acc :cstr])
defn

generate-all

(generate-all [nodes :int])

emit sclang text for every node in a top-level cons list.

nodescons list of AST node handles

Heap-allocated :cstr with each form's sclang joined by ";\n".

(generate-all top-level-nodes)  ; => "foo(1);\nbar(2)"

Since: SC2