The main project we worked on throughout the quarter was building a compiler for a LR(1) object-oriented programming language running on x86 machines. It was separated into 4 parts.
Part 1 - Building a a lexer and parser using Yacc and Lex a parsing and lexing framework
Part 2 - Augmenting the grammar to construct an abstract syntax tree
Part 3 - Context sensitive analysis and building a symbol table
Part 4 - Code generation using the stack machine model
Only runs on linux not MacOS.
To build and run type make run
into terminal in the root directory.
You can also manually build and run language files using the generated lang executable.