Final Project for the 20465 C course of the Open University.
The Project is a basic assembler compiler (without a linker) from a 2018a semester, it got 100/100, and is provided as is for educational puposes. For anyone who wishes to use it as a guide, it has a whole bunch of rather unpleasant and ugly ideas and implementations due to a lack of experience when writing it. My suggestions would be to modularize the Project further, implementing a saner, more in-depth internal debugging system, implementing a better token interface for the parser, completely rewriting the lexer module (one of the worst parts about the Project, probably), and reimplementing data structures relating to the parser to something more sane.
Refer to main.c for documentation regarding the code.