Spirit is 10 years old!
It’s hard to pinpoint exactly the birthday of Spirit. Looking back, Spirit 1.0 which was uploaded to SourceForge in July 27, 2001 contains this comment in its main header file:
8/28/1999 Original Implementation [ run time polymorphic version ] (JDG)
4/30/2001 Template meta-programming implementation (JDG)
5/13/2001 Major redesign using iterators (JDG)
5/26/2001 Port to G++3.0 and BCC 5.5.1 thanks to Vladimir Prus
5/27/2001 Bug fixes in Difference and Xor classes (JDG)
5/30/2001 Added Iterators (JDG)
And then, there’s the original post to Boost developer’s list dated May 21, 2001:
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.
Happy 10 years, Spirit!