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