diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2001-11-15 10:01:10 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2001-11-15 10:01:10 +0000 |
commit | f5e99456f19b80978984f781e1d847b90d09b30a (patch) | |
tree | cac90266aeb52525edc15fddc73e9428ce8a8556 /gcc/cpplib.h | |
parent | 87bc7fa6aab909eb842be0800e0284b0daa3de70 (diff) | |
download | gcc-f5e99456f19b80978984f781e1d847b90d09b30a.zip gcc-f5e99456f19b80978984f781e1d847b90d09b30a.tar.gz gcc-f5e99456f19b80978984f781e1d847b90d09b30a.tar.bz2 |
c-common.c: Include c-lex.h.
* c-common.c: Include c-lex.h.
(c_common_lang_init): Change prototype. Call init_c_lex and
init_pragma from here.
* c-common.h (c_common_lang_init): Change prototype.
* c-decl.c (init_decl_processing): Rename. Call c_parse_init.
* c-lang.c (c_init): Change prototype. Update.
(c_init_options): Update.
* c-lex.c (cpp_filename): Remove.
(init_c_lex): Update. Read the main file, and get the original
file name.
(yyparse): Finish the command line options.
* c-parse.in (c_parse_init): Call init_reswords here.
(init_parse): Remove.
* c-tree.h (c_init_decl_processing): New.
* cpphash.c (_cpp_init_hashtable): After initializing the hash
table, populate it.
* cppinit.c (read_original_filename, cpp_finish_options): New.
(cpp_create_reader): New prototype. Defer hash table initialization.
(cpp_start_read): Rename cpp_read_main_file. Initialize the
hash table. Get the original filename.
* cpplib.h (cpp_create_reader): Update.
(cpp_start_read): Remove.
(cpp_read_main_file, cpp_finish_options): New.
* cppmain.c (main, do_preprocessing): Update.
* langhooks.h (struct langhooks): Update init prototype.
* toplev.c (general_init, parse_options_and_default_flags,
process_options, lang_indpendent_init, lang_dependent_init,
init_asm_output): New; perform the bulk of initialization.
(compile_file): Move most of initialization to above functions.
(debug_hooks): Initialize statically.
(set_Wunused): Relocate.
(toplev_main): Move most of initialization to other init functions.
Have a clear logic flow.
* tree.h (init_parse, init_decl_processing): Remove.
ada:
* misc.c (gnat_init): Change prototype. Include the
functionality of the old init_parse and init_decl_processing.
(gnat_init_decl_processing): New prototype.
(init_parse): Remove.
* utils.c (init_decl_processing): Rename gnat_init_decl_processing.
cp: * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
(cxx_init): Update prototype.
* decl.c (init_decl_processing): Rename. Move null node init
to its creation time.
* lex.c (cxx_init_options): Update.
(cxx_init): Combine with old init_parse; also call
cxx_init_decl_processing.
f: * com.c (ffecom_init_decl_processing): Renamed from
init_decl_processing.
(init_parse): Move contents to ffe_init.
(ffe_init): Update prototype.
java: * decl.c (init_decl_processing): Rename java_init_decl_processing.
* java-tree.h: New prototype.
* lang.c (java_init): Update prototype. Combine with old init_parse.
objc: * objc-act.c (objc_init): Update prototype, combine with old
init_parse.
(objc_init_options): Update.
From-SVN: r47046
Diffstat (limited to 'gcc/cpplib.h')
-rw-r--r-- | gcc/cpplib.h | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/gcc/cpplib.h b/gcc/cpplib.h index 2ccac62..e9002fb 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -451,16 +451,8 @@ struct cpp_hashnode } value; }; -/* Call this first to get a handle to pass to other functions. If you - want cpplib to manage its own hashtable, pass in a NULL pointer. - Or you can pass in an initialised hash table that cpplib will use; - this technique is used by the C front ends. */ -extern cpp_reader *cpp_create_reader PARAMS ((struct ht *, - enum c_lang)); - -/* Call this to release the handle. Any use of the handle after this - function returns is invalid. Returns cpp_errors (pfile). */ -extern int cpp_destroy PARAMS ((cpp_reader *)); +/* Call this first to get a handle to pass to other functions. */ +extern cpp_reader *cpp_create_reader PARAMS ((enum c_lang)); /* Call these to get pointers to the options and callback structures for a given reader. These pointers are good until you call @@ -476,13 +468,39 @@ extern void cpp_set_callbacks PARAMS ((cpp_reader *, cpp_callbacks *)); return value is the number of arguments used. If cpp_handle_options returns without using all arguments, it couldn't understand the next switch. When there are no switches left, you - must call cpp_post_options before calling cpp_start_read. Only + must call cpp_post_options before calling cpp_read_main_file. Only after cpp_post_options are the contents of the cpp_options - structure reliable. */ + structure reliable. Options processing is not completed until you + call cpp_finish_options. */ extern int cpp_handle_options PARAMS ((cpp_reader *, int, char **)); extern int cpp_handle_option PARAMS ((cpp_reader *, int, char **)); extern void cpp_post_options PARAMS ((cpp_reader *)); +/* This function reads the file, but does not start preprocessing. It + returns the name of the original file; this is the same as the + input file, except for preprocessed input. This will generate at + least one file change callback, and possibly a line change callback + too. If there was an error opening the file, it returns NULL. + + If you want cpplib to manage its own hashtable, pass in a NULL + pointer. Otherise you should pass in an initialised hash table + that cpplib will share; this technique is used by the C front + ends. */ +extern const char *cpp_read_main_file PARAMS ((cpp_reader *, const char *, + struct ht *)); + +/* Deferred handling of command line options that can generate debug + callbacks, such as -D and -imacros. Call this after + cpp_read_main_file. The front ends need this separation so they + can initialize debug output with the original file name, returned + from cpp_read_main_file, before they get debug callbacks. */ +extern void cpp_finish_options PARAMS ((cpp_reader *)); + +/* Call this to release the handle at the end of preprocessing. Any + use of the handle after this function returns is invalid. Returns + cpp_errors (pfile). */ +extern int cpp_destroy PARAMS ((cpp_reader *)); + /* Error count. */ extern unsigned int cpp_errors PARAMS ((cpp_reader *)); @@ -495,7 +513,6 @@ extern void cpp_register_pragma PARAMS ((cpp_reader *, const char *, const char *, void (*) PARAMS ((cpp_reader *)))); -extern int cpp_start_read PARAMS ((cpp_reader *, const char *)); extern void cpp_finish PARAMS ((cpp_reader *)); extern int cpp_avoid_paste PARAMS ((cpp_reader *, const cpp_token *, const cpp_token *)); |