PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
#include <sys/stat.h>
#include <ctype.h>
#include <unistd.h>
#include <errno.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "database.h"
#include "misc.h"
#include "properties.h"
#include "ri-util.h"
#include "pipsdbm.h"
#include "constants.h"
#include "resources.h"
#include "phases.h"
#include "property.h"
#include "preprocessor.h"
#include <regex.h>
Go to the source code of this file.
Macros | |
#define | skip_line_p(s) ((*(s))=='\0' || (*(s))=='!' || (*(s))=='*' || (*(s))=='c' || (*(s))=='C') |
include "pipsmake.h" More... | |
#define | IMPLICIT_NONE_RX "^[ \t]*implicit[ \t]*none" |
#define | INCLUDE_FILE_RX "^[ \t]*include[ \t]*['\"]\\([^'\"]*\\)['\"]" |
#define | CMPLX_RX "^[^\t!*Cc].....[^\"']*[^a-zA-Z0-9_ \t][ \t]*\\((\\)[-+0-9eE\\. \t]*,[-+0-9eE\\. \t]*)" |
not recognized: print *, "i = ", (0.,1.) to avoid modifying a character constant... More... | |
#define | CMPLX2_RX "^[^\t!*Cc].....[ \t]*\\((\\)[-+0-9eE\\. \t]*,[-+0-9eE\\. \t]*)" |
#define | DCMPLX_RX |
#define | DCMPLX2_RX "^[^\t!*Cc].....[ \t]*\\((\\)[-+0-9dDeE\\. \t]*,[-+0-9dDeE\\. \t]*)" |
#define | GOTO_RX "g[ \t]*o[ \t]*t[ \t]*o[ \t]*" |
Functions | |
void | pips_get_workspace_list (gen_array_t array) |
Return a sorted arg list of workspace names. More... | |
void | pips_get_fortran_list (gen_array_t array) |
Select the true file with names ending in ".[fF]" and return a sorted arg list: More... | |
string | hpfc_generate_path_name_of_file_name (const char *file_name) |
Return the path of an HPFC file name relative to the current PIPS directory. More... | |
int | hpfc_get_file_list (gen_array_t file_names, char **hpfc_directory_name) |
string | pips_change_directory (const char *dir) |
Change to the given directory if it exists and return a canonical name. More... | |
void | pips_srcpath_set (string path) |
Set the PIPS source path. More... | |
string | pips_srcpath_append (string pathtoadd) |
returns an allocated pointer to the old value More... | |
static string | find_file (string name) |
tries several path for a file to include... More... | |
void | init_processed_include_cache (void) |
void | close_processed_include_cache (void) |
static string | get_cached (string s) |
Returns the processed cached file name, or null if none. More... | |
static string | get_new_tmp_file_name (void) |
return an allocated unique cache file name. More... | |
static bool | handle_file (FILE *, FILE *) |
double recursion (handle_file/handle_file_name) => forwarded declaration. More... | |
static bool | handle_file_name (FILE *out, char *file_name, bool included) |
static bool | handle_include_file (FILE *out, char *file_name) |
static void | init_rx (void) |
static bool | pips_process_file (string file_name, string new_name) |
bool | filter_file (string mod_name) |
static bool | zzz_file_p (string s) |
is the file name of the form .../zzz???.f More... | |
static void | clean_file (string name) |
static bool | pips_split_file (string name, string tempfile) |
string | preprocessed_to_user_file (string preprocessed_user_file) |
Allocate a new string containing the user file name, before preprocessing. More... | |
bool | dot_F_file_p (string name) |
Test if a name ends with .F. More... | |
bool | dot_f_file_p (string name) |
Test if a name ends with .f. More... | |
bool | dot_f90_file_p (string name) |
Test if a name ends with .f90. More... | |
bool | dot_f95_file_p (string name) |
Test if a name ends with .f95. More... | |
bool | dot_c_file_p (string name) |
Test if a name ends with .c. More... | |
language | workspace_language (gen_array_t files) |
Choose a language if all filenames in "files" have the same C or Fortran extensions. More... | |
int | find_eol_coding (string name) |
Returns the newly allocated name if preprocessing succeeds. More... | |
static string | include_path_to_include_flags (string include_path) |
static string | process_thru_C_pp (string name) |
Process a file name.c through the C preprocessor to generate a name.cpp_processed.c file. More... | |
static string | process_thru_fortran_pp (string name) |
Process a ratfor file name.F through the C preprocessor to generate a name.fpp_processed.f file. More... | |
static string | process_thru_cpp (string name) |
Process a file through a C or Fortran preprocessor according to its type. More... | |
static bool | pips_check_syntax (string env, string prop) |
Why return an int rather than a bool? More... | |
static bool | pips_check_fortran (void) |
A Fortran compiler must be run or not before launching the PIPS Fortran parser, according to the environment variable PIPS_CHECK_FORTRAN firstly, and then according to property CHECK_FORTRAN_SYNTAX_BEFORE_RUNNING_PIPS. More... | |
static bool | pips_check_c (void) |
A C compiler must be run or not before launching the PIPS C parser, according to the environment variable PIPS_CHECK_C firstly, and then according to property CHECK_C_SYNTAX_BEFORE_RUNNING_PIPS. More... | |
static bool | check_input_file_syntax (string file_name, string compiler, string options, string language) |
Verify that the syntax of a program is correct by running a real compiler on it. More... | |
static bool | check_fortran_syntax_before_pips (string file_name) |
Verify that the Fortran syntax of a source file is correct by compiling it. More... | |
static bool | check_c_file_syntax (string file_name) |
Verify that the C syntax of a source file is correct by compiling it. More... | |
static char * | extract_last_name (char *line) |
"foo bla fun ./e.database/foo.f" -> "./e.database/foo.f" More... | |
bool | process_user_file (string file) |
bool | flag_as_stub (const string module_name) |
bool | bootstrap_stubs (const string module_name) |
Variables | |
static string | user_file_directory = NULL |
static regex_t | some_goto_rx |
static regex_t | implicit_none_rx |
static regex_t | include_file_rx |
static regex_t | complex_cst_rx |
static regex_t | complex_cst2_rx |
static regex_t | dcomplex_cst_rx |
static regex_t | dcomplex_cst2_rx |
static hash_table | processed_cache = hash_table_undefined |
cache of preprocessed includes More... | |
string | preprocessor_current_split_file_name = string_undefined |
Split a C or Fortran file into as many files as modules. More... | |
string | preprocessor_current_initial_file_name = string_undefined |
The digestion of a user file by PIPS begins here. More... | |
#define CMPLX2_RX "^[^\t!*Cc].....[ \t]*\\((\\)[-+0-9eE\\. \t]*,[-+0-9eE\\. \t]*)" |
Definition at line 233 of file source_file.c.
#define CMPLX_RX "^[^\t!*Cc].....[^\"']*[^a-zA-Z0-9_ \t][ \t]*\\((\\)[-+0-9eE\\. \t]*,[-+0-9eE\\. \t]*)" |
not recognized: print *, "i = ", (0.,1.) to avoid modifying a character constant...
this stuff should be done by hand in split... also the generated lines may be too long...
Well, the regex can be improved if necessary.
In particular, it does first columned tabbed lines.
Definition at line 230 of file source_file.c.
#define DCMPLX2_RX "^[^\t!*Cc].....[ \t]*\\((\\)[-+0-9dDeE\\. \t]*,[-+0-9dDeE\\. \t]*)" |
Definition at line 240 of file source_file.c.
#define DCMPLX_RX |
Definition at line 236 of file source_file.c.
#define GOTO_RX "g[ \t]*o[ \t]*t[ \t]*o[ \t]*" |
Definition at line 243 of file source_file.c.
#define IMPLICIT_NONE_RX "^[ \t]*implicit[ \t]*none" |
Definition at line 218 of file source_file.c.
#define INCLUDE_FILE_RX "^[ \t]*include[ \t]*['\"]\\([^'\"]*\\)['\"]" |
Definition at line 219 of file source_file.c.
#define skip_line_p | ( | s | ) | ((*(s))=='\0' || (*(s))=='!' || (*(s))=='*' || (*(s))=='c' || (*(s))=='C') |
include "pipsmake.h"
Definition at line 66 of file source_file.c.
module_name | odule_name |
Definition at line 1344 of file source_file.c.
References DB_PUT_MEMORY_RESOURCE, db_resource_p(), make_callees(), module_name(), NIL, and pips_internal_error.
Referenced by generic_initializer().
Verify that the C syntax of a source file is correct by compiling it.
Definition at line 1034 of file source_file.c.
References check_input_file_syntax(), DEFAULT_PIPS_CC, DEFAULT_PIPS_CC_FLAGS, and file_name.
Referenced by process_user_file().
Verify that the Fortran syntax of a source file is correct by compiling it.
Definition at line 1020 of file source_file.c.
References check_input_file_syntax(), DEFAULT_PIPS_FLINT, and file_name.
Referenced by process_user_file().
|
static |
Verify that the syntax of a program is correct by running a real compiler on it.
string compiler may/must contain the necessary options, e.g. PIPS_CC_FLAGS
pips_user_warning("\n\n %s syntax errors in file \"s"!\007
",
language, file_name);
Hopefully, this new warning is more informative and easier to retrieve as last line in the Warnings file.
Definition at line 981 of file source_file.c.
References concatenate(), file_name, free(), include_path_to_include_flags(), pips_user_warning, safe_system_no_abort(), SRCPATH, strescape(), and user_log().
Referenced by check_c_file_syntax(), and check_fortran_syntax_before_pips().
|
static |
drop zzz* files
resize lines[]
keep order for unsplit.
qsort(lines, i, sizeof(char*), cmp);
Definition at line 542 of file source_file.c.
References f(), fprintf(), free(), line, lines, malloc(), pips_assert, safe_fclose(), safe_fopen(), safe_readline(), and zzz_file_p().
Referenced by pips_split_file().
void close_processed_include_cache | ( | void | ) |
pips may call this without a prior call to init_processed_include_cache under some error conditions, such as a file not found in the initializer, or a failed cpp.
Definition at line 283 of file source_file.c.
References free(), HASH_MAP, hash_table_free(), hash_table_undefined, hash_table_undefined_p, pips_assert, and processed_cache.
Referenced by check_delete_workspace(), and close_workspace().
Test if a name ends with .c.
name | ame |
Definition at line 661 of file source_file.c.
References find_suffix().
Referenced by get_new_user_file(), pips_split_file(), process_user_file(), and workspace_language().
Test if a name ends with .f90.
name | ame |
Definition at line 649 of file source_file.c.
References find_suffix().
Referenced by create_workspace(), get_new_user_file(), pips_split_file(), process_user_file(), and workspace_language().
Test if a name ends with .f95.
name | ame |
Definition at line 655 of file source_file.c.
References find_suffix().
Referenced by create_workspace(), get_new_user_file(), pips_split_file(), process_user_file(), and workspace_language().
Test if a name ends with .F.
name | ame |
Definition at line 637 of file source_file.c.
References find_suffix().
Referenced by pips_split_file(), process_thru_cpp(), process_user_file(), and workspace_language().
Test if a name ends with .f.
name | ame |
Definition at line 643 of file source_file.c.
References find_suffix().
Referenced by get_new_user_file(), pips_split_file(), process_user_file(), and workspace_language().
|
static |
"foo bla fun ./e.database/foo.f" -> "./e.database/foo.f"
look for the two past directory separators
then look for whitespace separated module names
Definition at line 1050 of file source_file.c.
References line.
Referenced by process_user_file().
directory is set for finding includes.
mod_name | od_name |
Definition at line 501 of file source_file.c.
References concatenate(), db_build_file_resource_name(), db_get_current_workspace_directory(), db_get_memory_resource(), DB_PUT_NEW_FILE_RESOURCE, free(), pips_dirname(), pips_process_file(), pips_user_warning, safe_unlink(), strdup(), and user_file_directory.
Returns the newly allocated name if preprocessing succeeds.
Returns NULL if preprocessing fails.
name | ame |
Definition at line 721 of file source_file.c.
References f(), safe_fclose(), and safe_fopen().
Referenced by process_thru_C_pp().
tries several path for a file to include...
first rely on $PIPS_SRCPATH, then other directories.
Definition at line 257 of file source_file.c.
References concatenate(), find_file_in_directories(), free(), SRCPATH, strdup(), and user_file_directory.
Referenced by handle_file_name().
module_name | odule_name |
Definition at line 1334 of file source_file.c.
References callees_callees, CONS, db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, db_resource_p(), module_name(), pips_internal_error, strdup(), and STRING.
Referenced by generic_initializer().
Returns the processed cached file name, or null if none.
Definition at line 307 of file source_file.c.
References hash_get(), hash_table_undefined_p, HASH_UNDEFINED_VALUE, pips_assert, and processed_cache.
Referenced by handle_include_file().
|
static |
return an allocated unique cache file name.
Definition at line 321 of file source_file.c.
References db_get_directory_name_for_module(), file_name, free(), malloc(), pips_assert, pips_internal_error, and WORKSPACE_TMP_SPACE.
Referenced by handle_include_file().
|
static |
double recursion (handle_file/handle_file_name) => forwarded declaration.
process f for includes and nones
matched strings
error?
FI: test for parser
handle_complex_constants(&line);
Definition at line 437 of file source_file.c.
References f(), fprintf(), free(), handle_include_file(), implicit_none_rx, include_file_rx, line, matches, out, safe_readline(), and skip_line_p.
Referenced by handle_file_name().
Do not raise a user_error exception, because you are not in the right directory maybe this is not true anymore? FC 01/04/1998
Definition at line 341 of file source_file.c.
References f(), file_name, find_file(), fprintf(), free(), handle_file(), ok, out, pips_debug, pips_user_warning, safe_fclose(), and safe_fopen().
Referenced by handle_include_file(), and pips_process_file().
|
static |
handle bang comments and hollerith with an additionnal processing...
if ok put in the cache, otherwise drop it.
Definition at line 372 of file source_file.c.
References error, file_name, free(), get_cached(), get_new_tmp_file_name(), handle_file_name(), hash_put(), ok, out, pips_user_error, process_bang_comments_and_hollerith(), processed_cache, safe_cat(), safe_fclose(), safe_fopen(), and safe_unlink().
Referenced by handle_file().
string hpfc_generate_path_name_of_file_name | ( | const char * | file_name | ) |
Return the path of an HPFC file name relative to the current PIPS directory.
Can be freed by the caller.
file_name | ile_name |
Definition at line 97 of file source_file.c.
References concatenate(), db_get_current_workspace_directory(), file_name, free(), and strdup().
Referenced by notify_hpfc_file_view().
int hpfc_get_file_list | ( | gen_array_t | file_names, |
char ** | hpfc_directory_name | ||
) |
Where is the output of HPFC:
generated files start with upercases
Plain files only:
file_names | ile_names |
hpfc_directory_name | pfc_directory_name |
Definition at line 106 of file source_file.c.
References build_pgmwd, db_get_current_workspace_name(), file_exists_p(), free(), malloc(), message_assert, and safe_list_files_in_directory().
Referenced by generate_a_menu_with_HPF_output_files().
At least include files from the current directory:
Transform the include path p1:p2:... into -Ip1 -Ip2...
Definition at line 751 of file source_file.c.
References concatenate(), free(), nth_path(), and strdup().
Referenced by check_input_file_syntax(), and process_thru_C_pp().
void init_processed_include_cache | ( | void | ) |
Definition at line 272 of file source_file.c.
References hash_string, hash_table_make(), hash_table_undefined_p, pips_assert, and processed_cache.
Referenced by create_workspace(), and open_workspace().
|
static |
Definition at line 472 of file source_file.c.
References CMPLX2_RX, CMPLX_RX, complex_cst2_rx, complex_cst_rx, DCMPLX2_RX, DCMPLX_RX, dcomplex_cst2_rx, dcomplex_cst_rx, GOTO_RX, IMPLICIT_NONE_RX, implicit_none_rx, INCLUDE_FILE_RX, include_file_rx, pips_internal_error, and some_goto_rx.
Referenced by pips_process_file().
string pips_change_directory | ( | const char * | dir | ) |
Change to the given directory if it exists and return a canonical name.
Return NULL if it does not exist, or fails
dir | ir |
Definition at line 142 of file source_file.c.
References directory_exists_p(), and get_cwd().
Referenced by end_directory_notify().
|
static |
A C compiler must be run or not before launching the PIPS C parser, according to the environment variable PIPS_CHECK_C firstly, and then according to property CHECK_C_SYNTAX_BEFORE_RUNNING_PIPS.
So the environment overrides the property.
Definition at line 968 of file source_file.c.
References env, and pips_check_syntax().
Referenced by process_user_file().
|
static |
A Fortran compiler must be run or not before launching the PIPS Fortran parser, according to the environment variable PIPS_CHECK_FORTRAN firstly, and then according to property CHECK_FORTRAN_SYNTAX_BEFORE_RUNNING_PIPS.
So the environment overrides the property.
Definition at line 955 of file source_file.c.
References env, and pips_check_syntax().
Referenced by process_user_file().
Why return an int rather than a bool?
Definition at line 932 of file source_file.c.
References env, and get_bool_property().
Referenced by pips_check_c(), and pips_check_fortran().
void pips_get_fortran_list | ( | gen_array_t | array | ) |
Select the true file with names ending in ".[fF]" and return a sorted arg list:
array | rray |
Definition at line 89 of file source_file.c.
References array, file_exists_p(), and list_files_in_directory().
Referenced by continue_create_workspace_notify().
void pips_get_workspace_list | ( | gen_array_t | array | ) |
Return a sorted arg list of workspace names.
cproto-generated files
(For each name, there is a name.database directory in the current directory):
array | rray |
Definition at line 74 of file source_file.c.
References array, directory_exists_p(), gen_array_item(), gen_array_nitems(), and list_files_in_directory().
Referenced by generate_workspace_menu(), open_or_create_workspace(), open_workspace_notify(), and start_delete_workspace_notify().
Definition at line 487 of file source_file.c.
References file_name, handle_file_name(), init_rx(), ok, out, pips_debug, safe_fclose(), and safe_fopen().
Referenced by filter_file().
Definition at line 586 of file source_file.c.
References clean_file(), csplit(), db_get_current_workspace_directory(), dot_c_file_p(), dot_f90_file_p(), dot_f95_file_p(), dot_F_file_p(), dot_f_file_p(), f95split(), fprintf(), free(), fsplit(), out, pips_user_error, preprocessor_current_split_file_name, safe_fclose(), safe_fopen(), and strdup().
Referenced by process_user_file().
returns an allocated pointer to the old value
Strdup the string since it is returned and use later in many other places
pathtoadd | athtoadd |
Definition at line 177 of file source_file.c.
References concatenate(), pips_srcpath_set(), SRCPATH, and strdup().
Referenced by parse_arguments(), and step_analyse_init().
void pips_srcpath_set | ( | string | path | ) |
Set the PIPS source path.
path | is used to set the search path or to unset if path is NULL |
Strangely this environment variable is set many times in PIPS to pass some information...
path | ath |
Definition at line 167 of file source_file.c.
References SRCPATH.
Referenced by parse_arguments(), pips_srcpath_append(), pop_path(), and safe_pop_path().
Allocate a new string containing the user file name, before preprocessing.
No preprocessing has occured
preprocessed_user_file | reprocessed_user_file |
Definition at line 617 of file source_file.c.
References find_suffix(), strdup(), string_undefined, and user_file.
Referenced by get_new_user_file().
Process a file name.c through the C preprocessor to generate a name.cpp_processed.c file.
name | is the name of the file to process |
check "test" could be performed before "cat" but not after, and the error file may be useful for the user. Why should we remove it so soon?
" && test ! -s ", cpp_err, " && rm -f ", cpp_err, NULL));
Sed command to replace the second occurence of the formal parameter __x of the functions used twice on the same line by __y. Examples from math.h: extern long double fabsl (long double __x) ; extern long double __fabsl (long double __x); will be replace by extern long double fabsl (long double __x) ; extern long double __fabsl (long double __y);
check "test" could be performed before "cat" but not after, and the error file may be useful for the user. Why should we remove it so soon?
" && test ! -s ", cpp_err, " && rm -f ", cpp_err, NULL));
Definition at line 778 of file source_file.c.
References concatenate(), CPP_CPP, CPP_CPPFLAGS, CPP_PIPS_ENV, CPP_PIPS_OPTIONS_ENV, db_get_directory_name_for_module(), find_eol_coding(), free(), include_path_to_include_flags(), pips_debug, pips_initial_filename(), pips_user_error, safe_system_no_abort(), SRCPATH, strdup(), strescape(), and WORKSPACE_TMP_SPACE.
Referenced by process_thru_cpp().
Process a file through a C or Fortran preprocessor according to its type.
Not much to share between .F and .c?
Definition at line 916 of file source_file.c.
References dot_F_file_p(), process_thru_C_pp(), process_thru_fortran_pp(), and string_undefined.
Referenced by process_user_file().
Process a ratfor file name.F through the C preprocessor to generate a name.fpp_processed.f file.
Note: the preprocessor used must know somehow about Fortran and its lexical and comment conventions. This is ok with gcc when g77 or gfortran is included. Otherwise, "'" appearing in Fortran comments results in errors to be reported. Well, the return code could be ignored maybe, but I prefer not to.
FI->FC: it should be a safe_system_no_abort(). Errors are supposedly displayed... but their display is skipped because of the return code of the first process and pips_internal_error is executed!. PIPS_SRCPATH is not used to find the include files. A pips_user_error is not caught at the process_user_file level.
See preprocessor/Validation/csplit09.tpips
fpp was wrong...
show errors
Definition at line 863 of file source_file.c.
References concatenate(), db_get_directory_name_for_module(), FPP_CPP, FPP_CPPFLAGS, FPP_PIPS_ENV, FPP_PIPS_OPTIONS_ENV, free(), pips_basename(), safe_system_no_abort(), strdup(), and WORKSPACE_TMP_SPACE.
Referenced by process_thru_cpp().
The file is looked for in the pips source path.
Do not check the syntax in the input file: quite dangerous in case it is wrong because PIPS is not designed to work on damaged source codes. But this may be useful is the input file is a validation file or if the input file has already been checked.
If two modules have the same name, the first splitted wins and the other one is hidden by the call since fsplit gives it a zzz00n.f name Let's hope no user module is called ###???.f
The newly created module files are registered in the database The file_list allows split to communicate with this function.
a_line: "MODULE1 ... MODULEn file_name"
The list modules comes from entries that might be included in the subroutine.
For each Fortran module in the line, put the initial_file and user_file resource. In C, line should have only one entry and a C source file and a user file resources are created.
hey, that's cleaning!
Seems to be recorded as a resource, causes problems later when closing the workspace...
unlink(nfile);
file | ile |
Definition at line 1090 of file source_file.c.
References check_c_file_syntax(), check_fortran_syntax_before_pips(), concatenate(), CONS, db_build_file_resource_name(), db_get_current_workspace_directory(), db_get_memory_resource(), DB_PUT_NEW_FILE_RESOURCE, dot_c_file_p(), dot_f90_file_p(), dot_f95_file_p(), dot_F_file_p(), dot_f_file_p(), extract_last_name(), file_name, find_file_in_directories(), FOREACH, free(), gen_free_list(), gen_read(), get_bool_property(), get_resource_file_name(), NIL, pips_check_c(), pips_check_fortran(), pips_debug, pips_internal_error, pips_split_file(), pips_user_error, pips_user_warning, preprocessor_current_initial_file_name, process_thru_cpp(), safe_fclose(), safe_fopen(), safe_readline(), SRCPATH, strdup(), STRING, string_undefined, and user_log().
Referenced by add_a_file(), ask_a_missing_file(), create_workspace(), retrieve_a_missing_file_using_external_resolver(), and retrieve_a_missing_file_using_internal_resolver().
language workspace_language | ( | gen_array_t | files | ) |
Choose a language if all filenames in "files" have the same C or Fortran extensions.
files | iles |
Definition at line 667 of file source_file.c.
References dot_c_file_p(), dot_f90_file_p(), dot_f95_file_p(), dot_F_file_p(), dot_f_file_p(), gen_array_item(), gen_array_nitems(), language_undefined, make_language_c(), make_language_fortran(), make_language_fortran95(), and make_language_unknown().
Referenced by add_a_file(), and create_workspace().
is the file name of the form .../zzz???.f
Definition at line 535 of file source_file.c.
Referenced by clean_file().
|
static |
Definition at line 250 of file source_file.c.
Referenced by init_rx().
|
static |
Definition at line 249 of file source_file.c.
Referenced by init_rx().
|
static |
Definition at line 252 of file source_file.c.
Referenced by init_rx().
|
static |
Definition at line 251 of file source_file.c.
Referenced by init_rx().
|
static |
Definition at line 247 of file source_file.c.
Referenced by handle_file(), and init_rx().
|
static |
Definition at line 248 of file source_file.c.
Referenced by handle_file(), and init_rx().
string preprocessor_current_initial_file_name = string_undefined |
The digestion of a user file by PIPS begins here.
The file is searched in the SRCPATH directories.
Definition at line 1088 of file source_file.c.
Referenced by csplit_copy(), csplit_parser_warning_alist(), and process_user_file().
string preprocessor_current_split_file_name = string_undefined |
Split a C or Fortran file into as many files as modules.
Definition at line 584 of file source_file.c.
Referenced by csplit_parser_warning_alist(), and pips_split_file().
|
static |
cache of preprocessed includes
Definition at line 271 of file source_file.c.
Referenced by close_processed_include_cache(), get_cached(), handle_include_file(), and init_processed_include_cache().
|
static |
Definition at line 246 of file source_file.c.
Referenced by init_rx().
|
static |
Definition at line 194 of file source_file.c.
Referenced by filter_file(), and find_file().