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

Class F90Scanner

source code

object --+            
         |            
      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

Inherited from object: __delattr__, __getattribute__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__

Properties [hide private]

Inherited from object: __class__

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