main.py

This is the main entry point for the entire program

Taking in arguments

We take in two inputs using the stdlib's argparse module, the first argument is a path to the assembly file that you want to run, this does not check for the validity of the .asm or .s file, which is you could conceivably load a python file or a simple text file, and only the pre-processor might throw an error, if not then the interpreter will further downstream. The --no-gui arg can be passed to disable the GUI and just run the Interpreter.

Setting things up

Setup, the IDE and colour palette (dark theme). We also set up an exception hook, this exception hook allows us to catch our custom defined exceptions in exceptions.py and catch them to act appropriately, like catching an exit code or RecursionError.

This however still allows us to continue on general Python exceptions, which are handled by PyQt.