From 92b1b85a1ff0971c35242ee665717fcfb3dbead6 Mon Sep 17 00:00:00 2001 From: bringert Date: Wed, 27 Jun 2007 16:27:08 +0000 Subject: [PATCH] Print SRG stats when preprocessing grammar. --- src/GF/Speech/SRG.hs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/GF/Speech/SRG.hs b/src/GF/Speech/SRG.hs index 49fa67f27..293cee34c 100644 --- a/src/GF/Speech/SRG.hs +++ b/src/GF/Speech/SRG.hs @@ -50,6 +50,8 @@ import qualified Data.Map as Map import Data.Set (Set) import qualified Data.Set as Set +import Debug.Trace + data SRG = SRG { grammarName :: String -- ^ grammar name , startCat :: SRGCat -- ^ start category name , origStartCat :: String -- ^ original start category name @@ -87,10 +89,22 @@ makeSimpleSRG :: Options -- ^ Grammar options -> SRG makeSimpleSRG opt s = makeSRG preprocess opt s where - preprocess origStart = mergeIdentical + preprocess origStart = traceStats "After mergeIdentical" + . mergeIdentical + . traceStats "After removeLeftRecursion" . removeLeftRecursion origStart - . fix (topDownFilter origStart . bottomUpFilter) - . removeCycles + . fix (traceStats "After topDownFilter" + . topDownFilter origStart + . traceStats "After bottomUpFilter" + . bottomUpFilter) + . traceStats "After removeCycles" + . removeCycles + . traceStats "Inital CFG" + +traceStats s g = trace (s ++ ": " ++ stats g) g + +stats g = "Categories: " ++ show (length (filter (not . null . snd) g)) + ++ " Rules: " ++ show (length (concatMap snd g)) makeNonRecursiveSRG :: Options -> StateGrammar