pocketpy/scripts/genstub.py
BLUELOVETH 6d415472e0 ...
2023-07-19 13:41:25 +08:00

37 lines
770 B
Python

import os
with open('include/pocketpy/pocketpy_c.h') as f:
lines = f.readlines()
a = []
for line in lines:
if line.startswith("PK_EXPORT"):
_, ret, *body = line.split()
else:
continue
body = ' '.join(body)
assert body.endswith(";")
body = body[:-1]
if '(pkpy_vm*' in body:
body = body.replace('(pkpy_vm*', '(pkpy_vm* vm')
if ret == 'void':
mock_string = ''
else:
mock_string = ' '*4 + ret + ' returnValue;\n return returnValue;'
a.append(
ret + ' ' + body + ' {\n' + mock_string + '\n}\n'
)
with open('src2/pocketpy_c.c', 'w') as f:
f.write('''
#include "pocketpy_c.h"
#ifdef _WIN32
#pragma warning(disable: 4700)
#endif
''')
f.write('\n'.join(a))