A Classic Scanner subclass for Fortran source files which takes
into account both USE and INCLUDE statements. This scanner will
work for both F77 and F90 (and beyond) compilers.
Currently, this scanner assumes that the include files do not contain
USE statements. To enable the ability to deal with USE statements
in include files, add logic right after the module names are found
to loop over each include file, search for and locate each USE
statement, and append each module name to the list of dependencies.
Caching the search results in a common dictionary somewhere so that
the same include file is not searched multiple times would be a
smart thing to do.
| Method Summary |
| |
__init__(self,
name,
suffixes,
path_variable,
use_regex,
incl_regex,
def_regex,
*args,
**kw)
|
| |
scan(self,
node,
env,
path)
|
| Inherited from Classic |
| |
find_include(self,
include,
source_dir,
path)
|
| |
sort_key(self,
include)
|
| Inherited from Base |
| |
__call__(self,
node,
env,
path)
This method scans a single object. |
| |
__cmp__(self,
other)
|
| |
__hash__(self)
|
| |
__str__(self)
|
| |
add_scanner(self,
skey,
scanner)
|
| |
add_skey(self,
skey)
Add a skey to the list of skeys |
| |
get_skeys(self,
env)
|
| |
path(self,
env,
dir,
target,
source)
|
| |
select(self,
node)
|
| |
_recurse_all_nodes(self,
nodes)
|
| |
_recurse_no_nodes(self,
nodes)
|
| |
recurse_nodes(self,
nodes)
|