Alex is a tool for generating lexical analysers in Haskell.  It takes a
description of tokens based on regular expressions and generates a
Haskell module containing code for scanning text efficiently.  It is
similar to the tool lex or flex for C/C++.

WWW: http://www.haskell.org/alex/