summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile/ReadFiles.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/GF/Compile/ReadFiles.hs')
-rw-r--r--src/compiler/GF/Compile/ReadFiles.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler/GF/Compile/ReadFiles.hs b/src/compiler/GF/Compile/ReadFiles.hs
index 3182e192c..9396b3a2f 100644
--- a/src/compiler/GF/Compile/ReadFiles.hs
+++ b/src/compiler/GF/Compile/ReadFiles.hs
@@ -20,7 +20,7 @@
module GF.Compile.ReadFiles
( getAllFiles,ModName,ModEnv,importsOfModule,
- findFile,gfImports,gfoImports,
+ findFile,gfImports,gfoImports,VersionTagged(..),
parseSource,getOptionsFromFile,getPragmas) where
import Prelude hiding (catch)
@@ -32,7 +32,7 @@ import GF.Data.Operations
import GF.Grammar.Lexer
import GF.Grammar.Parser
import GF.Grammar.Grammar
-import GF.Grammar.Binary(decodeModuleHeader)
+import GF.Grammar.Binary(VersionTagged(..),decodeModuleHeader)
import System.IO(mkTextEncoding)
import GF.Text.Coding(decodeUnicodeIO)
@@ -107,10 +107,10 @@ getAllFiles opts ps env file = do
case st of
CSEnv -> return (st, (name, maybe [] snd mb_envmod))
CSRead -> do let gfo = if isGFO file then file else gf2gfo opts file
- mb_imps <- gfoImports gfo
- case mb_imps of
- Just imps -> return (st,imps)
- Nothing
+ t_imps <- gfoImports gfo
+ case t_imps of
+ Tagged imps -> return (st,imps)
+ WrongVersion
| isGFO file -> raise (file ++ " is compiled with different GF version and I can't find the source file")
| otherwise -> do imps <- gfImports opts file
return (CSComp,imps)
@@ -143,7 +143,7 @@ findFile gfoDir ps name =
gfImports opts file = importsOfModule `fmap` parseModHeader opts file
-gfoImports gfo = fmap importsOfModule `fmap` liftIO (decodeModuleHeader gfo)
+gfoImports gfo = fmap importsOfModule `fmap` decodeModuleHeader gfo
--------------------------------------------------------------------------------