diff options
Diffstat (limited to 'tools/messages.py')
-rwxr-xr-x | tools/messages.py | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/tools/messages.py b/tools/messages.py deleted file mode 100755 index 089bbdd..0000000 --- a/tools/messages.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env python3 - -from sys import argv, stderr, exit -from charmap import parse_charmap - -def err(s): - print("ERROR:", s.rstrip(), file=stderr) - exit(1) - -charmap, constants = parse_charmap(argv[1]) - -filename = argv[2] - -def convert_message(message): - while True: - if message.endswith("\r\n"): - message = message[:-2] - continue - if message.endswith("\n"): - message = message[:-1] - continue - break - - values = [] - in_braces = False - constant = "" - for char in message: - if char == "{" and not in_braces: - in_braces = True - constant = "" - continue - if char == "}" and in_braces: - in_braces = False - if constant in constants: - values.append(constants[constant]) - elif constant in charmap: - values.append(charmap[constant]) - else: - err("%s: Unrecognized constant %s" % (filename, constant)) - continue - - if in_braces: - constant += char - continue - - if char == "\r": - continue - if char == "\n": - values.append(0xfffe) - continue - - if char in charmap: - values.append(charmap[char]) - else: - err("%s: Unrecognized character '%s'" % (filename, char)) - - values.append(0xffff) - return " dw " + ", ".join(["$%04x" % val for val in values]) - -name = None -message = None -for i, line in enumerate(open(filename)): - if i == 0 and not line.startswith(".org"): - print("SECTION \"%s\", ROMX" % filename) - - if line.startswith("#"): - continue - - if line.startswith("[") and line.endswith("]\n"): - if name is not None or message is not None: - print("\n%s::" % name) - print(convert_message(message)) - name = line[1:-2] - message = "" - continue - - if line.startswith(".org "): - split = line.split(" ", 1) - if len(split) < 2: - continue - split = split[1].strip().split(":") - if len(split) != 2: - continue - bank = split[0] - addr = split[1] - - if name is not None or message is not None: - print("\n%s::" % name) - print(convert_message(message)) - name = None - message = None - - if i != 0: - print() - print("SECTION \"%s %s:%s\", ROMX[$%s], BANK[$%s]" % - (filename, bank, addr, addr, bank)) - continue - - if message is not None: - message += line - -if name is not None and message is not None: - print("\n%s::" % name) - print(convert_message(message)) |