Boost logo

Boost :

From: Tom Brinkman (reportbase_at_[hidden])
Date: 2005-02-07 21:48:17


The Wave C++ preprocessor library review begins today
February 7, 2005.

The library author is Hartmut Kaiser
<hartmutkaiser_at_[hidden]>

The review manager is Tom Brinkman
<reportbase_at_[hidden]>

Download at
http://spirit.sourceforge.net/dl_more/wave-1.1.12.zip

Here are some questions you might want to answer in
your review:

    * What is your evaluation of the design?
    * What is your evaluation of the implementation?
    * What is your evaluation of the documentation?
    * What is your evaluation of the potential
usefulness of the library?
    * Did you try to use the library? With what
compiler?
            Did you have any problems?
    * How much effort did you put into your
evaluation?
            A glance? A quick reading? In-depth study?
    * Are you knowledgeable about the problem domain?

And finally, every review should answer this question:

    * Do you think the library should be accepted as a
Boost library?
            Be sure to say this explicitly so that your other
comments don't
            obscure your overall opinion.

The Wave C++ preprocessor library is a Standards
conformant
implementation
of the mandated C99/C++ preprocessor functionality
packed behind a
simple to
use interface, which integrates well with the well
known idioms of the
Standard Template Library (STL).

It is not a monolitic application, it's rather a
modular library, which
exposes mainly a context object and an iterator
interface. The context
object helps to configure the actual preprocessing
process (as search
path's, predefined macros, etc.). The exposed
iterators are generated
by
this context object too. Iterating over the sequence
defined by the two
iterators will return the preprocessed tokens, which
are to be built on
the
fly from the given input stream.

The C++ preprocessor iterator itself is fed by a C++
lexer iterator,
which
implements an abstract interface. The C++ lexers
packaged with the Wave
library may be used standalone, too, and are not tied
to the C++
preprocessor iterator at all.

The flexible interface exposed by the library makes it
usable in a
variety
of applications ranging from simple lexing
(tokenising) a C99/C++ input
stream to complex preprocessing with fine control over
the details of
the
macro expansion process. For instance it's very simple
to inject your
own
#pragma handling into the preprocessing, allowing to
expand it in
virtually
unlimited ways.

The Wave C++ preprocessor library is known to be
compilable on VC7.1,
Intel7.1 and 8.0, gcc 3.2.x and 3.3.x. Work is
currently underway to
make it
usable with VC6.5 as well.

The library contains samples, which show different
ways of it's usage.
A
full blown preprocessing command line oriented driver
application is
included in the Boost tools section as well.

The review candidate version of Wave is accessible
here:

   
http://spirit.sourceforge.net/dl_more/wave-1.1.12.zip

additionally it is included in the Boost-sandbox CVS.

If you're interested in what's new or changed since
the last releases,
please refer to the enclosed documentation or the
changelog file
contained
inside the archive.

        
                
__________________________________
Do you Yahoo!?
Yahoo! Mail - You care about security. So do we.
http://promotions.yahoo.com/new_mail


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