Boost logo

Boost :

From: Zach Laine (whatwasthataddress_at_[hidden])
Date: 2023-12-30 21:11:18


On Sat, Dec 30, 2023 at 1:33 PM Robert Ramey via Boost
<boost_at_[hidden]> wrote:
>
> On 12/28/23 1:05 PM, Zach Laine via Boost wrote:
> > I'm trying to gauge interest in a parsing library to replace
> > Boost.Spirit 2/Spirit X3. I'm also looking for endorsements.
> >
> > The library is intended to remedy some shortcomings of Boost.Spirit*.
> > I think these are great libraries, but Spirit 2 was written in pre-11
> > C++ (I think; certainly its dependencies were). Most-to-all of the
> > downsides stem from that -- long compile times, inscrutable
> > compilation failures, etc. (Boost.Parser compile times are quite
> > low.)
> >
> > I'm calling my proposal Boost.Parser, and it follows many of the
> > conventions of Boost.Spirit 2 and X3, such as the operators used for
> > overloading, the names of many parsers and directives, etc. It
> > requires C++17 or later.
> >
>
> Very interesting.
>
> The Boost Serialization library has used Boost Spirit x1 to parse xml
> archives for over 20 years. I had some familiarity with recursive
> descent parsing and relatively little with template metaprogramming
> which made for a strenuous learning experience. The library comes with
> incredible documentation. Once I got the hang of it, I was/am happy with
> it. I haven't touched it in 20 years. I totally and completely forgot
> everything about it. This is a testament to the capability of it's
> author. The concept of separating the grammar specification from token
> handlers made the actual code almost nothing. I've looked at the
> comments here and a little at the document. One question:
>
> Is there a reason it shouldn't be named Spirit4 ?

Not in particular. Joel and Hartmut even said they would be fine with
that. I just prefer a name that is more direct in its meaning, and
that reflects that it is from a new author.

Zach


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk