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