Monadic Parsing in Haskell
Compilers: Principles, Techniques, and Tools