85 lines
3.2 KiB
Python
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')
|