GNU Info

Info Node: (cppinternals-300.info)Top

(cppinternals-300.info)Top


Next: Conventions Up: (DIR)
Enter node , (file) or (file)node

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.

Conventions
Conventions used in the code.
Lexer
The combined C, C++ and Objective-C Lexer.
Whitespace
Input and output newlines and whitespace.
Hash Nodes
All identifiers are hashed.
Macro Expansion
Macro expansion algorithm.
Files
File handling.
Index
Index.

automatically generated by info2www version 1.2.2.9