From 5f986f599216d3c6aa86515ae1949612414ff9c6 Mon Sep 17 00:00:00 2001 From: krasimir Date: Mon, 18 May 2009 15:52:10 +0000 Subject: added filtering for useless productions in PMCFG --- src/GF/Compile/GeneratePMCFG.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/GF/Compile/GeneratePMCFG.hs') diff --git a/src/GF/Compile/GeneratePMCFG.hs b/src/GF/Compile/GeneratePMCFG.hs index e29fce754..bb3215102 100644 --- a/src/GF/Compile/GeneratePMCFG.hs +++ b/src/GF/Compile/GeneratePMCFG.hs @@ -405,13 +405,15 @@ getParserInfo :: GrammarEnv -> ParserInfo getParserInfo (GrammarEnv last_id catSet seqSet funSet crcSet prodSet) = ParserInfo { functions = mkArray funSet , sequences = mkArray seqSet - , productions = IntMap.union prodSet coercions + , productions0= productions0 + , productions = filterProductions productions0 , startCats = maybe Map.empty (Map.map (\(start,end,_) -> range (start,end))) (IntMap.lookup 0 catSet) , totalCats = last_id+1 } where mkArray map = array (0,Map.size map-1) [(v,k) | (k,v) <- Map.toList map] + productions0 = IntMap.union prodSet coercions coercions = IntMap.fromList [(fcat,Set.fromList (map FCoerce sub_fcats)) | (sub_fcats,fcat) <- Map.toList crcSet] getFCats :: GrammarEnv -> ProtoFCat -> [FCat] -- cgit v1.2.3