Package SCons :: Package Scanner :: Module Fortran :: Class F90Scanner
[hide private]
[frames] | no frames]

Class F90Scanner

source code

Base --+        
       |        
 Current --+    
           |    
     Classic --+
               |
              F90Scanner

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.



Instance Methods [hide private]
 
__init__(self, name, suffixes, path_variable, use_regex, incl_regex, def_regex, *args, **kw) source code
 
scan(self, node, env, path=()) source code

Inherited from Classic: find_include, find_include_names, sort_key

Inherited from Base: __call__, __cmp__, __hash__, __str__, add_scanner, add_skey, get_skeys, path, recurse_nodes, select

Inherited from Base (private): _recurse_all_nodes, _recurse_no_nodes

Method Details [hide private]

__init__(self, name, suffixes, path_variable, use_regex, incl_regex, def_regex, *args, **kw)
(Constructor)

source code 
Overrides: Classic.__init__

scan(self, node, env, path=())

source code 
Overrides: Classic.scan