1 #ifndef PREPROCESSOR_H 2 #define PREPROCESSOR_H 3 4 #include "token_t.h" 5 6 void init_preprocessor(void); 7 8 void exit_preprocessor(void); 9 10 typedef struct searchpath_entry_t searchpath_entry_t; 11 12 /** Switch input to another file. The current token is not changed. */ 13 void switch_pp_input(FILE *file, char const *filename, searchpath_entry_t *entry, bool is_system_header); 14 15 FILE *close_pp_input(void); 16 17 void next_preprocessing_token(void); 18 19 string_t make_string(char const *string); 20 21 extern bool allow_dollar_in_symbol; 22 extern token_t pp_token; 23 24 void set_preprocessor_output(FILE *output); 25 void emit_pp_token(void); 26 void check_unclosed_conditionals(void); 27 28 typedef struct searchpath_t searchpath_t; 29 extern searchpath_t bracket_searchpath; /**< paths for < > includes */ 30 extern searchpath_t quote_searchpath; /**< paths for " " includes */ 31 extern searchpath_t system_searchpath; /**< system searchpath (appended to 32 quote searchpath) */ 33 extern searchpath_t after_searchpath; /**< searchpath for -idirafter (also system paths) */ 34 35 void init_include_paths(void); 36 void append_include_path(searchpath_t *searchpath, const char *path); 37 38 #endif 39