On Sat, Dec 30, 2023 at 1:33 PM Robert Ramey via Boost
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