diff options
Diffstat (limited to 'nandgame/assembler/assembler_main.py')
| -rw-r--r-- | nandgame/assembler/assembler_main.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/nandgame/assembler/assembler_main.py b/nandgame/assembler/assembler_main.py new file mode 100644 index 0000000..881b8fe --- /dev/null +++ b/nandgame/assembler/assembler_main.py @@ -0,0 +1,25 @@ +import sys + +#pywrong: THIS IS A FUCKING EXECUTABLE! LEAVE ME THE FUCK ALONE. +from py_nand_ass import parser_types as pt # pyright: ignore[reportImplicitRelativeImport] +from py_nand_ass.parser import parse_file # pyright: ignore[reportImplicitRelativeImport] +from py_nand_ass import assembler as ass # pyright: ignore[reportImplicitRelativeImport] + +if __name__ == "__main__": + result = parse_file(sys.argv[1]) + errors = ass.check_instructions(result) + errors = list(errors) + + if errors: + for e in errors: + print(f"ERROR: On line {e.lineno}: {e.opcode} : {e.error_message}") + sys.exit(1) + + print("Instruction checks passed") + p = ass.assemble(result) + if len(sys.argv) >= 3: + dest = sys.argv[2] + else: + dest = sys.argv[1] + ".bin" + p.write_to_file(dest) + |
