46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
"""临时:全量 vast 验证 + 残留检查"""
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
APP = r"d:\Users\TermiNexus\Desktop\TransPyC\TransPyV\App"
|
|
sys.path.insert(0, r"d:\Users\TermiNexus\Desktop\TransPyC")
|
|
import lib.vast as vast
|
|
|
|
fails = []
|
|
n = 0
|
|
for root, dirs, files in os.walk(APP):
|
|
for fn in sorted(files):
|
|
if not fn.endswith(".vp"):
|
|
continue
|
|
p = os.path.join(root, fn)
|
|
n += 1
|
|
try:
|
|
vast.parse(open(p, encoding="utf-8").read(), p)
|
|
except Exception as e:
|
|
fails.append((os.path.relpath(p, APP), repr(e)))
|
|
print("vast 验证: OK", n - len(fails), "/", n)
|
|
for fn, e in fails:
|
|
print(" FAIL:", fn, e)
|
|
|
|
# 分裂字段残留检查:TypeGenErr 中 self.TraceCount/self.CurrentFile(宿主对象外的副本访问)
|
|
DEL = re.compile(r"\b(HandlesVar|HandlesExprOps|HandlesType|HandlesAssign|HandlesAnnAssign|"
|
|
r"HandlesReturn|HandlesImports|HandlesFunctions|HandlesBody|HandlesWhile|"
|
|
r"HandlesFor|HandlesAugAssign|HandlesMain|HandlesStruct|HandlesNonlocal|"
|
|
r"HandlesMatch|HandlesEnum|HandlesClassDef|ExprCallBase|ExprCallCall|"
|
|
r"ExprCallCtor|ExprCallDeref|ExprCallHandle|ForHandleBase|ForHandleIter)\.\w+")
|
|
res = []
|
|
for root, dirs, files in os.walk(APP):
|
|
for fn in files:
|
|
if not fn.endswith(".vp"):
|
|
continue
|
|
p = os.path.join(root, fn)
|
|
s = open(p, encoding="utf-8").read()
|
|
for i, ln in enumerate(s.split("\n"), 1):
|
|
code = ln.split("#", 1)[0]
|
|
if DEL.search(code):
|
|
res.append(f"{os.path.relpath(p, APP)}:{i} {ln.strip()}")
|
|
print("待删模块残留引用:", len(res))
|
|
for r in res:
|
|
print(" ", r)
|