Boost logo

Boost :

From: Richard (legalize_at_[hidden])
Date: 2024-02-28 19:57:09


- Do you think the library should be accepted as a Boost library?

Yes, this would be a great addition to Boost as a successor to Spirit.

======================================================================

Details:

Note: I've only had time to read through the documentation. I'm
familar with Spirit Classic, Spirit V2 and X3 parsing libraries and
have done presentations on them using my own written example code.

- What is your evaluation of the design?

It's very similar to Boost.Spirit in philosophy, but other than the
(optional) connection to Boost.Hana feels very decoupled from all the
other bits of boost at a user level. Spirit's direct connection to
things like Phoenix and Fusion made Spirit more complicated to explain
to other developers and more difficult to use IMO. I understand why
such things were done at the time of Boost.Spirit's writing, but being
a C++17 library frees Boost.Parser from all these digressions which is
good.

The only thing obviously lacking were the binary parsers from Spirit
V2 (bug filed).

- What is your evaluation of the implementation?

I've only reviewed the documentation, so I haven't had any time to dig
into the implementation before the review deadline. I will say that
there are no comments in the header files and that could be improved.
It means that without consulting the tutorial documentation, I have no
information in the included headers to guide me.

- What is your evaluation of the documentation?

The documentation is well written and follows a logical progression.
It could use a math expression example as this is one of the most
common reasons for needing to write a parser (typical C style math
operators and precedence rules). The JSON example is nice (shows
recursive rule parsing), but doesn't deal with operator precedence at
all, so another detailed example showing this would be helpful.

There were some minor typos and mistakes; I filed github issues on
those.

The concepts and reference section are just raw code dumps. They
could use some additional doxygen style comments to tie things
together.

- What is your evaluation of the potential usefulness of the library?

I would find this library a great successor to Spirit.

- Did you try to use the library? With what compiler? Did you have any
  problems?

No, I only had time to read through documentation.

- How much effort did you put into your evaluation? A glance? A quick
  reading? In-depth study?

I carefully read through every page of the documentation in the
Tutorial section and skimmed over the reference section.

- Are you knowledgeable about the problem domain?

Yes.

-- 
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
             The Terminals Wiki <http://terminals-wiki.org>
     The Computer Graphics Museum <http://ComputerGraphicsMuseum.org>
  Legalize Adulthood! (my blog) <http://LegalizeAdulthood.wordpress.com>

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