Files
MP-SPDZ/doc/gen-instructions.py
Marcel Keller 32950fe8d4 Maintenance.
2021-11-04 16:24:34 +11:00

36 lines
931 B
Python
Executable File

#!/usr/bin/env python3
import sys, os, csv
sys.path.insert(0, os.path.abspath('..'))
from Compiler import instructions_base as base
from Compiler import instructions
from Compiler.GC import instructions as gc
from itertools import chain
import re
desc = {}
for x in chain(instructions.__dict__.values(), gc.__dict__.values()):
try:
desc[x.code] = x.__doc__, x.__module__ + '.' + x.__name__
except:
pass
out = csv.writer(open('instructions.csv', 'w'))
items = list(chain(base.opcodes.items(), gc.opcodes.items()))
for name, opcode in sorted(items, key=lambda x: x[1]):
d, n = desc.get(opcode, (None, None))
if d and '$' not in d and '|' not in d and opcode not in \
(0x65, 0x6a) :
m = re.split(r'\.\s', d)
if m:
d = m[0]
d = d.replace('\n', '')
d = d.strip()
out.writerow([':py:class:`%s <%s>`' % (name, n), hex(opcode), d])
del out