GCC/cpplib/type/cpp callbacks

struct cpp_callbacks

{

void (*line_change) (cpp_reader *, const cpp_token *, int);

void (*file_change) (cpp_reader *, const struct line_map *);

void (*dir_change) (cpp_reader *, const char *);

void (*include) (cpp_reader *, source_location, const unsigned char *, const char *, int, const cpp_token **);

void (*define) (cpp_reader *, source_location, cpp_hashnode *);

void (*undef) (cpp_reader *, source_location, cpp_hashnode *);

void (*ident) (cpp_reader *, source_location, const cpp_string *);

void (*def_pragma) (cpp_reader *, source_location);

int (*valid_pch) (cpp_reader *, const char *, int);

void (*read_pch) (cpp_reader *, const char *, int, const char *);

missing_header_cb missing_header;

cpp_hashnode * (*macro_to_expand) (cpp_reader *, const cpp_token *);

unsigned char (*error) (cpp_reader *, int, int, source_location, unsigned int,  const char *, va_list *)      __attribute__ ((__format__ (__printf__, 6, 0))) __attribute__ ((__nonnull__ (6)));

void (*used_define) (cpp_reader *, source_location, cpp_hashnode *);

void (*used_undef) (cpp_reader *, source_location, cpp_hashnode *);

void (*before_define) (cpp_reader *);

void (*used) (cpp_reader *, source_location, cpp_hashnode *);

unsigned char (*user_builtin_macro) (cpp_reader *, cpp_hashnode *);

};