The GNU C Preprocessor Internals# Contents: Copyright Cpplib—the GNU C Preprocessor Conventions The Lexer Overview Lexing a token Lexing a line Hash Nodes Macro Expansion Algorithm Internal representation of macros Macro expansion overview Scanning the replacement list for macros to expand Looking for a function-like macro’s opening parenthesis Marking tokens ineligible for future expansion Token Spacing Line numbering Just which line number anyway? Representation of line numbers The Multiple-Include Optimization File Handling Indexes and tables TODO