
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: http://lists.boost.org/MailArchives/boost/msg21052.php 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 compiler? 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 evaluation? 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. Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net