We have seen a few different kinds of parsers to this point. They all work by constructing state machines to handle the parsing. A new class of parsers has started to become popular lately. Combinator parsers use functions to represent parsers, and they can be composed together to make more sophisticated parsers.
We will show how to build one of these from the ground up, and make use of monads to give us a natural syntax.
- Monadic Parser Combinators (Graham Hutton) This paper is a tutorial about monads and parser combinators. It is written in a language called Gopher, a precursor to Haskell.