summaryrefslogtreecommitdiff
path: root/src/GF/Devel/Grammar/Modules.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-12-04 15:01:01 +0000
committeraarne <aarne@cs.chalmers.se>2007-12-04 15:01:01 +0000
commit4279b1776270d813a68bb762d16bad6e8bc4e324 (patch)
tree76237b4e7da000715dbedce0b174273d7d834a2d /src/GF/Devel/Grammar/Modules.hs
parent4698dfbe7848e87a2e62a776925435a888bc6923 (diff)
printing new source format
Diffstat (limited to 'src/GF/Devel/Grammar/Modules.hs')
-rw-r--r--src/GF/Devel/Grammar/Modules.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/GF/Devel/Grammar/Modules.hs b/src/GF/Devel/Grammar/Modules.hs
index 0d3d96114..a2845e08f 100644
--- a/src/GF/Devel/Grammar/Modules.hs
+++ b/src/GF/Devel/Grammar/Modules.hs
@@ -20,6 +20,14 @@ data GF = GF {
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,
minterfaces :: [(Ident,Ident)], -- non-empty for functors
@@ -33,6 +41,9 @@ data Module = Module {
emptyModule :: Ident -> Module
emptyModule m = Module MTGrammar [] [] [] [] empty empty
+isCompleteModule :: Module -> Bool
+isCompleteModule = Prelude.null . minterfaces
+
listJudgements :: Module -> [(Ident,Either Judgement Indirection)]
listJudgements = assocs . mjments