diff options
| author | uvok | 2026-01-15 16:34:26 +0100 |
|---|---|---|
| committer | uvok | 2026-01-15 16:34:26 +0100 |
| commit | 86277605087e8527b1f28831e39f64d9d55af485 (patch) | |
| tree | d253dc911bd9edd77b036278475d2938769cd1be /nandgame/assembler/assembler_main.py | |
| parent | 844dc43709d5411ebd4c786f83e42e1e7bb61f76 (diff) | |
Fix name of assembler. usage
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) + |
