diff options
| author | rtk0c <[email protected]> | 2025-10-15 20:31:31 +0000 |
|---|---|---|
| committer | rtk0c <[email protected]> | 2025-10-15 20:31:31 +0000 |
| commit | 81cab430b58b75fe0a6c75722908481dd4d9d55a (patch) | |
| tree | 499ba0404470de6047238eb554da6f2afa965e24 /cm.lua | |
| parent | bc8c20d1e93b5c18e8915d356e74024092a74ce8 (diff) | |
this metaprogramming attempt was started outside, and then imported here
5124eb80701523ac16928219e9a1031eded128ef..bc8c20d1e93b5c18e8915d356e74024092a74ce8
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 |
