xref: /php-src/ext/dom/lexbor/lexbor/core/str_res.h (revision bffab33a)
1 /*
2  * Copyright (C) 2018 Alexander Borisov
3  *
4  * Author: Alexander Borisov <borisov@lexbor.com>
5  */
6 
7 #ifndef LEXBOR_STR_RES_H
8 #define LEXBOR_STR_RES_H
9 
10 #define LEXBOR_STR_RES_MAP_CHAR_OTHER      '\00'
11 #define LEXBOR_STR_RES_MAP_CHAR_A_Z_a_z    '\01'
12 #define LEXBOR_STR_RES_MAP_CHAR_WHITESPACE '\02'
13 
14 #define LEXBOR_STR_RES_SLIP 0xFF
15 
16 #endif /* LEXBOR_STR_RES_H */
17 
18 #ifdef LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER
19 #ifndef LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER_ENABLED
20 #define LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER_ENABLED
21 static const lxb_char_t
22 lexbor_str_res_ansi_replacement_character[] = "\xEF\xBF\xBD";
23 #endif /* LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER_ENABLED */
24 #endif /* LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER */
25 
26 #ifdef LEXBOR_STR_RES_MAP_NUM
27 #ifndef LEXBOR_STR_RES_MAP_NUM_ENABLED
28 #define LEXBOR_STR_RES_MAP_NUM_ENABLED
29 static const lxb_char_t lexbor_str_res_map_num[] = {
30     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
31     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
32     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
33     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
34     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
35     0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
36     0x06, 0x07, 0x08, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff,
37     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
38     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
39     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
40     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
41     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
42     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
43     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
44     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
45     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
46     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
47     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
48     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
49     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
50     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
51     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
52     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
53     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
54     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
55     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
56     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
57     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
58     0xff, 0xff, 0xff, 0xff
59 };
60 #endif /* LEXBOR_STR_RES_MAP_NUM_ENABLED */
61 #endif /* LEXBOR_STR_RES_MAP_NUM */
62 
63 
64 #ifdef LEXBOR_STR_RES_MAP_HEX
65 #ifndef LEXBOR_STR_RES_MAP_HEX_ENABLED
66 #define LEXBOR_STR_RES_MAP_HEX_ENABLED
67 static const lxb_char_t lexbor_str_res_map_hex[] = {
68     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
69     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
70     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
71     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
72     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
73     0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
74     0x06, 0x07, 0x08, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff,
75     0xff, 0xff, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff,
76     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
77     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
78     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x0b,
79     0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
80     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
81     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
82     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
83     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
84     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
85     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
86     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
87     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
88     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
89     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
90     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
91     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
92     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
93     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
94     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
95     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
96     0xff, 0xff, 0xff, 0xff
97 };
98 #endif /* LEXBOR_STR_RES_MAP_HEX_ENABLED */
99 #endif /* LEXBOR_STR_RES_MAP_HEX */
100 
101 
102 #ifdef LEXBOR_STR_RES_MAP_LOWERCASE
103 #ifndef LEXBOR_STR_RES_MAP_LOWERCASE_ENABLED
104 #define LEXBOR_STR_RES_MAP_LOWERCASE_ENABLED
105 static const lxb_char_t lexbor_str_res_map_lowercase[] = {
106     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
107     0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
108     0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,
109     0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
110     0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c,
111     0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
112     0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e,
113     0x3f, 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
114     0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
115     0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
116     0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62,
117     0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,
118     0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74,
119     0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d,
120     0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86,
121     0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
122     0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
123     0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1,
124     0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa,
125     0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3,
126     0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc,
127     0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5,
128     0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,
129     0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
130     0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0,
131     0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
132     0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2,
133     0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,
134     0xfc, 0xfd, 0xfe, 0xff
135 };
136 #endif /* LEXBOR_STR_RES_MAP_LOWERCASE_ENABLED */
137 #endif /* LEXBOR_STR_RES_MAP_LOWERCASE */
138 
139 
140 #ifdef LEXBOR_STR_RES_MAP_UPPERCASE
141 #ifndef LEXBOR_STR_RES_MAP_UPPERCASE_ENABLED
142 #define LEXBOR_STR_RES_MAP_UPPERCASE_ENABLED
143 static const lxb_char_t lexbor_str_res_map_uppercase[] = {
144     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
145     0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
146     0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,
147     0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
148     0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c,
149     0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
150     0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e,
151     0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
152     0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
153     0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
154     0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x41, 0x42,
155     0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b,
156     0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54,
157     0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d,
158     0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86,
159     0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
160     0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
161     0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1,
162     0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa,
163     0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3,
164     0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc,
165     0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5,
166     0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,
167     0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
168     0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0,
169     0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
170     0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2,
171     0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,
172     0xfc, 0xfd, 0xfe, 0xff
173 };
174 #endif /* LEXBOR_STR_RES_MAP_UPPERCASE_ENABLED */
175 #endif /* LEXBOR_STR_RES_MAP_UPPERCASE */
176 
177 
178 #ifdef LEXBOR_STR_RES_REPLACEMENT_CHARACTER
179 #ifndef LEXBOR_STR_RES_REPLACEMENT_CHARACTER_ENABLED
180 #define LEXBOR_STR_RES_REPLACEMENT_CHARACTER_ENABLED
181 static const size_t lexbor_str_res_replacement_character[] = {
182     65533, 1, 2, 3, 4, 5, 6, 7, 8,
183     9, 10, 11, 12, 13, 14, 15, 16, 17,
184     18, 19, 20, 21, 22, 23, 24, 25, 26,
185     27, 28, 29, 30, 31, 32, 33, 34, 35,
186     36, 37, 38, 39, 40, 41, 42, 43, 44,
187     45, 46, 47, 48, 49, 50, 51, 52, 53,
188     54, 55, 56, 57, 58, 59, 60, 61, 62,
189     63, 64, 65, 66, 67, 68, 69, 70, 71,
190     72, 73, 74, 75, 76, 77, 78, 79, 80,
191     81, 82, 83, 84, 85, 86, 87, 88, 89,
192     90, 91, 92, 93, 94, 95, 96, 97, 98,
193     99, 100, 101, 102, 103, 104, 105, 106, 107,
194     108, 109, 110, 111, 112, 113, 114, 115, 116,
195     117, 118, 119, 120, 121, 122, 123, 124, 125,
196     126, 127, 8364, 129, 8218, 402, 8222, 8230, 8224,
197     8225, 710, 8240, 352, 8249, 338, 141, 381, 143,
198     144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732,
199     8482, 353, 8250, 339, 157, 382, 376
200 };
201 #endif /* LEXBOR_STR_RES_REPLACEMENT_CHARACTER_ENABLED */
202 #endif /* LEXBOR_STR_RES_REPLACEMENT_CHARACTER */
203 
204 
205 #ifdef LEXBOR_STR_RES_ALPHANUMERIC_CHARACTER
206 #ifndef LEXBOR_STR_RES_ALPHANUMERIC_CHARACTER_ENABLED
207 #define LEXBOR_STR_RES_ALPHANUMERIC_CHARACTER_ENABLED
208 static const size_t lexbor_str_res_alphanumeric_character[] = {
209     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
210     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
211     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
212     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
213     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
214     0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
215     0x06, 0x07, 0x08, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff,
216     0xff, 0xff, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a,
217     0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d,
218     0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a,
219     0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d,
220     0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a,
221     0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d,
222     0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d, 0xff, 0xff, 0xff,
223     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
224     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
225     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
226     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
227     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
228     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
229     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
230     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
231     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
232     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
233     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
234     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
235     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
236     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
237     0xff, 0xff, 0xff, 0xff
238 };
239 #endif /* LEXBOR_STR_RES_ALPHANUMERIC_CHARACTER_ENABLED */
240 #endif /* LEXBOR_STR_RES_ALPHANUMERIC_CHARACTER */
241 
242 
243 #ifdef LEXBOR_STR_RES_ALPHA_CHARACTER
244 #ifndef LEXBOR_STR_RES_ALPHA_CHARACTER_ENABLED
245 #define LEXBOR_STR_RES_ALPHA_CHARACTER_ENABLED
246 static const size_t lexbor_str_res_alpha_character[] = {
247     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
248     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
249     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
250     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
251     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
252     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
253     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
254     0xff, 0xff, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a,
255     0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d,
256     0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a,
257     0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d,
258     0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a,
259     0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d,
260     0x0e, 0x0f, 0x0a, 0x0b, 0x0c, 0x0d, 0xff, 0xff, 0xff,
261     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
262     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
263     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
264     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
265     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
266     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
267     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
268     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
269     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
270     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
271     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
272     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
273     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
274     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
275     0xff, 0xff, 0xff, 0xff
276 };
277 #endif /* LEXBOR_STR_RES_ALPHA_CHARACTER_ENABLED */
278 #endif /* LEXBOR_STR_RES_ALPHA_CHARACTER */
279 
280 
281 #ifdef LEXBOR_TOKENIZER_CHARS_MAP
282 #ifndef LEXBOR_TOKENIZER_CHARS_MAP_ENABLED
283 #define LEXBOR_TOKENIZER_CHARS_MAP_ENABLED
284 static const unsigned char lexbor_tokenizer_chars_map[] = {
285     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
286     0x02, 0x02, 0xff, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff,
287     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
288     0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff,
289     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
290     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
291     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
292     0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
293     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
294     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
295     0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01,
296     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
297     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
298     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff,
299     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
300     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
301     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
302     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
303     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
304     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
305     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
306     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
307     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
308     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
309     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
310     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
311     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
312     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
313     0xff, 0xff, 0xff, 0xff
314 };
315 #endif /* LEXBOR_TOKENIZER_CHARS_MAP_ENABLED */
316 #endif /* LEXBOR_TOKENIZER_CHARS_MAP */
317 
318 
319 #ifdef LEXBOR_STR_RES_MAP_HEX_TO_CHAR
320 #ifndef LEXBOR_STR_RES_MAP_HEX_TO_CHAR_ENABLED
321 #define LEXBOR_STR_RES_MAP_HEX_TO_CHAR_ENABLED
322 static const lxb_char_t lexbor_str_res_map_hex_to_char[] = {
323     0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
324     0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x00
325 };
326 #endif /* LEXBOR_STR_RES_MAP_HEX_TO_CHAR_ENABLED */
327 #endif /* LEXBOR_STR_RES_MAP_HEX_TO_CHAR */
328 
329 #ifdef LEXBOR_STR_RES_MAP_HEX_TO_CHAR_LOWERCASE
330 #ifndef LEXBOR_STR_RES_MAP_HEX_TO_CHAR_LOWERCASE_ENABLED
331 #define LEXBOR_STR_RES_MAP_HEX_TO_CHAR_LOWERCASE_ENABLED
332 static const lxb_char_t lexbor_str_res_map_hex_to_char_lowercase[] = {
333     0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
334     0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00
335 };
336 #endif /* LEXBOR_STR_RES_MAP_HEX_TO_CHAR_LOWERCASE_ENABLED */
337 #endif /* LEXBOR_STR_RES_MAP_HEX_TO_CHAR_LOWERCASE */
338 
339 
340 #ifdef LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE
341 #ifndef LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_ENABLED
342 #define LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_ENABLED
343 static const char * lexbor_str_res_char_to_two_hex_value[257] = {
344     "00", "01", "02", "03", "04", "05", "06", "07",
345     "08", "09", "0A", "0B", "0C", "0D", "0E", "0F",
346     "10", "11", "12", "13", "14", "15", "16", "17",
347     "18", "19", "1A", "1B", "1C", "1D", "1E", "1F",
348     "20", "21", "22", "23", "24", "25", "26", "27",
349     "28", "29", "2A", "2B", "2C", "2D", "2E", "2F",
350     "30", "31", "32", "33", "34", "35", "36", "37",
351     "38", "39", "3A", "3B", "3C", "3D", "3E", "3F",
352     "40", "41", "42", "43", "44", "45", "46", "47",
353     "48", "49", "4A", "4B", "4C", "4D", "4E", "4F",
354     "50", "51", "52", "53", "54", "55", "56", "57",
355     "58", "59", "5A", "5B", "5C", "5D", "5E", "5F",
356     "60", "61", "62", "63", "64", "65", "66", "67",
357     "68", "69", "6A", "6B", "6C", "6D", "6E", "6F",
358     "70", "71", "72", "73", "74", "75", "76", "77",
359     "78", "79", "7A", "7B", "7C", "7D", "7E", "7F",
360     "80", "81", "82", "83", "84", "85", "86", "87",
361     "88", "89", "8A", "8B", "8C", "8D", "8E", "8F",
362     "90", "91", "92", "93", "94", "95", "96", "97",
363     "98", "99", "9A", "9B", "9C", "9D", "9E", "9F",
364     "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7",
365     "A8", "A9", "AA", "AB", "AC", "AD", "AE", "AF",
366     "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7",
367     "B8", "B9", "BA", "BB", "BC", "BD", "BE", "BF",
368     "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7",
369     "C8", "C9", "CA", "CB", "CC", "CD", "CE", "CF",
370     "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7",
371     "D8", "D9", "DA", "DB", "DC", "DD", "DE", "DF",
372     "E0", "E1", "E2", "E3", "E4", "E5", "E6", "E7",
373     "E8", "E9", "EA", "EB", "EC", "ED", "EE", "EF",
374     "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7",
375     "F8", "F9", "FA", "FB", "FC", "FD", "FE", "FF",
376     NULL
377 };
378 #endif /* LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_ENABLED */
379 #endif /* LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE */
380 
381 #ifdef LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_LOWERCASE
382 #ifndef LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_LOWERCASE_ENABLED
383 #define LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_LOWERCASE_ENABLED
384 static const char * lexbor_str_res_char_to_two_hex_value_lowercase[257] = {
385     "00", "01", "02", "03", "04", "05", "06", "07",
386     "08", "09", "0a", "0b", "0c", "0d", "0e", "0f",
387     "10", "11", "12", "13", "14", "15", "16", "17",
388     "18", "19", "1a", "1b", "1c", "1d", "1e", "1f",
389     "20", "21", "22", "23", "24", "25", "26", "27",
390     "28", "29", "2a", "2b", "2c", "2d", "2e", "2f",
391     "30", "31", "32", "33", "34", "35", "36", "37",
392     "38", "39", "3a", "3b", "3c", "3d", "3e", "3f",
393     "40", "41", "42", "43", "44", "45", "46", "47",
394     "48", "49", "4a", "4b", "4c", "4d", "4e", "4f",
395     "50", "51", "52", "53", "54", "55", "56", "57",
396     "58", "59", "5a", "5b", "5c", "5d", "5e", "5f",
397     "60", "61", "62", "63", "64", "65", "66", "67",
398     "68", "69", "6a", "6b", "6c", "6d", "6e", "6f",
399     "70", "71", "72", "73", "74", "75", "76", "77",
400     "78", "79", "7a", "7b", "7c", "7d", "7e", "7f",
401     "80", "81", "82", "83", "84", "85", "86", "87",
402     "88", "89", "8a", "8b", "8c", "8d", "8e", "8f",
403     "90", "91", "92", "93", "94", "95", "96", "97",
404     "98", "99", "9a", "9b", "9c", "9d", "9e", "9f",
405     "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7",
406     "a8", "a9", "aa", "ab", "ac", "ad", "ae", "af",
407     "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7",
408     "b8", "b9", "ba", "bb", "bc", "bd", "be", "bf",
409     "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7",
410     "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf",
411     "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
412     "d8", "d9", "da", "db", "dc", "dd", "de", "df",
413     "e0", "e1", "e2", "e3", "e4", "e5", "e6", "e7",
414     "e8", "e9", "ea", "eb", "ec", "ed", "ee", "ef",
415     "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
416     "f8", "f9", "fa", "fb", "fc", "fd", "fe", "ff",
417     NULL
418 };
419 #endif /* LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_LOWERCASE_ENABLED */
420 #endif /* LEXBOR_STR_RES_CHAR_TO_TWO_HEX_VALUE_LOWERCASE */
421