1249261Sdim//===--- CharInfo.cpp - Static Data for Classifying ASCII Characters ------===// 2249261Sdim// 3249261Sdim// The LLVM Compiler Infrastructure 4249261Sdim// 5249261Sdim// This file is distributed under the University of Illinois Open Source 6249261Sdim// License. See LICENSE.TXT for details. 7249261Sdim// 8249261Sdim//===----------------------------------------------------------------------===// 9249261Sdim 10249261Sdim#include "clang/Basic/CharInfo.h" 11249261Sdim 12249261Sdimusing namespace clang::charinfo; 13249261Sdim 14249261Sdim// Statically initialize CharInfo table based on ASCII character set 15249261Sdim// Reference: FreeBSD 7.2 /usr/share/misc/ascii 16249261Sdimconst uint16_t clang::charinfo::InfoTable[256] = { 17249261Sdim // 0 NUL 1 SOH 2 STX 3 ETX 18249261Sdim // 4 EOT 5 ENQ 6 ACK 7 BEL 19249261Sdim 0 , 0 , 0 , 0 , 20249261Sdim 0 , 0 , 0 , 0 , 21249261Sdim // 8 BS 9 HT 10 NL 11 VT 22249261Sdim //12 NP 13 CR 14 SO 15 SI 23249261Sdim 0 , CHAR_HORZ_WS, CHAR_VERT_WS, CHAR_HORZ_WS, 24249261Sdim CHAR_HORZ_WS, CHAR_VERT_WS, 0 , 0 , 25249261Sdim //16 DLE 17 DC1 18 DC2 19 DC3 26249261Sdim //20 DC4 21 NAK 22 SYN 23 ETB 27249261Sdim 0 , 0 , 0 , 0 , 28249261Sdim 0 , 0 , 0 , 0 , 29249261Sdim //24 CAN 25 EM 26 SUB 27 ESC 30249261Sdim //28 FS 29 GS 30 RS 31 US 31249261Sdim 0 , 0 , 0 , 0 , 32249261Sdim 0 , 0 , 0 , 0 , 33249261Sdim //32 SP 33 ! 34 " 35 # 34249261Sdim //36 $ 37 % 38 & 39 ' 35249261Sdim CHAR_SPACE , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 36249261Sdim CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 37249261Sdim //40 ( 41 ) 42 * 43 + 38249261Sdim //44 , 45 - 46 . 47 / 39249261Sdim CHAR_PUNCT , CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , 40249261Sdim CHAR_RAWDEL , CHAR_RAWDEL , CHAR_PERIOD , CHAR_RAWDEL , 41249261Sdim //48 0 49 1 50 2 51 3 42249261Sdim //52 4 53 5 54 6 55 7 43249261Sdim CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , 44249261Sdim CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , CHAR_DIGIT , 45249261Sdim //56 8 57 9 58 : 59 ; 46249261Sdim //60 < 61 = 62 > 63 ? 47249261Sdim CHAR_DIGIT , CHAR_DIGIT , CHAR_RAWDEL , CHAR_RAWDEL , 48249261Sdim CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 49249261Sdim //64 @ 65 A 66 B 67 C 50249261Sdim //68 D 69 E 70 F 71 G 51249261Sdim CHAR_PUNCT , CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER , 52249261Sdim CHAR_XUPPER , CHAR_XUPPER , CHAR_XUPPER , CHAR_UPPER , 53249261Sdim //72 H 73 I 74 J 75 K 54249261Sdim //76 L 77 M 78 N 79 O 55249261Sdim CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 56249261Sdim CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 57249261Sdim //80 P 81 Q 82 R 83 S 58249261Sdim //84 T 85 U 86 V 87 W 59249261Sdim CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 60249261Sdim CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , 61249261Sdim //88 X 89 Y 90 Z 91 [ 62249261Sdim //92 \ 93 ] 94 ^ 95 _ 63249261Sdim CHAR_UPPER , CHAR_UPPER , CHAR_UPPER , CHAR_RAWDEL , 64249261Sdim CHAR_PUNCT , CHAR_RAWDEL , CHAR_RAWDEL , CHAR_UNDER , 65249261Sdim //96 ` 97 a 98 b 99 c 66249261Sdim //100 d 101 e 102 f 103 g 67249261Sdim CHAR_PUNCT , CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER , 68249261Sdim CHAR_XLOWER , CHAR_XLOWER , CHAR_XLOWER , CHAR_LOWER , 69249261Sdim //104 h 105 i 106 j 107 k 70249261Sdim //108 l 109 m 110 n 111 o 71249261Sdim CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 72249261Sdim CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 73249261Sdim //112 p 113 q 114 r 115 s 74249261Sdim //116 t 117 u 118 v 119 w 75249261Sdim CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 76249261Sdim CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , 77249261Sdim //120 x 121 y 122 z 123 { 78249261Sdim //124 | 125 } 126 ~ 127 DEL 79249261Sdim CHAR_LOWER , CHAR_LOWER , CHAR_LOWER , CHAR_RAWDEL , 80249261Sdim CHAR_RAWDEL , CHAR_RAWDEL , CHAR_RAWDEL , 0 81249261Sdim}; 82