Files
TransPyC/_final_check.py
T
2026-08-22 02:35:30 +08:00

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)