1 #include "Python.h" 2 3 /* Our own locale-independent ctype.h-like macros */ 4 5 const unsigned int _Py_ctype_table[256] = { 6 0, /* 0x0 '\x00' */ 7 0, /* 0x1 '\x01' */ 8 0, /* 0x2 '\x02' */ 9 0, /* 0x3 '\x03' */ 10 0, /* 0x4 '\x04' */ 11 0, /* 0x5 '\x05' */ 12 0, /* 0x6 '\x06' */ 13 0, /* 0x7 '\x07' */ 14 0, /* 0x8 '\x08' */ 15 PY_CTF_SPACE, /* 0x9 '\t' */ 16 PY_CTF_SPACE, /* 0xa '\n' */ 17 PY_CTF_SPACE, /* 0xb '\v' */ 18 PY_CTF_SPACE, /* 0xc '\f' */ 19 PY_CTF_SPACE, /* 0xd '\r' */ 20 0, /* 0xe '\x0e' */ 21 0, /* 0xf '\x0f' */ 22 0, /* 0x10 '\x10' */ 23 0, /* 0x11 '\x11' */ 24 0, /* 0x12 '\x12' */ 25 0, /* 0x13 '\x13' */ 26 0, /* 0x14 '\x14' */ 27 0, /* 0x15 '\x15' */ 28 0, /* 0x16 '\x16' */ 29 0, /* 0x17 '\x17' */ 30 0, /* 0x18 '\x18' */ 31 0, /* 0x19 '\x19' */ 32 0, /* 0x1a '\x1a' */ 33 0, /* 0x1b '\x1b' */ 34 0, /* 0x1c '\x1c' */ 35 0, /* 0x1d '\x1d' */ 36 0, /* 0x1e '\x1e' */ 37 0, /* 0x1f '\x1f' */ 38 PY_CTF_SPACE, /* 0x20 ' ' */ 39 0, /* 0x21 '!' */ 40 0, /* 0x22 '"' */ 41 0, /* 0x23 '#' */ 42 0, /* 0x24 '$' */ 43 0, /* 0x25 '%' */ 44 0, /* 0x26 '&' */ 45 0, /* 0x27 "'" */ 46 0, /* 0x28 '(' */ 47 0, /* 0x29 ')' */ 48 0, /* 0x2a '*' */ 49 0, /* 0x2b '+' */ 50 0, /* 0x2c ',' */ 51 0, /* 0x2d '-' */ 52 0, /* 0x2e '.' */ 53 0, /* 0x2f '/' */ 54 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x30 '0' */ 55 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x31 '1' */ 56 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x32 '2' */ 57 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x33 '3' */ 58 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x34 '4' */ 59 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x35 '5' */ 60 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x36 '6' */ 61 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x37 '7' */ 62 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x38 '8' */ 63 PY_CTF_DIGIT|PY_CTF_XDIGIT, /* 0x39 '9' */ 64 0, /* 0x3a ':' */ 65 0, /* 0x3b ';' */ 66 0, /* 0x3c '<' */ 67 0, /* 0x3d '=' */ 68 0, /* 0x3e '>' */ 69 0, /* 0x3f '?' */ 70 0, /* 0x40 '@' */ 71 PY_CTF_UPPER|PY_CTF_XDIGIT, /* 0x41 'A' */ 72 PY_CTF_UPPER|PY_CTF_XDIGIT, /* 0x42 'B' */ 73 PY_CTF_UPPER|PY_CTF_XDIGIT, /* 0x43 'C' */ 74 PY_CTF_UPPER|PY_CTF_XDIGIT, /* 0x44 'D' */ 75 PY_CTF_UPPER|PY_CTF_XDIGIT, /* 0x45 'E' */ 76 PY_CTF_UPPER|PY_CTF_XDIGIT, /* 0x46 'F' */ 77 PY_CTF_UPPER, /* 0x47 'G' */ 78 PY_CTF_UPPER, /* 0x48 'H' */ 79 PY_CTF_UPPER, /* 0x49 'I' */ 80 PY_CTF_UPPER, /* 0x4a 'J' */ 81 PY_CTF_UPPER, /* 0x4b 'K' */ 82 PY_CTF_UPPER, /* 0x4c 'L' */ 83 PY_CTF_UPPER, /* 0x4d 'M' */ 84 PY_CTF_UPPER, /* 0x4e 'N' */ 85 PY_CTF_UPPER, /* 0x4f 'O' */ 86 PY_CTF_UPPER, /* 0x50 'P' */ 87 PY_CTF_UPPER, /* 0x51 'Q' */ 88 PY_CTF_UPPER, /* 0x52 'R' */ 89 PY_CTF_UPPER, /* 0x53 'S' */ 90 PY_CTF_UPPER, /* 0x54 'T' */ 91 PY_CTF_UPPER, /* 0x55 'U' */ 92 PY_CTF_UPPER, /* 0x56 'V' */ 93 PY_CTF_UPPER, /* 0x57 'W' */ 94 PY_CTF_UPPER, /* 0x58 'X' */ 95 PY_CTF_UPPER, /* 0x59 'Y' */ 96 PY_CTF_UPPER, /* 0x5a 'Z' */ 97 0, /* 0x5b '[' */ 98 0, /* 0x5c '\\' */ 99 0, /* 0x5d ']' */ 100 0, /* 0x5e '^' */ 101 0, /* 0x5f '_' */ 102 0, /* 0x60 '`' */ 103 PY_CTF_LOWER|PY_CTF_XDIGIT, /* 0x61 'a' */ 104 PY_CTF_LOWER|PY_CTF_XDIGIT, /* 0x62 'b' */ 105 PY_CTF_LOWER|PY_CTF_XDIGIT, /* 0x63 'c' */ 106 PY_CTF_LOWER|PY_CTF_XDIGIT, /* 0x64 'd' */ 107 PY_CTF_LOWER|PY_CTF_XDIGIT, /* 0x65 'e' */ 108 PY_CTF_LOWER|PY_CTF_XDIGIT, /* 0x66 'f' */ 109 PY_CTF_LOWER, /* 0x67 'g' */ 110 PY_CTF_LOWER, /* 0x68 'h' */ 111 PY_CTF_LOWER, /* 0x69 'i' */ 112 PY_CTF_LOWER, /* 0x6a 'j' */ 113 PY_CTF_LOWER, /* 0x6b 'k' */ 114 PY_CTF_LOWER, /* 0x6c 'l' */ 115 PY_CTF_LOWER, /* 0x6d 'm' */ 116 PY_CTF_LOWER, /* 0x6e 'n' */ 117 PY_CTF_LOWER, /* 0x6f 'o' */ 118 PY_CTF_LOWER, /* 0x70 'p' */ 119 PY_CTF_LOWER, /* 0x71 'q' */ 120 PY_CTF_LOWER, /* 0x72 'r' */ 121 PY_CTF_LOWER, /* 0x73 's' */ 122 PY_CTF_LOWER, /* 0x74 't' */ 123 PY_CTF_LOWER, /* 0x75 'u' */ 124 PY_CTF_LOWER, /* 0x76 'v' */ 125 PY_CTF_LOWER, /* 0x77 'w' */ 126 PY_CTF_LOWER, /* 0x78 'x' */ 127 PY_CTF_LOWER, /* 0x79 'y' */ 128 PY_CTF_LOWER, /* 0x7a 'z' */ 129 0, /* 0x7b '{' */ 130 0, /* 0x7c '|' */ 131 0, /* 0x7d '}' */ 132 0, /* 0x7e '~' */ 133 0, /* 0x7f '\x7f' */ 134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142 }; 143 144 145 const unsigned char _Py_ctype_tolower[256] = { 146 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 147 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 148 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 149 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 150 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 151 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 152 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 153 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 154 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 155 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 156 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 157 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 158 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 159 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 160 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 161 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 162 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 163 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 164 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 165 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 166 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 167 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 168 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 169 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 170 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 171 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 172 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 173 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 174 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 175 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 176 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 177 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 178 }; 179 180 const unsigned char _Py_ctype_toupper[256] = { 181 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 182 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 183 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 184 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 185 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 186 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 187 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 188 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 189 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 190 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 191 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 192 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 193 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 194 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 195 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 196 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 197 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 198 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 199 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 200 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 201 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 202 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 203 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 204 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 205 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 206 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 207 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 208 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 209 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 210 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 211 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 212 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 213 }; 214 215