forked from GitHub/gf-core
Copy command-line options to module flags when compiling to .gfo.
This commit is contained in:
@@ -158,8 +158,9 @@ compileOne opts env@(_,srcgr,_) file = do
|
||||
then compileOne opts env $ gfo
|
||||
else do
|
||||
|
||||
sm00 <- putpOpt ("- parsing" +++ file) ("- compiling" +++ file ++ "... ") $
|
||||
sm000 <- 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
|
||||
@@ -171,7 +172,6 @@ compileOne opts env@(_,srcgr,_) file = do
|
||||
ModMod m -> isModCnc m && mstatus m /= MSIncomplete
|
||||
_ -> False
|
||||
|
||||
|
||||
compileSourceModule :: Options -> CompileEnv ->
|
||||
SourceModule -> IOE (Int,SourceModule)
|
||||
compileSourceModule opts env@(k,gr,_) mo@(i,mi) = do
|
||||
|
||||
@@ -21,6 +21,7 @@ module GF.Grammar.Grammar (SourceGrammar,
|
||||
SourceAbs,
|
||||
SourceRes,
|
||||
SourceCnc,
|
||||
mapSourceModule,
|
||||
Info(..),
|
||||
PValues,
|
||||
Perh,
|
||||
@@ -75,6 +76,9 @@ type SourceAbs = Module Ident Info
|
||||
type SourceRes = Module Ident Info
|
||||
type SourceCnc = Module Ident Info
|
||||
|
||||
mapSourceModule :: (Module Ident Info -> Module Ident Info) -> SourceModule -> SourceModule
|
||||
mapSourceModule f (i,mi) = (i, mapModules' f mi)
|
||||
|
||||
-- this is created in CheckGrammar, and so are Val and PVal
|
||||
type PValues = [Term]
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ module GF.Infra.Modules (
|
||||
MReuseType(..), MInclude (..),
|
||||
extends, isInherited,inheritAll,
|
||||
updateMGrammar, updateModule, replaceJudgements, addFlag,
|
||||
addOpenQualif, flagsModule, allFlags, mapModules,
|
||||
addOpenQualif, flagsModule, allFlags, mapModules, mapModules',
|
||||
MainGrammar(..), MainConcreteSpec(..), OpenSpec(..), OpenQualif(..),
|
||||
oSimple, oQualif,
|
||||
ModuleStatus(..),
|
||||
@@ -141,9 +141,12 @@ allFlags gr = concatOptions $ map flags $ [m | (_, ModMod m) <- modules gr]
|
||||
|
||||
mapModules :: (Module i a -> Module i a)
|
||||
-> MGrammar i a -> MGrammar i a
|
||||
mapModules f = MGrammar . map (onSnd mapModules') . modules
|
||||
where mapModules' (ModMod m) = ModMod (f m)
|
||||
mapModules' m = m
|
||||
mapModules f = MGrammar . map (onSnd (mapModules' f)) . modules
|
||||
|
||||
mapModules' :: (Module i a -> Module i a)
|
||||
-> ModInfo i a -> ModInfo i a
|
||||
mapModules' f (ModMod m) = ModMod (f m)
|
||||
mapModules' _ m = m
|
||||
|
||||
data MainGrammar i = MainGrammar {
|
||||
mainAbstract :: i ,
|
||||
|
||||
Reference in New Issue
Block a user