diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-12-06 12:54:15 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-12-06 12:54:15 +0000 |
| commit | f08eb82f2beb069a0f9da2dbba4c6f09cf781e83 (patch) | |
| tree | 0548f3e8195c1e872358085fd73b6e063b65e080 /src/GF/Devel/Grammar/Modules.hs | |
| parent | 7d1b964a78fc6383cd009a282ac993063c81130e (diff) | |
restored work on Extend and Rename
Diffstat (limited to 'src/GF/Devel/Grammar/Modules.hs')
| -rw-r--r-- | src/GF/Devel/Grammar/Modules.hs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/GF/Devel/Grammar/Modules.hs b/src/GF/Devel/Grammar/Modules.hs index 23dfdae72..43458ce90 100644 --- a/src/GF/Devel/Grammar/Modules.hs +++ b/src/GF/Devel/Grammar/Modules.hs @@ -30,6 +30,7 @@ addModule c m gf = gf {gfmodules = insert c m (gfmodules gf)} data Module = Module { mtype :: ModuleType, + miscomplete :: Bool, minterfaces :: [(Ident,Ident)], -- non-empty for functors minstances :: [((Ident,MInclude),[(Ident,Ident)])], -- non-empty for instant'ions mextends :: [(Ident,MInclude)], @@ -39,12 +40,24 @@ data Module = Module { } emptyModule :: Ident -> Module -emptyModule m = Module MTGrammar [] [] [] [] empty empty +emptyModule m = Module MTGrammar True [] [] [] [] empty empty type MapJudgement = Map Ident JEntry -- def or indirection isCompleteModule :: Module -> Bool -isCompleteModule = Prelude.null . minterfaces +isCompleteModule = miscomplete ---- Prelude.null . minterfaces + +isInterface :: Module -> Bool +isInterface m = case mtype m of + MTInterface -> True + MTAbstract -> True + _ -> False + +interfaceName :: Module -> Maybe Ident +interfaceName mo = case mtype mo of + MTInstance i -> return i + MTConcrete i -> return i + _ -> Nothing listJudgements :: Module -> [(Ident,JEntry)] listJudgements = assocs . mjments |
