From dc1c8355633ba2fe57046a19a579f5cd154835f7 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 4 Dec 2007 20:13:36 +0000 Subject: [PATCH] restored interface and instance - at least for a while --- src/GF/Devel/Compile/Extend.hs | 8 ++++---- src/GF/Devel/Grammar/GFtoSource.hs | 2 ++ src/GF/Devel/Grammar/Modules.hs | 2 ++ src/GF/Devel/Grammar/SourceToGF.hs | 4 ++-- 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