I have implemented the times flies grammar and simple versions of the parsing algorithms in Haskell.
For a quick test and usage examples, see the Main module.
The CF module declares a data type for
context-free grammars, and some simple operations on such grammars.
Grammars are restricted to rules on the forms A ->
A1 ... An
and A -> t
.
The grammar operations use some general utility functions defined in the Util module.
The module TimeFlies contains three versions of the time flies grammar: the one given in the lecture, a modified version without left recursion, and one in Chomsky normal form.
The RecursiveDescent module implements a recursive-descent recognizer.
The ShiftReduce module implements a shift-reduce recognizer.
The CKY module implements a CKY recognizer.