Adding an option to the gf compiler to add an index to pgf files

This is gonna be used by the android library to skip unused part of a
pgf file
This commit is contained in:
gdetrez
2010-12-11 16:36:30 +00:00
parent 65384be75e
commit 0c7676e6e9
4 changed files with 45 additions and 1 deletions

View File

@@ -167,6 +167,7 @@ data Flags = Flags {
optEncoding :: String,
optOptimizations :: Set Optimization,
optOptimizePGF :: Bool,
optMkIndexPGF :: Bool,
optCFGTransforms :: Set CFGTransform,
optLibraryPath :: [FilePath],
optStartCat :: Maybe String,
@@ -268,6 +269,7 @@ defaultFlags = Flags {
optEncoding = "latin1",
optOptimizations = Set.fromList [OptStem,OptCSE,OptExpand,OptParametrize],
optOptimizePGF = False,
optMkIndexPGF = False,
optCFGTransforms = Set.fromList [CFGRemoveCycles, CFGBottomUpFilter,
CFGTopDownFilter, CFGMergeIdentical],
optLibraryPath = [],
@@ -360,6 +362,8 @@ optDescr =
"Select an optimization package. OPT = all | values | parametrize | none",
Option [] ["optimize-pgf"] (NoArg (optimize_pgf True))
"Enable or disable global grammar optimization. This could significantly reduce the size of the final PGF file",
Option [] ["mk-index"] (NoArg (mkIndex True))
"Add an index to the pgf file",
Option [] ["stem"] (onOff (toggleOptimize OptStem) True) "Perform stem-suffix analysis (default on).",
Option [] ["cse"] (onOff (toggleOptimize OptCSE) True) "Perform common sub-expression elimination (default on).",
Option [] ["cfg"] (ReqArg cfgTransform "TRANS") "Enable or disable specific CFG transformations. TRANS = merge, no-merge, bottomup, no-bottomup, ...",
@@ -421,6 +425,7 @@ optDescr =
Nothing -> fail $ "Unknown optimization package: " ++ x
optimize_pgf x = set $ \o -> o { optOptimizePGF = x }
mkIndex x = set $ \o -> o { optMkIndexPGF = x }
toggleOptimize x b = set $ setOptimization' x b