diff options
| author | aarne <unknown> | 2004-01-28 12:42:20 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2004-01-28 12:42:20 +0000 |
| commit | 1ca54cca208876f83014119da55e747d5342b434 (patch) | |
| tree | 63413b08d9e26f3a55f82c2da9dcb0c5eef1d06d /src/GF/Translate | |
| parent | 1b002dec90ce2b080301f54a8f84a91ca6669879 (diff) | |
Unicode. Batch transl into HTML.
Diffstat (limited to 'src/GF/Translate')
| -rw-r--r-- | src/GF/Translate/GFT.hs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/GF/Translate/GFT.hs b/src/GF/Translate/GFT.hs new file mode 100644 index 000000000..0dd42c6d2 --- /dev/null +++ b/src/GF/Translate/GFT.hs @@ -0,0 +1,43 @@ +module Main where + +import ShellState +import GetGFC +import API + +import Unicode +import UTF8 +import UseIO +import Option +import Modules (emptyMGrammar) ---- +import Operations + +import System +import List + + +main :: IO () +main = do + file:_ <- getArgs + let opts = noOptions + can <- useIOE (error "no grammar file") $ getCanonGrammar file + st <- err error return $ + grammar2shellState opts (can, emptyMGrammar) + let grs = allStateGrammars st + let cat = firstCatOpts opts (firstStateGrammar st) + +---- interact (doTranslate grs cat) + s <- getLine + putStrLnFlush $ doTranslate grs cat s + +doTranslate grs cat s = + let ss = [l +++ ":" +++ s | (l,s) <- zip (map (prIdent . cncId) grs) + (translateBetweenAll grs cat s)] + in mkHTML ss + +mkHTML = unlines . htmlDoc . intersperse "<p>" . map (encodeUTF8 . mkUnicode) . sort + +htmlDoc ss = "<html>":metaHead:"<body>": ss ++ ["</body>","</html>"] + +metaHead = + "<HEAD><META http-equiv=Content-Type content=\"text/html; charset=utf-8\"></HEAD>" + |
