clang API Documentation
00001 //===--- CharInfo.cpp - Static Data for Classifying ASCII Characters ------===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 00010 #include "clang/Basic/CharInfo.h" 00011 00012 using namespace clang::charinfo; 00013 00014 // Statically initialize CharInfo table based on ASCII character set 00015 // Reference: FreeBSD 7.2 /usr/share/misc/ascii 00016 const uint16_t clang::charinfo::InfoTable[256] = { 00017 // 0 NUL 1 SOH 2 STX 3 ETX 00018 // 4 EOT 5 ENQ 6 ACK 7 BEL 00019 0 , 0 , 0 , 0 , 00020 0 , 0 , 0 , 0 , 00021 // 8 BS 9 HT 10 NL 11 VT 00022 //12 NP 13 CR 14 SO 15 SI 00023 0 , CHAR_HORZ_WS, CHAR_VERT_WS, CHAR_HORZ_WS, 00024 CHAR_HORZ_WS, CHAR_VERT_WS, 0 , 0 , 00025 //16 DLE 17 DC1 18 DC2 19 DC3 00026 //20 DC4 21 NAK 22 SYN 23 ETB 00027 0 , 0 , 0 , 0 , 00028 0 , 0 , 0 , 0 , 00029 //24 CAN 25 EM 26 SUB 27 ESC 00030 //28 FS 29 GS 30 RS 31 US 00031 0 , 0 , 0 , 0 , 00032 0 , 0 , 0 , 0 , 00033 //32 SP 33 ! 34 " 35 # 00034 //36 $ 37 % 38 & 39 ' 00035 CHAR_SPACE , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 00036 CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 00037 //40 ( 41 ) 42 * 43 + 00038 //44 , 45 - 46 . 47 / 00039 CHAR_PUNCT , CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , 00040 CHAR_RAWDEL , CHAR_RAWDEL , CHAR_PERIOD , CHAR_RAWDEL , 00041 //48 0 49 1 50 2 51 3 00042 //52 4 53 5 54 6 55 7 00043 CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , 00044 CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , 00045 //56 8 57 9 58 : 59 ; 00046 //60 < 61 = 62 > 63 ? 00047 CHAR_DIGIT , CHAR_DIGIT , CHAR_RAWDEL , CHAR_RAWDEL , 00048 CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 00049 //64 @ 65 A 66 B 67 C 00050 //68 D 69 E 70 F 71 G 00051 CHAR_PUNCT , CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER , 00052 CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER , CHAR_UPPER , 00053 //72 H 73 I 74 J 75 K 00054 //76 L 77 M 78 N 79 O 00055 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 00056 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 00057 //80 P 81 Q 82 R 83 S 00058 //84 T 85 U 86 V 87 W 00059 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 00060 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 00061 //88 X 89 Y 90 Z 91 [ 00062 //92 \ 93 ] 94 ^ 95 _ 00063 CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_RAWDEL , 00064 CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_UNDER , 00065 //96 ` 97 a 98 b 99 c 00066 //100 d 101 e 102 f 103 g 00067 CHAR_PUNCT , CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER , 00068 CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER , CHAR_LOWER , 00069 //104 h 105 i 106 j 107 k 00070 //108 l 109 m 110 n 111 o 00071 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 00072 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 00073 //112 p 113 q 114 r 115 s 00074 //116 t 117 u 118 v 119 w 00075 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 00076 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 00077 //120 x 121 y 122 z 123 { 00078 //124 | 125 } 126 ~ 127 DEL 00079 CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_RAWDEL , 00080 CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 0 00081 };