SCons.Scanner.Fortran.F90Scanner

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