Files
TransPyC/_RemoveDebug.py
T

85 lines
3.2 KiB
Python

# -*- 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')