{-# LANGUAGE CPP #-}
module Data.Word8 (
Word8
, isControl, isSpace, isLower, isUpper
, isAlpha, isAlphaNum, isPrint, isDigit, isOctDigit, isHexDigit
, isLetter, isMark, isNumber, isPunctuation, isSymbol, isSeparator
, isAscii, isLatin1, isAsciiUpper, isAsciiLower
, toUpper, toLower, toTitle
, _nul, _tab, _lf, _vt, _np, _cr
, _space, _exclam, _quotedbl, _numbersign, _dollar, _percent, _ampersand, _quotesingle, _parenleft, _parenright, _asterisk, _plus, _comma, _hyphen, _period, _slash
, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9
, _colon, _semicolon, _less, _equal, _greater, _question, _at
, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z
, _bracketleft, _backslash, _bracketright, _circum, _underscore, _grave
, _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z
, _braceleft, _bar, _braceright, _tilde, _del
, _nbsp
, _ordfeminine, _softhyphen, _mu, _ordmasculine
, _s2, _s3, _s1, _1'4, _1'2, _3'4
, _Agrave, _Odieresis, _Oslash, _Thorn
, _germandbls, _agrave, _odieresis, _oslash, _thorn, _ydieresis
) where
import Data.Word (Word8)
#ifndef MIN_VERSION_base
#define MIN_VERSION_base(x,y,z) 1
#endif
isControl :: Word8 -> Bool
isControl :: Word8 -> Bool
isControl Word8
w = Word8
_nul forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
0x1f
Bool -> Bool -> Bool
|| Word8
_del forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
0x9f
isSpace :: Word8 -> Bool
isSpace :: Word8 -> Bool
isSpace Word8
w = Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_space
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_tab
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_lf
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_cr
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_np
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_vt
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_nbsp
isLower :: Word8 -> Bool
isLower :: Word8 -> Bool
isLower Word8
w = Word8 -> Bool
isLower' Word8
w
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_mu
#if !MIN_VERSION_base(4,8,0)
|| w == _ordfeminine
|| w == _ordmasculine
#endif
isLowerCommon :: Word8 -> Bool
isLowerCommon :: Word8 -> Bool
isLowerCommon Word8
w = Word8 -> Bool
isLower' Word8
w
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_mu
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_ordfeminine
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_ordmasculine
isLower' :: Word8 -> Bool
isLower' :: Word8 -> Bool
isLower' Word8
w = Word8 -> Bool
isAsciiLower Word8
w
Bool -> Bool -> Bool
|| Word8
_germandbls forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_odieresis
Bool -> Bool -> Bool
|| Word8
_oslash forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_ydieresis
isUpper :: Word8 -> Bool
isUpper :: Word8 -> Bool
isUpper Word8
w = Word8 -> Bool
isAsciiUpper Word8
w
Bool -> Bool -> Bool
|| Word8
_Agrave forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_Odieresis
Bool -> Bool -> Bool
|| Word8
_Oslash forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_Thorn
isAlpha :: Word8 -> Bool
isAlpha :: Word8 -> Bool
isAlpha Word8
w = Word8 -> Bool
isLowerCommon Word8
w Bool -> Bool -> Bool
|| Word8 -> Bool
isUpper Word8
w
isAlphaNum :: Word8 -> Bool
isAlphaNum :: Word8 -> Bool
isAlphaNum Word8
w = Word8 -> Bool
isAlpha Word8
w Bool -> Bool -> Bool
|| Word8 -> Bool
isNumber Word8
w
isPrint :: Word8 -> Bool
isPrint :: Word8 -> Bool
isPrint Word8
w
| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_softhyphen = Bool
False
isPrint Word8
w = Word8
_space forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_tilde
Bool -> Bool -> Bool
|| Word8
_nbsp forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_ydieresis
isDigit :: Word8 -> Bool
isDigit :: Word8 -> Bool
isDigit Word8
w = Word8
_0 forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_9
isOctDigit :: Word8 -> Bool
isOctDigit :: Word8 -> Bool
isOctDigit Word8
w = Word8
_0 forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_7
isHexDigit :: Word8 -> Bool
isHexDigit :: Word8 -> Bool
isHexDigit Word8
w = Word8 -> Bool
isDigit Word8
w
Bool -> Bool -> Bool
|| Word8
_A forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_F
Bool -> Bool -> Bool
|| Word8
_a forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_f
isLetter :: Word8 -> Bool
isLetter :: Word8 -> Bool
isLetter Word8
w = Word8 -> Bool
isLowerCommon Word8
w Bool -> Bool -> Bool
|| Word8 -> Bool
isUpper Word8
w
isMark :: Word8 -> Bool
isMark :: Word8 -> Bool
isMark Word8
_ = Bool
False
isNumber :: Word8 -> Bool
isNumber :: Word8 -> Bool
isNumber Word8
w = Word8 -> Bool
isDigit Word8
w
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_s1
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_s2
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_s3
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_1'4
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_1'2
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_3'4
isPunctuation :: Word8 -> Bool
#if MIN_VERSION_base(4,8,0)
isPunctuation :: Word8 -> Bool
isPunctuation Word8
w = Word8
w forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`elem` [Word8
0x21,Word8
0x22,Word8
0x23,Word8
0x25,Word8
0x26,Word8
0x27,Word8
0x28,Word8
0x29,Word8
0x2a,Word8
0x2c,Word8
0x2d,Word8
0x2e,Word8
0x2f,Word8
0x3a,Word8
0x3b,Word8
0x3f,Word8
0x40,Word8
0x5b,Word8
0x5c,Word8
0x5d,Word8
0x5f,Word8
0x7b,Word8
0x7d,Word8
0xa1,Word8
0xa7,Word8
0xab,Word8
0xb6,Word8
0xb7,Word8
0xbb,Word8
0xbf]
#else
isPunctuation w = w `elem` [0x21,0x22,0x23,0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x2e,0x2f,0x3a,0x3b,0x3f,0x40,0x5b,0x5c,0x5d,0x5f,0x7b,0x7d,0xa1,0xab,0xb7,0xbb,0xbf]
#endif
isSymbol :: Word8 -> Bool
#if MIN_VERSION_base(4,8,0)
isSymbol :: Word8 -> Bool
isSymbol Word8
w = Word8
w forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`elem` [Word8
0x24,Word8
0x2b,Word8
0x3c,Word8
0x3d,Word8
0x3e,Word8
0x5e,Word8
0x60,Word8
0x7c,Word8
0x7e,Word8
0xa2,Word8
0xa3,Word8
0xa4,Word8
0xa5,Word8
0xa6,Word8
0xa8,Word8
0xa9,Word8
0xac,Word8
0xae,Word8
0xaf,Word8
0xb0,Word8
0xb1,Word8
0xb4,Word8
0xb8,Word8
0xd7,Word8
0xf7]
#else
isSymbol w = w `elem` [0x24,0x2b,0x3c,0x3d,0x3e,0x5e,0x60,0x7c,0x7e,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xac,0xae,0xaf,0xb0,0xb1,0xb4,0xb6,0xb8,0xd7,0xf7]
#endif
isSeparator :: Word8 -> Bool
isSeparator :: Word8 -> Bool
isSeparator Word8
w = Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_space
Bool -> Bool -> Bool
|| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_nbsp
isAscii :: Word8 -> Bool
isAscii :: Word8 -> Bool
isAscii Word8
w = Word8
_nul forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_del
isLatin1 :: Word8 -> Bool
isLatin1 :: Word8 -> Bool
isLatin1 Word8
_ = Bool
True
isAsciiUpper :: Word8 -> Bool
isAsciiUpper :: Word8 -> Bool
isAsciiUpper Word8
w = Word8
_A forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_Z
isAsciiLower :: Word8 -> Bool
isAsciiLower :: Word8 -> Bool
isAsciiLower Word8
w = Word8
_a forall a. Ord a => a -> a -> Bool
<= Word8
w Bool -> Bool -> Bool
&& Word8
w forall a. Ord a => a -> a -> Bool
<= Word8
_z
toUpper :: Word8 -> Word8
toUpper :: Word8 -> Word8
toUpper Word8
w
| Word8
w forall a. Eq a => a -> a -> Bool
== Word8
_germandbls = Word8
w
| Word8 -> Bool
isLower' Word8
w = Word8
w forall a. Num a => a -> a -> a
- Word8
_space
| Bool
otherwise = Word8
w
toLower :: Word8 -> Word8
toLower :: Word8 -> Word8
toLower Word8
w
| Word8 -> Bool
isUpper Word8
w = Word8
w forall a. Num a => a -> a -> a
+ Word8
_space
| Bool
otherwise = Word8
w
toTitle :: Word8 -> Word8
toTitle :: Word8 -> Word8
toTitle = Word8 -> Word8
toUpper
_nul, _tab, _lf, _vt, _np, _cr :: Word8
_nul :: Word8
_nul = Word8
0x00
_tab :: Word8
_tab = Word8
0x09
_lf :: Word8
_lf = Word8
0x0a
_vt :: Word8
_vt = Word8
0x0b
_np :: Word8
_np = Word8
0x0c
_cr :: Word8
_cr = Word8
0x0d
_space, _exclam, _quotedbl, _numbersign, _dollar, _percent, _ampersand, _quotesingle, _parenleft, _parenright, _asterisk, _plus, _comma, _hyphen, _period, _slash :: Word8
_space :: Word8
_space = Word8
0x20
_exclam :: Word8
_exclam = Word8
0x21
_quotedbl :: Word8
_quotedbl = Word8
0x22
_numbersign :: Word8
_numbersign = Word8
0x23
_dollar :: Word8
_dollar = Word8
0x24
_percent :: Word8
_percent = Word8
0x25
_ampersand :: Word8
_ampersand = Word8
0x26
_quotesingle :: Word8
_quotesingle = Word8
0x27
_parenleft :: Word8
_parenleft = Word8
0x28
_parenright :: Word8
_parenright = Word8
0x29
_asterisk :: Word8
_asterisk = Word8
0x2a
_plus :: Word8
_plus = Word8
0x2b
_comma :: Word8
_comma = Word8
0x2c
_hyphen :: Word8
_hyphen = Word8
0x2d
_period :: Word8
_period = Word8
0x2e
_slash :: Word8
_slash = Word8
0x2f
_0, _1, _2, _3, _4, _5, _6, _7, _8, _9 :: Word8
_0 :: Word8
_0 = Word8
0x30
_1 :: Word8
_1 = Word8
0x31
_2 :: Word8
_2 = Word8
0x32
_3 :: Word8
_3 = Word8
0x33
_4 :: Word8
_4 = Word8
0x34
_5 :: Word8
_5 = Word8
0x35
_6 :: Word8
_6 = Word8
0x36
_7 :: Word8
_7 = Word8
0x37
_8 :: Word8
_8 = Word8
0x38
_9 :: Word8
_9 = Word8
0x39
_colon, _semicolon, _less, _equal, _greater, _question, _at :: Word8
_colon :: Word8
_colon = Word8
0x3a
_semicolon :: Word8
_semicolon = Word8
0x3b
_less :: Word8
_less = Word8
0x3c
_equal :: Word8
_equal = Word8
0x3d
_greater :: Word8
_greater = Word8
0x3e
_question :: Word8
_question = Word8
0x3f
_at :: Word8
_at = Word8
0x40
_A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z :: Word8
_A :: Word8
_A = Word8
0x41
_B :: Word8
_B = Word8
0x42
_C :: Word8
_C = Word8
0x43
_D :: Word8
_D = Word8
0x44
_E :: Word8
_E = Word8
0x45
_F :: Word8
_F = Word8
0x46
_G :: Word8
_G = Word8
0x47
_H :: Word8
_H = Word8
0x48
_I :: Word8
_I = Word8
0x49
_J :: Word8
_J = Word8
0x4a
_K :: Word8
_K = Word8
0x4b
_L :: Word8
_L = Word8
0x4c
_M :: Word8
_M = Word8
0x4d
_N :: Word8
_N = Word8
0x4e
_O :: Word8
_O = Word8
0x4f
_P :: Word8
_P = Word8
0x50
_Q :: Word8
_Q = Word8
0x51
_R :: Word8
_R = Word8
0x52
_S :: Word8
_S = Word8
0x53
_T :: Word8
_T = Word8
0x54
_U :: Word8
_U = Word8
0x55
_V :: Word8
_V = Word8
0x56
_W :: Word8
_W = Word8
0x57
_X :: Word8
_X = Word8
0x58
_Y :: Word8
_Y = Word8
0x59
_Z :: Word8
_Z = Word8
0x5a
_bracketleft, _backslash, _bracketright, _circum, _underscore, _grave :: Word8
_bracketleft :: Word8
_bracketleft = Word8
0x5b
_backslash :: Word8
_backslash = Word8
0x5c
_bracketright :: Word8
_bracketright = Word8
0x5d
_circum :: Word8
_circum = Word8
0x5e
_underscore :: Word8
_underscore = Word8
0x5f
_grave :: Word8
_grave = Word8
0x60
_a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z :: Word8
_a :: Word8
_a = Word8
0x61
_b :: Word8
_b = Word8
0x62
_c :: Word8
_c = Word8
0x63
_d :: Word8
_d = Word8
0x64
_e :: Word8
_e = Word8
0x65
_f :: Word8
_f = Word8
0x66
_g :: Word8
_g = Word8
0x67
_h :: Word8
_h = Word8
0x68
_i :: Word8
_i = Word8
0x69
_j :: Word8
_j = Word8
0x6a
_k :: Word8
_k = Word8
0x6b
_l :: Word8
_l = Word8
0x6c
_m :: Word8
_m = Word8
0x6d
_n :: Word8
_n = Word8
0x6e
_o :: Word8
_o = Word8
0x6f
_p :: Word8
_p = Word8
0x70
_q :: Word8
_q = Word8
0x71
_r :: Word8
_r = Word8
0x72
_s :: Word8
_s = Word8
0x73
_t :: Word8
_t = Word8
0x74
_u :: Word8
_u = Word8
0x75
_v :: Word8
_v = Word8
0x76
_w :: Word8
_w = Word8
0x77
_x :: Word8
_x = Word8
0x78
_y :: Word8
_y = Word8
0x79
_z :: Word8
_z = Word8
0x7a
_braceleft, _bar, _braceright, _tilde, _del :: Word8
_braceleft :: Word8
_braceleft = Word8
0x7b
_bar :: Word8
_bar = Word8
0x7c
_braceright :: Word8
_braceright = Word8
0x7d
_tilde :: Word8
_tilde = Word8
0x7e
_del :: Word8
_del = Word8
0x7f
_nbsp :: Word8
_nbsp :: Word8
_nbsp = Word8
0xa0
_ordfeminine, _softhyphen, _mu, _ordmasculine :: Word8
_ordfeminine :: Word8
_ordfeminine = Word8
0xaa
_softhyphen :: Word8
_softhyphen = Word8
0xad
_mu :: Word8
_mu = Word8
0xb5
_ordmasculine :: Word8
_ordmasculine = Word8
0xba
_s2, _s3, _s1, _1'4, _1'2, _3'4 :: Word8
_s2 :: Word8
_s2 = Word8
0xb2
_s3 :: Word8
_s3 = Word8
0xb3
_s1 :: Word8
_s1 = Word8
0xb9
_1'4 :: Word8
_1'4 = Word8
0xbc
_1'2 :: Word8
_1'2 = Word8
0xbd
_3'4 :: Word8
_3'4 = Word8
0xbe
_Agrave, _Odieresis, _Oslash, _Thorn :: Word8
_Agrave :: Word8
_Agrave = Word8
0xc0
_Odieresis :: Word8
_Odieresis = Word8
0xd6
_Oslash :: Word8
_Oslash = Word8
0xd8
_Thorn :: Word8
_Thorn = Word8
0xde
_germandbls, _agrave, _odieresis, _oslash, _thorn, _ydieresis :: Word8
_germandbls :: Word8
_germandbls = Word8
0xdf
_agrave :: Word8
_agrave = Word8
0xe0
_odieresis :: Word8
_odieresis = Word8
0xf6
_oslash :: Word8
_oslash = Word8
0xf8
_thorn :: Word8
_thorn = Word8
0xfe
_ydieresis :: Word8
_ydieresis = Word8
0xff