This is a teaching aid to show how LL(1), LR(0), LR(1), SLR and LALR parsers operate based on push-down automata principles.
This is not intended to be complete, useful for any particular application, or show some particularly good code. However, GUI portions may be interesting as a (contrived) example of using webkitgtk in Haskell (see app/Main.hs
)
Parser building code is in src/
. It is intended to be readable, not efficient.
demo (gif animation) (1.2 MB)