The BNF Converter is a compiler construction tool that generates a
compiler front-end and a readable syntax description document from a
Labelled BNF grammar. It was originally written to generate Haskell,
but it can now also be used for generating Java, C++, and C.