summaryrefslogtreecommitdiff
path: root/src/GF/Source
diff options
context:
space:
mode:
authoraarne <unknown>2003-10-24 18:19:47 +0000
committeraarne <unknown>2003-10-24 18:19:47 +0000
commit8cce874f8b5f93c3bff65b625c03b3c55f1b5f31 (patch)
tree4ac32640f29110ee4a9e2fccb57583ac898551f0 /src/GF/Source
parente620ffbd9432fc9ab4f3174ecf9c117db27af772 (diff)
More woek on interfaces
Diffstat (limited to 'src/GF/Source')
-rw-r--r--src/GF/Source/SourceToGrammar.hs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/GF/Source/SourceToGrammar.hs b/src/GF/Source/SourceToGrammar.hs
index d01f50fa3..4c4bc93a6 100644
--- a/src/GF/Source/SourceToGrammar.hs
+++ b/src/GF/Source/SourceToGrammar.hs
@@ -74,19 +74,21 @@ transModDef x = case x of
id' <- transIdent id
open' <- transIdent open
return (transResDef, GM.MTInstance open', id')
-
- (extends', opens', defs',flags') <- case body of
+
+ case body of
MBody extends opens defs -> do
extends' <- transExtend extends
opens' <- transOpens opens
defs0 <- mapM trDef $ getTopDefs defs
defs' <- U.buildAnyTree [d | Left ds <- defs0, d <- ds]
flags' <- return [f | Right fs <- defs0, f <- fs]
- return $ (extends', opens', defs',flags')
- MReuse _ ->
- return (Nothing,[],NT,[])
-
- return $ (id', GM.ModMod (GM.Module mtyp' mstat' flags' extends' opens' defs'))
+ return $ (id', GM.ModMod (GM.Module mtyp' mstat' flags' extends' opens' defs'))
+ MReuse _ -> do
+ return (id', GM.ModMod (GM.Module mtyp' mstat' [] Nothing [] NT))
+ MWith m opens -> do
+ m' <- transIdent m
+ opens' <- mapM transOpen opens
+ return (id', GM.ModWith mtyp' mstat' m' opens')
transComplMod :: ComplMod -> GM.ModuleStatus
transComplMod x = case x of