In the common case where there is no macro to expand, the loop is not
entered. */
- struct macro_expander *me;
- int n_call = macro_expander_create (
+ struct macro_call *mc;
+ int n_call = macro_call_create (
src->lexer->macros, &src->tokens[src->middle & src->mask].token,
- &me);
+ &mc);
for (int middle_ofs = 1; !n_call; middle_ofs++)
{
if (src->front - src->middle <= middle_ofs && !lex_source_get__ (src))
macro_expander_add() reports an error and to give better error
messages. */
src->middle += middle_ofs + 1;
- n_call = macro_expander_add (me, &mt);
+ n_call = macro_call_add (mc, &mt);
src->middle -= middle_ofs + 1;
}
if (n_call < 0)
/* False alarm: no macro expansion after all. Use first token as
lookahead. We'll retry macro expansion from the second token next
time around. */
- macro_expander_destroy (me);
+ macro_call_destroy (mc);
src->middle++;
return true;
}
the line number into macro_expander_get_expansion(). */
src->middle += n_call;
struct macro_tokens expansion = { .n = 0 };
- macro_expander_get_expansion (me, src->reader->syntax, &expansion);
- macro_expander_destroy (me);
+ macro_call_expand (mc, src->reader->syntax, &expansion);
+ macro_call_destroy (mc);
src->middle -= n_call;
/* Convert the macro expansion into syntax for possible error messages later. */