GenComp is a compiler front-end generator illustrating many of the concepts of regular expressions, NFAs, DFAs, Grammars, LALR(1) parser construction, and push-down automata.
You can find a website with suggested readings and exercises that go along with this repository at
http://kentdlee.github.io/ComputationalModels/
This could be useful in a course on Computational Models or Descrete Structures.