Jordan Rose | a2100d7 | 2013-02-08 22:30:22 | [diff] [blame] | 1 | //===--- CharInfo.cpp - Static Data for Classifying ASCII Characters ------===// |
| 2 | // |
Chandler Carruth | 2946cd7 | 2019-01-19 08:50:56 | [diff] [blame] | 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | // See https://llvm.org/LICENSE.txt for license information. |
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
Jordan Rose | a2100d7 | 2013-02-08 22:30:22 | [diff] [blame] | 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | |
| 9 | #include "clang/Basic/CharInfo.h" |
| 10 | |
Jordan Rose | 388d767 | 2013-02-08 22:37:49 | [diff] [blame] | 11 | using namespace clang::charinfo; |
| 12 | |
Jordan Rose | a2100d7 | 2013-02-08 22:30:22 | [diff] [blame] | 13 | // Statically initialize CharInfo table based on ASCII character set |
| 14 | // Reference: FreeBSD 7.2 /usr/share/misc/ascii |
Jordan Rose | 388d767 | 2013-02-08 22:37:49 | [diff] [blame] | 15 | const uint16_t clang::charinfo::InfoTable[256] = { |
Jordan Rose | a2100d7 | 2013-02-08 22:30:22 | [diff] [blame] | 16 | // 0 NUL 1 SOH 2 STX 3 ETX |
| 17 | // 4 EOT 5 ENQ 6 ACK 7 BEL |
| 18 | 0 , 0 , 0 , 0 , |
| 19 | 0 , 0 , 0 , 0 , |
| 20 | // 8 BS 9 HT 10 NL 11 VT |
| 21 | //12 NP 13 CR 14 SO 15 SI |
| 22 | 0 , CHAR_HORZ_WS, CHAR_VERT_WS, CHAR_HORZ_WS, |
| 23 | CHAR_HORZ_WS, CHAR_VERT_WS, 0 , 0 , |
| 24 | //16 DLE 17 DC1 18 DC2 19 DC3 |
| 25 | //20 DC4 21 NAK 22 SYN 23 ETB |
| 26 | 0 , 0 , 0 , 0 , |
| 27 | 0 , 0 , 0 , 0 , |
| 28 | //24 CAN 25 EM 26 SUB 27 ESC |
| 29 | //28 FS 29 GS 30 RS 31 US |
| 30 | 0 , 0 , 0 , 0 , |
| 31 | 0 , 0 , 0 , 0 , |
| 32 | //32 SP 33 ! 34 " 35 # |
| 33 | //36 $ 37 % 38 & 39 ' |
| 34 | CHAR_SPACE , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , |
| 35 | CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , |
| 36 | //40 ( 41 ) 42 * 43 + |
| 37 | //44 , 45 - 46 . 47 / |
| 38 | CHAR_PUNCT , CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , |
| 39 | CHAR_RAWDEL , CHAR_RAWDEL , CHAR_PERIOD , CHAR_RAWDEL , |
| 40 | //48 0 49 1 50 2 51 3 |
| 41 | //52 4 53 5 54 6 55 7 |
| 42 | CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , |
| 43 | CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , |
| 44 | //56 8 57 9 58 : 59 ; |
| 45 | //60 < 61 = 62 > 63 ? |
| 46 | CHAR_DIGIT , CHAR_DIGIT , CHAR_RAWDEL , CHAR_RAWDEL , |
| 47 | CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , |
| 48 | //64 @ 65 A 66 B 67 C |
| 49 | //68 D 69 E 70 F 71 G |
| 50 | CHAR_PUNCT , CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER , |
| 51 | CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER , CHAR_UPPER , |
| 52 | //72 H 73 I 74 J 75 K |
| 53 | //76 L 77 M 78 N 79 O |
| 54 | CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , |
| 55 | CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , |
| 56 | //80 P 81 Q 82 R 83 S |
| 57 | //84 T 85 U 86 V 87 W |
| 58 | CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , |
| 59 | CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , |
| 60 | //88 X 89 Y 90 Z 91 [ |
| 61 | //92 \ 93 ] 94 ^ 95 _ |
| 62 | CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_RAWDEL , |
| 63 | CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_UNDER , |
| 64 | //96 ` 97 a 98 b 99 c |
| 65 | //100 d 101 e 102 f 103 g |
| 66 | CHAR_PUNCT , CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER , |
| 67 | CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER , CHAR_LOWER , |
| 68 | //104 h 105 i 106 j 107 k |
| 69 | //108 l 109 m 110 n 111 o |
| 70 | CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , |
| 71 | CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , |
| 72 | //112 p 113 q 114 r 115 s |
| 73 | //116 t 117 u 118 v 119 w |
| 74 | CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , |
| 75 | CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , |
| 76 | //120 x 121 y 122 z 123 { |
| 77 | //124 | 125 } 126 ~ 127 DEL |
| 78 | CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_RAWDEL , |
| 79 | CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 0 |
| 80 | }; |