Skip to content

boostorg/spirit

Repository files navigation

Spirit Build Status

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 (no serialization support).

Supported environments

  • C++23 and C++26
  • GCC 14
  • Clang 22
  • MSVC (2022)

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.

Note: Spirit V2 is no longer actively maintained. For new projects, use X3.

Consists of:

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

Supported environments

Spirit.Classic (1st generation)

Documentation

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

Spirit.Classic should support even ancient compilers.

Brief History

Date Boost Commit Event
2014-03-18 1.56 8a353328 Spirit.X3 is added
2013-12-14 1.56 c0537c82 Phoenix V2 is retired
2011-03-28 1.47 400a764d Phoenix V3 support added to Spirit V2
2009-04-30 1.41 5963a395 Spirit.Repository is appeared
2008-04-13 1.36 ffd0cc10 Spirit V2 (Qi, Karma, Lex, Phoenix V2) is added
2006-08-23 1.35 2dc892b4 Fusion V1 is retired
2003-01-31 1.30 81907916 Spirit is the part of the Boost