summaryrefslogtreecommitdiff
path: root/ccan/ccan_tokenizer/charflag.c
blob: c74cc277d48537eb4f80d80219bcaaaef5f1d081 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "charflag.h"

#define C CF_CONTROL
#define S CF_SPACE
#define R CF_RETURN
#define D CF_DIGIT
#define L CF_LETTER
#define H CF_HEX
#define Y CF_SYMBOL

unsigned char charflag[256] = {
   C,C,C,C,C,C,C,C,C,
   S, // \t
   R, // \n
   S, // \v
   S, // \f
   R, // \r
   C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,
   S, // space
   Y,   // !
   Y,   // "
   Y,   // #
   Y,   // $
   Y,   // %
   Y,   // &
   Y,   // '
   Y,   // (
   Y,   // )
   Y,   // *
   Y,   // +
   Y,   // ,
   Y,   // -
   Y,   // .
   Y,   // /
   D|H, // 0
   D|H, // 1
   D|H, // 2
   D|H, // 3
   D|H, // 4
   D|H, // 5
   D|H, // 6
   D|H, // 7
   D|H, // 8
   D|H, // 9
   Y,   // :
   Y,   // ;
   Y,   // <
   Y,   // =
   Y,   // >
   Y,   // ?
   Y,   // @
   L|H, // A
   L|H, // B
   L|H, // C
   L|H, // D
   L|H, // E
   L|H, // F
   L,   // G
   L,   // H
   L,   // I
   L,   // J
   L,   // K
   L,   // L
   L,   // M
   L,   // N
   L,   // O
   L,   // P
   L,   // Q
   L,   // R
   L,   // S
   L,   // T
   L,   // U
   L,   // V
   L,   // W
   L,   // X
   L,   // Y
   L,   // Z
   Y,   // [
   Y,   // \ (backslash)
   Y,   // ]
   Y,   // ^
   Y,   // _
   Y,   // `
   L|H, // a
   L|H, // b
   L|H, // c
   L|H, // d
   L|H, // e
   L|H, // f
   L,   // g
   L,   // h
   L,   // i
   L,   // j
   L,   // k
   L,   // l
   L,   // m
   L,   // n
   L,   // o
   L,   // p
   L,   // q
   L,   // r
   L,   // s
   L,   // t
   L,   // u
   L,   // v
   L,   // w
   L,   // x
   L,   // y
   L,   // z
   Y,   // {
   Y,   // |
   Y,   // }
   Y,   // ~
   C,   // DEL
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};

#undef C
#undef S
#undef R
#undef D
#undef L
#undef H
#undef Y