diff options
Diffstat (limited to 'server-beta/src/vm/vm.lua')
-rw-r--r-- | server-beta/src/vm/vm.lua | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/server-beta/src/vm/vm.lua b/server-beta/src/vm/vm.lua deleted file mode 100644 index 23a691df..00000000 --- a/server-beta/src/vm/vm.lua +++ /dev/null @@ -1,81 +0,0 @@ -local guide = require 'parser.guide' -local util = require 'utility' - -local setmetatable = setmetatable -local assert = assert -local require = require -local type = type - -_ENV = nil - -local specials = { - ['_G'] = true, - ['rawset'] = true, - ['rawget'] = true, - ['setmetatable'] = true, - ['require'] = true, - ['dofile'] = true, - ['loadfile'] = true, -} - ----@class vm -local m = {} - -function m.lock(tp, source) - if m.locked[tp][source] then - return nil - end - m.locked[tp][source] = true - return function () - m.locked[tp][source] = nil - end -end - ---- 获取link的uri -function m.getLinkUris(call) - local workspace = require 'workspace' - local func = call.node - local name = func.special - if name == 'require' then - local args = call.args - if not args[1] then - return nil - end - local literal = guide.getLiteral(args[1]) - if type(literal) ~= 'string' then - return nil - end - return workspace.findUrisByRequirePath(literal, true) - end -end - -m.cacheTracker = setmetatable({}, { __mode = 'kv' }) - ---- 刷新缓存 -function m.refreshCache() - if m.cache then - m.cache.dead = true - end - m.cache = { - eachRef = {}, - eachField = {}, - getGlobals = {}, - getLinks = {}, - getGlobal = {}, - specialName = {}, - getLibrary = {}, - getValue = {}, - specials = nil, - } - m.locked = { - eachRef = {}, - eachField = {}, - getGlobals = {}, - getLinks = {}, - getLibrary = {}, - getValue = {}, - } - m.cacheTracker[m.cache] = true -end - -return m |