1 //===--- CharInfo.cpp - Static Data for Classifying ASCII Characters ------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "clang/Basic/CharInfo.h"
12 using namespace clang::charinfo;
14 // Statically initialize CharInfo table based on ASCII character set
15 // Reference: FreeBSD 7.2 /usr/share/misc/ascii
16 const uint16_t clang::charinfo::InfoTable[256] = {
17 // 0 NUL 1 SOH 2 STX 3 ETX
18 // 4 EOT 5 ENQ 6 ACK 7 BEL
21 // 8 BS 9 HT 10 NL 11 VT
22 //12 NP 13 CR 14 SO 15 SI
23 0 , CHAR_HORZ_WS, CHAR_VERT_WS, CHAR_HORZ_WS,
24 CHAR_HORZ_WS, CHAR_VERT_WS, 0 , 0 ,
25 //16 DLE 17 DC1 18 DC2 19 DC3
26 //20 DC4 21 NAK 22 SYN 23 ETB
29 //24 CAN 25 EM 26 SUB 27 ESC
30 //28 FS 29 GS 30 RS 31 US
33 //32 SP 33 ! 34 " 35 #
35 CHAR_SPACE , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL ,
36 CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL ,
39 CHAR_PUNCT , CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL ,
40 CHAR_RAWDEL , CHAR_RAWDEL , CHAR_PERIOD , CHAR_RAWDEL ,
43 CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT ,
44 CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT ,
47 CHAR_DIGIT , CHAR_DIGIT , CHAR_RAWDEL , CHAR_RAWDEL ,
48 CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL ,
51 CHAR_PUNCT , CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER ,
52 CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER , CHAR_UPPER ,
55 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER ,
56 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER ,
59 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER ,
60 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER ,
63 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_RAWDEL ,
64 CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_UNDER ,
66 //100 d 101 e 102 f 103 g
67 CHAR_PUNCT , CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER ,
68 CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER , CHAR_LOWER ,
69 //104 h 105 i 106 j 107 k
70 //108 l 109 m 110 n 111 o
71 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER ,
72 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER ,
73 //112 p 113 q 114 r 115 s
74 //116 t 117 u 118 v 119 w
75 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER ,
76 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER ,
77 //120 x 121 y 122 z 123 {
78 //124 | 125 } 126 ~ 127 DEL
79 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_RAWDEL ,
80 CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 0