232 lines
14 KiB
Plaintext
232 lines
14 KiB
Plaintext
// This is used for classifying characters according to the definition of tokens
|
|
// in the CSS standards, but could be extended for any other future uses
|
|
|
|
#pragma once
|
|
|
|
namespace CharData {
|
|
static constexpr uint8_t Whitespace = 0x1;
|
|
static constexpr uint8_t Newline = 0x2;
|
|
static constexpr uint8_t Hex = 0x4;
|
|
static constexpr uint8_t Nmstart = 0x8;
|
|
static constexpr uint8_t Nmchar = 0x10;
|
|
static constexpr uint8_t Sign = 0x20;
|
|
static constexpr uint8_t Digit = 0x40;
|
|
static constexpr uint8_t NumStart = 0x80;
|
|
};
|
|
|
|
using namespace CharData;
|
|
|
|
constexpr const uint8_t charData[256] = {
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, // 0-8
|
|
Whitespace, // 9 (HT)
|
|
Whitespace | Newline, // 10 (LF)
|
|
0, // 11 (VT)
|
|
Whitespace | Newline, // 12 (FF)
|
|
Whitespace | Newline, // 13 (CR)
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 14-31
|
|
Whitespace, // 32 (Space)
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 33-42
|
|
Sign | NumStart, // 43 (+)
|
|
0, // 44
|
|
Nmchar | Sign | NumStart, // 45 (-)
|
|
0, 0, // 46-47
|
|
Nmchar | Digit | NumStart | Hex, // 48 (0)
|
|
Nmchar | Digit | NumStart | Hex, // 49 (1)
|
|
Nmchar | Digit | NumStart | Hex, // 50 (2)
|
|
Nmchar | Digit | NumStart | Hex, // 51 (3)
|
|
Nmchar | Digit | NumStart | Hex, // 52 (4)
|
|
Nmchar | Digit | NumStart | Hex, // 53 (5)
|
|
Nmchar | Digit | NumStart | Hex, // 54 (6)
|
|
Nmchar | Digit | NumStart | Hex, // 55 (7)
|
|
Nmchar | Digit | NumStart | Hex, // 56 (8)
|
|
Nmchar | Digit | NumStart | Hex, // 57 (9)
|
|
0, 0, 0, 0, 0, 0, 0, // 58-64
|
|
Nmstart | Nmchar | Hex, // 65 (A)
|
|
Nmstart | Nmchar | Hex, // 66 (B)
|
|
Nmstart | Nmchar | Hex, // 67 (C)
|
|
Nmstart | Nmchar | Hex, // 68 (D)
|
|
Nmstart | Nmchar | Hex, // 69 (E)
|
|
Nmstart | Nmchar | Hex, // 70 (F)
|
|
Nmstart | Nmchar, // 71 (G)
|
|
Nmstart | Nmchar, // 72 (H)
|
|
Nmstart | Nmchar, // 73 (I)
|
|
Nmstart | Nmchar, // 74 (J)
|
|
Nmstart | Nmchar, // 75 (K)
|
|
Nmstart | Nmchar, // 76 (L)
|
|
Nmstart | Nmchar, // 77 (M)
|
|
Nmstart | Nmchar, // 78 (N)
|
|
Nmstart | Nmchar, // 79 (O)
|
|
Nmstart | Nmchar, // 80 (P)
|
|
Nmstart | Nmchar, // 81 (Q)
|
|
Nmstart | Nmchar, // 82 (R)
|
|
Nmstart | Nmchar, // 83 (S)
|
|
Nmstart | Nmchar, // 84 (T)
|
|
Nmstart | Nmchar, // 85 (U)
|
|
Nmstart | Nmchar, // 86 (V)
|
|
Nmstart | Nmchar, // 87 (W)
|
|
Nmstart | Nmchar, // 88 (X)
|
|
Nmstart | Nmchar, // 89 (Y)
|
|
Nmstart | Nmchar, // 90 (Z)
|
|
0, // 91
|
|
Nmstart, // 92 (\)
|
|
0, 0, // 93-94
|
|
Nmstart | Nmchar, // 95 (_)
|
|
0, // 96
|
|
Nmstart | Nmchar | Hex, // 97 (a)
|
|
Nmstart | Nmchar | Hex, // 98 (b)
|
|
Nmstart | Nmchar | Hex, // 99 (c)
|
|
Nmstart | Nmchar | Hex, // 100 (d)
|
|
Nmstart | Nmchar | Hex, // 101 (e)
|
|
Nmstart | Nmchar | Hex, // 102 (f)
|
|
Nmstart | Nmchar, // 103 (g)
|
|
Nmstart | Nmchar, // 104 (h)
|
|
Nmstart | Nmchar, // 105 (i)
|
|
Nmstart | Nmchar, // 106 (j)
|
|
Nmstart | Nmchar, // 107 (k)
|
|
Nmstart | Nmchar, // 108 (l)
|
|
Nmstart | Nmchar, // 109 (m)
|
|
Nmstart | Nmchar, // 110 (n)
|
|
Nmstart | Nmchar, // 111 (o)
|
|
Nmstart | Nmchar, // 112 (p)
|
|
Nmstart | Nmchar, // 113 (q)
|
|
Nmstart | Nmchar, // 114 (r)
|
|
Nmstart | Nmchar, // 115 (s)
|
|
Nmstart | Nmchar, // 116 (t)
|
|
Nmstart | Nmchar, // 117 (u)
|
|
Nmstart | Nmchar, // 118 (v)
|
|
Nmstart | Nmchar, // 119 (w)
|
|
Nmstart | Nmchar, // 120 (x)
|
|
Nmstart | Nmchar, // 121 (y)
|
|
Nmstart | Nmchar, // 122 (z)
|
|
0, 0, 0, 0, 0, // 123-127
|
|
// Non-ASCII
|
|
Nmstart | Nmchar, // 128
|
|
Nmstart | Nmchar, // 129
|
|
Nmstart | Nmchar, // 130
|
|
Nmstart | Nmchar, // 131
|
|
Nmstart | Nmchar, // 132
|
|
Nmstart | Nmchar, // 133
|
|
Nmstart | Nmchar, // 134
|
|
Nmstart | Nmchar, // 135
|
|
Nmstart | Nmchar, // 136
|
|
Nmstart | Nmchar, // 137
|
|
Nmstart | Nmchar, // 138
|
|
Nmstart | Nmchar, // 139
|
|
Nmstart | Nmchar, // 140
|
|
Nmstart | Nmchar, // 141
|
|
Nmstart | Nmchar, // 142
|
|
Nmstart | Nmchar, // 143
|
|
Nmstart | Nmchar, // 144
|
|
Nmstart | Nmchar, // 145
|
|
Nmstart | Nmchar, // 146
|
|
Nmstart | Nmchar, // 147
|
|
Nmstart | Nmchar, // 148
|
|
Nmstart | Nmchar, // 149
|
|
Nmstart | Nmchar, // 150
|
|
Nmstart | Nmchar, // 151
|
|
Nmstart | Nmchar, // 152
|
|
Nmstart | Nmchar, // 153
|
|
Nmstart | Nmchar, // 154
|
|
Nmstart | Nmchar, // 155
|
|
Nmstart | Nmchar, // 156
|
|
Nmstart | Nmchar, // 157
|
|
Nmstart | Nmchar, // 158
|
|
Nmstart | Nmchar, // 159
|
|
Nmstart | Nmchar, // 160
|
|
Nmstart | Nmchar, // 161
|
|
Nmstart | Nmchar, // 162
|
|
Nmstart | Nmchar, // 163
|
|
Nmstart | Nmchar, // 164
|
|
Nmstart | Nmchar, // 165
|
|
Nmstart | Nmchar, // 166
|
|
Nmstart | Nmchar, // 167
|
|
Nmstart | Nmchar, // 168
|
|
Nmstart | Nmchar, // 169
|
|
Nmstart | Nmchar, // 170
|
|
Nmstart | Nmchar, // 171
|
|
Nmstart | Nmchar, // 172
|
|
Nmstart | Nmchar, // 173
|
|
Nmstart | Nmchar, // 174
|
|
Nmstart | Nmchar, // 175
|
|
Nmstart | Nmchar, // 176
|
|
Nmstart | Nmchar, // 177
|
|
Nmstart | Nmchar, // 178
|
|
Nmstart | Nmchar, // 179
|
|
Nmstart | Nmchar, // 180
|
|
Nmstart | Nmchar, // 181
|
|
Nmstart | Nmchar, // 182
|
|
Nmstart | Nmchar, // 183
|
|
Nmstart | Nmchar, // 184
|
|
Nmstart | Nmchar, // 185
|
|
Nmstart | Nmchar, // 186
|
|
Nmstart | Nmchar, // 187
|
|
Nmstart | Nmchar, // 188
|
|
Nmstart | Nmchar, // 189
|
|
Nmstart | Nmchar, // 190
|
|
Nmstart | Nmchar, // 191
|
|
Nmstart | Nmchar, // 192
|
|
Nmstart | Nmchar, // 193
|
|
Nmstart | Nmchar, // 194
|
|
Nmstart | Nmchar, // 195
|
|
Nmstart | Nmchar, // 196
|
|
Nmstart | Nmchar, // 197
|
|
Nmstart | Nmchar, // 198
|
|
Nmstart | Nmchar, // 199
|
|
Nmstart | Nmchar, // 200
|
|
Nmstart | Nmchar, // 201
|
|
Nmstart | Nmchar, // 202
|
|
Nmstart | Nmchar, // 203
|
|
Nmstart | Nmchar, // 204
|
|
Nmstart | Nmchar, // 205
|
|
Nmstart | Nmchar, // 206
|
|
Nmstart | Nmchar, // 207
|
|
Nmstart | Nmchar, // 208
|
|
Nmstart | Nmchar, // 209
|
|
Nmstart | Nmchar, // 210
|
|
Nmstart | Nmchar, // 211
|
|
Nmstart | Nmchar, // 212
|
|
Nmstart | Nmchar, // 213
|
|
Nmstart | Nmchar, // 214
|
|
Nmstart | Nmchar, // 215
|
|
Nmstart | Nmchar, // 216
|
|
Nmstart | Nmchar, // 217
|
|
Nmstart | Nmchar, // 218
|
|
Nmstart | Nmchar, // 219
|
|
Nmstart | Nmchar, // 220
|
|
Nmstart | Nmchar, // 221
|
|
Nmstart | Nmchar, // 222
|
|
Nmstart | Nmchar, // 223
|
|
Nmstart | Nmchar, // 224
|
|
Nmstart | Nmchar, // 225
|
|
Nmstart | Nmchar, // 226
|
|
Nmstart | Nmchar, // 227
|
|
Nmstart | Nmchar, // 228
|
|
Nmstart | Nmchar, // 229
|
|
Nmstart | Nmchar, // 230
|
|
Nmstart | Nmchar, // 231
|
|
Nmstart | Nmchar, // 232
|
|
Nmstart | Nmchar, // 233
|
|
Nmstart | Nmchar, // 234
|
|
Nmstart | Nmchar, // 235
|
|
Nmstart | Nmchar, // 236
|
|
Nmstart | Nmchar, // 237
|
|
Nmstart | Nmchar, // 238
|
|
Nmstart | Nmchar, // 239
|
|
Nmstart | Nmchar, // 240
|
|
Nmstart | Nmchar, // 241
|
|
Nmstart | Nmchar, // 242
|
|
Nmstart | Nmchar, // 243
|
|
Nmstart | Nmchar, // 244
|
|
Nmstart | Nmchar, // 245
|
|
Nmstart | Nmchar, // 246
|
|
Nmstart | Nmchar, // 247
|
|
Nmstart | Nmchar, // 248
|
|
Nmstart | Nmchar, // 249
|
|
Nmstart | Nmchar, // 250
|
|
Nmstart | Nmchar, // 251
|
|
Nmstart | Nmchar, // 252
|
|
Nmstart | Nmchar, // 253
|
|
Nmstart | Nmchar, // 254
|
|
Nmstart | Nmchar // 255
|
|
};
|