Lines Matching defs:expansion
208 /* Perform macro expansion in-place on the given list. */
4188 /* Perform macro expansion on 'list', placing the resulting tokens
4239 yyerror(&node->token->location, parser, "'##' cannot appear at either end of a macro expansion\n");
4256 * Returns NULL if node is a simple token with no expansion, (that is,
4261 * Compute the complete expansion of node (which is a function-like
4264 * Returns the token list that results from the expansion and sets
4266 * expansion. Specifically, *last will be set as follows: as the
4349 /* After argument substitution, and before further expansion
4359 /* Compute the complete expansion of node, (and subsequent nodes after
4363 * Returns NULL if node is a simple token with no expansion.
4365 * Otherwise, returns the token list that results from the expansion
4367 * the expansion. Specifically, *last will be set as follows:
4369 * As 'node' in the case of object-like macro expansion.
4372 * function-like macro expansion.
4414 /* Not a macro, so no expansion needed. */
4422 * future expansion of this unexpanded token. */
4424 token_list_t *expansion;
4430 expansion = _token_list_create(parser);
4431 _token_list_append(parser, expansion, final);
4432 return expansion;
4453 * expansion of 'identifier'. That is, when the list iterator begins
4500 /* Walk over the token list replacing nodes with their expansion.
4506 * result from expansion as follows:
4527 token_list_t *expansion;
4549 expansion = _glcpp_parser_expand_node (parser, node, &last, mode, line);
4550 if (expansion) {
4554 _glcpp_parser_evaluate_defined_in_list (parser, expansion);
4564 /* Splice expansion into list, supporting a simple deletion if the
4565 * expansion is empty.
4567 if (expansion->head) {
4569 node_prev->next = expansion->head;
4571 list->head = expansion->head;
4572 expansion->tail->next = last->next;
4574 list->tail = expansion->tail;