Skip to content

Commit 8a663c3

Browse files
committed
restore several renaming functions but label as DEPRECATED
extractNameMap, renameAndStrip, underRenaming, and NameMap will not be available once we support module use-renaming, therefore they should be phased out.
1 parent 89cd0ba commit 8a663c3

File tree

5 files changed

+35
-5
lines changed

5 files changed

+35
-5
lines changed

src/Language/Fortran/Analysis/Renaming.hs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
-- analysis.
99

1010
module Language.Fortran.Analysis.Renaming
11-
( analyseRenames, rename, unrename )
11+
( analyseRenames, rename, unrename
12+
-- DEPRECATED:
13+
, extractNameMap, renameAndStrip, underRenaming, NameMap )
1214
where
1315

1416
import Debug.Trace
@@ -33,6 +35,7 @@ import Data.Tuple
3335
--------------------------------------------------
3436

3537
type ModuleMap = Map ProgramUnitName ModEnv
38+
type NameMap = Map String String -- DEPRECATED
3639

3740
type Renamer a = State RenameState a -- the monad.
3841
data RenameState = RenameState { scopeStack :: [String]
@@ -91,6 +94,33 @@ unrename pf = trPU fPU . trE fE $ pf
9194
| Just srcN <- sourceName a = PUSubroutine a s r srcN args b subs
9295
fPU pu = pu
9396

97+
-- DEPRECATED:
98+
99+
-- | DEPRECATED: Create a map of unique name => original name for each variable
100+
-- and function in the program.
101+
extractNameMap :: Data a => ProgramFile (Analysis a) -> NameMap
102+
extractNameMap pf = eMap `union` puMap
103+
where
104+
eMap = fromList [ (un, n) | ExpValue (Analysis { uniqueName = Just un }) _ (ValVariable n) <- uniE pf ]
105+
puMap = fromList [ (un, n) | pu <- uniPU pf, Named un <- [puName pu], Named n <- [getName pu], n /= un ]
106+
uniE :: Data a => ProgramFile a -> [Expression a]
107+
uniE = universeBi
108+
uniPU :: Data a => ProgramFile a -> [ProgramUnit a]
109+
uniPU = universeBi
110+
111+
-- | DEPRECATED: Perform the rename, stripAnalysis, and extractNameMap functions.
112+
renameAndStrip :: Data a => ProgramFile (Analysis a) -> (NameMap, ProgramFile a)
113+
renameAndStrip pf = fmap stripAnalysis (extractNameMap pf, rename pf)
114+
115+
-- | DEPRECATED: Run a function with the program file placed under renaming
116+
-- analysis, then undo the renaming in the result of the function.
117+
underRenaming :: (Data a, Data b) => (ProgramFile (Analysis a) -> b) -> ProgramFile a -> b
118+
underRenaming f pf = tryUnrename `descendBi` f (rename pf')
119+
where
120+
renameMap = extractNameMap pf'
121+
pf' = analyseRenames . initAnalysis $ pf
122+
tryUnrename n = n `fromMaybe` lookup n renameMap
123+
94124
--------------------------------------------------
95125
-- Renaming transformations for pieces of the AST. Uses a language of
96126
-- monadic combinators defined below.

test/Language/Fortran/Analysis/DataFlowSpec.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Language.Fortran.Lexer.FixedForm (initParseState)
1010
import Language.Fortran.ParserMonad (FortranVersion(..), evalParse)
1111
import Language.Fortran.AST
1212
import Language.Fortran.Analysis
13-
import Language.Fortran.Analysis.Renaming
13+
import Language.Fortran.Analysis.Renaming hiding (extractNameMap, underRenaming)
1414
import Language.Fortran.Analysis.BBlocks
1515
import Language.Fortran.Analysis.DataFlow
1616
import qualified Data.Map as M

test/Language/Fortran/Analysis/RenamingSpec.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Language.Fortran.AST
1111
import Language.Fortran.Util.Position
1212
import qualified Language.Fortran.Parser.Fortran90 as F90
1313
import Language.Fortran.Analysis
14-
import Language.Fortran.Analysis.Renaming
14+
import Language.Fortran.Analysis.Renaming hiding (extractNameMap, underRenaming)
1515
import Data.Generics.Uniplate.Data
1616
import Data.Generics.Uniplate.Operations
1717
import Data.Data

test/Language/Fortran/Analysis/TypesSpec.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import Language.Fortran.Analysis
99
import Data.Data
1010
import Language.Fortran.AST
1111
import Language.Fortran.Analysis.Types
12-
import Language.Fortran.Analysis.Renaming
12+
import Language.Fortran.Analysis.Renaming hiding (extractNameMap, underRenaming)
1313
import Language.Fortran.Analysis
1414

1515
import Debug.Trace

test/TestUtil.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import Language.Fortran.ParserMonad
1212
import Language.Fortran.Util.Position
1313

1414
import Language.Fortran.Analysis
15-
import Language.Fortran.Analysis.Renaming
15+
import Language.Fortran.Analysis.Renaming hiding (extractNameMap, underRenaming)
1616
import qualified Data.Map as M
1717
import Data.Maybe
1818

0 commit comments

Comments
 (0)