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)