summaryrefslogtreecommitdiff
path: root/src-3.0/GF/Compile/GrammarToGFCC.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2008-06-12 13:11:38 +0000
committerkrasimir <krasimir@chalmers.se>2008-06-12 13:11:38 +0000
commit79cbcdad2d5751e086990d8d98dfef4fcb4a8612 (patch)
treed845eac86e756b7ad5a8f35131d44f57a599a66a /src-3.0/GF/Compile/GrammarToGFCC.hs
parent0a6085a7e2699fca3c8d6d38a08b3072430f8b5e (diff)
add generation of erasing PMCFG grammars
Diffstat (limited to 'src-3.0/GF/Compile/GrammarToGFCC.hs')
-rw-r--r--src-3.0/GF/Compile/GrammarToGFCC.hs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src-3.0/GF/Compile/GrammarToGFCC.hs b/src-3.0/GF/Compile/GrammarToGFCC.hs
index 61502663d..a27b4e761 100644
--- a/src-3.0/GF/Compile/GrammarToGFCC.hs
+++ b/src-3.0/GF/Compile/GrammarToGFCC.hs
@@ -3,7 +3,8 @@ module GF.Compile.GrammarToGFCC (prGrammar2gfcc,mkCanon2gfcc,addParsers) where
import GF.Compile.Export
import GF.Compile.OptimizeGF (unshareModule)
-import GF.Compile.GenerateFCFG (convertConcrete)
+import qualified GF.Compile.GenerateFCFG as FCFG
+import qualified GF.Compile.GeneratePMCFG as PMCFG
import PGF.CId
import PGF.BuildParser (buildParserInfo)
@@ -54,7 +55,12 @@ mkCanon2gfcc opts cnc gr =
addParsers :: D.PGF -> D.PGF
addParsers pgf = pgf { D.concretes = Map.map conv (D.concretes pgf) }
where
- conv cnc = cnc { D.parser = Just (buildParserInfo (convertConcrete (D.abstract pgf) cnc)) }
+ conv cnc = cnc { D.parser = Just (buildParserInfo fcfg) }
+ where
+ fcfg
+ | Map.lookup (mkCId "erasing") (D.cflags cnc) == Just "on" = PMCFG.convertConcrete (D.abstract pgf) cnc
+ | otherwise = FCFG.convertConcrete (D.abstract pgf) cnc
+
-- Generate PGF from GFCM.
-- this assumes a grammar translated by canon2canon