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 | |
| parent | 6a01681d73102e6034bfd864a3cb674b54fc07ec (diff) | |
stat; type of imperatives in lib/resource
Diffstat (limited to 'src/GF/UseGrammar')
| -rw-r--r-- | src/GF/UseGrammar/Custom.hs | 8 | ||||
| -rw-r--r-- | src/GF/UseGrammar/Statistics.hs | 44 |
2 files changed, 49 insertions, 3 deletions
diff --git a/src/GF/UseGrammar/Custom.hs b/src/GF/UseGrammar/Custom.hs index 2e54bcb18..c952bcd5c 100644 --- a/src/GF/UseGrammar/Custom.hs +++ b/src/GF/UseGrammar/Custom.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/09/01 09:53:19 $ --- > CVS $Author: peb $ --- > CVS $Revision: 1.69 $ +-- > CVS $Date: 2005/09/04 11:45:38 $ +-- > CVS $Author: aarne $ +-- > CVS $Revision: 1.70 $ -- -- A database for customizable GF shell commands. -- @@ -61,6 +61,7 @@ import GF.Speech.PrSLF (slfPrinter) import GF.Data.Zipper +import GF.UseGrammar.Statistics import GF.UseGrammar.Morphology import GF.API.GrammarToHaskell -----import GrammarToCanon (showCanon, showCanonOpt) @@ -249,6 +250,7 @@ customGrammarPrinter = ,(strCI "opts", prOpts . stateOptions) ,(strCI "words", unwords . stateGrammarWords) ,(strCI "printnames", C.prPrintnamesGrammar . stateGrammarST) + ,(strCI "stat", prStatistics . stateGrammarST) {- ---- (strCI "gf", prt . st2grammar . stateGrammarST) -- DEFAULT ,(strCI "canon", showCanon "Lang" . stateGrammarST) 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 |
