Parser combinator framework specialized to lexical analysis.
Tokens are specified via simple fold functions, and we include
baked in source location handling.
Comes with matchers for standard lexemes like integers,
comments, and Haskell style strings with escape handling.
No dependencies other than the Haskell base library.
If you want to parse expressions instead of tokens then try
try the parsec or attoparsec packages, which have more
general purpose combinators.