Lines Matching refs:expansion

96 * Macro Expansion::     Macro expansion algorithm.
189 token might be a macro, and the tokens of a macro expansion do not have
190 the @code{BOL} flag set. The macro expansion may even be empty, and the
196 in the middle of a macro expansion. Therefore, if the state variable
288 macro expansion we don't want to complain with each use of the macro.
293 using @code{__VA_ARGS__} in the expansion of a variable-argument macro.
373 the pointers to the tokens of its expansion that are returned will always
433 and its expansion. Built-in macros are flagged as special, and instead
464 each identifier in the macro's expansion, lookup to see if it is an
471 @cindex macro expansion
473 Macro expansion is a tricky operation, fraught with nasty corner cases
475 optimize the preprocessor's expansion algorithm wrong in quite subtle
481 picture of how things like nested macro expansion, stringizing and
489 saves repeated lexing passes during expansion, at the cost of a small
497 stored expansion each occurrence of a parameter is replaced with a
501 expansion. Despite this optimization it is still necessary to store
506 @section Macro expansion overview
509 the macro expansion state at any one time. The @code{struct
512 of the innermost macro under expansion, except when cpplib is about to
516 When there are no macros under expansion, cpplib is in @dfn{base
526 expansion, cpplib prepares to push a new context for that macro on the
544 is to mark the macro disabled for expansion (except for special macros
547 ordering ensures that a macro is disabled whilst its expansion is
556 again eligible for expansion in the future, if the reason they were
560 argument pre-expansion. Other tokens never have an opportunity to be
561 re-tested for expansion. It is possible for identifiers that are
576 its replacement list for expansion (or indeed expanding it). As an
584 @noindent which fully expands to @samp{bar foo (2)}. During pre-expansion
586 enabled, since it has no following parenthesis [pre-expansion of an
589 argument token @samp{foo} eligible for future expansion. Then, when
591 rejected for expansion, and marked ineligible for future expansion,
620 @section Marking tokens ineligible for future expansion
635 situations where no macro expansion is involved, so the optimization
655 @expansion{} + + - - + + = = =
657 @expansion{} ++ -- ++ ===
670 expansion, but accidental pasting can occur in many places: both before
681 Now consider the result of the following macro expansion:
686 @expansion{} sum = 1 + 2 +3;
705 tokens in front of every macro expansion and expanded macro argument.
718 @expansion{} [baz]
727 But what if a macro expansion is left? Adjusting the above
735 @expansion{} [ baz] ;
800 If the token results from a macro expansion, the line of the macro name,
802 function-like macro expansion.
808 from the replacement list of a macro expansion carries the location of
827 token is fairly useless if the token came from a macro expansion. All
920 must have come directly from the source file---no macro expansion must