And then, there’s the original post to Boost developer’s list dated May 21, 2001:

Hello there,

Spirit is an object oriented recursive descent parser generator framework implemented using template meta-programming techniques. Expression templates allow us to approximate the syntax of Extended Backus Normal Form (EBNF) completely in C++. The Spirit framework enables a target grammar to be written exclusively in C++. EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.

The documentation and source code can be found at http://isis-tech.n3.net. I would appreciate feedback and comments.

Joel de Guzman

Let me declare that the July 27, 2001 SF upload should mark Spirit’s birthday. That’ll be 3 days from now.

SPECS is nice, but it’s not C++. It’s a new language. One crucial point in writing a C++ parser is to be able to parse existing code.

It’s not that it’s undoable. It just takes a lot of time to do right. And, there is already at least one (hand-written) C++ parser that does it right (can compile complex c++ like boost): Clang. Clang has widespread support that’s hard to beat. Bottom line: IMO there is very little incentive to invest in writing a C++ parser.