dreamcast/dreamcast2/regs/render_block_regs.py

33 lines
844 B
Python

import sys
from csv_input import read_input
from generate import renderer
from block_regs import new_writer
from block_regs import headers
def blocks(rows):
blocks = []
for row in rows:
block = row["block"]
if block not in blocks:
blocks.append(block)
for block in blocks:
yield f'extern struct {block.lower()}_reg {block.lower()} __asm("{block.lower()}");'
def namespace(namespace_name, rows):
yield f"namespace {namespace_name} {{"
yield from process(rows)
yield from blocks(rows)
yield "}"
if __name__ == "__main__":
input_file = sys.argv[1]
namespace_name = sys.argv[2]
rows = read_input(input_file)
process = new_writer()
render, out = renderer()
render(headers())
render(namespace(namespace_name, rows))
sys.stdout.write(out.getvalue())