Spirit

Spirit is a set of C++ libraries for parsing and output generation implemented as Domain Specific Embedded Languages (DSEL) using Expression templates and Template Meta-Programming. The Spirit libraries enable a target grammar to be written exclusively in C++. Inline grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable.

Spirit.X3 (3rd generation)

Documentation

The newest Spirit shines faster compile times. Currently only a parser framework.

Requires C++14 compiler (GCC 5, Clang 3.6, VS 2015 Update 3).

Spirit V2 (2nd generation)

Documentation

The latest Long Term Support version of Spirit. A Swiss Army knife for data manipulation on any kind of input.

Consists of:

  • Qi: Parser framework.
  • Karma: Generator framework.
  • Lex: Lexical analyzer framework.

Runs on most C++03 compilers (GCC 4.1, Clang 3.0, VS 2005).

Spirit.Classic (1st generation)

Documentation

An elderling member of Spirit. It receives only limited maintanance, but it is still used even inside Boost by Boost.Serialization and Boost.Wave libraries. It also contains Phoenix V1.

Spririt.Classic should support even ancient compilers.

Brief History

DateBoostCommitEvent
2014-03-181.568a353328Spirit.X3 is added
2013-12-141.56c0537c82Phoenix V2 is retired
2011-03-281.47400a764dPhoenix V3 support added to Spirit V2
2009-04-301.415963a395Spirit.Repository is appeared
2008-04-131.36ffd0cc10Spirit V2 (Qi, Karma, Lex, Phoenix V2) is added
2006-08-231.352dc892b4Fusion V1 is retired
2003-01-311.3081907916Spirit is the part of the Boost