mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-20 18:29:33 -06:00
70 lines
2.6 KiB
Haskell
70 lines
2.6 KiB
Haskell
----------------------------------------------------------------------
|
|
-- |
|
|
-- Module : LatinASupplement
|
|
-- Maintainer : (Maintainer)
|
|
-- Stability : (stable)
|
|
-- Portability : (portable)
|
|
--
|
|
-- > CVS $Date: 2005/04/21 16:23:39 $
|
|
-- > CVS $Author: bringert $
|
|
-- > CVS $Revision: 1.5 $
|
|
--
|
|
-- (Description of the module)
|
|
-----------------------------------------------------------------------------
|
|
|
|
module GF.Text.LatinASupplement (mkLatinASupplement) where
|
|
|
|
mkLatinASupplement :: String -> String
|
|
mkLatinASupplement = mkLatinASupplementWord
|
|
|
|
mkLatinASupplementWord :: String -> String
|
|
mkLatinASupplementWord str = case str of
|
|
[] -> []
|
|
'<' : cs -> '<' : spoolMarkup cs
|
|
-- Romanian & partly Turkish
|
|
's' : ',' : cs -> toEnum 0x015f : mkLatinASupplementWord cs
|
|
'a' : '%' : cs -> toEnum 0x0103 : mkLatinASupplementWord cs
|
|
-- Slavic and more
|
|
'c' : '^' : cs -> toEnum 0x010d : mkLatinASupplementWord cs
|
|
's' : '^' : cs -> toEnum 0x0161 : mkLatinASupplementWord cs
|
|
'c' : '\'' : cs -> toEnum 0x0107 : mkLatinASupplementWord cs
|
|
'z' : '^' : cs -> toEnum 0x017e : mkLatinASupplementWord cs
|
|
-- Turkish
|
|
'g' : '%' : cs -> toEnum 0x011f : mkLatinASupplementWord cs
|
|
'I' : cs -> toEnum 0x0131 : mkLatinASupplementWord cs
|
|
'c' : ',' : cs -> toEnum 0x00e7 : mkLatinASupplementWord cs
|
|
-- Polish
|
|
'e' : ',' : cs -> toEnum 0x0119 : mkLatinASupplementWord cs
|
|
'a' : ',' : cs -> toEnum 0x0105 : mkLatinASupplementWord cs
|
|
'l' : '/' : cs -> toEnum 0x0142 : mkLatinASupplementWord cs
|
|
'z' : '.' : cs -> toEnum 0x017c : mkLatinASupplementWord cs
|
|
'n' : '\'' : cs -> toEnum 0x0144 : mkLatinASupplementWord cs
|
|
's' : '\'' : cs -> toEnum 0x015b : mkLatinASupplementWord cs
|
|
-- 'c' : '\'' : cs -> toEnum 0x0107 : mkLatinASupplementWord cs
|
|
|
|
-- Hungarian
|
|
'o' : '%' : cs -> toEnum 0x0151 : mkLatinASupplementWord cs
|
|
'u' : '%' : cs -> toEnum 0x0171 : mkLatinASupplementWord cs
|
|
|
|
-- Mongolian
|
|
'j' : '^' : cs -> toEnum 0x0135 : mkLatinASupplementWord cs
|
|
|
|
-- Khowar (actually in Combining diacritical marks not Latin-A Suppl.)
|
|
'o' : '.' : cs -> 'o' : (toEnum 0x0323 : mkLatinASupplementWord cs)
|
|
|
|
-- Length bars over vowels e.g korean
|
|
'a' : ':' : cs -> toEnum 0x0101 : mkLatinASupplementWord cs
|
|
'e' : ':' : cs -> toEnum 0x0113 : mkLatinASupplementWord cs
|
|
'i' : ':' : cs -> toEnum 0x012b : mkLatinASupplementWord cs
|
|
'o' : ':' : cs -> toEnum 0x014d : mkLatinASupplementWord cs
|
|
'u' : ':' : cs -> toEnum 0x016b : mkLatinASupplementWord cs
|
|
|
|
-- Default
|
|
c : cs -> c : mkLatinASupplementWord cs
|
|
|
|
spoolMarkup :: String -> String
|
|
spoolMarkup s = case s of
|
|
[] -> [] -- Shouldn't happen
|
|
'>' : cs -> '>' : mkLatinASupplementWord cs
|
|
c1 : cs -> c1 : spoolMarkup cs
|