diff options
Diffstat (limited to 'src/GF/Devel/Grammar/Modules.hs')
| -rw-r--r-- | src/GF/Devel/Grammar/Modules.hs | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/src/GF/Devel/Grammar/Modules.hs b/src/GF/Devel/Grammar/Modules.hs deleted file mode 100644 index 43458ce90..000000000 --- a/src/GF/Devel/Grammar/Modules.hs +++ /dev/null @@ -1,96 +0,0 @@ -module GF.Devel.Grammar.Modules where - -import GF.Devel.Grammar.Judgements -import GF.Devel.Grammar.Terms -import GF.Infra.Ident - -import GF.Data.Operations - -import Control.Monad -import Data.Map - - -data GF = GF { - gfabsname :: Maybe Ident , - gfcncnames :: [Ident] , - gflags :: Map Ident String , -- value of a global flag - gfmodules :: Map Ident Module - } - -emptyGF :: GF -emptyGF = GF Nothing [] empty empty - -type SourceModule = (Ident,Module) - -listModules :: GF -> [SourceModule] -listModules = assocs.gfmodules - -addModule :: Ident -> Module -> GF -> GF -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)], - mopens :: [(Ident,Ident)], -- used name, original name - mflags :: Map Ident String, - mjments :: MapJudgement - } - -emptyModule :: Ident -> Module -emptyModule m = Module MTGrammar True [] [] [] [] empty empty - -type MapJudgement = Map Ident JEntry -- def or indirection - -isCompleteModule :: Module -> Bool -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 - -type JEntry = Either Judgement Indirection - -data ModuleType = - MTAbstract - | MTConcrete Ident - | MTInterface - | MTInstance Ident - | MTGrammar - deriving Eq - -data MInclude = - MIAll - | MIExcept [Ident] - | MIOnly [Ident] - -type Indirection = (Ident,Bool) -- module of origin, whether canonical - -isConstructorEntry :: Either Judgement Indirection -> Bool -isConstructorEntry ji = case ji of - Left j -> isConstructor j - Right i -> snd i - -isConstructor :: Judgement -> Bool -isConstructor j = jdef j == EData - -isInherited :: MInclude -> Ident -> Bool -isInherited mi i = case mi of - MIExcept is -> notElem i is - MIOnly is -> elem i is - _ -> True - - |
