Compiler for a made-up programming language PL0 (smaller version of Pascal), this compiler was done using the SLY python API to create both the lexer and parser, whilst a visitor pattern was used to generate the semantic parser and code generation in assembly language.