summaryrefslogtreecommitdiff
path: root/src/GF/Devel/Grammar/Modules.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Devel/Grammar/Modules.hs')
-rw-r--r--src/GF/Devel/Grammar/Modules.hs96
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
-
-