Spirit is an object-oriented, recursive descent parser generator framework implemented using template meta-programming techniques. Expression templates allow Spirit 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.
|Tags||Software Development Code Generators Libraries Compilers Interpreters|
|Operating Systems||OS Independent|
Release Notes: The development branch has been declared stable. There are a lot of new features and improvements from the previous stable release (1.2.9).
Release Notes: This version adds --enable-spirit-threadsafe and --with-boost= configure script options, uses the BOOST_STATIC_CONSTANT in Phoenix to increase portability, rearranges the Spirit debug code so it will always work regardless of include order, adds a new group_d directive, adds the capability for subrules to have contexts, fixes compile problems with SPIRIT_THREADSAFE, fixes the symbols add() free function, makes adjustments to the refactoring parser, fixes the ast_xml.cpp example, adds tests for the object_with_id class, and adds phoenix_subrule_calc.cpp and grouping_calc.cpp examples.
Release Notes: This version has been rewritten to be policy based, allowing great customizability and flexibility. There are also some new examples and more tests.
Release Notes: Addition of some missing typename keywords to multi_pass.hpp, addition of some missing inline keywords to exceptions.ipp to fix multiple symbol definition linker errors when using spirit in more than one translation unit, and changing assert(n1 < n2); to assert(n1 <= n2); in loops.ipp's finite_loop::parse().
Release Notes: This release fixes a bug in the tst class which caused a possible false match in the symbol table class.