summaryrefslogtreecommitdiff
path: root/src/GF/Compile/ShellState.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Compile/ShellState.hs')
-rw-r--r--src/GF/Compile/ShellState.hs19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/GF/Compile/ShellState.hs b/src/GF/Compile/ShellState.hs
index 51e05abd0..ad1566f1f 100644
--- a/src/GF/Compile/ShellState.hs
+++ b/src/GF/Compile/ShellState.hs
@@ -70,7 +70,8 @@ data StateGrammar = StGr {
grammar :: CanonGrammar,
cf :: CF,
---- parser :: StaticParserInfo,
- morpho :: Morpho
+ morpho :: Morpho,
+ loptions :: Options
}
emptyStateGrammar = StGr {
@@ -78,14 +79,15 @@ emptyStateGrammar = StGr {
cncId = identC "#EMPTY", ---
grammar = M.emptyMGrammar,
cf = emptyCF,
- morpho = emptyMorpho
+ morpho = emptyMorpho,
+ loptions = noOptions
}
-- analysing shell grammar into parts
stateGrammarST = grammar
stateCF = cf
stateMorpho = morpho
-stateOptions _ = noOptions ----
+stateOptions = loptions ----
cncModuleIdST = stateGrammarST
@@ -122,16 +124,17 @@ updateShellState opts sh (gr,(sgr,rts)) = do
| (c,co) <- cats, let tc = cat2val co c]
let deps = True ---- not $ null $ allDepCats cgr
let binds = [] ---- allCatsWithBind cgr
+ let src = M.updateMGrammar (srcModules sh) sgr
return $ ShSt {
abstract = abstr0,
concrete = concr0,
concretes = zip concrs concrs,
canModules = cgr,
- srcModules = M.updateMGrammar (srcModules sh) sgr,
+ srcModules = src,
cfs = zip concrs cfs,
morphos = zip concrs (repeat emptyMorpho),
- gloptions = opts, ---- -- global options
+ gloptions = options (M.allFlags src), ---- canModules
readFiles = [ft | ft@(f,_) <- readFiles sh, notInrts f] ++ rts,
absCats = csi,
statistics = [StDepTypes deps,StBoundVars binds]
@@ -194,7 +197,8 @@ stateGrammarOfLang st l = StGr {
cncId = l,
grammar = canModules st, ---- only those needed for l
cf = maybe emptyCF id (lookup l (cfs st)),
- morpho = maybe emptyMorpho id (lookup l (morphos st))
+ morpho = maybe emptyMorpho id (lookup l (morphos st)),
+ loptions = gloptions st ---- only the own ones!
}
grammarOfLang st = stateGrammarST . stateGrammarOfLang st
@@ -218,7 +222,8 @@ stateAbstractGrammar st = StGr {
cncId = identC "#Cnc", ---
grammar = canModules st, ---- only abstarct ones
cf = emptyCF,
- morpho = emptyMorpho
+ morpho = emptyMorpho,
+ loptions = gloptions st ----
}