clang API Documentation

CharInfo.cpp
Go to the documentation of this file.
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 };