jvm/regs/holly.py

25 lines
892 B
Python

from register import parse_row, group_by_block
from csv_input import read_input
import sys
from generate import renderer
def generate_register(base_address, register):
yield f"public static final int {register.name} = {hex(base_address + register.address)};"
def generate_classes(package_name, base_address, blocks):
yield f"package sega.dreamcast.{package_name};"
yield ""
for block, registers in blocks:
yield f"public class {block.capitalize()} {{"
for register in registers:
yield from generate_register(base_address, register)
yield "}"
if __name__ == "__main__":
rows = read_input(sys.argv[1])
blocks = group_by_block(map(parse_row, rows))
render, out = renderer(indent_length=4)
holly_base_address = 0xa05f8000
render(generate_classes("holly", holly_base_address, blocks))
sys.stdout.write(out.getvalue())