From bb25c86ae5624f52ed63af9ea92467490e8647d6 Mon Sep 17 00:00:00 2001 From: bjorn Date: Thu, 16 Oct 2008 11:58:18 +0000 Subject: [PATCH] Copy command-line flags to in-memory module when reading from a .gfo file. This maeans that command-line flags get put in the .pgf file. --- src/GF/Compile.hs | 3 +-- src/GF/Compile/GetGrammar.hs | 6 +++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/GF/Compile.hs b/src/GF/Compile.hs index b652779d7..ed2481835 100644 --- a/src/GF/Compile.hs +++ b/src/GF/Compile.hs @@ -158,9 +158,8 @@ compileOne opts env@(_,srcgr,_) file = do then compileOne opts env $ gfo else do - sm000 <- putpOpt ("- parsing" +++ file) ("- compiling" +++ file ++ "... ") $ + sm00 <- putpOpt ("- parsing" +++ file) ("- compiling" +++ file ++ "... ") $ getSourceModule opts file - let sm00 = mapSourceModule (\m -> m { flags = flags m `addOptions` opts }) sm000 let sm0 = decodeStringsInModule sm00 (k',sm) <- compileSourceModule opts env sm0 let sm1 = if isConcr sm then shareModule sm else sm -- cannot expand Str diff --git a/src/GF/Compile/GetGrammar.hs b/src/GF/Compile/GetGrammar.hs index f9cdbcc14..b8ee7c3cc 100644 --- a/src/GF/Compile/GetGrammar.hs +++ b/src/GF/Compile/GetGrammar.hs @@ -42,7 +42,11 @@ getSourceModule opts file0 = do string <- readFileIOE file let tokens = myLexer string mo1 <- ioeErr $ pModDef tokens - ioeErr $ transModDef mo1 + mo2 <- ioeErr $ transModDef mo1 + return $ addOptionsToModule opts mo2 + +addOptionsToModule :: Options -> SourceModule -> SourceModule +addOptionsToModule opts = mapSourceModule (\m -> m { flags = flags m `addOptions` opts }) -- FIXME: should use System.IO.openTempFile runPreprocessor :: FilePath -> String -> IOE FilePath