summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
Diffstat (limited to 'script')
-rw-r--r--script/parser/guide.lua94
1 files changed, 47 insertions, 47 deletions
diff --git a/script/parser/guide.lua b/script/parser/guide.lua
index 4766257c..437e37b0 100644
--- a/script/parser/guide.lua
+++ b/script/parser/guide.lua
@@ -1189,7 +1189,7 @@ end
function m.status(parentStatus, interface, deep)
local status = {
- cache = parentStatus and parentStatus.cache or {
+ share = parentStatus and parentStatus.share or {
count = 0,
},
depth = parentStatus and (parentStatus.depth + 1) or 0,
@@ -1453,7 +1453,7 @@ local function stepRefOfGeneric(status, typeUnit, args, mode)
end
function m.checkSameSimpleByDocType(status, doc, args)
- if status.cache.searchingBindedDoc then
+ if status.share.searchingBindedDoc then
return
end
if doc.type ~= 'doc.type' then
@@ -1480,7 +1480,7 @@ function m.checkSameSimpleByBindDocs(status, obj, start, queue, mode)
if not obj.bindDocs then
return
end
- if status.cache.searchingBindedDoc then
+ if status.share.searchingBindedDoc then
return
end
local skipInfer = false
@@ -1531,13 +1531,13 @@ function m.checkSameSimpleByBindDocs(status, obj, start, queue, mode)
end
function m.checkSameSimpleOfRefByDocSource(status, obj, start, queue, mode)
- if status.cache.searchingBindedDoc then
+ if status.share.searchingBindedDoc then
return
end
if not obj.bindSources then
return
end
- status.cache.searchingBindedDoc = true
+ status.share.searchingBindedDoc = true
local mark = {}
local newStatus = m.status(status)
for _, ref in ipairs(obj.bindSources) do
@@ -1546,7 +1546,7 @@ function m.checkSameSimpleOfRefByDocSource(status, obj, start, queue, mode)
m.searchRefs(newStatus, ref, mode)
end
end
- status.cache.searchingBindedDoc = nil
+ status.share.searchingBindedDoc = nil
for _, res in ipairs(newStatus.results) do
queue[#queue+1] = {
obj = res,
@@ -1833,11 +1833,11 @@ function m.checkSameSimpleInCall(status, ref, start, queue, mode)
if m.checkCallMark(status, func.parent, true) then
return
end
- status.cache.crossCallCount = status.cache.crossCallCount or 0
- if status.cache.crossCallCount >= 5 then
+ status.share.crossCallCount = status.share.crossCallCount or 0
+ if status.share.crossCallCount >= 5 then
return
end
- status.cache.crossCallCount = status.cache.crossCallCount + 1
+ status.share.crossCallCount = status.share.crossCallCount + 1
-- 检查赋值是 semetatable() 的情况
m.checkSameSimpleInValueOfSetMetaTable(status, func, start, queue)
-- 检查赋值是 func() 的情况
@@ -1862,7 +1862,7 @@ function m.checkSameSimpleInCall(status, ref, start, queue, mode)
force = true,
}
end
- status.cache.crossCallCount = status.cache.crossCallCount - 1
+ status.share.crossCallCount = status.share.crossCallCount - 1
for _, obj in ipairs(newStatus.results) do
queue[#queue+1] = {
obj = obj,
@@ -1959,37 +1959,37 @@ function m.checkSameSimpleInGlobal(status, name, source, start, queue)
end
function m.checkValueMark(status, a, b)
- if not status.cache.valueMark then
- status.cache.valueMark = {}
+ if not status.share.valueMark then
+ status.share.valueMark = {}
end
- if status.cache.valueMark[a]
- or status.cache.valueMark[b] then
+ if status.share.valueMark[a]
+ or status.share.valueMark[b] then
return true
end
- status.cache.valueMark[a] = true
- status.cache.valueMark[b] = true
+ status.share.valueMark[a] = true
+ status.share.valueMark[b] = true
return false
end
function m.checkCallMark(status, a, mark)
- if not status.cache.callMark then
- status.cache.callMark = {}
+ if not status.share.callMark then
+ status.share.callMark = {}
end
if mark then
- status.cache.callMark[a] = mark
+ status.share.callMark[a] = mark
else
- return status.cache.callMark[a]
+ return status.share.callMark[a]
end
return false
end
function m.checkReturnMark(status, a, mark)
- if not status.cache.returnMark then
- status.cache.returnMark = {}
+ if not status.share.returnMark then
+ status.share.returnMark = {}
end
- local result = status.cache.returnMark[a]
+ local result = status.share.returnMark[a]
if mark then
- status.cache.returnMark[a] = mark
+ status.share.returnMark[a] = mark
end
return result
end
@@ -2043,12 +2043,12 @@ function m.checkSameSimpleAsTableField(status, ref, start, queue)
end
function m.checkSearchLevel(status)
- status.cache.back = status.cache.back or 0
- if status.cache.back >= (status.interface.searchLevel or 0) then
+ status.share.back = status.share.back or 0
+ if status.share.back >= (status.interface.searchLevel or 0) then
-- TODO 限制向前搜索的次数
--return true
end
- status.cache.back = status.cache.back + 1
+ status.share.back = status.share.back + 1
return false
end
@@ -2141,7 +2141,7 @@ function m.checkSameSimpleInString(status, ref, start, queue, mode)
if not status.interface.docType then
return
end
- if status.cache.searchingBindedDoc then
+ if status.share.searchingBindedDoc then
return
end
local newStatus = m.status(status)
@@ -2384,7 +2384,7 @@ function m.searchSameFields(status, simple, mode)
if not lock[data.obj] then
lock[data.obj] = true
max = max + 1
- status.cache.count = status.cache.count + 1
+ status.share.count = status.share.count + 1
m.checkSameSimple(status, simple, data, mode, queue)
if max >= 10000 then
logWarn('Queue too large!')
@@ -2553,8 +2553,8 @@ function m.getRefCache(status, obj, mode)
and status.deep then
globalCache = status.interface.cache and status.interface.cache() or {}
end
- cache = status.cache.refCache or {}
- status.cache.refCache = cache
+ cache = status.share.refCache or {}
+ status.share.refCache = cache
if m.isGlobal(obj) then
obj = m.getKeyName(obj)
end
@@ -3525,13 +3525,13 @@ function m.inferCheckBinary(status, source)
end
function m.inferByDef(status, obj)
- if not status.cache.inferedDef then
- status.cache.inferedDef = {}
+ if not status.share.inferedDef then
+ status.share.inferedDef = {}
end
- if status.cache.inferedDef[obj] then
+ if status.share.inferedDef[obj] then
return
end
- status.cache.inferedDef[obj] = true
+ status.share.inferedDef[obj] = true
local mark = {}
local newStatus = m.status(status, status.interface)
m.searchRefs(newStatus, obj, 'def')
@@ -3548,10 +3548,10 @@ function m.inferByDef(status, obj)
end
local function inferBySetOfLocal(status, source)
- if status.cache[source] then
+ if status.share[source] then
return
end
- status.cache[source] = true
+ status.share[source] = true
local newStatus = m.status(status)
if source.value then
m.searchInfer(newStatus, source.value)
@@ -3925,16 +3925,16 @@ function m.searchInfer(status, obj)
end
if DEVELOP then
- status.cache.clock = status.cache.clock or osClock()
+ status.share.clock = status.share.clock or osClock()
end
- if not status.cache.lockInfer then
- status.cache.lockInfer = {}
+ if not status.share.lockInfer then
+ status.share.lockInfer = {}
end
- if status.cache.lockInfer[obj] then
+ if status.share.lockInfer[obj] then
return
end
- status.cache.lockInfer[obj] = true
+ status.share.lockInfer[obj] = true
local checked = m.inferCheckDoc(status, obj)
or m.inferCheckUpDoc(status, obj)
@@ -3977,10 +3977,10 @@ function m.requestReference(obj, interface, deep)
m.searchRefsAsFunction(status, obj, 'ref')
if m.debugMode then
- print('count:', status.cache.count)
+ print('count:', status.share.count)
end
- return status.results, status.cache.count
+ return status.results, status.share.count
end
--- 请求对象的定义,包括 `a.b.c` 形式
@@ -3991,7 +3991,7 @@ function m.requestDefinition(obj, interface, deep)
-- 根据 field 搜索定义
m.searchRefs(status, obj, 'def')
- return status.results, status.cache.count
+ return status.results, status.share.count
end
--- 请求对象的域
@@ -4000,7 +4000,7 @@ function m.requestFields(obj, interface, deep)
m.searchFields(status, obj)
- return status.results, status.cache.count
+ return status.results, status.share.count
end
--- 请求对象的类型推测
@@ -4008,7 +4008,7 @@ function m.requestInfer(obj, interface, deep)
local status = m.status(nil, interface, deep)
m.searchInfer(status, obj)
- return status.results, status.cache.count
+ return status.results, status.share.count
end
return m