Hey there! This is a template repository that contains the necessary boilerplate for CS 131's quarter-long project: making an interpreter. The project specs are as follows:
There are three stages to the project; students are currently at the first. Thus, this folder contains the necessary bootstrapping code:
intbase.py, the base class and enum definitions for the interpreterbrewparse.py, which contains theparse_programfunction to parse Brewin programsbrewlex.py, which contains helper functions for brewparse.py
Some notes on your submission (for Project 1)
- You must have a top-level, versioned
interpreterv1.pyfile that exports theInterpreterclass. If not, your code will not run on our autograder. - You may also submit one or more additional
.pymodules that your interpreter uses, if you decide to break up your solution into multiple.pyfiles. - You should not modify/submit
intbase.py,brewparse.py, orbrewlex.py; we will use our own when grading.
You can find out more about our autograder, including how to run it, in its accompanying repo.
This is an unlicensed repository; even though the source code is public, it is not governed by an open-source license.
This code was primarily written by Carey Nachenberg, with support from his TAs for the Fall 2023 iteration of CS 131.