From d6f32b3bcd03e7fe806a1b64cd370ba78dc00aa7 Mon Sep 17 00:00:00 2001 From: krasimir Date: Wed, 9 Jun 2010 11:32:59 +0000 Subject: dead code elimination for PGF. Note: the produced grammars will not work well with metavariables and high-order abstract syntax --- src/compiler/GFC.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/compiler/GFC.hs') diff --git a/src/compiler/GFC.hs b/src/compiler/GFC.hs index 1f0ac870b..352827f6d 100644 --- a/src/compiler/GFC.hs +++ b/src/compiler/GFC.hs @@ -4,6 +4,7 @@ module GFC (mainGFC) where import PGF import PGF.CId import PGF.Data +import PGF.Optimize import GF.Compile import GF.Compile.Export @@ -55,7 +56,8 @@ compileCFFiles opts fs = unionPGFFiles :: Options -> [FilePath] -> IOE () unionPGFFiles opts fs = do pgfs <- mapM readPGFVerbose fs - let pgf = foldl1 unionPGF pgfs + let pgf0 = foldl1 unionPGF pgfs + pgf = if flag optOptimizePGF opts then optimizePGF pgf0 else pgf0 pgfFile = grammarName opts pgf <.> "pgf" if pgfFile `elem` fs then putStrLnE $ "Refusing to overwrite " ++ pgfFile -- cgit v1.2.3