diff options
| author | aarne <unknown> | 2003-11-10 08:48:51 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2003-11-10 08:48:51 +0000 |
| commit | a4741d681f1fb330686d3e758ee8211da087feb6 (patch) | |
| tree | 749707564835301b31d900d7bd8bd032cc0b1bd2 /src/GF/Infra/Modules.hs | |
| parent | d8e07f189a6c825b9ced62e38c3fc2ec6c6c5f67 (diff) | |
Glue modules.
Diffstat (limited to 'src/GF/Infra/Modules.hs')
| -rw-r--r-- | src/GF/Infra/Modules.hs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/GF/Infra/Modules.hs b/src/GF/Infra/Modules.hs index 569806e60..4b642fd72 100644 --- a/src/GF/Infra/Modules.hs +++ b/src/GF/Infra/Modules.hs @@ -114,9 +114,18 @@ depPathModule m = fors m ++ exts m ++ opens m where fors m = case mtype m of MTTransfer i j -> [i,j] MTConcrete i -> [oSimple i] + MTInstance i -> [oSimple i] _ -> [] exts m = map oSimple $ maybe [] return $ extends m +-- all dependencies +allDepsModule :: Ord i => MGrammar i f a -> Module i f a -> [OpenSpec i] +allDepsModule gr m = iterFix add os0 where + os0 = depPathModule m + add os = [m | o <- os, Just (ModMod n) <- [lookup (openedModule o) mods], + m <- depPathModule n] + mods = modules gr + -- all modules that a module extends, directly or indirectly allExtends :: (Show i,Ord i) => MGrammar i f a -> i -> [i] allExtends gr i = case lookupModule gr i of |
