Boost logo

Boost :

From: Joel de Guzman (joel_at_[hidden])
Date: 2005-02-13 19:31:03

Hi Y'all,

Here's my review of Wave:

     * What is your evaluation of the design?

I think this is the most flexible pre-processor I know. It's
a c++ library, so I expected full extensibility. Hartmut was very
thorough in his design with more than enough links and hooks
through policies and callbacks to do almost anything imaginable.
The structure is highly modular.

     * What is your evaluation of the implementation?

The implementation is very good. Hartmut has been a very avid
Spirit developer and I've known him to be an excelent coder.
I took a peek at the code, sure enough, he's a Spirit expert
who can churn out really cool Spirit parsers.

     * What is your evaluation of the documentation?

I think the documentation is fairly sufficient. There is still
room for improvement though.

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

Wave started out as a demo application for Spirit. I teased
Hartmut into it. He accepted. This came as a challenge from
Andrei Alexandrescu:

There's a real need for such a library and tool. I don't know
how many times I wished for such a thing. Surely, we need tools
to make tools to make tools. Wave is such a tool. It might be
arguable if Wave should be considered a tool only (like Lex/Yacc)
or a library. But Spirit has shown that developers can benifit
a lot from making a tool a library. Parsing c++ is a difficult
task, but we've got to start somewhere. I think Wave is an
excelent start. Next stop should be a full C++ parser, also
tweakable and accessible at the library level.

     * Did you try to use the library? With what

Yes. VC7.1 and g++.

             Did you have any problems?

Some minor problems relating to bjam. Not a showstopper.

     * How much effort did you put into your

I've been keenly watching Wave evolve from its inception. I
spent a couple of hours for this review.

             A glance? A quick reading? In-depth study?

I read the docs in full, studied the code in detail and tried
all the examples.

     * Are you knowledgeable about the problem domain?

I am not a PP expert. No, I am not an expert in the
problem domain. I am an expert in the solution domain
though (i.e. Spirit :-).

And finally, every review should answer this question:

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

Yes. I think Wave should be accepted.


Joel de Guzman

Boost list run by bdawes at, gregod at, cpdaniel at, john at