diff options
| author | aarne <unknown> | 2005-09-04 10:45:37 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2005-09-04 10:45:37 +0000 |
| commit | 1a9a2ceaea22bca18424755becd4cb40e751a22b (patch) | |
| tree | e28463224d0d3d8c8ebb2be73a9026d07ecde905 /src/GF/UseGrammar/Statistics.hs | |
| parent | 6a01681d73102e6034bfd864a3cb674b54fc07ec (diff) | |
stat; type of imperatives in lib/resource
Diffstat (limited to 'src/GF/UseGrammar/Statistics.hs')
| -rw-r--r-- | src/GF/UseGrammar/Statistics.hs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/GF/UseGrammar/Statistics.hs b/src/GF/UseGrammar/Statistics.hs new file mode 100644 index 000000000..46e4fcc3b --- /dev/null +++ b/src/GF/UseGrammar/Statistics.hs @@ -0,0 +1,44 @@ +---------------------------------------------------------------------- +-- | +-- Module : Statistics +-- Maintainer : AR +-- Stability : (stable) +-- Portability : (portable) +-- +-- > CVS $Date: 2005/09/04 11:45:38 $ +-- > CVS $Author: aarne $ +-- > CVS $Revision: 1.1 $ +-- +-- statistics on canonical grammar: amounts of generated code +-- AR 4\/9\/2005. +-- uses canonical grammar +----------------------------------------------------------------------------- + +module GF.UseGrammar.Statistics (prStatistics) where + +import GF.Infra.Modules +import GF.Infra.Option +import GF.Grammar.PrGrammar +import GF.Canon.GFC +import GF.Canon.MkGFC + +import GF.Data.Operations + +import Data.List (sortBy) + +-- | the top level function +prStatistics :: CanonGrammar -> String +prStatistics can = unlines $ [ + show (length mods) ++ "\t\t modules", + show chars ++ "\t\t gfc size", + "", + "Top 40 definitions" + ] ++ + [show d ++ "\t\t " ++ f | (d,f) <- tops] + where + tops = take 40 $ reverse $ sortBy (\ (i,_) (j,_) -> compare i j) defs + defs = [(length (prt (info2def j)), name m j) | (m,j) <- infos] + infos = [(m,j) | (m,ModMod mo) <- mods, j <- tree2list (jments mo)] + name m (f,_) = prt m ++ "." ++ prt f + mods = modules can + chars = length $ prCanon can |
