module Text.HTML.Basic.Entity (
Name,
list, listInternetExploder,
mapNameToChar,
mapCharToName, mapCharToNameInternetExploder,
mapNameToUpper, mapNameToLower,
XMLEnt.numberToChar,
) where
import qualified Text.XML.Basic.Entity as XMLEnt
import Data.Maybe (mapMaybe, )
import Data.Maybe.HT (toMaybe, )
import Data.Tuple.HT (swap, mapSnd, )
import qualified Data.Map as Map
import Data.Char (chr, toLower, )
type Name = String
mapNameToChar :: Map.Map Name Char
mapNameToChar :: Map Name Char
mapNameToChar =
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList [(Name, Char)]
list
mapCharToName :: Map.Map Char Name
mapCharToName :: Map Char Name
mapCharToName =
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map forall a b. (a, b) -> (b, a)
swap [(Name, Char)]
list
mapCharToNameInternetExploder :: Map.Map Char Name
mapCharToNameInternetExploder :: Map Char Name
mapCharToNameInternetExploder =
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map forall a b. (a, b) -> (b, a)
swap [(Name, Char)]
listInternetExploder
mapNameToUpper :: Map.Map String String
mapNameToUpper :: Map Name Name
mapNameToUpper =
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map forall a b. (a, b) -> (b, a)
swap [(Name, Name)]
upperLowerPairs
mapNameToLower :: Map.Map String String
mapNameToLower :: Map Name Name
mapNameToLower =
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList [(Name, Name)]
upperLowerPairs
upperLowerPairs :: [(String, String)]
upperLowerPairs :: [(Name, Name)]
upperLowerPairs =
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe
(\(Name
name,Char
_) ->
let lname :: Name
lname = forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower Name
name
in forall a. Bool -> a -> Maybe a
toMaybe
(Name
lname forall a. Eq a => a -> a -> Bool
/= Name
name Bool -> Bool -> Bool
&& forall k a. Ord k => k -> Map k a -> Bool
Map.member Name
lname Map Name Char
mapNameToChar)
(Name
name,Name
lname))
[(Name, Char)]
listAdditional
list :: [(Name, Char)]
list :: [(Name, Char)]
list =
[(Name, Char)]
XMLEnt.list forall a. [a] -> [a] -> [a]
++ [(Name, Char)]
listAdditional
listInternetExploder :: [(Name, Char)]
listInternetExploder :: [(Name, Char)]
listInternetExploder =
[(Name, Char)]
XMLEnt.listInternetExploder forall a. [a] -> [a] -> [a]
++ [(Name, Char)]
listAdditional
listAdditional :: [(Name, Char)]
listAdditional :: [(Name, Char)]
listAdditional =
forall a b. (a -> b) -> [a] -> [b]
map (forall b c a. (b -> c) -> (a, b) -> (a, c)
mapSnd Int -> Char
chr) forall a b. (a -> b) -> a -> b
$
(Name
"nbsp", Int
160) forall a. a -> [a] -> [a]
:
(Name
"iexcl", Int
161) forall a. a -> [a] -> [a]
:
(Name
"cent", Int
162) forall a. a -> [a] -> [a]
:
(Name
"pound", Int
163) forall a. a -> [a] -> [a]
:
(Name
"curren", Int
164) forall a. a -> [a] -> [a]
:
(Name
"yen", Int
165) forall a. a -> [a] -> [a]
:
(Name
"brvbar", Int
166) forall a. a -> [a] -> [a]
:
(Name
"sect", Int
167) forall a. a -> [a] -> [a]
:
(Name
"uml", Int
168) forall a. a -> [a] -> [a]
:
(Name
"copy", Int
169) forall a. a -> [a] -> [a]
:
(Name
"ordf", Int
170) forall a. a -> [a] -> [a]
:
(Name
"laquo", Int
171) forall a. a -> [a] -> [a]
:
(Name
"not", Int
172) forall a. a -> [a] -> [a]
:
(Name
"shy", Int
173) forall a. a -> [a] -> [a]
:
(Name
"reg", Int
174) forall a. a -> [a] -> [a]
:
(Name
"macr", Int
175) forall a. a -> [a] -> [a]
:
(Name
"deg", Int
176) forall a. a -> [a] -> [a]
:
(Name
"plusmn", Int
177) forall a. a -> [a] -> [a]
:
(Name
"sup2", Int
178) forall a. a -> [a] -> [a]
:
(Name
"sup3", Int
179) forall a. a -> [a] -> [a]
:
(Name
"acute", Int
180) forall a. a -> [a] -> [a]
:
(Name
"micro", Int
181) forall a. a -> [a] -> [a]
:
(Name
"para", Int
182) forall a. a -> [a] -> [a]
:
(Name
"middot", Int
183) forall a. a -> [a] -> [a]
:
(Name
"cedil", Int
184) forall a. a -> [a] -> [a]
:
(Name
"sup1", Int
185) forall a. a -> [a] -> [a]
:
(Name
"ordm", Int
186) forall a. a -> [a] -> [a]
:
(Name
"raquo", Int
187) forall a. a -> [a] -> [a]
:
(Name
"frac14", Int
188) forall a. a -> [a] -> [a]
:
(Name
"frac12", Int
189) forall a. a -> [a] -> [a]
:
(Name
"frac34", Int
190) forall a. a -> [a] -> [a]
:
(Name
"iquest", Int
191) forall a. a -> [a] -> [a]
:
(Name
"Agrave", Int
192) forall a. a -> [a] -> [a]
:
(Name
"Aacute", Int
193) forall a. a -> [a] -> [a]
:
(Name
"Acirc", Int
194) forall a. a -> [a] -> [a]
:
(Name
"Atilde", Int
195) forall a. a -> [a] -> [a]
:
(Name
"Auml", Int
196) forall a. a -> [a] -> [a]
:
(Name
"Aring", Int
197) forall a. a -> [a] -> [a]
:
(Name
"AElig", Int
198) forall a. a -> [a] -> [a]
:
(Name
"Ccedil", Int
199) forall a. a -> [a] -> [a]
:
(Name
"Egrave", Int
200) forall a. a -> [a] -> [a]
:
(Name
"Eacute", Int
201) forall a. a -> [a] -> [a]
:
(Name
"Ecirc", Int
202) forall a. a -> [a] -> [a]
:
(Name
"Euml", Int
203) forall a. a -> [a] -> [a]
:
(Name
"Igrave", Int
204) forall a. a -> [a] -> [a]
:
(Name
"Iacute", Int
205) forall a. a -> [a] -> [a]
:
(Name
"Icirc", Int
206) forall a. a -> [a] -> [a]
:
(Name
"Iuml", Int
207) forall a. a -> [a] -> [a]
:
(Name
"ETH", Int
208) forall a. a -> [a] -> [a]
:
(Name
"Ntilde", Int
209) forall a. a -> [a] -> [a]
:
(Name
"Ograve", Int
210) forall a. a -> [a] -> [a]
:
(Name
"Oacute", Int
211) forall a. a -> [a] -> [a]
:
(Name
"Ocirc", Int
212) forall a. a -> [a] -> [a]
:
(Name
"Otilde", Int
213) forall a. a -> [a] -> [a]
:
(Name
"Ouml", Int
214) forall a. a -> [a] -> [a]
:
(Name
"times", Int
215) forall a. a -> [a] -> [a]
:
(Name
"Oslash", Int
216) forall a. a -> [a] -> [a]
:
(Name
"Ugrave", Int
217) forall a. a -> [a] -> [a]
:
(Name
"Uacute", Int
218) forall a. a -> [a] -> [a]
:
(Name
"Ucirc", Int
219) forall a. a -> [a] -> [a]
:
(Name
"Uuml", Int
220) forall a. a -> [a] -> [a]
:
(Name
"Yacute", Int
221) forall a. a -> [a] -> [a]
:
(Name
"THORN", Int
222) forall a. a -> [a] -> [a]
:
(Name
"szlig", Int
223) forall a. a -> [a] -> [a]
:
(Name
"agrave", Int
224) forall a. a -> [a] -> [a]
:
(Name
"aacute", Int
225) forall a. a -> [a] -> [a]
:
(Name
"acirc", Int
226) forall a. a -> [a] -> [a]
:
(Name
"atilde", Int
227) forall a. a -> [a] -> [a]
:
(Name
"auml", Int
228) forall a. a -> [a] -> [a]
:
(Name
"aring", Int
229) forall a. a -> [a] -> [a]
:
(Name
"aelig", Int
230) forall a. a -> [a] -> [a]
:
(Name
"ccedil", Int
231) forall a. a -> [a] -> [a]
:
(Name
"egrave", Int
232) forall a. a -> [a] -> [a]
:
(Name
"eacute", Int
233) forall a. a -> [a] -> [a]
:
(Name
"ecirc", Int
234) forall a. a -> [a] -> [a]
:
(Name
"euml", Int
235) forall a. a -> [a] -> [a]
:
(Name
"igrave", Int
236) forall a. a -> [a] -> [a]
:
(Name
"iacute", Int
237) forall a. a -> [a] -> [a]
:
(Name
"icirc", Int
238) forall a. a -> [a] -> [a]
:
(Name
"iuml", Int
239) forall a. a -> [a] -> [a]
:
(Name
"eth", Int
240) forall a. a -> [a] -> [a]
:
(Name
"ntilde", Int
241) forall a. a -> [a] -> [a]
:
(Name
"ograve", Int
242) forall a. a -> [a] -> [a]
:
(Name
"oacute", Int
243) forall a. a -> [a] -> [a]
:
(Name
"ocirc", Int
244) forall a. a -> [a] -> [a]
:
(Name
"otilde", Int
245) forall a. a -> [a] -> [a]
:
(Name
"ouml", Int
246) forall a. a -> [a] -> [a]
:
(Name
"divide", Int
247) forall a. a -> [a] -> [a]
:
(Name
"oslash", Int
248) forall a. a -> [a] -> [a]
:
(Name
"ugrave", Int
249) forall a. a -> [a] -> [a]
:
(Name
"uacute", Int
250) forall a. a -> [a] -> [a]
:
(Name
"ucirc", Int
251) forall a. a -> [a] -> [a]
:
(Name
"uuml", Int
252) forall a. a -> [a] -> [a]
:
(Name
"yacute", Int
253) forall a. a -> [a] -> [a]
:
(Name
"thorn", Int
254) forall a. a -> [a] -> [a]
:
(Name
"yuml", Int
255) forall a. a -> [a] -> [a]
:
(Name
"OElig", Int
338) forall a. a -> [a] -> [a]
:
(Name
"oelig", Int
339) forall a. a -> [a] -> [a]
:
(Name
"Scaron", Int
352) forall a. a -> [a] -> [a]
:
(Name
"scaron", Int
353) forall a. a -> [a] -> [a]
:
(Name
"Yuml", Int
376) forall a. a -> [a] -> [a]
:
(Name
"circ", Int
710) forall a. a -> [a] -> [a]
:
(Name
"tilde", Int
732) forall a. a -> [a] -> [a]
:
(Name
"ensp", Int
8194) forall a. a -> [a] -> [a]
:
(Name
"emsp", Int
8195) forall a. a -> [a] -> [a]
:
(Name
"thinsp", Int
8201) forall a. a -> [a] -> [a]
:
(Name
"zwnj", Int
8204) forall a. a -> [a] -> [a]
:
(Name
"zwj", Int
8205) forall a. a -> [a] -> [a]
:
(Name
"lrm", Int
8206) forall a. a -> [a] -> [a]
:
(Name
"rlm", Int
8207) forall a. a -> [a] -> [a]
:
(Name
"ndash", Int
8211) forall a. a -> [a] -> [a]
:
(Name
"mdash", Int
8212) forall a. a -> [a] -> [a]
:
(Name
"lsquo", Int
8216) forall a. a -> [a] -> [a]
:
(Name
"rsquo", Int
8217) forall a. a -> [a] -> [a]
:
(Name
"sbquo", Int
8218) forall a. a -> [a] -> [a]
:
(Name
"ldquo", Int
8220) forall a. a -> [a] -> [a]
:
(Name
"rdquo", Int
8221) forall a. a -> [a] -> [a]
:
(Name
"bdquo", Int
8222) forall a. a -> [a] -> [a]
:
(Name
"dagger", Int
8224) forall a. a -> [a] -> [a]
:
(Name
"Dagger", Int
8225) forall a. a -> [a] -> [a]
:
(Name
"permil", Int
8240) forall a. a -> [a] -> [a]
:
(Name
"lsaquo", Int
8249) forall a. a -> [a] -> [a]
:
(Name
"rsaquo", Int
8250) forall a. a -> [a] -> [a]
:
(Name
"euro", Int
8364) forall a. a -> [a] -> [a]
:
(Name
"fnof", Int
402) forall a. a -> [a] -> [a]
:
(Name
"Alpha", Int
913) forall a. a -> [a] -> [a]
:
(Name
"Beta", Int
914) forall a. a -> [a] -> [a]
:
(Name
"Gamma", Int
915) forall a. a -> [a] -> [a]
:
(Name
"Delta", Int
916) forall a. a -> [a] -> [a]
:
(Name
"Epsilon", Int
917) forall a. a -> [a] -> [a]
:
(Name
"Zeta", Int
918) forall a. a -> [a] -> [a]
:
(Name
"Eta", Int
919) forall a. a -> [a] -> [a]
:
(Name
"Theta", Int
920) forall a. a -> [a] -> [a]
:
(Name
"Iota", Int
921) forall a. a -> [a] -> [a]
:
(Name
"Kappa", Int
922) forall a. a -> [a] -> [a]
:
(Name
"Lambda", Int
923) forall a. a -> [a] -> [a]
:
(Name
"Mu", Int
924) forall a. a -> [a] -> [a]
:
(Name
"Nu", Int
925) forall a. a -> [a] -> [a]
:
(Name
"Xi", Int
926) forall a. a -> [a] -> [a]
:
(Name
"Omicron", Int
927) forall a. a -> [a] -> [a]
:
(Name
"Pi", Int
928) forall a. a -> [a] -> [a]
:
(Name
"Rho", Int
929) forall a. a -> [a] -> [a]
:
(Name
"Sigma", Int
931) forall a. a -> [a] -> [a]
:
(Name
"Tau", Int
932) forall a. a -> [a] -> [a]
:
(Name
"Upsilon", Int
933) forall a. a -> [a] -> [a]
:
(Name
"Phi", Int
934) forall a. a -> [a] -> [a]
:
(Name
"Chi", Int
935) forall a. a -> [a] -> [a]
:
(Name
"Psi", Int
936) forall a. a -> [a] -> [a]
:
(Name
"Omega", Int
937) forall a. a -> [a] -> [a]
:
(Name
"alpha", Int
945) forall a. a -> [a] -> [a]
:
(Name
"beta", Int
946) forall a. a -> [a] -> [a]
:
(Name
"gamma", Int
947) forall a. a -> [a] -> [a]
:
(Name
"delta", Int
948) forall a. a -> [a] -> [a]
:
(Name
"epsilon", Int
949) forall a. a -> [a] -> [a]
:
(Name
"zeta", Int
950) forall a. a -> [a] -> [a]
:
(Name
"eta", Int
951) forall a. a -> [a] -> [a]
:
(Name
"theta", Int
952) forall a. a -> [a] -> [a]
:
(Name
"iota", Int
953) forall a. a -> [a] -> [a]
:
(Name
"kappa", Int
954) forall a. a -> [a] -> [a]
:
(Name
"lambda", Int
955) forall a. a -> [a] -> [a]
:
(Name
"mu", Int
956) forall a. a -> [a] -> [a]
:
(Name
"nu", Int
957) forall a. a -> [a] -> [a]
:
(Name
"xi", Int
958) forall a. a -> [a] -> [a]
:
(Name
"omicron", Int
959) forall a. a -> [a] -> [a]
:
(Name
"pi", Int
960) forall a. a -> [a] -> [a]
:
(Name
"rho", Int
961) forall a. a -> [a] -> [a]
:
(Name
"sigmaf", Int
962) forall a. a -> [a] -> [a]
:
(Name
"sigma", Int
963) forall a. a -> [a] -> [a]
:
(Name
"tau", Int
964) forall a. a -> [a] -> [a]
:
(Name
"upsilon", Int
965) forall a. a -> [a] -> [a]
:
(Name
"phi", Int
966) forall a. a -> [a] -> [a]
:
(Name
"chi", Int
967) forall a. a -> [a] -> [a]
:
(Name
"psi", Int
968) forall a. a -> [a] -> [a]
:
(Name
"omega", Int
969) forall a. a -> [a] -> [a]
:
(Name
"thetasym", Int
977) forall a. a -> [a] -> [a]
:
(Name
"upsih", Int
978) forall a. a -> [a] -> [a]
:
(Name
"piv", Int
982) forall a. a -> [a] -> [a]
:
(Name
"bull", Int
8226) forall a. a -> [a] -> [a]
:
(Name
"hellip", Int
8230) forall a. a -> [a] -> [a]
:
(Name
"prime", Int
8242) forall a. a -> [a] -> [a]
:
(Name
"Prime", Int
8243) forall a. a -> [a] -> [a]
:
(Name
"oline", Int
8254) forall a. a -> [a] -> [a]
:
(Name
"frasl", Int
8260) forall a. a -> [a] -> [a]
:
(Name
"weierp", Int
8472) forall a. a -> [a] -> [a]
:
(Name
"image", Int
8465) forall a. a -> [a] -> [a]
:
(Name
"real", Int
8476) forall a. a -> [a] -> [a]
:
(Name
"trade", Int
8482) forall a. a -> [a] -> [a]
:
(Name
"alefsym", Int
8501) forall a. a -> [a] -> [a]
:
(Name
"larr", Int
8592) forall a. a -> [a] -> [a]
:
(Name
"uarr", Int
8593) forall a. a -> [a] -> [a]
:
(Name
"rarr", Int
8594) forall a. a -> [a] -> [a]
:
(Name
"darr", Int
8595) forall a. a -> [a] -> [a]
:
(Name
"harr", Int
8596) forall a. a -> [a] -> [a]
:
(Name
"crarr", Int
8629) forall a. a -> [a] -> [a]
:
(Name
"lArr", Int
8656) forall a. a -> [a] -> [a]
:
(Name
"uArr", Int
8657) forall a. a -> [a] -> [a]
:
(Name
"rArr", Int
8658) forall a. a -> [a] -> [a]
:
(Name
"dArr", Int
8659) forall a. a -> [a] -> [a]
:
(Name
"hArr", Int
8660) forall a. a -> [a] -> [a]
:
(Name
"forall", Int
8704) forall a. a -> [a] -> [a]
:
(Name
"part", Int
8706) forall a. a -> [a] -> [a]
:
(Name
"exist", Int
8707) forall a. a -> [a] -> [a]
:
(Name
"empty", Int
8709) forall a. a -> [a] -> [a]
:
(Name
"nabla", Int
8711) forall a. a -> [a] -> [a]
:
(Name
"isin", Int
8712) forall a. a -> [a] -> [a]
:
(Name
"notin", Int
8713) forall a. a -> [a] -> [a]
:
(Name
"ni", Int
8715) forall a. a -> [a] -> [a]
:
(Name
"prod", Int
8719) forall a. a -> [a] -> [a]
:
(Name
"sum", Int
8721) forall a. a -> [a] -> [a]
:
(Name
"minus", Int
8722) forall a. a -> [a] -> [a]
:
(Name
"lowast", Int
8727) forall a. a -> [a] -> [a]
:
(Name
"radic", Int
8730) forall a. a -> [a] -> [a]
:
(Name
"prop", Int
8733) forall a. a -> [a] -> [a]
:
(Name
"infin", Int
8734) forall a. a -> [a] -> [a]
:
(Name
"ang", Int
8736) forall a. a -> [a] -> [a]
:
(Name
"and", Int
8743) forall a. a -> [a] -> [a]
:
(Name
"or", Int
8744) forall a. a -> [a] -> [a]
:
(Name
"cap", Int
8745) forall a. a -> [a] -> [a]
:
(Name
"cup", Int
8746) forall a. a -> [a] -> [a]
:
(Name
"int", Int
8747) forall a. a -> [a] -> [a]
:
(Name
"there4", Int
8756) forall a. a -> [a] -> [a]
:
(Name
"sim", Int
8764) forall a. a -> [a] -> [a]
:
(Name
"cong", Int
8773) forall a. a -> [a] -> [a]
:
(Name
"asymp", Int
8776) forall a. a -> [a] -> [a]
:
(Name
"ne", Int
8800) forall a. a -> [a] -> [a]
:
(Name
"equiv", Int
8801) forall a. a -> [a] -> [a]
:
(Name
"le", Int
8804) forall a. a -> [a] -> [a]
:
(Name
"ge", Int
8805) forall a. a -> [a] -> [a]
:
(Name
"sub", Int
8834) forall a. a -> [a] -> [a]
:
(Name
"sup", Int
8835) forall a. a -> [a] -> [a]
:
(Name
"nsub", Int
8836) forall a. a -> [a] -> [a]
:
(Name
"sube", Int
8838) forall a. a -> [a] -> [a]
:
(Name
"supe", Int
8839) forall a. a -> [a] -> [a]
:
(Name
"oplus", Int
8853) forall a. a -> [a] -> [a]
:
(Name
"otimes", Int
8855) forall a. a -> [a] -> [a]
:
(Name
"perp", Int
8869) forall a. a -> [a] -> [a]
:
(Name
"sdot", Int
8901) forall a. a -> [a] -> [a]
:
(Name
"lceil", Int
8968) forall a. a -> [a] -> [a]
:
(Name
"rceil", Int
8969) forall a. a -> [a] -> [a]
:
(Name
"lfloor", Int
8970) forall a. a -> [a] -> [a]
:
(Name
"rfloor", Int
8971) forall a. a -> [a] -> [a]
:
(Name
"lang", Int
9001) forall a. a -> [a] -> [a]
:
(Name
"rang", Int
9002) forall a. a -> [a] -> [a]
:
(Name
"loz", Int
9674) forall a. a -> [a] -> [a]
:
(Name
"spades", Int
9824) forall a. a -> [a] -> [a]
:
(Name
"clubs", Int
9827) forall a. a -> [a] -> [a]
:
(Name
"hearts", Int
9829) forall a. a -> [a] -> [a]
:
(Name
"diams", Int
9830) forall a. a -> [a] -> [a]
:
[]