(bioscoop & forms)Macro that takes Clojure DSL forms and produces the same AST as Instaparse parsing. Binds dynamic-resolution to true for runtime reflection support.
Symbols that aren't lexical locals (let-bindings, fn params) are
resolved against the namespace this macro was expanded in — captured
at compile time — not against whatever *ns* happens to be bound to
at runtime. This matters because ns is a thread-local dynamic
binding that can drift from the compiling namespace by the time the
code executes (e.g. under test runners that don't rebind ns around
test invocation).
Example: (bioscoop (let [width 1920] (scale width 1080)))
This produces the same result as: (dsl/compile-dsl "(let [width 1920] (scale width 1080))")
Macro that takes Clojure DSL forms and produces the same AST as Instaparse parsing. Binds *dynamic-resolution* to true for runtime reflection support. Symbols that aren't lexical locals (let-bindings, fn params) are resolved against the namespace this macro was expanded in — captured at compile time — not against whatever `*ns*` happens to be bound to at runtime. This matters because *ns* is a thread-local dynamic binding that can drift from the compiling namespace by the time the code executes (e.g. under test runners that don't rebind *ns* around test invocation). Example: (bioscoop (let [width 1920] (scale width 1080))) This produces the same result as: (dsl/compile-dsl "(let [width 1920] (scale width 1080))")
(defgraph name & body)(form->ast form)Convert a Clojure form to the same AST structure that Instaparse produces
Convert a Clojure form to the same AST structure that Instaparse produces
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |