hara.lang.script-macro
call-thunk
added in 4.0
(call-thunk {:keys [input raw debug clip], :as meta} thunk)calls the thunk given meta to control pointer output
(macro/call-thunk {:debug true} (fn [] ptr/print)) => #{:input}
intern-!-fn
added in 4.0
(intern-!-fn lang args {:keys [input raw debug clip], :as meta})interns a free pointer macro
intern-def$-fn
added in 4.0
(intern-def$-fn lang [op sym body :as form] smeta)interns a fragment macro
intern-defmacro-fn
added in 4.0
(intern-defmacro-fn lang [op sym & body :as form] smeta)function to intern a macro
intern-defmacro-rt-fn
added in 4.0
(intern-defmacro-rt-fn lang form smeta)defines both a library entry as well as a runtime macro
intern-free
added in 4.0
(intern-free lang tag)creates a defptr macro
(macro/intern-free :lua “hello”) => #’hara.lang.script-macro-test/defptr.hello
intern-free-fn
added in 4.0
(intern-free-fn lang [_ sym body] smeta)interns a free pointer in the namespace
(macro/intern-free-fn :lua ’(defptr.lua hello 1) {}) => #’hara.lang.script-macro-test/hello
intern-grammar
added in 4.0
(intern-grammar lang grammar)interns a bunch of macros in the namespace
(:macros (:grammar (lib/get-book +library+ :lua))) => ’#{defrun defn defglobal defgen defn- deftemp defclass defabstract def}
(impl/with:library +library+ (macro/intern-grammar :lua (:grammar (lib/get-book +library+ :lua)))) => map?
intern-highlights
added in 4.0
(intern-highlights lang grammar)interns the highlight macros in the grammar
intern-macros
added in 4.0
(intern-macros lang grammar)interns the top-level macros in the grammar
intern-top-level
added in 4.0
(intern-top-level lang tag op)(intern-top-level lang tag op grammar)interns a top level macro
(impl/with:library +library+ (macro/intern-top-level :lua “hello” ’def)) => #’hara.lang.script-macro-test/def.hello
(impl/with:library +library+ ^{:module L.core} (def.hello abc 1)) => #’hara.lang.script-macro-test/abc
(impl/with:library +library+ (ptr/ptr-deref abc))
(impl/with:library +library+ (ptr/ptr-display abc {})) => “def abc = 1;”
intern-top-level-fn
added in 4.0
(intern-top-level-fn lang [op reserved] [_ sym & body :as form-raw] smeta)interns a top level function