Lines Matching refs:expansion
49 static int counter_macro = 0; // __COUNTER__ expansion
422 sparse_error(token->pos, "too long token expansion");
751 struct token *expansion = sym->expansion;
774 tail = substitute(list, expansion, args);
1178 sparse_error(arg->pos, "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro");
1295 sparse_error(concat->pos, "'##' cannot appear at the ends of macro expansion");
1299 static struct token *parse_expansion(struct token *expansion, struct token *arglist, struct ident *name)
1301 struct token *token = expansion;
1307 for (p = &expansion; !eof_token(token); p = &token->next, token = *p) {
1330 token = alloc_token(&expansion->pos);
1335 return expansion;
1338 sparse_error(token->pos, "'##' cannot appear at the ends of macro expansion");
1346 struct token *arglist, struct token *expansion, int attr)
1351 expansion = parse_expansion(expansion, arglist, name);
1352 if (!expansion)
1364 if (token_list_different(sym->expansion, expansion) ||
1385 sym->expansion = expansion;
1472 struct token *arglist, *expansion;
1484 expansion = left->next;
1485 if (!expansion->pos.whitespace) {
1486 if (match_op(expansion, '(')) {
1487 arglist = expansion;
1488 expansion = parse_arguments(expansion);
1489 if (!expansion)
1491 } else if (!eof_token(expansion)) {
1492 warning(expansion->pos,
1497 return do_define(left->pos, token, name, arglist, expansion, attr);
1608 * Expression handling for #if and #elif; it differs from normal expansion
2322 token = sym->expansion;