diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-05-20 11:47:44 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-05-20 11:47:44 +0000 |
| commit | 31bf84122b21efb444aa8d055472e166ffb90783 (patch) | |
| tree | 1f051909336f1534346bcccde8dda59beab02f64 /src-2.9/GF/Embed/TemplateApp.hs | |
| parent | 74f048dcf41de3540778de54dfa7541fa5b39c46 (diff) | |
moved all old source code to src-2.9 ; src will be for GF 3 development
Diffstat (limited to 'src-2.9/GF/Embed/TemplateApp.hs')
| -rw-r--r-- | src-2.9/GF/Embed/TemplateApp.hs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src-2.9/GF/Embed/TemplateApp.hs b/src-2.9/GF/Embed/TemplateApp.hs new file mode 100644 index 000000000..f8722691f --- /dev/null +++ b/src-2.9/GF/Embed/TemplateApp.hs @@ -0,0 +1,44 @@ +module Main where + +import GF.Embed.EmbedAPI +import System + +-- Simple translation application built on EmbedAPI. AR 7/10/2005 + +main :: IO () +main = do + file:_ <- getArgs + grammar <- file2grammar file + translate grammar + +translate :: MultiGrammar -> IO () +translate grammar = do + s <- getLine + if s == "quit" then return () else do + treat grammar s + translate grammar + +treat :: MultiGrammar -> String -> IO () +treat grammar s = putStrLn $ case comm of + ["lin"] -> unlines $ linearizeAll grammar $ readTree grammar rest + ["lin",lang] -> linearize grammar lang $ readTree grammar rest + ["parse",cat] -> unlines $ map showTree $ concat $ parseAll grammar cat rest + ["parse",lang,cat] -> unlines $ map showTree $ parse grammar lang cat rest + ["langs"] -> unwords $ languages grammar + ["cats"] -> unwords $ categories grammar + ["help"] -> helpMsg + _ -> "command not interpreted: " ++ s + where + (comm,rest) = (words c,drop 1 r) where + (c,r) = span (/=':') s + +helpMsg = unlines [ + "lin : <Tree>", + "lin <Lang> : <Tree>", + "parse <Cat> : <String>", + "parse <Lang> <Cat> : <String>", + "langs", + "cats", + "help", + "quit" + ] |
