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 parser # pyright: ignore[reportImplicitRelativeImport] from py_nand_ass import assembler as ass # pyright: ignore[reportImplicitRelativeImport] with open(sys.argv[1], "rb") as infile: data = infile.read() data2 = data.decode("ascii") result: list[pt.AsmLine] result = parser.parse(data2, tracking=True) 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)