# -*- coding: utf-8 -*- import pathlib # 1. VpiReader.vp p = pathlib.Path(r'd:\Users\TermiNexus\Desktop\TransPyC\TransPyV\App\lib\StubGen\VpiReader.vp') c = p.read_text(encoding='utf-8') lines = c.split('\n') new_lines = [] skip = False for i, line in enumerate(lines): if 'DEBUG: sha1_buf length mismatch' in line: skip = True # also skip preceding lines while new_lines and ('_buflen' in new_lines[-1] or 'sha1_buf' in new_lines[-1] or len(new_lines[-1].strip()) == 0 or new_lines[-1].strip().startswith('#')): new_lines.pop() continue if skip: if 'sys.exit(1)' in line: skip = False continue if 'stdio.' in line or '_buflen' in line: continue if line.strip() == '' or line.strip().startswith('if _buflen'): continue skip = False new_lines.append(line) p.write_text('\n'.join(new_lines), encoding='utf-8') print('VpiReader.vp done') # 2. HandlesFunctions.vp p2 = pathlib.Path(r'd:\Users\TermiNexus\Desktop\TransPyC\TransPyV\App\lib\core\Handles\HandlesFunctions.vp') c2 = p2.read_text(encoding='utf-8') lines2 = c2.split('\n') new_lines2 = [] skip2 = False for line in lines2: if 'DEBUG: double-dot in _mangle_name' in line: skip2 = True while new_lines2 and ('_mi' in new_lines2[-1] or 'mangled[_mi' in new_lines2[-1] or 'stdio.' in new_lines2[-1] or 'sys.exit' in new_lines2[-1] or new_lines2[-1].strip().startswith('#')): new_lines2.pop() continue if skip2: if 'sys.exit(1)' in line: skip2 = False continue if 'stdio.' in line or '_mi' in line or 'mangled[_mi' in line or line.strip().startswith('if mangled'): continue if line.strip() == '' or line.strip() == 'return mangled': if line.strip() == 'return mangled': new_lines2.append(line) skip2 = False continue skip2 = False new_lines2.append(line) p2.write_text('\n'.join(new_lines2), encoding='utf-8') print('HandlesFunctions.vp done') # 3. HandlesExprCall.vp p3 = pathlib.Path(r'd:\Users\TermiNexus\Desktop\TransPyC\TransPyV\App\lib\core\Handles\HandlesExprCall.vp') c3 = p3.read_text(encoding='utf-8') lines3 = c3.split('\n') new_lines3 = [] skip3 = False for line in lines3: if 'DEBUG: double-dot in call_name' in line: skip3 = True while new_lines3 and ('_cni' in new_lines3[-1] or 'call_name[_cni' in new_lines3[-1] or 'stdio.' in new_lines3[-1] or 'sys.exit' in new_lines3[-1] or new_lines3[-1].strip().startswith('#')): new_lines3.pop() continue if skip3: if 'sys.exit(1)' in line: skip3 = False continue if 'stdio.' in line or '_cni' in line or 'call_name[_cni' in line or line.strip().startswith('if call_name'): continue if line.strip() == '' or line.strip().startswith('#'): if line.strip().startswith('#'): new_lines3.append(line) skip3 = False continue skip3 = False new_lines3.append(line) p3.write_text('\n'.join(new_lines3), encoding='utf-8') print('HandlesExprCall.vp done')