#include "language/lexer/segment.h"
#include "language/lexer/token.h"
-struct macro_expander;
-\f
/* A token along with the syntax that was tokenized to produce it. The syntax
allows the token to be turned back into syntax accurately. */
struct macro_token
return hmap_is_empty (&set->macros);
}
\f
-/* Macro expansion. */
+/* Parsing and expanding macro calls. */
+
+struct macro_call;
-int macro_expander_create (const struct macro_set *,
- const struct token *,
- struct macro_expander **);
-void macro_expander_destroy (struct macro_expander *);
+int macro_call_create (const struct macro_set *, const struct token *,
+ struct macro_call **);
+int macro_call_add (struct macro_call *, const struct macro_token *);
-int macro_expander_add (struct macro_expander *, const struct macro_token *);
+void macro_call_expand (struct macro_call *, enum segmenter_mode segmenter_mode,
+ struct macro_tokens *);
-void macro_expander_get_expansion (struct macro_expander *,
- enum segmenter_mode segmenter_mode,
- struct macro_tokens *);
+void macro_call_destroy (struct macro_call *);
#endif /* macro.h */