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.

This commit is contained in:
bjorn
2008-10-16 11:58:18 +00:00
parent 176dc3e730
commit bb25c86ae5
2 changed files with 6 additions and 3 deletions

View File

@@ -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

View File

@@ -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