summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-12-04 20:13:36 +0000
committeraarne <aarne@cs.chalmers.se>2007-12-04 20:13:36 +0000
commitdc1c8355633ba2fe57046a19a579f5cd154835f7 (patch)
tree36b3f8b36efb0ab54b5c7db8279be65b051bfd69 /src
parent11982849b97203f2d5822df7391074a96b7d6f1a (diff)
restored interface and instance - at least for a while
Diffstat (limited to 'src')
-rw-r--r--src/GF/Devel/Compile/Extend.hs8
-rw-r--r--src/GF/Devel/Grammar/GFtoSource.hs2
-rw-r--r--src/GF/Devel/Grammar/Modules.hs2
-rw-r--r--src/GF/Devel/Grammar/SourceToGF.hs4
4 files changed, 10 insertions, 6 deletions
diff --git a/src/GF/Devel/Compile/Extend.hs b/src/GF/Devel/Compile/Extend.hs
index b621999dc..a10f8d929 100644
--- a/src/GF/Devel/Compile/Extend.hs
+++ b/src/GF/Devel/Compile/Extend.hs
@@ -53,7 +53,7 @@ extendModule gf nmo0 = do
m <- lookupModule gf n
-- test that the module types match, and find out if the old is complete
- testErr (mtype mo == mtype m)
+ testErr True ---- (mtype mo == mtype m)
("illegal extension type to module" +++ prt name)
return (m, isCompleteModule m)
@@ -103,10 +103,10 @@ tryInsert unif indir tree z@(x, info) = case Data.Map.lookup x tree of
-- AR 24/10/2003
rebuildModule :: GF -> SourceModule -> Err SourceModule
rebuildModule gr mo@(i,mi) = case mtype mi of
- MTConcrete i0 -> do
+ MTInstance i0 -> do
m1 <- lookupModule gr i0
- testErr (mtype m1 == MTAbstract)
- ("abstract expected as type of" +++ prt i0)
+ testErr (mtype m1 == MTInterface)
+ ("interface expected as type of" +++ prt i0)
js' <- extendMod False i0 (const True) i (mjments m1) (mjments mi)
--- to avoid double inclusions, in instance I of I0 = J0 ** ...
case mextends mi of
diff --git a/src/GF/Devel/Grammar/GFtoSource.hs b/src/GF/Devel/Grammar/GFtoSource.hs
index b49d9ee2f..2866c0446 100644
--- a/src/GF/Devel/Grammar/GFtoSource.hs
+++ b/src/GF/Devel/Grammar/GFtoSource.hs
@@ -38,6 +38,8 @@ trModule (i,mo) = P.MModule compl typ body where
MTGrammar -> P.MGrammar i'
MTAbstract -> P.MAbstract i'
MTConcrete a -> P.MConcrete i' (tri a)
+ MTInterface -> P.MInterface i'
+ MTInstance a -> P.MInstance i' (tri a)
body = P.MBody
(trExtends (mextends mo))
(mkOpens (map trOpen (mopens mo)))
diff --git a/src/GF/Devel/Grammar/Modules.hs b/src/GF/Devel/Grammar/Modules.hs
index a3bf69485..23dfdae72 100644
--- a/src/GF/Devel/Grammar/Modules.hs
+++ b/src/GF/Devel/Grammar/Modules.hs
@@ -54,6 +54,8 @@ type JEntry = Either Judgement Indirection
data ModuleType =
MTAbstract
| MTConcrete Ident
+ | MTInterface
+ | MTInstance Ident
| MTGrammar
deriving Eq
diff --git a/src/GF/Devel/Grammar/SourceToGF.hs b/src/GF/Devel/Grammar/SourceToGF.hs
index d2690b4a7..fecb5b4ea 100644
--- a/src/GF/Devel/Grammar/SourceToGF.hs
+++ b/src/GF/Devel/Grammar/SourceToGF.hs
@@ -85,10 +85,10 @@ transModDef x = case x of
id' <- transIdent id
open' <- transIdent open
return (transCncDef, MTConcrete open', id')
- MInterface id -> mkModRes id MTAbstract body
+ MInterface id -> mkModRes id MTInterface body
MInstance id open -> do
open' <- transIdent open
- mkModRes id (MTConcrete open') body
+ mkModRes id (MTInstance open') body
mkBody (trDef, mtyp', id') body
where