hara.model.spec-lua
!.lua
macro
(!.lua & body)break
macro
def$.lua
macro
(def$.lua & body)def.lua
macro
(def.lua & body)defabstract.lua
macro
(defabstract.lua & body)defgen.lua
macro
(defgen.lua & body)defglobal.lua
macro
(defglobal.lua & body)defmacro.lua
macro
(defmacro.lua & body)defn-.lua
macro
(defn-.lua & body)defn.lua
macro
(defn.lua & body)defptr.lua
macro
(defptr.lua & body)defrun.lua
macro
(defrun.lua & body)deftemp.lua
macro
(deftemp.lua & body)local
macro
lua-module-export
added in 4.0
(lua-module-export module mopts)outputs the js module export form
lua-module-link
added in 4.0
(lua-module-link ns graph)gets the absolute lua based module
(lua-module-link ’kmi.common {:root-ns ’kmi.hello}) => “./common”
(lua-module-link ’kmi.exchange {:root-ns ’kmi :target “src”}) => “./kmi/exchange”
lua-tf-c-ffi
added in 4.0
(lua-tf-c-ffi [_ & forms])transforms a c ffi block into a C declaration string.
This runs at macro-expansion time, before Lua’s lambda hoisting stage can extract the nested fn forms, so the full C prototypes are preserved for ffi.cdef.
lua-tf-for-async
added in 4.0
(lua-tf-for-async [_ [[res err] statement] {:keys [success error finally]}])for async transform
lua-tf-for-index
added in 4.0
(lua-tf-for-index [_ [i [start end step :as range]] & body])for index transform
lua-tf-for-object
added in 4.0
(lua-tf-for-object [_ [[k v] m] & body])for object transform
lua-tf-for-return
added in 4.0
(lua-tf-for-return [_ [[res err] statement] {:keys [success error]}])for return transform
lua-tf-throw
added in 4.1
(lua-tf-throw [_ value])preserves the raw thrown payload through pcall
lua-vector
added in 4.1
(lua-vector arr grammar mopts)emits a lua vector using cjson’s array metatable
return
macro
tab
macro
until
macro
variant-grammar
added in 4.1
(variant-grammar m)merges variant feature overrides onto base lua grammar