Feb 28

When using expectation points, a parsing failure results in an exception that generically indicates the failure, but probably doesn’t explain the problem in the most meaningful way. It is possible to attach an error handler to react to the failed match in a more specialized way:

Continue reading »

Dec 10

Spirit 2 has undergone lots of revisions from its inception to what you are seeing now. An early beta  release, dubbed Spirit 2 beta, was included as part of Boost 1.39. The adventurous among you started using it as soon as it was released. Spirit 2.1 is essentially the same as Spirit2 beta apart from some cosmetic differences and QOI changes. For the sake of those who started using Spirit from 2.0 beta, here’s what’s changed:

See full article here.

Nov 19

Why would you want to upgrade to Spirit2 from “Classic” Spirit?

Here’s a teaser:

Spirit 1.x [ straight pattern matching (no actions)  ]
real    0m0.359s
user   0m0.332s
sys     0m0.012s

Spirit 1.x [ parse tree generation ]
real    0m9.305s
user   0m9.209s
sys     0m0.076s

Spirit 2.1 [ AST with variant nodes generation ]
real    0m0.459s
user   0m0.432s
sys     0m0.028s

Check out this short article.

Tagged with:
Nov 19

Champagne to us all 🙂

The much-awaited Spirit 2.1 is now released after more than 2 years in beta (Spirit 2.0). Boost release 1.41.0 includes Spirit 2.1. This is the official release of the new Spirit 2.1, a completely new library for parsing, lexing, and output generation.

Boost release 1.41.0 is now available!

This release contains one new library and numerous bug fixes for existing libraries. For details, including download links, see

The release can also be downloaded directly from SourceForge. See

To install this release on your system, see


–The Boost release team

Tagged with:
Nov 14

Using Spirit V2.1 With Older Versions of Boost (pre V1.41)

By Hartmut Kaiser Spirit2 Release Comments Off on Using Spirit V2.1 With Older Versions of Boost (pre V1.41)

Would you like to try the new version of Spirit but you are stuck with an older version of Boost? If yes, don’t despair, there might be help!

See full article here.

Nov 06

Spirit V2.1 will be released with Boost V1.41

By Hartmut Kaiser Spirit2 Release Comments Off on Spirit V2.1 will be released with Boost V1.41

Now, as the release of the new Spirit version is at our doorstep, I would like to whet your appetite. Let’s start with a list of high level things worth knowing.

See full article here.

Sep 25

After a long time in beta (more than 2 years with Spirit 2.0), Spirit 2.1 will finally be released with the upcoming Boost 1.41 release. The code is very stable now and is ready for production code. We are working hard on finishing the documentation in time for Boost 1.41. You can peek at the current state of the documentation here. Currently, you can find the code and documentation in the Boost SVN trunk. If you have a new project involving Spirit, we highly recommend starting with Spirit 2.1 now. Allow me to quote OvermindDL’s post from the Spirit mailing list:

I may start to sound like a bot with how often I say this, but Spirit.Classic is ancient, you should switch to Spirit2.1, it can do everything you did above a GREAT deal easier, a lot less code, and it executes faster. For example, Spirit2.1 can build your entire AST inline, no weird overriding, no need to build things up afterwards, etc…, all as one nice and fast step. You really need to update. See the other posts from the past day for links to docs and such for Spirit2.1. Spirit2.1 is currently in Boost Trunk, but will be formally released with Boost 1.41, but is otherwise complete.

preload preload preload