diff options
| author | aarne <unknown> | 2003-10-24 18:19:47 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2003-10-24 18:19:47 +0000 |
| commit | 8cce874f8b5f93c3bff65b625c03b3c55f1b5f31 (patch) | |
| tree | 4ac32640f29110ee4a9e2fccb57583ac898551f0 /src/GF/Source | |
| parent | e620ffbd9432fc9ab4f3174ecf9c117db27af772 (diff) | |
More woek on interfaces
Diffstat (limited to 'src/GF/Source')
| -rw-r--r-- | src/GF/Source/SourceToGrammar.hs | 16 |
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 |
