scscm/codegen
src/scscm/codegen.tur
defn
generate
(generate [node : int])
emit sclang text for a single AST node.
Parameters
| node | AST node handle |
Returns
Heap-allocated :cstr of the sclang representation.
Example
(generate my-ast-node) ; => "foo_bar(1, 2)"
Since: SC2
defn
generate-all
(generate-all [nodes : int])
emit sclang text for every node in a top-level cons list.
Parameters
| nodes | cons list of AST node handles |
Returns
Heap-allocated :cstr with each form's sclang joined by ";\n".
Example
(generate-all top-level-nodes) ; => "foo(1);\nbar(2)"
Since: SC2
Internal definitions
scscm-sym-escape-- transform a scscm symbol name to a valid sclang identifier.scscm-is-binary-op?scscm-sclang-opscscm-concatscscm-bracescscm-gen-argsscscm-gen-cons-listscscm-gen-paramsscscm-gen-stmtsscscm-gen-let-bindingsscscm-gen-dotscscm-gen-dotdotscscm-gen-fnscscm-gen-defnscscm-gen-ifscscm-gen-letscscm-gen-quotescscm-gen-list-symscscm-gen-listscscm-kw-namescscm-gen-all-loop