Skip to content

Latest commit

 

History

History
39 lines (30 loc) · 1.53 KB

README.md

File metadata and controls

39 lines (30 loc) · 1.53 KB

jCF - j/Compiler Framework

Compiler project for the University of Waterloo CS444/644 compiler construction course. The Joos1W language is based off the Java 1.3 language. See here for a complete feature table of Joos:

Our project is written in C++ with Flex and Bison as our lexer and parser generators. To build the project, simply run:

mkdir build
cd build
cmake .. && make

Make sure you are either using Clang 16 (preferred) or later or GCC 12 or later. There is currently a bug in older GCC compilers that would not compile this project. In addition, here is a summary of the dependencies:

  1. CMake >= 3.21
  2. Clang >= 17 for C++23 support
  3. libstdc++-12-dev or later (must have C++23 support)
  4. flex >= 2.6.4 and bison >= 3.8.2

In addition, if you wish to build the debug version, you will need:

  1. xsltproc (for debug builds)
  2. One of libdw-dev, binutils-dev or libdwarf-dev (for backward.cpp)

Our project directory structure is:

  • lib/: Contains the core compiler libraries. Includes AST, parser grammar and other files.
  • tests/: Contains the unit test drivers and data files.
  • tools/: Contains the frontends -- these are the programs you actually can run.