#ifndef WONKY_MACRO_H
#define WONKY_MACRO_H WONKY_MACRO_H
#include <macro.hh>
#include <stddef.h>
#include <wonky_malloc.h>
#include <macro.h>
struct normal_define_directive
{
struct identifier *id;
struct Queue *replacement_tokens;
};
struct functionlike_define_directive
{
struct identifier *id;
struct Queue *arguments;
struct Queue *replacement_tokens;
_Bool is_variadic;
};
struct functionlike_define_directive_argument
{
struct token_functionlike_define_directive *belongs_to;
struct Queue_Node *first_in_argument_substitution_tokens;
size_t number_of_substitution_tokens;
};
struct normal_define_directive* get_normal_define_directive(struct identifier *id);
struct functionlike_define_directive* get_functionlike_define_directive(struct identifier *id);
struct functionlike_define_directive_argument* get_functionlike_define_directive_argument(struct token_functionlike_define_directive *belongs_to);
#endif