summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile/CheckGrammar.hs
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2011-08-30 18:54:50 +0000
committerhallgren <hallgren@chalmers.se>2011-08-30 18:54:50 +0000
commitba10b5b0ca0c906b1b5c94f64b37b5a34f200f71 (patch)
tree360302c1d8eb917dd650a9df405b3cca504459ab /src/compiler/GF/Compile/CheckGrammar.hs
parent2001788b0242a0c945655c503262ccf104bcc3bd (diff)
GF.Infra.Modules: keep the modules of a grammar in a finite map instead of a list
This speeds up the compilation of PhrasebookFin.pgf by 12%, mosly by speeding up calls to lookupModule in calls from lookupParamValues, in calls from allParamValues. The invariant "modules are stored in dependency order" is no longer respected! But the type MGrammar is now abstract, making it easier to maintain this or other invariants in the future.
Diffstat (limited to 'src/compiler/GF/Compile/CheckGrammar.hs')
-rw-r--r--src/compiler/GF/Compile/CheckGrammar.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/GF/Compile/CheckGrammar.hs b/src/compiler/GF/Compile/CheckGrammar.hs
index 035b47238..b3129128b 100644
--- a/src/compiler/GF/Compile/CheckGrammar.hs
+++ b/src/compiler/GF/Compile/CheckGrammar.hs
@@ -47,7 +47,7 @@ checkModule :: [SourceModule] -> SourceModule -> Check SourceModule
checkModule ms m@(name,mo) = checkIn (text "checking module" <+> ppIdent name) $ do
checkRestrictedInheritance ms m
m <- case mtype mo of
- MTConcrete a -> do let gr = MGrammar (m:ms)
+ MTConcrete a -> do let gr = mGrammar (m:ms)
abs <- checkErr $ lookupModule gr a
checkCompleteGrammar gr (a,abs) m
_ -> return m
@@ -221,7 +221,7 @@ checkInfo ms (m,mo) c info = do
_ -> return info
where
- gr = MGrammar ((m,mo) : ms)
+ gr = mGrammar ((m,mo) : ms)
chIn loc cat = checkIn (text "Happened in" <+> text cat <+> ppIdent c <+> ppPosition m loc <> colon)
mkPar (L loc (f,co)) =