Cpplib--the core of the GNU C Preprocessor
******************************************
The GNU C preprocessor in GCC 3.0 has been completely rewritten. It
is now implemented as a library, cpplib, so it can be easily shared
between a stand-alone preprocessor, and a preprocessor integrated with
the C, C++ and Objective-C front ends. It is also available for use by
other programs, though this is not recommended as its exposed interface
has not yet reached a point of reasonable stability.
This library has been written to be re-entrant, so that it can be
used to preprocess many files simultaneously if necessary. It has also
been written with the preprocessing token as the fundamental unit; the
preprocessor in previous versions of GCC would operate on text strings
as the fundamental unit.
This brief manual documents some of the internals of cpplib, and a
few tricky issues encountered. It also describes certain behaviour we
would like to preserve, such as the format and spacing of its output.
Identifiers, macro expansion, hash nodes, lexing.