summaryrefslogtreecommitdiff
path: root/src/GF/Source/SourceToGrammar.hs
diff options
context:
space:
mode:
authoraarne <unknown>2005-05-26 13:18:17 +0000
committeraarne <unknown>2005-05-26 13:18:17 +0000
commit9a756a3ac10128bc60708d4f41e2379450adf57c (patch)
treecc145fce9d5ff048fe3780922b002b3759076f5a /src/GF/Source/SourceToGrammar.hs
parent71c50e18d328d1fbf04749e8a453f1e8390c15f9 (diff)
romance Inf ; %, included
Diffstat (limited to 'src/GF/Source/SourceToGrammar.hs')
-rw-r--r--src/GF/Source/SourceToGrammar.hs20
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