mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-15 14:07:16 +00:00
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
|
#!/usr/bin/python
|
||
|
#
|
||
|
# C header file -> Markdown-ish converter
|
||
|
|
||
|
import sys,re
|
||
|
|
||
|
re_define = re.compile("^#define\s+(\w+)([(][^)]+[)])?")
|
||
|
re_func = re.compile("^(\w+\s+[A-Za-z_ ]+[(][^)]+[)]);")
|
||
|
re_comment1 = re.compile("//(.+)\\\\?")
|
||
|
|
||
|
comment = ''
|
||
|
|
||
|
def dump(s):
|
||
|
global comment
|
||
|
print('`'+ s.strip() +'`')
|
||
|
print(': ' + comment.strip())
|
||
|
comment = ''
|
||
|
|
||
|
files = sys.argv[1:]
|
||
|
for fn in files:
|
||
|
with open(fn,'r') as f:
|
||
|
print("## " + fn)
|
||
|
l = f.readline()
|
||
|
while l:
|
||
|
l = l.strip()
|
||
|
m1 = re_define.match(l)
|
||
|
m2 = re_func.match(l)
|
||
|
m3 = re_comment1.match(l)
|
||
|
if m3:
|
||
|
comment += m3.group(1)
|
||
|
if m1:
|
||
|
s = m1.group(1)
|
||
|
if m1.group(2):
|
||
|
s += m1.group(2)
|
||
|
dump(s)
|
||
|
elif m2:
|
||
|
s = m2.group(1)
|
||
|
s = s.replace('void ','').replace('(void)','()')
|
||
|
s = s.replace('__fastcall__',' ')
|
||
|
s = s.replace(' ',' ')
|
||
|
s = s.replace(' ',' ')
|
||
|
dump(s)
|
||
|
elif not m3:
|
||
|
if l != '':
|
||
|
print('<!--' + l + '-->')
|
||
|
else:
|
||
|
print('')
|
||
|
l = f.readline()
|
||
|
|