diff options
| author | aarne <unknown> | 2005-05-26 13:18:17 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2005-05-26 13:18:17 +0000 |
| commit | 9a756a3ac10128bc60708d4f41e2379450adf57c (patch) | |
| tree | cc145fce9d5ff048fe3780922b002b3759076f5a /src/GF/Source/SourceToGrammar.hs | |
| parent | 71c50e18d328d1fbf04749e8a453f1e8390c15f9 (diff) | |
romance Inf ; %, included
Diffstat (limited to 'src/GF/Source/SourceToGrammar.hs')
| -rw-r--r-- | src/GF/Source/SourceToGrammar.hs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/GF/Source/SourceToGrammar.hs b/src/GF/Source/SourceToGrammar.hs index 3736e44c4..21e91d70a 100644 --- a/src/GF/Source/SourceToGrammar.hs +++ b/src/GF/Source/SourceToGrammar.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/05/25 10:42:00 $ --- > CVS $Author: bringert $ --- > CVS $Revision: 1.23 $ +-- > CVS $Date: 2005/05/26 14:18:18 $ +-- > CVS $Author: aarne $ +-- > CVS $Revision: 1.24 $ -- -- based on the skeleton Haskell module generated by the BNF converter ----------------------------------------------------------------------------- @@ -112,7 +112,7 @@ transModDef x = case x of opens' <- mapM transOpen opens return (id', GM.ModWith mtyp' mstat' m' [] opens') MWithE extends m opens -> do - extends' <- mapM transIdent extends + extends' <- mapM transIncludedExt extends m' <- transIdent m opens' <- mapM transOpen opens return (id', GM.ModWith mtyp' mstat' m' extends' opens') @@ -170,7 +170,7 @@ transTransfer x = case x of transExtend :: Extend -> Err [Ident] transExtend x = case x of - Ext ids -> mapM transIdent ids + Ext ids -> mapM transIncludedExt ids NoExt -> return [] transOpens :: Opens -> Err [GM.OpenSpec Ident] @@ -193,8 +193,14 @@ transQualOpen x = case x of transIncluded :: Included -> Err (Ident,[Ident]) transIncluded x = case x of IAll i -> liftM (flip (curry id) []) $ transIdent i - ISome i ids -> liftM2 (curry id) (transIdent i) (mapM transIdent ids) - + ISome i ids -> liftM2 (curry id) (transIdent i) (mapM transIdent ids) + IMinus i ids -> liftM2 (curry id) (transIdent i) (mapM transIdent ids) ---- + +transIncludedExt :: Included -> Err Ident ---- (Ident,[Ident]) +transIncludedExt x = case x of + IAll i -> transIdent i + ISome i ids -> transIdent i + IMinus i ids -> transIdent i transAbsDef :: TopDef -> Err (Either [(Ident, G.Info)] [GO.Option]) transAbsDef x = case x of |
