"""临时:全量 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)