diff options
Diffstat (limited to 'cm.lua')
| -rw-r--r-- | cm.lua | 40 |
1 files changed, 0 insertions, 40 deletions
@@ -1,40 +0,0 @@ --- Cm: name inspired by "C meta(language)", but it's not really a metalangauge (whatever this means) of C (or anything else) - -local function LateResolveType(name) - -- "lb" - Lazy Binding - return {_tag = "lb", _lb_typename = name} -end - -local function TypeTagger(tag) - return function(props) - props._tag = tag - return props - end -end - -local cm_env_fns = { - _namespace = 0, -- TODO - _t = LateResolveType, - _struct = TypeTagger("struct"), - _union = TypeTagger("union"), - _alias = TypeTagger("alias"), -} -local cm_env_metatable = {__index = cm_env_fns} - ----@param fn function ----@return table -function LoadCmLua(fn) - local env = {} - setmetatable(env, cm_env_metatable) - - local old_fenv = getfenv(fn) - setfenv(fn, env) - pcall(fn) - setfenv(fn, old_fenv) - - return env -end - -function LoadCmDecl(src) - -- TODO -end |
