Skip to content
Example code for compilers textbook.
C Yacc Makefile Lex Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
chapter3/flex Added missing chapter3 Aug 15, 2019
chapter4/hand-written Completed hand-written parser example. Aug 15, 2019
chapter5 Add return action to start symbol to end parse! Sep 27, 2019
starter-code CMinor -> BMinor Aug 15, 2019

Example Code for Introduction to Compilers and Language Design

This repository contains some example code and test cases for the Introduction to Compilers and Language Design online textbook.

  • chapter3/flex contains a complete example of the flex program from chapter 3.

  • chapter4/hand-written contains a complete hand-written scanner and parser using the recursive descent technique for LL(1) grammars shown in chapter 4.

  • chapter5 contains several variations on the running calculator example, showing an incorrect example with multiple shift-reduce conflicts, a working validator, inline evaluator, and interpreter.

  • starter-code contains the starter code for the B-Minor project. This incorporates the header files defined in the text book, and gives a simple structure that will help to avoid some common software engineering pitfalls.

  • tests contains some sample test cases that demonstrate how to automate testing for each stage of the project. Note that the test cases are not necessarily comprehensive: both students and instructors are advised to carefully study the language, write new test cases, and discuss any areas of ambiguity.

You can’t perform that action at this time.