preprocessor: new callbacks

These two callbacks are needed for C++ modules.  The first is for
handling macros from header-units.  These are resolved lazily.  The
second is for include-translation -- whether a #include gets turned
into a header-unit import.

	libcpp/
	* include/cpplib.h (struct cpp_callbacks): Add
	user_deferred_macro & translate_include.
This commit is contained in:
Nathan Sidwell 2020-11-17 08:16:50 -08:00
parent ecf65330c1
commit b196e76aec
1 changed files with 8 additions and 0 deletions

View File

@ -680,6 +680,9 @@ struct cpp_callbacks
/* Callback that can change a user lazy into normal macro. */
void (*user_lazy_macro) (cpp_reader *, cpp_macro *, unsigned);
/* Callback to handle deferred cpp_macros. */
cpp_macro *(*user_deferred_macro) (cpp_reader *, location_t, cpp_hashnode *);
/* Callback to parse SOURCE_DATE_EPOCH from environment. */
time_t (*get_source_date_epoch) (cpp_reader *);
@ -698,6 +701,11 @@ struct cpp_callbacks
/* Callback for filename remapping in __FILE__ and __BASE_FILE__ macro
expansions. */
const char *(*remap_filename) (const char*);
/* Maybe translate a #include into something else. Return a
cpp_buffer containing the translation if translating. */
char *(*translate_include) (cpp_reader *, line_maps *, location_t,
const char *path);
};
#ifdef VMS