diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-09-17 13:50:41 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-09-17 13:50:41 +0000 |
| commit | 35f81967eab677ed4a8f58fef27f4945f684ee8b (patch) | |
| tree | 6a7f19a075436cbff27b3e0691a82bd16902745f /src/GF/Canon/GFCC/RunGFCC.hs | |
| parent | 927ad7b1355a3b72d30970cac808792f848551a6 (diff) | |
random generation in GFCC
Diffstat (limited to 'src/GF/Canon/GFCC/RunGFCC.hs')
| -rw-r--r-- | src/GF/Canon/GFCC/RunGFCC.hs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/GF/Canon/GFCC/RunGFCC.hs b/src/GF/Canon/GFCC/RunGFCC.hs index 943697dd4..704b6ced8 100644 --- a/src/GF/Canon/GFCC/RunGFCC.hs +++ b/src/GF/Canon/GFCC/RunGFCC.hs @@ -7,6 +7,7 @@ import GF.Canon.GFCC.ParGFCC import GF.Canon.GFCC.PrintGFCC import GF.Data.Operations import Data.Map +import System.Random (newStdGen) import System -- Simple translation application built on GFCC. AR 7/9/2006 @@ -15,6 +16,7 @@ main :: IO () main = do file <- getLine ----getArgs grammar <- file2gfcc file + putStrLn $ statGFCC grammar loop grammar loop :: GFCC -> IO () @@ -27,16 +29,19 @@ loop grammar = do treat :: GFCC -> String -> IO () treat grammar s = case words s of "gt":cat:n:_ -> do - mapM_ prlin $ take (read n) $ generate grammar (CId cat) - _ -> lin $ readExp s + mapM_ prlins $ take (read n) $ generate grammar (CId cat) + "gr":cat:n:_ -> do + gen <- newStdGen + mapM_ prlins $ take (read n) $ generateRandom gen grammar (CId cat) + _ -> lins $ readExp s where - lang = head $ cncnames grammar - lin t = do - putStrLn $ printTree $ linExp grammar lang t + lins t = mapM_ (lin t) $ cncnames grammar + lin t lang = do + -- putStrLn $ printTree $ linExp grammar lang t putStrLn $ linearize grammar lang t - prlin t = do + prlins t = do putStrLn $ printTree t - lin t + lins t --- should be in an API |
