diff options
| author | aarne <unknown> | 2005-10-07 12:06:19 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2005-10-07 12:06:19 +0000 |
| commit | ea1dcfd70aa7a2fb6a0b4227a6a5b83123bb4985 (patch) | |
| tree | 7d29674d99f1337e4d6cfe434faf722698b7f5c6 /src/GF/Embed/TemplateApp.hs | |
| parent | 01466aa3fdf5ace2b1d0750b6c7d7d919242d3ac (diff) | |
Embed/TemplateApp
Diffstat (limited to 'src/GF/Embed/TemplateApp.hs')
| -rw-r--r-- | src/GF/Embed/TemplateApp.hs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/GF/Embed/TemplateApp.hs b/src/GF/Embed/TemplateApp.hs new file mode 100644 index 000000000..f8722691f --- /dev/null +++ b/src/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" + ] |
