Preparing for C++0x

C++0x brings us new features that extend the C++ language syntax. This requires new tools to parse and work with the language. However, a C++ front-end is non trivial to write from scratch. We use an extensible C++ front-end to add concepts.