summaryrefslogtreecommitdiff
path: root/deprecated/old-lib/resource/hdeva.hs
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-12-22 14:11:55 +0000
committeraarne <aarne@chalmers.se>2010-12-22 14:11:55 +0000
commitc5b963769539c8a7c9bd154585686d263c7d6d8a (patch)
treec1bc4129d94e51c5e68ed4b7c1888ae120aac3fd /deprecated/old-lib/resource/hdeva.hs
parentce15ec7b787479ca4c7295863ea7fa5cfdd16755 (diff)
removed GF/deprecated
Diffstat (limited to 'deprecated/old-lib/resource/hdeva.hs')
-rw-r--r--deprecated/old-lib/resource/hdeva.hs145
1 files changed, 0 insertions, 145 deletions
diff --git a/deprecated/old-lib/resource/hdeva.hs b/deprecated/old-lib/resource/hdeva.hs
deleted file mode 100644
index 7976c93f1..000000000
--- a/deprecated/old-lib/resource/hdeva.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-import System
-
-main = do
- s <- getContents
- let ofile = "devaout.html"
- writeFile ofile "<html><body>\n<p>\n"
- appendFile ofile $ udevap s
- appendFile ofile "\n<p></body></html>\n"
- system ("open " ++ ofile)
-
----main = interact udeva
-
-udevap :: String -> String
-udevap = unlines . map (unwords . ("<p>":). map udevaWord . words) . lines
-
-udeva :: String -> String
-udeva = unlines . map (unwords . map udevaWord . words) . lines
-
-udevaGF :: String -> String
-udevaGF s = case s of
- '"':cs -> let (w,q:rest) = span (/='"') cs in '"' : udevaWord w ++ [q] ++ udevaGF rest
- c :cs -> c : udevaGF cs
- _ -> s
-
-udevaWord = encodeUTF8 . str2deva
-
-str2deva :: String -> String
-str2deva s = map toEnum $ case chop s of
- c:cs -> encodeInit c : map encode cs
- _ -> []
-
-chop s = case s of
- ['-'] -> [s]
- '-' :cs -> let (c:r) = chop cs in ('-':c) : r -- to force initial vowel
- '+' :cs -> let (c:r) = chop cs in ('+':c) : r -- to force non-initial vowel
- v:':':cs -> [v,':'] : chop cs
- v:'.':cs -> [v,'.'] : chop cs
- c:'a':cs -> [c] : chop cs
- c :cs -> [c] : chop cs
- _ -> []
-
-encodeInit :: String -> Int
-encodeInit s = case s of
- '+':c -> encode c
- '-':c -> encodeInit c
- "a" -> 0x0905
- "a:" -> 0x0906
- "i" -> 0x0907
- "i:" -> 0x0908
- "u" -> 0x0909
- "u:" -> 0x090a
- "r:" -> 0x090b
- "e" -> 0x090f
- "E" -> 0x0910
- "o" -> 0x0913
- "O" -> 0x0914
- _ -> encode s
-
-encode :: String -> Int
-encode s = case s of
- "k" -> 0x0915
- "K" -> 0x0916
- "g" -> 0x0917
- "G" -> 0x0918
- "N:" -> 0x0919
-
- "c" -> 0x091a
- "C" -> 0x091b
- "j" -> 0x091c
- "J" -> 0x091d
- "n:" -> 0x091e
-
- "t." -> 0x091f
- "T." -> 0x0920
- "d." -> 0x0921
- "D." -> 0x0922
- "n." -> 0x0923
-
- "t" -> 0x0924
- "T" -> 0x0925
- "d" -> 0x0926
- "D" -> 0x0927
- "n" -> 0x0928
-
- "p" -> 0x092a
- "P" -> 0x092b
- "b" -> 0x092c
- "B" -> 0x092d
- "m" -> 0x092e
-
- "y" -> 0x092f
- "r" -> 0x0930
- "l" -> 0x0932
- "v" -> 0x0935
-
- "S" -> 0x0936
- "s." -> 0x0937
- "s" -> 0x0938
- "h" -> 0x0939
-
- "z" -> 0x095b
- "R" -> 0x095c
-
- "a:" -> 0x093e
- "i" -> 0x093f
- "i:" -> 0x0940
- "u" -> 0x0941
- "u:" -> 0x0942
- "r:" -> 0x0943
- "e" -> 0x0947
- "E" -> 0x0948
- "o" -> 0x094b
- "O" -> 0x094c
-
- "~" -> 0x0901
- "*" -> 0x0902
-
- " " -> space
- "\n" -> fromEnum '\n'
-
- '-':c -> encodeInit c
- '+':c -> encode c
-
- _ -> 0x093e --- a:
-
-
-space = fromEnum ' '
-
-
-encodeUTF8 :: String -> String
-encodeUTF8 "" = ""
-encodeUTF8 (c:cs) =
- if c > '\x0000' && c < '\x0080' then
- c : encodeUTF8 cs
- else if c < toEnum 0x0800 then
- let i = fromEnum c
- in toEnum (0xc0 + i `div` 0x40) :
- toEnum (0x80 + i `mod` 0x40) :
- encodeUTF8 cs
- else
- let i = fromEnum c
- in toEnum (0xe0 + i `div` 0x1000) :
- toEnum (0x80 + (i `mod` 0x1000) `div` 0x40) :
- toEnum (0x80 + i `mod` 0x40) :
- encodeUTF8 cs