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 four stages to the project; students are currently at the first. Thus, this folder contains the necessary bootstrapping code:
ply/lex.py,ply/yacc.py,brewlex.py,brewparse.py, responsible for taking in a string representing a Brewin program and outputting an AST (parser logic)elements.py, defines the return type of the parserintbase.py, the base class and enum definitions for the interpreter
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 any of the source files that are present in this base template, which includes:
ply/lex.pyply/yacc.pybrewlex.pybrewparse.pyelement.pyintbase.py
You can find out more about our autograder, including how to run it, in the 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 2024 iteration of CS 131.