Front provides several tools and libraries that greatly ease the development of a compiler front-end, or any other tool that reads a computer language. The suites main tool is Front which, given an EBNF style input file, generates the scanner, parser, AST data structures, AST traversals, symbol table handling, and pretty printer.
The generated code uses the libfront library, which also provides a lot of other functionality for the programmer, such as a command line parser, string manipulation routines, several abstract types, and more.
Error messaging is greatly eased through the use of the error message generator generator, egg. And you can add C preprocessing support to your front-end with the use of libcpp.
Finally you can write simple AST transformations in doggy, the DAG Optimizer Generator, which will generate an AST rewriter from its input.
There is no release yet. If you wish, you can download CFront from the SourceForge git server using:
git clone git://git.code.sf.net/p/front/front