diff options
| author | aarne <aarne@chalmers.se> | 2011-09-21 13:24:59 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2011-09-21 13:24:59 +0000 |
| commit | bd22b935de38f7a25169905a787e36b6dbe37792 (patch) | |
| tree | 54638550f3af1725480eb3b69011f4f884e39a9f /src/compiler/GFI.hs | |
| parent | 89fb9a7fdfc3b1be52026ce3b0badf7889a407b6 (diff) | |
statistics on grammar size in terms of constructors
Diffstat (limited to 'src/compiler/GFI.hs')
| -rw-r--r-- | src/compiler/GFI.hs | 19 |
1 files changed, 13 insertions, 6 deletions
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 |
