{-# LANGUAGE OverloadedStrings #-}

module Text.Table.Chars
  (
    z_ascii
  , z_digit
  , z_asciidigit
  , z_kana
  , h_ascii
  , h_digit
  , h_asciidigit
  , h_kana
  , h_kana_d
  , h_kana_d_map
  , h_kana_p
  ) where

import Data.Text
import Data.Map

z_ascii :: [Text]
z_ascii :: [Text]
z_ascii = [ Text
"a", Text
"b", Text
"c", Text
"d", Text
"e", Text
"f", Text
"g", Text
"h", Text
"i",
            Text
"j", Text
"k", Text
"l", Text
"m", Text
"n", Text
"o", Text
"p", Text
"q", Text
"r",
            Text
"s", Text
"t", Text
"u", Text
"v", Text
"w", Text
"x", Text
"y", Text
"z",
            Text
"A", Text
"B", Text
"C", Text
"D", Text
"E", Text
"F", Text
"G", Text
"H", Text
"I",
            Text
"J", Text
"K", Text
"L", Text
"M", Text
"N", Text
"O", Text
"P", Text
"Q", Text
"R",
            Text
"S", Text
"T", Text
"U", Text
"V", Text
"W", Text
"X", Text
"Y", Text
"Z",
            Text
"!", Text
"”", Text
"#", Text
"$", Text
"%", Text
"&", Text
"’", Text
"(", Text
")",
            Text
"*", Text
"+", Text
",", Text
"−", Text
".", Text
"/", Text
":", Text
";", Text
"<",
            Text
"=", Text
">", Text
"?", Text
"@", Text
"[", Text
"¥", Text
"]", Text
"^", Text
"_",
            Text
"‘", Text
"{", Text
"|", Text
"}", Text
"〜", Text
" " ]

z_digit :: [Text]
z_digit :: [Text]
z_digit = [ Text
"0", Text
"1", Text
"2", Text
"3", Text
"4", Text
"5", Text
"6", Text
"7", Text
"8", Text
"9" ]

z_asciidigit :: [Text]
z_asciidigit :: [Text]
z_asciidigit = [Text]
z_ascii [Text] -> [Text] -> [Text]
forall a. [a] -> [a] -> [a]
++ [Text]
z_digit

z_kana :: [Text]
z_kana :: [Text]
z_kana = [ Text
"ア", Text
"イ", Text
"ウ", Text
"エ", Text
"オ",
           Text
"カ", Text
"キ", Text
"ク", Text
"ケ", Text
"コ",
           Text
"サ", Text
"シ", Text
"ス", Text
"セ", Text
"ソ",
           Text
"タ", Text
"チ", Text
"ツ", Text
"テ", Text
"ト",
           Text
"ナ", Text
"ニ", Text
"ヌ", Text
"ネ", Text
"ノ",
           Text
"ハ", Text
"ヒ", Text
"フ", Text
"ヘ", Text
"ホ",
           Text
"マ", Text
"ミ", Text
"ム", Text
"メ", Text
"モ",
           Text
"ヤ", Text
"ユ", Text
"ヨ",
           Text
"ラ", Text
"リ", Text
"ル", Text
"レ", Text
"ロ",
           Text
"ワ", Text
"ヲ", Text
"ン",
           Text
"ァ", Text
"ィ", Text
"ゥ", Text
"ェ", Text
"ォ",
           Text
"ッ", Text
"ャ", Text
"ュ", Text
"ョ",
           Text
"ヴ",
           Text
"ガ", Text
"ギ", Text
"グ", Text
"ゲ", Text
"ゴ",
           Text
"ザ", Text
"ジ", Text
"ズ", Text
"ゼ", Text
"ゾ",
           Text
"ダ", Text
"ヂ", Text
"ヅ", Text
"デ", Text
"ド",
           Text
"バ", Text
"ビ", Text
"ブ", Text
"ベ", Text
"ボ",
           Text
"パ", Text
"ピ", Text
"プ", Text
"ペ", Text
"ポ",
           Text
"。", Text
"、", Text
"・", Text
"゛", Text
"゜", Text
"「", Text
"」", Text
"ー" ]

h_kana_d_map :: Map Text Text
h_kana_d_map :: Map Text Text
h_kana_d_map = [(Text, Text)] -> Map Text Text
forall k a. Ord k => [(k, a)] -> Map k a
fromList [ (Text
"ウ゛", Text
"ヴ"),
             (Text
"カ゛", Text
"ガ"), (Text
"キ゛", Text
"ギ"), (Text
"ク゛", Text
"グ"), (Text
"ケ゛", Text
"ゲ"), (Text
"コ゛", Text
"ゴ"),
             (Text
"サ゛", Text
"ザ"), (Text
"シ゛", Text
"ジ"), (Text
"ス゛", Text
"ズ"), (Text
"セ゛", Text
"ゼ"), (Text
"ソ゛", Text
"ゾ"),
             (Text
"タ゛", Text
"ダ"), (Text
"チ゛", Text
"ヂ"), (Text
"ツ゛", Text
"ヅ"), (Text
"テ゛", Text
"デ"), (Text
"ト゛", Text
"ド"),
             (Text
"ハ゛", Text
"バ"), (Text
"ヒ゛", Text
"ビ"), (Text
"フ゛", Text
"ブ"), (Text
"ヘ゛", Text
"ベ"), (Text
"ホ゛", Text
"ボ"),
             (Text
"ハ゜", Text
"パ"), (Text
"ヒ゜", Text
"ピ"), (Text
"フ゜", Text
"プ"), (Text
"ヘ゜", Text
"ペ"), (Text
"ホ゜", Text
"ポ") ]

h_ascii :: [Text]
h_ascii :: [Text]
h_ascii = [ Text
"a", Text
"b", Text
"c", Text
"d", Text
"e", Text
"f", Text
"g", Text
"h", Text
"i",
            Text
"j", Text
"k", Text
"l", Text
"m", Text
"n", Text
"o", Text
"p", Text
"q", Text
"r",
            Text
"s", Text
"t", Text
"u", Text
"v", Text
"w", Text
"x", Text
"y", Text
"z",
            Text
"A", Text
"B", Text
"C", Text
"D", Text
"E", Text
"F", Text
"G", Text
"H", Text
"I",
            Text
"J", Text
"K", Text
"L", Text
"M", Text
"N", Text
"O", Text
"P", Text
"Q", Text
"R",
            Text
"S", Text
"T", Text
"U", Text
"V", Text
"W", Text
"X", Text
"Y", Text
"Z",
            Text
"!", Text
"\"", Text
"#", Text
"$", Text
"%", Text
"&", Text
"'", Text
"(", Text
")",
            Text
"*", Text
"+", Text
",", Text
"-", Text
".", Text
"/", Text
":", Text
";", Text
"<",
            Text
"=", Text
">", Text
"?", Text
"@", Text
"[", Text
"\\", Text
"]", Text
"^", Text
"_",
            Text
"`", Text
"{", Text
"|", Text
"}", Text
"~", Text
" " ]

h_digit :: [Text]
h_digit :: [Text]
h_digit = [ Text
"0", Text
"1", Text
"2", Text
"3", Text
"4", Text
"5", Text
"6", Text
"7", Text
"8", Text
"9" ]

h_asciidigit :: [Text]
h_asciidigit :: [Text]
h_asciidigit = [Text]
h_ascii [Text] -> [Text] -> [Text]
forall a. [a] -> [a] -> [a]
++ [Text]
h_digit

h_kana :: [Text]
h_kana :: [Text]
h_kana = [ Text
"ア", Text
"イ", Text
"ウ", Text
"エ", Text
"オ",
           Text
"カ", Text
"キ", Text
"ク", Text
"ケ", Text
"コ",
           Text
"サ", Text
"シ", Text
"ス", Text
"セ", Text
"ソ",
           Text
"タ", Text
"チ", Text
"ツ", Text
"テ", Text
"ト",
           Text
"ナ", Text
"ニ", Text
"ヌ", Text
"ネ", Text
"ノ",
           Text
"ハ", Text
"ヒ", Text
"フ", Text
"ヘ", Text
"ホ",
           Text
"マ", Text
"ミ", Text
"ム", Text
"メ", Text
"モ",
           Text
"ヤ", Text
"ユ", Text
"ヨ",
           Text
"ラ", Text
"リ", Text
"ル", Text
"レ", Text
"ロ",
           Text
"ワ", Text
"ヲ", Text
"ン",
           Text
"ァ", Text
"ィ", Text
"ゥ", Text
"ェ", Text
"ォ",
           Text
"ッ", Text
"ャ", Text
"ュ", Text
"ョ" ] [Text] -> [Text] -> [Text]
forall a. [a] -> [a] -> [a]
++
           [Text]
h_kana_d [Text] -> [Text] -> [Text]
forall a. [a] -> [a] -> [a]
++
           [Text]
h_kana_p [Text] -> [Text] -> [Text]
forall a. [a] -> [a] -> [a]
++
           [ Text
"。", Text
"、", Text
"・", Text
"゙", Text
"゚", Text
"「", Text
"」", Text
"ー" ]

h_kana_d :: [Text]
h_kana_d :: [Text]
h_kana_d = [ Text
"ヴ",
             Text
"ガ", Text
"ギ", Text
"グ", Text
"ゲ", Text
"ゴ",
             Text
"ザ", Text
"ジ", Text
"ズ", Text
"ゼ", Text
"ゾ",
             Text
"ダ", Text
"ヂ", Text
"ヅ", Text
"デ", Text
"ド",
             Text
"バ", Text
"ビ", Text
"ブ", Text
"ベ", Text
"ボ" ]

h_kana_p :: [Text]
h_kana_p :: [Text]
h_kana_p = [ Text
"パ", Text
"ピ", Text
"プ", Text
"ペ", Text
"ポ" ]