ascii-flatten (empty) → 0.1.0.0
raw patch · 12 files changed
+1875/−0 lines, 12 filesdep +ascii-flattendep +basedep +textsetup-changed
Dependencies added: ascii-flatten, base, text
Files
- Conv.hs +13/−0
- Data/Char/AsciiFlatten.hs +852/−0
- LICENSE +24/−0
- Main.hs +12/−0
- README.md +46/−0
- Setup.hs +2/−0
- ascii-flatten.cabal +25/−0
- build.sh +7/−0
- charset.txt +845/−0
- conv +7/−0
- genCode.awk +7/−0
- stack.yaml +35/−0
+ Conv.hs view
@@ -0,0 +1,13 @@+module Main where+import Control.Applicative+import Data.Char++main :: IO ()+main = interact (unlines . map process . lines)++process :: String -> String+process s = + let (x:ys) = words s+ s' :: Char + s' = chr . read $ x + in (s':' ':concat ys)
+ Data/Char/AsciiFlatten.hs view
@@ -0,0 +1,852 @@+module Data.Char.AsciiFlatten (+ asciiFlattenCI+) where++-- | Flatten characters to lower-cased ASCII+asciiFlattenCI :: Char -> Char+asciiFlattenCI 'À' = 'a'+asciiFlattenCI 'Á' = 'a'+asciiFlattenCI 'Â' = 'a'+asciiFlattenCI 'Ã' = 'a'+asciiFlattenCI 'Ä' = 'a'+asciiFlattenCI 'Å' = 'a'+asciiFlattenCI 'à' = 'a'+asciiFlattenCI 'á' = 'a'+asciiFlattenCI 'â' = 'a'+asciiFlattenCI 'ã' = 'a'+asciiFlattenCI 'ä' = 'a'+asciiFlattenCI 'å' = 'a'+asciiFlattenCI 'Ā' = 'a'+asciiFlattenCI 'ā' = 'a'+asciiFlattenCI 'Ă' = 'a'+asciiFlattenCI 'ă' = 'a'+asciiFlattenCI '𐌀' = 'a'+asciiFlattenCI 'Ą' = 'a'+asciiFlattenCI 'ą' = 'a'+asciiFlattenCI 'Ǎ' = 'a'+asciiFlattenCI 'ǎ' = 'a'+asciiFlattenCI 'Ǟ' = 'a'+asciiFlattenCI 'ǟ' = 'a'+asciiFlattenCI 'Ǡ' = 'a'+asciiFlattenCI 'ǡ' = 'a'+asciiFlattenCI 'Ǻ' = 'a'+asciiFlattenCI 'ǻ' = 'a'+asciiFlattenCI 'Ȁ' = 'a'+asciiFlattenCI 'ȁ' = 'a'+asciiFlattenCI 'Ȃ' = 'a'+asciiFlattenCI 'ȃ' = 'a'+asciiFlattenCI 'Ȧ' = 'a'+asciiFlattenCI 'ȧ' = 'a'+asciiFlattenCI 'Ⱥ' = 'a'+asciiFlattenCI 'ɐ' = 'a'+asciiFlattenCI 'Ӑ' = 'a'+asciiFlattenCI 'ӑ' = 'a'+asciiFlattenCI 'ᴬ' = 'a'+asciiFlattenCI 'ᵃ' = 'a'+asciiFlattenCI 'ᵄ' = 'a'+asciiFlattenCI 'ᶏ' = 'a'+asciiFlattenCI 'Ḁ' = 'a'+asciiFlattenCI 'ḁ' = 'a'+asciiFlattenCI 'ẚ' = 'a'+asciiFlattenCI 'Ạ' = 'a'+asciiFlattenCI 'ạ' = 'a'+asciiFlattenCI 'Ả' = 'a'+asciiFlattenCI 'ả' = 'a'+asciiFlattenCI 'Ấ' = 'a'+asciiFlattenCI 'ấ' = 'a'+asciiFlattenCI 'Ầ' = 'a'+asciiFlattenCI 'ầ' = 'a'+asciiFlattenCI 'Ẩ' = 'a'+asciiFlattenCI 'ẩ' = 'a'+asciiFlattenCI 'Ẫ' = 'a'+asciiFlattenCI 'ẫ' = 'a'+asciiFlattenCI 'Ậ' = 'a'+asciiFlattenCI 'ậ' = 'a'+asciiFlattenCI 'Ắ' = 'a'+asciiFlattenCI 'ắ' = 'a'+asciiFlattenCI 'Ằ' = 'a'+asciiFlattenCI 'ằ' = 'a'+asciiFlattenCI 'Ẳ' = 'a'+asciiFlattenCI 'ẳ' = 'a'+asciiFlattenCI 'Ẵ' = 'a'+asciiFlattenCI 'ẵ' = 'a'+asciiFlattenCI 'Ặ' = 'a'+asciiFlattenCI 'ặ' = 'a'+asciiFlattenCI 'ₐ' = 'a'+asciiFlattenCI 'ⱥ' = 'a'+asciiFlattenCI 'ƀ' = 'b'+asciiFlattenCI 'Ɓ' = 'b'+asciiFlattenCI 'Ƃ' = 'b'+asciiFlattenCI 'ƃ' = 'b'+asciiFlattenCI 'Ƀ' = 'b'+asciiFlattenCI 'ɓ' = 'b'+asciiFlattenCI 'ʙ' = 'b'+asciiFlattenCI 'ᛒ' = 'b'+asciiFlattenCI 'ᴃ' = 'b'+asciiFlattenCI 'ᴮ' = 'b'+asciiFlattenCI 'ᴯ' = 'b'+asciiFlattenCI 'ᵇ' = 'b'+asciiFlattenCI 'ᵬ' = 'b'+asciiFlattenCI 'ᶀ' = 'b'+asciiFlattenCI 'Ḃ' = 'b'+asciiFlattenCI 'ḃ' = 'b'+asciiFlattenCI 'Ḅ' = 'b'+asciiFlattenCI 'ḅ' = 'b'+asciiFlattenCI 'Ḇ' = 'b'+asciiFlattenCI 'ḇ' = 'b'+asciiFlattenCI 'Ç' = 'c'+asciiFlattenCI 'ç' = 'c'+asciiFlattenCI 'Ć' = 'c'+asciiFlattenCI 'ć' = 'c'+asciiFlattenCI 'Ĉ' = 'c'+asciiFlattenCI 'ĉ' = 'c'+asciiFlattenCI 'Ċ' = 'c'+asciiFlattenCI 'ċ' = 'c'+asciiFlattenCI 'Č' = 'c'+asciiFlattenCI 'č' = 'c'+asciiFlattenCI 'Ƈ' = 'c'+asciiFlattenCI 'ƈ' = 'c'+asciiFlattenCI 'Ȼ' = 'c'+asciiFlattenCI 'ȼ' = 'c'+asciiFlattenCI 'ɕ' = 'c'+asciiFlattenCI 'ʗ' = 'c'+asciiFlattenCI 'ᶜ' = 'c'+asciiFlattenCI 'ᶝ' = 'c'+asciiFlattenCI 'Ḉ' = 'c'+asciiFlattenCI 'ḉ' = 'c'+asciiFlattenCI 'ℭ' = 'c'+asciiFlattenCI 'ↄ' = 'c'+asciiFlattenCI 'Ď' = 'd'+asciiFlattenCI 'ď' = 'd'+asciiFlattenCI 'Đ' = 'd'+asciiFlattenCI 'đ' = 'd'+asciiFlattenCI 'Ɖ' = 'd'+asciiFlattenCI 'Ɗ' = 'd'+asciiFlattenCI 'Ƌ' = 'd'+asciiFlattenCI 'ƌ' = 'd'+asciiFlattenCI 'Dž' = 'd'+asciiFlattenCI 'Dz' = 'd'+asciiFlattenCI 'ȡ' = 'd'+asciiFlattenCI 'ɖ' = 'd'+asciiFlattenCI 'ɗ' = 'd'+asciiFlattenCI 'ᴅ' = 'd'+asciiFlattenCI 'ᴰ' = 'd'+asciiFlattenCI 'ᵈ' = 'd'+asciiFlattenCI 'ᵭ' = 'd'+asciiFlattenCI 'ᶁ' = 'd'+asciiFlattenCI 'ᶑ' = 'd'+asciiFlattenCI 'Ḋ' = 'd'+asciiFlattenCI 'ḋ' = 'd'+asciiFlattenCI 'Ḍ' = 'd'+asciiFlattenCI 'ḍ' = 'd'+asciiFlattenCI 'Ḏ' = 'd'+asciiFlattenCI 'ḏ' = 'd'+asciiFlattenCI 'Ḑ' = 'd'+asciiFlattenCI 'ḑ' = 'd'+asciiFlattenCI 'Ḓ' = 'd'+asciiFlattenCI 'ḓ' = 'd'+asciiFlattenCI 'È' = 'e'+asciiFlattenCI 'É' = 'e'+asciiFlattenCI 'Ê' = 'e'+asciiFlattenCI 'Ë' = 'e'+asciiFlattenCI 'è' = 'e'+asciiFlattenCI 'é' = 'e'+asciiFlattenCI 'ê' = 'e'+asciiFlattenCI 'ë' = 'e'+asciiFlattenCI 'Ē' = 'e'+asciiFlattenCI 'ē' = 'e'+asciiFlattenCI 'Ĕ' = 'e'+asciiFlattenCI 'ĕ' = 'e'+asciiFlattenCI 'Ė' = 'e'+asciiFlattenCI 'ė' = 'e'+asciiFlattenCI 'Ę' = 'e'+asciiFlattenCI 'ę' = 'e'+asciiFlattenCI 'Ě' = 'e'+asciiFlattenCI 'ě' = 'e'+asciiFlattenCI 'Ǝ' = 'e'+asciiFlattenCI 'Ɛ' = 'e'+asciiFlattenCI 'ǝ' = 'e'+asciiFlattenCI 'Ȅ' = 'e'+asciiFlattenCI 'ȅ' = 'e'+asciiFlattenCI 'Ȇ' = 'e'+asciiFlattenCI 'ȇ' = 'e'+asciiFlattenCI 'Ȩ' = 'e'+asciiFlattenCI 'ȩ' = 'e'+asciiFlattenCI 'Ɇ' = 'e'+asciiFlattenCI 'ɇ' = 'e'+asciiFlattenCI 'ɘ' = 'e'+asciiFlattenCI 'ɛ' = 'e'+asciiFlattenCI 'ɜ' = 'e'+asciiFlattenCI 'ɝ' = 'e'+asciiFlattenCI 'ɞ' = 'e'+asciiFlattenCI 'ʚ' = 'e'+asciiFlattenCI 'ᴇ' = 'e'+asciiFlattenCI 'ᴈ' = 'e'+asciiFlattenCI 'ᴱ' = 'e'+asciiFlattenCI 'ᴲ' = 'e'+asciiFlattenCI 'ᵉ' = 'e'+asciiFlattenCI 'ᵋ' = 'e'+asciiFlattenCI 'ᵌ' = 'e'+asciiFlattenCI 'ᶒ' = 'e'+asciiFlattenCI 'ᶓ' = 'e'+asciiFlattenCI 'ᶔ' = 'e'+asciiFlattenCI 'ᶟ' = 'e'+asciiFlattenCI 'Ḕ' = 'e'+asciiFlattenCI 'ḕ' = 'e'+asciiFlattenCI 'Ḗ' = 'e'+asciiFlattenCI 'ḗ' = 'e'+asciiFlattenCI 'Ḙ' = 'e'+asciiFlattenCI 'ḙ' = 'e'+asciiFlattenCI 'Ḛ' = 'e'+asciiFlattenCI 'ḛ' = 'e'+asciiFlattenCI 'Ḝ' = 'e'+asciiFlattenCI 'ḝ' = 'e'+asciiFlattenCI 'Ẹ' = 'e'+asciiFlattenCI 'ẹ' = 'e'+asciiFlattenCI 'Ẻ' = 'e'+asciiFlattenCI 'ẻ' = 'e'+asciiFlattenCI 'Ẽ' = 'e'+asciiFlattenCI 'ẽ' = 'e'+asciiFlattenCI 'Ế' = 'e'+asciiFlattenCI 'ế' = 'e'+asciiFlattenCI 'Ề' = 'e'+asciiFlattenCI 'ề' = 'e'+asciiFlattenCI 'Ể' = 'e'+asciiFlattenCI 'ể' = 'e'+asciiFlattenCI 'Ễ' = 'e'+asciiFlattenCI 'ễ' = 'e'+asciiFlattenCI 'Ệ' = 'e'+asciiFlattenCI 'ệ' = 'e'+asciiFlattenCI 'ₑ' = 'e'+asciiFlattenCI 'Ƒ' = 'f'+asciiFlattenCI 'ƒ' = 'f'+asciiFlattenCI 'ᵮ' = 'f'+asciiFlattenCI 'ᶂ' = 'f'+asciiFlattenCI 'ᶠ' = 'f'+asciiFlattenCI 'Ḟ' = 'f'+asciiFlattenCI 'ḟ' = 'f'+asciiFlattenCI 'Ĝ' = 'g'+asciiFlattenCI 'ĝ' = 'g'+asciiFlattenCI 'Ğ' = 'g'+asciiFlattenCI 'ğ' = 'g'+asciiFlattenCI 'Ġ' = 'g'+asciiFlattenCI 'ġ' = 'g'+asciiFlattenCI 'Ģ' = 'g'+asciiFlattenCI 'ģ' = 'g'+asciiFlattenCI 'Ɠ' = 'g'+asciiFlattenCI 'Ǥ' = 'g'+asciiFlattenCI 'ǥ' = 'g'+asciiFlattenCI 'Ǧ' = 'g'+asciiFlattenCI 'ǧ' = 'g'+asciiFlattenCI 'Ǵ' = 'g'+asciiFlattenCI 'ǵ' = 'g'+asciiFlattenCI 'ɠ' = 'g'+asciiFlattenCI 'ɡ' = 'g'+asciiFlattenCI 'ɢ' = 'g'+asciiFlattenCI 'ʛ' = 'g'+asciiFlattenCI 'ᴳ' = 'g'+asciiFlattenCI 'ᵍ' = 'g'+asciiFlattenCI 'ᵷ' = 'g'+asciiFlattenCI 'ᵹ' = 'g'+asciiFlattenCI 'ᶃ' = 'g'+asciiFlattenCI 'ᶢ' = 'g'+asciiFlattenCI 'Ḡ' = 'g'+asciiFlattenCI 'ḡ' = 'g'+asciiFlattenCI 'Ĥ' = 'h'+asciiFlattenCI 'ĥ' = 'h'+asciiFlattenCI 'Ħ' = 'h'+asciiFlattenCI 'ħ' = 'h'+asciiFlattenCI 'Ȟ' = 'h'+asciiFlattenCI 'ȟ' = 'h'+asciiFlattenCI 'ɥ' = 'h'+asciiFlattenCI 'ɦ' = 'h'+asciiFlattenCI 'ʜ' = 'h'+asciiFlattenCI 'ʮ' = 'h'+asciiFlattenCI 'ʯ' = 'h'+asciiFlattenCI 'ʰ' = 'h'+asciiFlattenCI 'ʱ' = 'h'+asciiFlattenCI 'ᴴ' = 'h'+asciiFlattenCI 'ᶣ' = 'h'+asciiFlattenCI 'Ḣ' = 'h'+asciiFlattenCI 'ḣ' = 'h'+asciiFlattenCI 'Ḥ' = 'h'+asciiFlattenCI 'ḥ' = 'h'+asciiFlattenCI 'Ḧ' = 'h'+asciiFlattenCI 'ḧ' = 'h'+asciiFlattenCI 'Ḩ' = 'h'+asciiFlattenCI 'ḩ' = 'h'+asciiFlattenCI 'Ḫ' = 'h'+asciiFlattenCI 'ḫ' = 'h'+asciiFlattenCI 'ẖ' = 'h'+asciiFlattenCI 'ℌ' = 'h'+asciiFlattenCI 'Ⱨ' = 'h'+asciiFlattenCI 'ⱨ' = 'h'+asciiFlattenCI 'Ⱶ' = 'h'+asciiFlattenCI 'ⱶ' = 'h'+asciiFlattenCI 'Ì' = 'i'+asciiFlattenCI 'Í' = 'i'+asciiFlattenCI 'Î' = 'i'+asciiFlattenCI 'Ï' = 'i'+asciiFlattenCI 'ì' = 'i'+asciiFlattenCI 'í' = 'i'+asciiFlattenCI 'î' = 'i'+asciiFlattenCI 'ï' = 'i'+asciiFlattenCI '𐌉' = 'i'+asciiFlattenCI 'Ĩ' = 'i'+asciiFlattenCI 'ĩ' = 'i'+asciiFlattenCI 'Ī' = 'i'+asciiFlattenCI 'ī' = 'i'+asciiFlattenCI 'Ĭ' = 'i'+asciiFlattenCI 'ĭ' = 'i'+asciiFlattenCI 'Į' = 'i'+asciiFlattenCI 'į' = 'i'+asciiFlattenCI 'İ' = 'i'+asciiFlattenCI 'ı' = 'i'+asciiFlattenCI 'Ɨ' = 'i'+asciiFlattenCI 'Ǐ' = 'i'+asciiFlattenCI 'ǐ' = 'i'+asciiFlattenCI 'Ȉ' = 'i'+asciiFlattenCI 'ȉ' = 'i'+asciiFlattenCI 'Ȋ' = 'i'+asciiFlattenCI 'ȋ' = 'i'+asciiFlattenCI 'ɨ' = 'i'+asciiFlattenCI 'ɪ' = 'i'+asciiFlattenCI 'Ѝ' = 'i'+asciiFlattenCI 'И' = 'i'+asciiFlattenCI 'Й' = 'i'+asciiFlattenCI 'и' = 'i'+asciiFlattenCI 'й' = 'i'+asciiFlattenCI 'і' = 'i'+asciiFlattenCI 'ᴉ' = 'i'+asciiFlattenCI 'ᴵ' = 'i'+asciiFlattenCI 'ᵎ' = 'i'+asciiFlattenCI 'ᵢ' = 'i'+asciiFlattenCI 'ᵻ' = 'i'+asciiFlattenCI 'ᶖ' = 'i'+asciiFlattenCI 'ᶤ' = 'i'+asciiFlattenCI 'ᶦ' = 'i'+asciiFlattenCI 'ᶧ' = 'i'+asciiFlattenCI 'Ḭ' = 'i'+asciiFlattenCI 'ḭ' = 'i'+asciiFlattenCI 'Ḯ' = 'i'+asciiFlattenCI 'ḯ' = 'i'+asciiFlattenCI 'Ỉ' = 'i'+asciiFlattenCI 'ỉ' = 'i'+asciiFlattenCI 'Ị' = 'i'+asciiFlattenCI 'ị' = 'i'+asciiFlattenCI 'ⁱ' = 'i'+asciiFlattenCI 'ℑ' = 'i'+asciiFlattenCI 'Ĵ' = 'j'+asciiFlattenCI 'ĵ' = 'j'+asciiFlattenCI 'Lj' = 'j'+asciiFlattenCI 'Nj' = 'j'+asciiFlattenCI 'ǰ' = 'j'+asciiFlattenCI 'ȷ' = 'j'+asciiFlattenCI 'Ɉ' = 'j'+asciiFlattenCI 'ɉ' = 'j'+asciiFlattenCI 'ɟ' = 'j'+asciiFlattenCI 'ʄ' = 'j'+asciiFlattenCI 'ʝ' = 'j'+asciiFlattenCI 'ʲ' = 'j'+asciiFlattenCI 'ᴊ' = 'j'+asciiFlattenCI 'ᴶ' = 'j'+asciiFlattenCI 'ᶡ' = 'j'+asciiFlattenCI 'ᶨ' = 'j'+asciiFlattenCI 'Ķ' = 'k'+asciiFlattenCI 'ķ' = 'k'+asciiFlattenCI 'Ƙ' = 'k'+asciiFlattenCI 'ƙ' = 'k'+asciiFlattenCI 'Ǩ' = 'k'+asciiFlattenCI 'ǩ' = 'k'+asciiFlattenCI 'ʞ' = 'k'+asciiFlattenCI 'ᴋ' = 'k'+asciiFlattenCI 'ᴷ' = 'k'+asciiFlattenCI 'ᵏ' = 'k'+asciiFlattenCI 'ᶄ' = 'k'+asciiFlattenCI 'Ḱ' = 'k'+asciiFlattenCI 'ḱ' = 'k'+asciiFlattenCI 'Ḳ' = 'k'+asciiFlattenCI 'ḳ' = 'k'+asciiFlattenCI 'Ḵ' = 'k'+asciiFlattenCI 'ḵ' = 'k'+asciiFlattenCI 'Ⱪ' = 'k'+asciiFlattenCI 'ⱪ' = 'k'+asciiFlattenCI 'Ĺ' = 'l'+asciiFlattenCI 'ĺ' = 'l'+asciiFlattenCI 'Ļ' = 'l'+asciiFlattenCI 'ļ' = 'l'+asciiFlattenCI 'Ľ' = 'l'+asciiFlattenCI 'ľ' = 'l'+asciiFlattenCI 'Ŀ' = 'l'+asciiFlattenCI 'ŀ' = 'l'+asciiFlattenCI 'Ł' = 'l'+asciiFlattenCI 'ł' = 'l'+asciiFlattenCI 'ƚ' = 'l'+asciiFlattenCI 'Lj' = 'l'+asciiFlattenCI 'ȴ' = 'l'+asciiFlattenCI 'Ƚ' = 'l'+asciiFlattenCI 'ɫ' = 'l'+asciiFlattenCI 'ɬ' = 'l'+asciiFlattenCI 'ɭ' = 'l'+asciiFlattenCI 'ʟ' = 'l'+asciiFlattenCI 'ˡ' = 'l'+asciiFlattenCI 'ᴌ' = 'l'+asciiFlattenCI 'ᴸ' = 'l'+asciiFlattenCI 'ᶅ' = 'l'+asciiFlattenCI 'ᶩ' = 'l'+asciiFlattenCI 'ᶪ' = 'l'+asciiFlattenCI 'ᶫ' = 'l'+asciiFlattenCI 'Ḷ' = 'l'+asciiFlattenCI 'ḷ' = 'l'+asciiFlattenCI 'Ḹ' = 'l'+asciiFlattenCI 'ḹ' = 'l'+asciiFlattenCI 'Ḻ' = 'l'+asciiFlattenCI 'ḻ' = 'l'+asciiFlattenCI 'Ḽ' = 'l'+asciiFlattenCI 'ḽ' = 'l'+asciiFlattenCI 'Ⱡ' = 'l'+asciiFlattenCI 'ⱡ' = 'l'+asciiFlattenCI 'Ɫ' = 'l'+asciiFlattenCI 'Ɯ' = 'm'+asciiFlattenCI 'ɯ' = 'm'+asciiFlattenCI 'ɰ' = 'm'+asciiFlattenCI 'ɱ' = 'm'+asciiFlattenCI 'ᴍ' = 'm'+asciiFlattenCI 'ᴟ' = 'm'+asciiFlattenCI 'ᴹ' = 'm'+asciiFlattenCI 'ᵐ' = 'm'+asciiFlattenCI 'ᵚ' = 'm'+asciiFlattenCI 'ᵯ' = 'm'+asciiFlattenCI 'ᶆ' = 'm'+asciiFlattenCI 'ᶬ' = 'm'+asciiFlattenCI 'ᶭ' = 'm'+asciiFlattenCI 'Ḿ' = 'm'+asciiFlattenCI 'ḿ' = 'm'+asciiFlattenCI 'Ṁ' = 'm'+asciiFlattenCI 'ṁ' = 'm'+asciiFlattenCI 'Ṃ' = 'm'+asciiFlattenCI 'ṃ' = 'm'+asciiFlattenCI 'Ñ' = 'n'+asciiFlattenCI 'ñ' = 'n'+asciiFlattenCI 'Ń' = 'n'+asciiFlattenCI 'ń' = 'n'+asciiFlattenCI 'Ņ' = 'n'+asciiFlattenCI 'ņ' = 'n'+asciiFlattenCI 'Ň' = 'n'+asciiFlattenCI 'ň' = 'n'+asciiFlattenCI 'ʼn' = 'n'+asciiFlattenCI 'Ɲ' = 'n'+asciiFlattenCI 'ƞ' = 'n'+asciiFlattenCI 'Nj' = 'n'+asciiFlattenCI 'Ǹ' = 'n'+asciiFlattenCI 'ǹ' = 'n'+asciiFlattenCI 'Ƞ' = 'n'+asciiFlattenCI 'ȵ' = 'n'+asciiFlattenCI 'ɲ' = 'n'+asciiFlattenCI 'ɳ' = 'n'+asciiFlattenCI 'ɴ' = 'n'+asciiFlattenCI 'ᴎ' = 'n'+asciiFlattenCI 'ᴺ' = 'n'+asciiFlattenCI 'ᴻ' = 'n'+asciiFlattenCI 'ᵰ' = 'n'+asciiFlattenCI 'ᶇ' = 'n'+asciiFlattenCI 'ᶮ' = 'n'+asciiFlattenCI 'ᶯ' = 'n'+asciiFlattenCI 'ᶰ' = 'n'+asciiFlattenCI 'Ṅ' = 'n'+asciiFlattenCI 'ṅ' = 'n'+asciiFlattenCI 'Ṇ' = 'n'+asciiFlattenCI 'ṇ' = 'n'+asciiFlattenCI 'Ṉ' = 'n'+asciiFlattenCI 'ṉ' = 'n'+asciiFlattenCI 'Ṋ' = 'n'+asciiFlattenCI 'ṋ' = 'n'+asciiFlattenCI 'ⁿ' = 'n'+asciiFlattenCI 'Ò' = 'o'+asciiFlattenCI 'Ó' = 'o'+asciiFlattenCI 'Ô' = 'o'+asciiFlattenCI 'Õ' = 'o'+asciiFlattenCI 'Ö' = 'o'+asciiFlattenCI 'Ø' = 'o'+asciiFlattenCI 'ò' = 'o'+asciiFlattenCI 'ó' = 'o'+asciiFlattenCI 'ô' = 'o'+asciiFlattenCI 'õ' = 'o'+asciiFlattenCI 'ö' = 'o'+asciiFlattenCI 'ø' = 'o'+asciiFlattenCI '𐌏' = 'o'+asciiFlattenCI 'Ō' = 'o'+asciiFlattenCI 'ō' = 'o'+asciiFlattenCI 'Ŏ' = 'o'+asciiFlattenCI 'ŏ' = 'o'+asciiFlattenCI 'Ő' = 'o'+asciiFlattenCI 'ő' = 'o'+asciiFlattenCI 'Ɔ' = 'o'+asciiFlattenCI 'Ɵ' = 'o'+asciiFlattenCI 'Ơ' = 'o'+asciiFlattenCI 'ơ' = 'o'+asciiFlattenCI 'Ǒ' = 'o'+asciiFlattenCI 'ǒ' = 'o'+asciiFlattenCI 'Ǫ' = 'o'+asciiFlattenCI 'ǫ' = 'o'+asciiFlattenCI 'Ǭ' = 'o'+asciiFlattenCI 'ǭ' = 'o'+asciiFlattenCI 'Ǿ' = 'o'+asciiFlattenCI 'ǿ' = 'o'+asciiFlattenCI 'Ȍ' = 'o'+asciiFlattenCI 'ȍ' = 'o'+asciiFlattenCI 'Ȏ' = 'o'+asciiFlattenCI 'ȏ' = 'o'+asciiFlattenCI 'Ȫ' = 'o'+asciiFlattenCI 'ȫ' = 'o'+asciiFlattenCI 'Ȭ' = 'o'+asciiFlattenCI 'ȭ' = 'o'+asciiFlattenCI 'Ȯ' = 'o'+asciiFlattenCI 'ȯ' = 'o'+asciiFlattenCI 'Ȱ' = 'o'+asciiFlattenCI 'ȱ' = 'o'+asciiFlattenCI 'ɔ' = 'o'+asciiFlattenCI 'ɵ' = 'o'+asciiFlattenCI 'о' = 'o'+asciiFlattenCI 'Ӧ' = 'o'+asciiFlattenCI 'ӧ' = 'o'+asciiFlattenCI 'Ө' = 'o'+asciiFlattenCI 'ө' = 'o'+asciiFlattenCI 'Ӫ' = 'o'+asciiFlattenCI 'ӫ' = 'o'+asciiFlattenCI 'ᴏ' = 'o'+asciiFlattenCI 'ᴐ' = 'o'+asciiFlattenCI 'ᴑ' = 'o'+asciiFlattenCI 'ᴒ' = 'o'+asciiFlattenCI 'ᴓ' = 'o'+asciiFlattenCI 'ᴖ' = 'o'+asciiFlattenCI 'ᴗ' = 'o'+asciiFlattenCI 'ᴼ' = 'o'+asciiFlattenCI 'ᵒ' = 'o'+asciiFlattenCI 'ᵓ' = 'o'+asciiFlattenCI 'ᵔ' = 'o'+asciiFlattenCI 'ᵕ' = 'o'+asciiFlattenCI 'ᶗ' = 'o'+asciiFlattenCI 'ᶱ' = 'o'+asciiFlattenCI 'Ṍ' = 'o'+asciiFlattenCI 'ṍ' = 'o'+asciiFlattenCI 'Ṏ' = 'o'+asciiFlattenCI 'ṏ' = 'o'+asciiFlattenCI 'Ṑ' = 'o'+asciiFlattenCI 'ṑ' = 'o'+asciiFlattenCI 'Ṓ' = 'o'+asciiFlattenCI 'ṓ' = 'o'+asciiFlattenCI 'Ọ' = 'o'+asciiFlattenCI 'ọ' = 'o'+asciiFlattenCI 'Ỏ' = 'o'+asciiFlattenCI 'ỏ' = 'o'+asciiFlattenCI 'Ố' = 'o'+asciiFlattenCI 'ố' = 'o'+asciiFlattenCI 'Ồ' = 'o'+asciiFlattenCI 'ồ' = 'o'+asciiFlattenCI 'Ổ' = 'o'+asciiFlattenCI 'ổ' = 'o'+asciiFlattenCI 'Ỗ' = 'o'+asciiFlattenCI 'ỗ' = 'o'+asciiFlattenCI 'Ộ' = 'o'+asciiFlattenCI 'ộ' = 'o'+asciiFlattenCI 'Ớ' = 'o'+asciiFlattenCI 'ớ' = 'o'+asciiFlattenCI 'Ờ' = 'o'+asciiFlattenCI 'ờ' = 'o'+asciiFlattenCI 'Ở' = 'o'+asciiFlattenCI 'ở' = 'o'+asciiFlattenCI 'Ỡ' = 'o'+asciiFlattenCI 'ỡ' = 'o'+asciiFlattenCI 'Ợ' = 'o'+asciiFlattenCI 'ợ' = 'o'+asciiFlattenCI 'ₒ' = 'o'+asciiFlattenCI 'Ⲟ' = 'o'+asciiFlattenCI 'ⲟ' = 'o'+asciiFlattenCI 'Ƥ' = 'p'+asciiFlattenCI 'ƥ' = 'p'+asciiFlattenCI 'ᴘ' = 'p'+asciiFlattenCI 'ᴾ' = 'p'+asciiFlattenCI 'ᵖ' = 'p'+asciiFlattenCI 'ᵱ' = 'p'+asciiFlattenCI 'ᵽ' = 'p'+asciiFlattenCI 'ᶈ' = 'p'+asciiFlattenCI 'Ṕ' = 'p'+asciiFlattenCI 'ṕ' = 'p'+asciiFlattenCI 'Ṗ' = 'p'+asciiFlattenCI 'ṗ' = 'p'+asciiFlattenCI 'Ᵽ' = 'p'+asciiFlattenCI 'Ɋ' = 'q'+asciiFlattenCI 'ɋ' = 'q'+asciiFlattenCI 'ʠ' = 'q'+asciiFlattenCI 'Ŕ' = 'r'+asciiFlattenCI 'ŕ' = 'r'+asciiFlattenCI 'Ŗ' = 'r'+asciiFlattenCI 'ŗ' = 'r'+asciiFlattenCI 'Ř' = 'r'+asciiFlattenCI 'ř' = 'r'+asciiFlattenCI 'Ȑ' = 'r'+asciiFlattenCI 'ȑ' = 'r'+asciiFlattenCI 'Ȓ' = 'r'+asciiFlattenCI 'ȓ' = 'r'+asciiFlattenCI 'Ɍ' = 'r'+asciiFlattenCI 'ɍ' = 'r'+asciiFlattenCI 'ɹ' = 'r'+asciiFlattenCI 'ɺ' = 'r'+asciiFlattenCI 'ɻ' = 'r'+asciiFlattenCI 'ɼ' = 'r'+asciiFlattenCI 'ɽ' = 'r'+asciiFlattenCI 'ɾ' = 'r'+asciiFlattenCI 'ɿ' = 'r'+asciiFlattenCI 'ʀ' = 'r'+asciiFlattenCI 'ʁ' = 'r'+asciiFlattenCI 'ʳ' = 'r'+asciiFlattenCI 'ʴ' = 'r'+asciiFlattenCI 'ʵ' = 'r'+asciiFlattenCI 'ʶ' = 'r'+asciiFlattenCI 'ᴙ' = 'r'+asciiFlattenCI 'ᴚ' = 'r'+asciiFlattenCI 'ᴿ' = 'r'+asciiFlattenCI 'ᵣ' = 'r'+asciiFlattenCI 'ᵲ' = 'r'+asciiFlattenCI 'ᵳ' = 'r'+asciiFlattenCI 'ᶉ' = 'r'+asciiFlattenCI '᷊' = 'r'+asciiFlattenCI 'Ṙ' = 'r'+asciiFlattenCI 'ṙ' = 'r'+asciiFlattenCI 'Ṛ' = 'r'+asciiFlattenCI 'ṛ' = 'r'+asciiFlattenCI 'Ṝ' = 'r'+asciiFlattenCI 'ṝ' = 'r'+asciiFlattenCI 'Ṟ' = 'r'+asciiFlattenCI 'ṟ' = 'r'+asciiFlattenCI 'ℜ' = 'r'+asciiFlattenCI 'Ɽ' = 'r'+asciiFlattenCI 'ß' = 's'+asciiFlattenCI 'Ś' = 's'+asciiFlattenCI 'ś' = 's'+asciiFlattenCI 'Ŝ' = 's'+asciiFlattenCI 'ŝ' = 's'+asciiFlattenCI 'Ş' = 's'+asciiFlattenCI 'ş' = 's'+asciiFlattenCI 'Š' = 's'+asciiFlattenCI 'š' = 's'+asciiFlattenCI 'ſ' = 's'+asciiFlattenCI 'Ș' = 's'+asciiFlattenCI 'ș' = 's'+asciiFlattenCI 'ȿ' = 's'+asciiFlattenCI 'ʂ' = 's'+asciiFlattenCI 'ˢ' = 's'+asciiFlattenCI 'ᵴ' = 's'+asciiFlattenCI 'ᶊ' = 's'+asciiFlattenCI 'ᶳ' = 's'+asciiFlattenCI 'Ṡ' = 's'+asciiFlattenCI 'ṡ' = 's'+asciiFlattenCI 'Ṣ' = 's'+asciiFlattenCI 'ṣ' = 's'+asciiFlattenCI 'Ṥ' = 's'+asciiFlattenCI 'ṥ' = 's'+asciiFlattenCI 'Ṧ' = 's'+asciiFlattenCI 'ṧ' = 's'+asciiFlattenCI 'Ṩ' = 's'+asciiFlattenCI 'ṩ' = 's'+asciiFlattenCI 'ẛ' = 's'+asciiFlattenCI 'Ţ' = 't'+asciiFlattenCI 'ţ' = 't'+asciiFlattenCI 'Ť' = 't'+asciiFlattenCI 'ť' = 't'+asciiFlattenCI 'Ŧ' = 't'+asciiFlattenCI 'ŧ' = 't'+asciiFlattenCI 'ƫ' = 't'+asciiFlattenCI 'Ƭ' = 't'+asciiFlattenCI 'ƭ' = 't'+asciiFlattenCI 'Ʈ' = 't'+asciiFlattenCI 'Ț' = 't'+asciiFlattenCI 'ț' = 't'+asciiFlattenCI 'ȶ' = 't'+asciiFlattenCI 'Ⱦ' = 't'+asciiFlattenCI 'ʇ' = 't'+asciiFlattenCI 'ʈ' = 't'+asciiFlattenCI 'ᴛ' = 't'+asciiFlattenCI 'ᵀ' = 't'+asciiFlattenCI 'ᵗ' = 't'+asciiFlattenCI 'ᵵ' = 't'+asciiFlattenCI 'ᶵ' = 't'+asciiFlattenCI 'Ṫ' = 't'+asciiFlattenCI 'ṫ' = 't'+asciiFlattenCI 'Ṭ' = 't'+asciiFlattenCI 'ṭ' = 't'+asciiFlattenCI 'Ṯ' = 't'+asciiFlattenCI 'ṯ' = 't'+asciiFlattenCI 'Ṱ' = 't'+asciiFlattenCI 'ṱ' = 't'+asciiFlattenCI 'ẗ' = 't'+asciiFlattenCI 'ⱦ' = 't'+asciiFlattenCI 'Ù' = 'u'+asciiFlattenCI 'Ú' = 'u'+asciiFlattenCI 'Û' = 'u'+asciiFlattenCI 'Ü' = 'u'+asciiFlattenCI 'ù' = 'u'+asciiFlattenCI 'ú' = 'u'+asciiFlattenCI 'û' = 'u'+asciiFlattenCI 'ü' = 'u'+asciiFlattenCI '𐌖' = 'u'+asciiFlattenCI 'Ũ' = 'u'+asciiFlattenCI 'ũ' = 'u'+asciiFlattenCI 'Ū' = 'u'+asciiFlattenCI 'ū' = 'u'+asciiFlattenCI 'Ŭ' = 'u'+asciiFlattenCI 'ŭ' = 'u'+asciiFlattenCI 'Ů' = 'u'+asciiFlattenCI 'ů' = 'u'+asciiFlattenCI 'Ű' = 'u'+asciiFlattenCI 'ű' = 'u'+asciiFlattenCI 'Ų' = 'u'+asciiFlattenCI 'ų' = 'u'+asciiFlattenCI 'Ư' = 'u'+asciiFlattenCI 'ư' = 'u'+asciiFlattenCI 'Ǔ' = 'u'+asciiFlattenCI 'ǔ' = 'u'+asciiFlattenCI 'Ǖ' = 'u'+asciiFlattenCI 'ǖ' = 'u'+asciiFlattenCI 'Ǘ' = 'u'+asciiFlattenCI 'ǘ' = 'u'+asciiFlattenCI 'Ǚ' = 'u'+asciiFlattenCI 'ǚ' = 'u'+asciiFlattenCI 'Ǜ' = 'u'+asciiFlattenCI 'ǜ' = 'u'+asciiFlattenCI 'Ȕ' = 'u'+asciiFlattenCI 'ȕ' = 'u'+asciiFlattenCI 'Ȗ' = 'u'+asciiFlattenCI 'ȗ' = 'u'+asciiFlattenCI 'Ʉ' = 'u'+asciiFlattenCI 'ʉ' = 'u'+asciiFlattenCI 'ᴜ' = 'u'+asciiFlattenCI 'ᴝ' = 'u'+asciiFlattenCI 'ᴞ' = 'u'+asciiFlattenCI 'ᵁ' = 'u'+asciiFlattenCI 'ᵘ' = 'u'+asciiFlattenCI 'ᵙ' = 'u'+asciiFlattenCI 'ᵤ' = 'u'+asciiFlattenCI 'ᵾ' = 'u'+asciiFlattenCI 'ᶙ' = 'u'+asciiFlattenCI 'ᶶ' = 'u'+asciiFlattenCI 'ᶸ' = 'u'+asciiFlattenCI 'Ṳ' = 'u'+asciiFlattenCI 'ṳ' = 'u'+asciiFlattenCI 'Ṵ' = 'u'+asciiFlattenCI 'ṵ' = 'u'+asciiFlattenCI 'Ṷ' = 'u'+asciiFlattenCI 'ṷ' = 'u'+asciiFlattenCI 'Ṹ' = 'u'+asciiFlattenCI 'ṹ' = 'u'+asciiFlattenCI 'Ṻ' = 'u'+asciiFlattenCI 'ṻ' = 'u'+asciiFlattenCI 'Ụ' = 'u'+asciiFlattenCI 'ụ' = 'u'+asciiFlattenCI 'Ủ' = 'u'+asciiFlattenCI 'ủ' = 'u'+asciiFlattenCI 'Ứ' = 'u'+asciiFlattenCI 'ứ' = 'u'+asciiFlattenCI 'Ừ' = 'u'+asciiFlattenCI 'ừ' = 'u'+asciiFlattenCI 'Ử' = 'u'+asciiFlattenCI 'ử' = 'u'+asciiFlattenCI 'Ữ' = 'u'+asciiFlattenCI 'ữ' = 'u'+asciiFlattenCI 'Ự' = 'u'+asciiFlattenCI 'ự' = 'u'+asciiFlattenCI 'Ʋ' = 'v'+asciiFlattenCI 'Ʌ' = 'v'+asciiFlattenCI 'ʋ' = 'v'+asciiFlattenCI 'ʌ' = 'v'+asciiFlattenCI 'ᴠ' = 'v'+asciiFlattenCI 'ᵛ' = 'v'+asciiFlattenCI 'ᵥ' = 'v'+asciiFlattenCI 'ᶌ' = 'v'+asciiFlattenCI 'ᶹ' = 'v'+asciiFlattenCI 'ᶺ' = 'v'+asciiFlattenCI 'Ṽ' = 'v'+asciiFlattenCI 'ṽ' = 'v'+asciiFlattenCI 'Ṿ' = 'v'+asciiFlattenCI 'ṿ' = 'v'+asciiFlattenCI 'ⱴ' = 'v'+asciiFlattenCI 'Ŵ' = 'w'+asciiFlattenCI 'ŵ' = 'w'+asciiFlattenCI 'ʍ' = 'w'+asciiFlattenCI 'ʷ' = 'w'+asciiFlattenCI 'ᴡ' = 'w'+asciiFlattenCI 'ᵂ' = 'w'+asciiFlattenCI 'Ẁ' = 'w'+asciiFlattenCI 'ẁ' = 'w'+asciiFlattenCI 'Ẃ' = 'w'+asciiFlattenCI 'ẃ' = 'w'+asciiFlattenCI 'Ẅ' = 'w'+asciiFlattenCI 'ẅ' = 'w'+asciiFlattenCI 'Ẇ' = 'w'+asciiFlattenCI 'ẇ' = 'w'+asciiFlattenCI 'Ẉ' = 'w'+asciiFlattenCI 'ẉ' = 'w'+asciiFlattenCI 'ẘ' = 'w'+asciiFlattenCI 'ˣ' = 'x'+asciiFlattenCI 'ᶍ' = 'x'+asciiFlattenCI 'Ẋ' = 'x'+asciiFlattenCI 'ẋ' = 'x'+asciiFlattenCI 'Ẍ' = 'x'+asciiFlattenCI 'ẍ' = 'x'+asciiFlattenCI 'ₓ' = 'x'+asciiFlattenCI 'Ý' = 'y'+asciiFlattenCI 'ý' = 'y'+asciiFlattenCI 'ÿ' = 'y'+asciiFlattenCI 'Ŷ' = 'y'+asciiFlattenCI 'ŷ' = 'y'+asciiFlattenCI 'Ÿ' = 'y'+asciiFlattenCI 'Ƴ' = 'y'+asciiFlattenCI 'ƴ' = 'y'+asciiFlattenCI 'Ȳ' = 'y'+asciiFlattenCI 'ȳ' = 'y'+asciiFlattenCI 'Ɏ' = 'y'+asciiFlattenCI 'ɏ' = 'y'+asciiFlattenCI 'ʎ' = 'y'+asciiFlattenCI 'ʏ' = 'y'+asciiFlattenCI 'ʸ' = 'y'+asciiFlattenCI 'Ẏ' = 'y'+asciiFlattenCI 'ẏ' = 'y'+asciiFlattenCI 'ẙ' = 'y'+asciiFlattenCI 'Ỳ' = 'y'+asciiFlattenCI 'ỳ' = 'y'+asciiFlattenCI 'Ỵ' = 'y'+asciiFlattenCI 'ỵ' = 'y'+asciiFlattenCI 'Ỷ' = 'y'+asciiFlattenCI 'ỷ' = 'y'+asciiFlattenCI 'Ỹ' = 'y'+asciiFlattenCI 'ỹ' = 'y'+asciiFlattenCI 'Ź' = 'z'+asciiFlattenCI 'ź' = 'z'+asciiFlattenCI 'Ż' = 'z'+asciiFlattenCI 'ż' = 'z'+asciiFlattenCI 'Ž' = 'z'+asciiFlattenCI 'ž' = 'z'+asciiFlattenCI 'Ƶ' = 'z'+asciiFlattenCI 'ƶ' = 'z'+asciiFlattenCI 'Ȥ' = 'z'+asciiFlattenCI 'ȥ' = 'z'+asciiFlattenCI 'ɀ' = 'z'+asciiFlattenCI 'ʐ' = 'z'+asciiFlattenCI 'ʑ' = 'z'+asciiFlattenCI 'ᴢ' = 'z'+asciiFlattenCI 'ᵶ' = 'z'+asciiFlattenCI 'ᶎ' = 'z'+asciiFlattenCI 'ᶻ' = 'z'+asciiFlattenCI 'ᶼ' = 'z'+asciiFlattenCI 'ᶽ' = 'z'+asciiFlattenCI 'Ẑ' = 'z'+asciiFlattenCI 'ẑ' = 'z'+asciiFlattenCI 'Ẓ' = 'z'+asciiFlattenCI 'ẓ' = 'z'+asciiFlattenCI 'Ẕ' = 'z'+asciiFlattenCI 'ẕ' = 'z'+asciiFlattenCI 'ℨ' = 'z'+asciiFlattenCI 'Ⱬ' = 'z'+asciiFlattenCI 'ⱬ' = 'z'+asciiFlattenCI x = x
+ LICENSE view
@@ -0,0 +1,24 @@+The MIT License (MIT)++Copyright (c) 2016 Daniel Choi <dhchoi@gmail.com>++Permission is hereby granted, free of charge, to any person obtaining a copy+of this software and associated documentation files (the "Software"), to deal+in the Software without restriction, including without limitation the rights+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+copies of the Software, and to permit persons to whom the Software is+furnished to do so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in+all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+THE SOFTWARE.+++
+ Main.hs view
@@ -0,0 +1,12 @@+module Main where+import Data.Char.AsciiFlatten+import qualified Data.Text as T+import qualified Data.Text.IO as T+import Data.Char++main :: IO ()+main = + T.getContents >>=+ return . (T.map asciiFlattenCI) >>=+ T.putStr+
+ README.md view
@@ -0,0 +1,46 @@+# ascii-flatten++This simple library provides a function to flatten non-ASCII European+characters into nearest US-ASCII equivlent.++See source for `Data.Char.AsciiFlatten` for the character conversions.++The character translation table is derived from this URL:+http://yob.id.au/2008/05/08/thinking-sphinx-and-unicode.html++## Usage++```haskell+:m + Data.Char.AsciiFlatten+...+Ok, modules loaded: Data.Char.AsciiFlatten, Main.+ghci> :m + Data.Char.AsciiFlatten +ghci> map asciiFlattenCI "café"+"cafe"+ghci> map asciiFlattenCI "Übermensch"+"ubermensch"+```++Note that currently, all characters are flattened to lower case ASCII, because+my source data only as case-insensitive mappings to lowercase ascii+characters. If anyone wants to contribute case-sensitive conversion code+mappings, please do.++When performance matters, use ++ Data.Text.map :: (Char -> Char) -> Text Text++## Command line usage++The package also installs a simple command line tool named `ascii-flatten` for+use from the command line and in shell scripts:++ $ echo café | ascii-flatten+ cafe+++## Code generation++The code for `asciiFlatten` is generated using the `build.sh` script in the+project directory.+
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ ascii-flatten.cabal view
@@ -0,0 +1,25 @@+name: ascii-flatten+version: 0.1.0.0+synopsis: Flattens European non-ASCII characaters into ASCII+homepage: https://github.com/danchoi/ascii-flatten+description: Flattens European non-ASCII characaters into ASCII+license: MIT+license-file: LICENSE+author: Daniel Choi+maintainer: dhchoi@gmail.com+copyright: (c) 2016 Daniel Choi+category: Text+build-type: Simple+cabal-version: >=1.10++library + exposed-modules: Data.Char.AsciiFlatten+ build-depends: base >=4.6 && <4.9+ default-language: Haskell2010++executable ascii-flatten+ main-is: Main.hs+ build-depends: base >=4.6 && <4.9+ , ascii-flatten+ , text+ default-language: Haskell2010
+ build.sh view
@@ -0,0 +1,7 @@+#!/bin/bash++# generates pattern matching code to inline into the module++cat charset.txt | ./conv | runghc Conv.hs | awk -f genCode.awk++
+ charset.txt view
@@ -0,0 +1,845 @@+00C0 a+00C1 a+00C2 a+00C3 a+00C4 a+00C5 a+00E0 a+00E1 a+00E2 a+00E3 a+00E4 a+00E5 a+0100 a+0101 a+0102 a+0103 a+010300 a+0104 a+0105 a+01CD a+01CE a+01DE a+01DF a+01E0 a+01E1 a+01FA a+01FB a+0200 a+0201 a+0202 a+0203 a+0226 a+0227 a+023A a+0250 a+04D0 a+04D1 a+1D2C a+1D43 a+1D44 a+1D8F a+1E00 a+1E01 a+1E9A a+1EA0 a+1EA1 a+1EA2 a+1EA3 a+1EA4 a+1EA5 a+1EA6 a+1EA7 a+1EA8 a+1EA9 a+1EAA a+1EAB a+1EAC a+1EAD a+1EAE a+1EAF a+1EB0 a+1EB1 a+1EB2 a+1EB3 a+1EB4 a+1EB5 a+1EB6 a+1EB7 a+2090 a+2C65 a+0180 b+0181 b+0182 b+0183 b+0243 b+0253 b+0299 b+16D2 b+1D03 b+1D2E b+1D2F b+1D47 b+1D6C b+1D80 b+1E02 b+1E03 b+1E04 b+1E05 b+1E06 b+1E07 b+00C7 c+00E7 c+0106 c+0107 c+0108 c+0109 c+010A c+010B c+010C c+010D c+0187 c+0188 c+023B c+023C c+0255 c+0297 c+1D9C c+1D9D c+1E08 c+1E09 c+212D c+2184 c+010E d+010F d+0110 d+0111 d+0189 d+018A d+018B d+018C d+01C5 d+01F2 d+0221 d+0256 d+0257 d+1D05 d+1D30 d+1D48 d+1D6D d+1D81 d+1D91 d+1E0A d+1E0B d+1E0C d+1E0D d+1E0E d+1E0F d+1E10 d+1E11 d+1E12 d+1E13 d+00C8 e+00C9 e+00CA e+00CB e+00E8 e+00E9 e+00EA e+00EB e+0112 e+0113 e+0114 e+0115 e+0116 e+0117 e+0118 e+0119 e+011A e+011B e+018E e+0190 e+01DD e+0204 e+0205 e+0206 e+0207 e+0228 e+0229 e+0246 e+0247 e+0258 e+025B e+025C e+025D e+025E e+029A e+1D07 e+1D08 e+1D31 e+1D32 e+1D49 e+1D4B e+1D4C e+1D92 e+1D93 e+1D94 e+1D9F e+1E14 e+1E15 e+1E16 e+1E17 e+1E18 e+1E19 e+1E1A e+1E1B e+1E1C e+1E1D e+1EB8 e+1EB9 e+1EBA e+1EBB e+1EBC e+1EBD e+1EBE e+1EBF e+1EC0 e+1EC1 e+1EC2 e+1EC3 e+1EC4 e+1EC5 e+1EC6 e+1EC7 e+2091 e+0191 f+0192 f+1D6E f+1D82 f+1DA0 f+1E1E f+1E1F f+011C g+011D g+011E g+011F g+0120 g+0121 g+0122 g+0123 g+0193 g+01E4 g+01E5 g+01E6 g+01E7 g+01F4 g+01F5 g+0260 g+0261 g+0262 g+029B g+1D33 g+1D4D g+1D77 g+1D79 g+1D83 g+1DA2 g+1E20 g+1E21 g+0124 h+0125 h+0126 h+0127 h+021E h+021F h+0265 h+0266 h+029C h+02AE h+02AF h+02B0 h+02B1 h+1D34 h+1DA3 h+1E22 h+1E23 h+1E24 h+1E25 h+1E26 h+1E27 h+1E28 h+1E29 h+1E2A h+1E2B h+1E96 h+210C h+2C67 h+2C68 h+2C75 h+2C76 h+00CC i+00CD i+00CE i+00CF i+00EC i+00ED i+00EE i+00EF i+010309 i+0128 i+0129 i+012A i+012B i+012C i+012D i+012E i+012F i+0130 i+0131 i+0197 i+01CF i+01D0 i+0208 i+0209 i+020A i+020B i+0268 i+026A i+040D i+0418 i+0419 i+0438 i+0439 i+0456 i+1D09 i+1D35 i+1D4E i+1D62 i+1D7B i+1D96 i+1DA4 i+1DA6 i+1DA7 i+1E2C i+1E2D i+1E2E i+1E2F i+1EC8 i+1EC9 i+1ECA i+1ECB i+2071 i+2111 i+0134 j+0135 j+01C8 j+01CB j+01F0 j+0237 j+0248 j+0249 j+025F j+0284 j+029D j+02B2 j+1D0A j+1D36 j+1DA1 j+1DA8 j+0136 k+0137 k+0198 k+0199 k+01E8 k+01E9 k+029E k+1D0B k+1D37 k+1D4F k+1D84 k+1E30 k+1E31 k+1E32 k+1E33 k+1E34 k+1E35 k+2C69 k+2C6A k+0139 l+013A l+013B l+013C l+013D l+013E l+013F l+0140 l+0141 l+0142 l+019A l+01C8 l+0234 l+023D l+026B l+026C l+026D l+029F l+02E1 l+1D0C l+1D38 l+1D85 l+1DA9 l+1DAA l+1DAB l+1E36 l+1E37 l+1E38 l+1E39 l+1E3A l+1E3B l+1E3C l+1E3D l+2C60 l+2C61 l+2C62 l+019C m+026F m+0270 m+0271 m+1D0D m+1D1F m+1D39 m+1D50 m+1D5A m+1D6F m+1D86 m+1DAC m+1DAD m+1E3E m+1E3F m+1E40 m+1E41 m+1E42 m+1E43 m+00D1 n+00F1 n+0143 n+0144 n+0145 n+0146 n+0147 n+0148 n+0149 n+019D n+019E n+01CB n+01F8 n+01F9 n+0220 n+0235 n+0272 n+0273 n+0274 n+1D0E n+1D3A n+1D3B n+1D70 n+1D87 n+1DAE n+1DAF n+1DB0 n+1E44 n+1E45 n+1E46 n+1E47 n+1E48 n+1E49 n+1E4A n+1E4B n+207F n+00D2 o+00D3 o+00D4 o+00D5 o+00D6 o+00D8 o+00F2 o+00F3 o+00F4 o+00F5 o+00F6 o+00F8 o+01030F o+014C o+014D o+014E o+014F o+0150 o+0151 o+0186 o+019F o+01A0 o+01A1 o+01D1 o+01D2 o+01EA o+01EB o+01EC o+01ED o+01FE o+01FF o+020C o+020D o+020E o+020F o+022A o+022B o+022C o+022D o+022E o+022F o+0230 o+0231 o+0254 o+0275 o+043E o+04E6 o+04E7 o+04E8 o+04E9 o+04EA o+04EB o+1D0F o+1D10 o+1D11 o+1D12 o+1D13 o+1D16 o+1D17 o+1D3C o+1D52 o+1D53 o+1D54 o+1D55 o+1D97 o+1DB1 o+1E4C o+1E4D o+1E4E o+1E4F o+1E50 o+1E51 o+1E52 o+1E53 o+1ECC o+1ECD o+1ECE o+1ECF o+1ED0 o+1ED1 o+1ED2 o+1ED3 o+1ED4 o+1ED5 o+1ED6 o+1ED7 o+1ED8 o+1ED9 o+1EDA o+1EDB o+1EDC o+1EDD o+1EDE o+1EDF o+1EE0 o+1EE1 o+1EE2 o+1EE3 o+2092 o+2C9E o+2C9F o+01A4 p+01A5 p+1D18 p+1D3E p+1D56 p+1D71 p+1D7D p+1D88 p+1E54 p+1E55 p+1E56 p+1E57 p+2C63 p+024A q+024B q+02A0 q+0154 r+0155 r+0156 r+0157 r+0158 r+0159 r+0210 r+0211 r+0212 r+0213 r+024C r+024D r+0279 r+027A r+027B r+027C r+027D r+027E r+027F r+0280 r+0281 r+02B3 r+02B4 r+02B5 r+02B6 r+1D19 r+1D1A r+1D3F r+1D63 r+1D72 r+1D73 r+1D89 r+1DCA r+1E58 r+1E59 r+1E5A r+1E5B r+1E5C r+1E5D r+1E5E r+1E5F r+211C r+2C64 r+00DF s+015A s+015B s+015C s+015D s+015E s+015F s+0160 s+0161 s+017F s+0218 s+0219 s+023F s+0282 s+02E2 s+1D74 s+1D8A s+1DB3 s+1E60 s+1E61 s+1E62 s+1E63 s+1E64 s+1E65 s+1E66 s+1E67 s+1E68 s+1E69 s+1E9B s+0162 t+0163 t+0164 t+0165 t+0166 t+0167 t+01AB t+01AC t+01AD t+01AE t+021A t+021B t+0236 t+023E t+0287 t+0288 t+1D1B t+1D40 t+1D57 t+1D75 t+1DB5 t+1E6A t+1E6B t+1E6C t+1E6D t+1E6E t+1E6F t+1E70 t+1E71 t+1E97 t+2C66 t+00D9 u+00DA u+00DB u+00DC u+00F9 u+00FA u+00FB u+00FC u+010316 u+0168 u+0169 u+016A u+016B u+016C u+016D u+016E u+016F u+0170 u+0171 u+0172 u+0173 u+01AF u+01B0 u+01D3 u+01D4 u+01D5 u+01D6 u+01D7 u+01D8 u+01D9 u+01DA u+01DB u+01DC u+0214 u+0215 u+0216 u+0217 u+0244 u+0289 u+1D1C u+1D1D u+1D1E u+1D41 u+1D58 u+1D59 u+1D64 u+1D7E u+1D99 u+1DB6 u+1DB8 u+1E72 u+1E73 u+1E74 u+1E75 u+1E76 u+1E77 u+1E78 u+1E79 u+1E7A u+1E7B u+1EE4 u+1EE5 u+1EE6 u+1EE7 u+1EE8 u+1EE9 u+1EEA u+1EEB u+1EEC u+1EED u+1EEE u+1EEF u+1EF0 u+1EF1 u+01B2 v+0245 v+028B v+028C v+1D20 v+1D5B v+1D65 v+1D8C v+1DB9 v+1DBA v+1E7C v+1E7D v+1E7E v+1E7F v+2C74 v+0174 w+0175 w+028D w+02B7 w+1D21 w+1D42 w+1E80 w+1E81 w+1E82 w+1E83 w+1E84 w+1E85 w+1E86 w+1E87 w+1E88 w+1E89 w+1E98 w+02E3 x+1D8D x+1E8A x+1E8B x+1E8C x+1E8D x+2093 x+00DD y+00FD y+00FF y+0176 y+0177 y+0178 y+01B3 y+01B4 y+0232 y+0233 y+024E y+024F y+028E y+028F y+02B8 y+1E8E y+1E8F y+1E99 y+1EF2 y+1EF3 y+1EF4 y+1EF5 y+1EF6 y+1EF7 y+1EF8 y+1EF9 y+0179 z+017A z+017B z+017C z+017D z+017E z+01B5 z+01B6 z+0224 z+0225 z+0240 z+0290 z+0291 z+1D22 z+1D76 z+1D8E z+1DBB z+1DBC z+1DBD z+1E90 z+1E91 z+1E92 z+1E93 z+1E94 z+1E95 z+2128 z+2C6B z+2C6C z
+ conv view
@@ -0,0 +1,7 @@+#!/usr/bin/env awk -f+{+cmd = "echo 'ibase=16; " $1 "' |bc "+cmd | getline charcode +close(cmd)+print charcode " " $2+}
+ genCode.awk view
@@ -0,0 +1,7 @@+#!/usr/bin/env awk -f+$0 != "" {+ print "asciiFlatten '" $1 "' = '" $2 "'"+}+END {+ print "asciiFlatten x = x"+}
+ stack.yaml view
@@ -0,0 +1,35 @@+# This file was automatically generated by stack init+# For more information, see: http://docs.haskellstack.org/en/stable/yaml_configuration/++# Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)+resolver: lts-5.16++# Local packages, usually specified by relative directory name+packages:+- '.'+# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)+extra-deps: []++# Override default flag values for local packages and extra-deps+flags: {}++# Extra package databases containing global packages+extra-package-dbs: []++# Control whether we use the GHC we find on the path+# system-ghc: true++# Require a specific version of stack, using version ranges+# require-stack-version: -any # Default+# require-stack-version: >= 1.0.0++# Override the architecture used by stack, especially useful on Windows+# arch: i386+# arch: x86_64++# Extra directories used by stack for building+# extra-include-dirs: [/path/to/dir]+# extra-lib-dirs: [/path/to/dir]++# Allow a newer minor version of GHC than the snapshot specifies+# compiler-check: newer-minor