forked from GitHub/gf-core
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:
@@ -158,9 +158,8 @@ compileOne opts env@(_,srcgr,_) file = do
|
|||||||
then compileOne opts env $ gfo
|
then compileOne opts env $ gfo
|
||||||
else do
|
else do
|
||||||
|
|
||||||
sm000 <- putpOpt ("- parsing" +++ file) ("- compiling" +++ file ++ "... ") $
|
sm00 <- putpOpt ("- parsing" +++ file) ("- compiling" +++ file ++ "... ") $
|
||||||
getSourceModule opts file
|
getSourceModule opts file
|
||||||
let sm00 = mapSourceModule (\m -> m { flags = flags m `addOptions` opts }) sm000
|
|
||||||
let sm0 = decodeStringsInModule sm00
|
let sm0 = decodeStringsInModule sm00
|
||||||
(k',sm) <- compileSourceModule opts env sm0
|
(k',sm) <- compileSourceModule opts env sm0
|
||||||
let sm1 = if isConcr sm then shareModule sm else sm -- cannot expand Str
|
let sm1 = if isConcr sm then shareModule sm else sm -- cannot expand Str
|
||||||
|
|||||||
@@ -42,7 +42,11 @@ getSourceModule opts file0 = do
|
|||||||
string <- readFileIOE file
|
string <- readFileIOE file
|
||||||
let tokens = myLexer string
|
let tokens = myLexer string
|
||||||
mo1 <- ioeErr $ pModDef tokens
|
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
|
-- FIXME: should use System.IO.openTempFile
|
||||||
runPreprocessor :: FilePath -> String -> IOE FilePath
|
runPreprocessor :: FilePath -> String -> IOE FilePath
|
||||||
|
|||||||
Reference in New Issue
Block a user