CS160 UCSB Fall 2017 Final Project

Description

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

Building and Running

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.