attoparsec or parsec in haskell
Parsec Parsec is good for “user-facing” parsers: things where you have a bounded amount of input but error messages matter. It’s not terribly fast, but if you have small inputs this shouldn’t matter. For example, I would choose Parsec for virtually any programming language tools since–in absolute terms–even the largest source files are not that … Read more