(root)/
Python-3.12.0/
Python/
pyctype.c
       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