From bd22b935de38f7a25169905a787e36b6dbe37792 Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 21 Sep 2011 13:24:59 +0000 Subject: statistics on grammar size in terms of constructors --- src/compiler/GFI.hs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/compiler/GFI.hs') diff --git a/src/compiler/GFI.hs b/src/compiler/GFI.hs index b0e36462e..28f7b1dc2 100644 --- a/src/compiler/GFI.hs +++ b/src/compiler/GFI.hs @@ -224,13 +224,20 @@ execute1 opts gfenv0 s0 = let mygr = strip $ case ts of _:_ -> mGrammar [(i,m) | (i,m) <- modules sgr, elem (showIdent i) ts] [] -> sgr - if elem "-save" os - then mapM_ - (\ m@(i,_) -> let file = (showIdent i ++ ".gfh") in - writeFile file (render (ppModule Qualified m)) >> putStrLn ("wrote " ++ file)) - (modules mygr) - else putStrLn $ render $ ppGrammar mygr + case 0 of + _ | elem "-detailedsize" os -> putStrLn (printSizesGrammar mygr) + _ | elem "-size" os -> do + let sz = sizesGrammar mygr + putStrLn $ unlines $ + ("total\t" ++ show (fst sz)): + [showIdent j ++ "\t" ++ show (fst k) | (j,k) <- snd sz] + _ | elem "-save" os -> mapM_ + (\ m@(i,_) -> let file = (showIdent i ++ ".gfh") in + writeFile file (render (ppModule Qualified m)) >> putStrLn ("wrote " ++ file)) + (modules mygr) + _ -> putStrLn $ render $ ppGrammar mygr continue gfenv + dependency_graph ws = do let stop = case ws of ('-':'o':'n':'l':'y':'=':fs):_ -> Just $ chunks ',' fs -- cgit v1.2.3