Ñò rê$Lc @s€dZdZddkZddkZddkZddkZddkZddkZdei i fd„ƒYZ dd„Z dS(sXSCons.Scanner.Fortran This module implements the dependency scanner for Fortran code. sBsrc/engine/SCons/Scanner/Fortran.py 5023 2010/06/14 22:05:46 sconsiÿÿÿÿNt F90ScannercBs#eZdZd„Zdd„ZRS(sË 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. c Os¯ti|tiƒ|_ti|tiƒ|_ti|tiƒ|_|d„} | |ds  tfunctiont path_functionit recursivetskeystname( tretcompiletMtcre_usetcre_incltcre_deftSConstScannert FindPathDirstCurrentt__init__( RR tsuffixest path_variablet use_regext incl_regext def_regextargstkwR((s8install/lib/scons-2.0.0.final.0/SCons/Scanner/Fortran.pyR7s     c Csè|idjo |i}nõ|ii|iƒƒ}|ii|iƒƒ}|ii|iƒƒ}h}x|D]} d|| ]\s*;)\s*INCLUDE\s+(?:\w+_)?[<"'](.+?)(?=["'>])s#(?i)^\s*MODULE\s+(?!PROCEDURE)(\w+)t FortranScans$FORTRANSUFFIXES(R(RRt include_regexRtscanner((s8install/lib/scons-2.0.0.final.0/SCons/Scanner/Fortran.pyRF~s@X ( RDt __revision__Rt SCons.NodeRt SCons.Node.FSt SCons.Scannert SCons.UtiltSCons.WarningsRtClassicRRF(((s8install/lib/scons-2.0.0.final.0/SCons/Scanner/Fortran.pyts      W