diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-02-26 11:16:53 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-02-26 11:16:53 +0000 |
| commit | 70ac18e908c5c00390239b2361115f8ab292d49d (patch) | |
| tree | cda9b2852176f14ccf0a224da2ece7ee9e650965 /src | |
| parent | 38a2d080f99750e82018d00393cf29e4eaa380cc (diff) | |
bug fixed (?) in compilation
Diffstat (limited to 'src')
| -rw-r--r-- | src/GF/Compile/Compile.hs | 6 | ||||
| -rw-r--r-- | src/GF/UseGrammar/Linear.hs | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/GF/Compile/Compile.hs b/src/GF/Compile/Compile.hs index 8655e0ae7..0dba7a9ec 100644 --- a/src/GF/Compile/Compile.hs +++ b/src/GF/Compile/Compile.hs @@ -39,6 +39,7 @@ import GF.Compile.Optimize import GF.Compile.GrammarToCanon import GF.Canon.Share import GF.Canon.Subexpressions (elimSubtermsMod,unSubelimModule) +import GF.UseGrammar.Linear (unoptimizeCanonMod) ---- import qualified GF.Canon.CanonToGrammar as CG @@ -165,7 +166,7 @@ extendCompileEnvCanon ((k,s,c),fts) cgr ft = type TimedCompileEnv = (CompileEnv,[(FilePath,ModTime)]) compileOne :: Options -> TimedCompileEnv -> FullPath -> IOE TimedCompileEnv -compileOne opts env@((_,srcgr,_),_) file = do +compileOne opts env@((_,srcgr,cancgr0),_) file = do let putp = putPointE opts let putpp = putPointEsil opts @@ -189,7 +190,8 @@ compileOne opts env@((_,srcgr,_),_) file = do -- for canonical gf, read the file and update environment, also source env "gfc" -> do cm <- putp ("+ reading" +++ file) $ getCanonModule file - sm <- ioeErr $ CG.canon2sourceModule $ unSubelimModule cm + let cancgr = updateMGrammar (MGrammar [cm]) cancgr0 + sm <- ioeErr $ CG.canon2sourceModule $ unoptimizeCanonMod cancgr $ unSubelimModule cm ft <- getReadTimes file extendCompileEnv env (sm, cm) ft diff --git a/src/GF/UseGrammar/Linear.hs b/src/GF/UseGrammar/Linear.hs index 9d76442ae..d4483bef5 100644 --- a/src/GF/UseGrammar/Linear.hs +++ b/src/GF/UseGrammar/Linear.hs @@ -121,7 +121,10 @@ expandLinTables gr t = case t of -- Do this for an entire grammar: unoptimizeCanon :: CanonGrammar -> CanonGrammar -unoptimizeCanon g@(M.MGrammar ms) = M.MGrammar $ map convMod ms where +unoptimizeCanon g@(M.MGrammar ms) = M.MGrammar $ map (unoptimizeCanonMod g) ms + +unoptimizeCanonMod :: CanonGrammar -> CanonModule -> CanonModule +unoptimizeCanonMod g = convMod where convMod (m, M.ModMod (M.Module (M.MTConcrete a) x flags me os defs)) = (m, M.ModMod (M.Module (M.MTConcrete a) x flags me os (mapTree convDef defs))) convMod mm = mm |
