]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /*============================================================================= |
2 | Copyright (c) 2001-2014 Joel de Guzman | |
3 | ||
4 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
5 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | ==============================================================================*/ | |
7 | #if !defined(BOOST_SPIRIT_X3_UNICODE_JAN_20_2012_1218AM) | |
8 | #define BOOST_SPIRIT_X3_UNICODE_JAN_20_2012_1218AM | |
9 | ||
10 | #include <boost/spirit/home/x3/char/char_parser.hpp> | |
11 | #include <boost/spirit/home/x3/char/char.hpp> | |
12 | #include <boost/spirit/home/x3/char/detail/cast_char.hpp> | |
13 | #include <boost/spirit/home/support/char_encoding/unicode.hpp> | |
14 | ||
15 | namespace boost { namespace spirit { namespace x3 | |
16 | { | |
17 | /////////////////////////////////////////////////////////////////////////// | |
18 | // Unicode Major Categories | |
19 | /////////////////////////////////////////////////////////////////////////// | |
20 | struct char_tag; | |
21 | struct alnum_tag; | |
22 | struct alpha_tag; | |
23 | struct blank_tag; | |
24 | struct cntrl_tag; | |
25 | struct digit_tag; | |
26 | struct graph_tag; | |
27 | struct print_tag; | |
28 | struct punct_tag; | |
29 | struct space_tag; | |
30 | struct xdigit_tag; | |
31 | struct lower_tag; | |
32 | struct upper_tag; | |
33 | ||
34 | /////////////////////////////////////////////////////////////////////////// | |
35 | // Unicode Major Categories | |
36 | /////////////////////////////////////////////////////////////////////////// | |
37 | struct letter_tag {}; | |
38 | struct mark_tag {}; | |
39 | struct number_tag {}; | |
40 | struct separator_tag {}; | |
41 | struct other_tag {}; | |
42 | struct punctuation_tag {}; | |
43 | struct symbol_tag {}; | |
44 | ||
45 | /////////////////////////////////////////////////////////////////////////// | |
46 | // Unicode General Categories | |
47 | /////////////////////////////////////////////////////////////////////////// | |
48 | struct uppercase_letter_tag {}; | |
49 | struct lowercase_letter_tag {}; | |
50 | struct titlecase_letter_tag {}; | |
51 | struct modifier_letter_tag {}; | |
52 | struct other_letter_tag {}; | |
53 | ||
54 | struct nonspacing_mark_tag {}; | |
55 | struct enclosing_mark_tag {}; | |
56 | struct spacing_mark_tag {}; | |
57 | ||
58 | struct decimal_number_tag {}; | |
59 | struct letter_number_tag {}; | |
60 | struct other_number_tag {}; | |
61 | ||
62 | struct space_separator_tag {}; | |
63 | struct line_separator_tag {}; | |
64 | struct paragraph_separator_tag {}; | |
65 | ||
66 | struct control_tag {}; | |
67 | struct format_tag {}; | |
68 | struct private_use_tag {}; | |
69 | struct surrogate_tag {}; | |
70 | struct unassigned_tag {}; | |
71 | ||
72 | struct dash_punctuation_tag {}; | |
73 | struct open_punctuation_tag {}; | |
74 | struct close_punctuation_tag {}; | |
75 | struct connector_punctuation_tag {}; | |
76 | struct other_punctuation_tag {}; | |
77 | struct initial_punctuation_tag {}; | |
78 | struct final_punctuation_tag {}; | |
79 | ||
80 | struct math_symbol_tag {}; | |
81 | struct currency_symbol_tag {}; | |
82 | struct modifier_symbol_tag {}; | |
83 | struct other_symbol_tag {}; | |
84 | ||
85 | /////////////////////////////////////////////////////////////////////////// | |
86 | // Unicode Derived Categories | |
87 | /////////////////////////////////////////////////////////////////////////// | |
88 | struct alphabetic_tag {}; | |
89 | struct uppercase_tag {}; | |
90 | struct lowercase_tag {}; | |
91 | struct white_space_tag {}; | |
92 | struct hex_digit_tag {}; | |
93 | struct noncharacter_code_point_tag {}; | |
94 | struct default_ignorable_code_point_tag {}; | |
95 | ||
96 | /////////////////////////////////////////////////////////////////////////// | |
97 | // Unicode Scripts | |
98 | /////////////////////////////////////////////////////////////////////////// | |
99 | struct arabic_tag {}; | |
100 | struct imperial_aramaic_tag {}; | |
101 | struct armenian_tag {}; | |
102 | struct avestan_tag {}; | |
103 | struct balinese_tag {}; | |
104 | struct bamum_tag {}; | |
105 | struct bengali_tag {}; | |
106 | struct bopomofo_tag {}; | |
107 | struct braille_tag {}; | |
108 | struct buginese_tag {}; | |
109 | struct buhid_tag {}; | |
110 | struct canadian_aboriginal_tag {}; | |
111 | struct carian_tag {}; | |
112 | struct cham_tag {}; | |
113 | struct cherokee_tag {}; | |
114 | struct coptic_tag {}; | |
115 | struct cypriot_tag {}; | |
116 | struct cyrillic_tag {}; | |
117 | struct devanagari_tag {}; | |
118 | struct deseret_tag {}; | |
119 | struct egyptian_hieroglyphs_tag {}; | |
120 | struct ethiopic_tag {}; | |
121 | struct georgian_tag {}; | |
122 | struct glagolitic_tag {}; | |
123 | struct gothic_tag {}; | |
124 | struct greek_tag {}; | |
125 | struct gujarati_tag {}; | |
126 | struct gurmukhi_tag {}; | |
127 | struct hangul_tag {}; | |
128 | struct han_tag {}; | |
129 | struct hanunoo_tag {}; | |
130 | struct hebrew_tag {}; | |
131 | struct hiragana_tag {}; | |
132 | struct katakana_or_hiragana_tag {}; | |
133 | struct old_italic_tag {}; | |
134 | struct javanese_tag {}; | |
135 | struct kayah_li_tag {}; | |
136 | struct katakana_tag {}; | |
137 | struct kharoshthi_tag {}; | |
138 | struct khmer_tag {}; | |
139 | struct kannada_tag {}; | |
140 | struct kaithi_tag {}; | |
141 | struct tai_tham_tag {}; | |
142 | struct lao_tag {}; | |
143 | struct latin_tag {}; | |
144 | struct lepcha_tag {}; | |
145 | struct limbu_tag {}; | |
146 | struct linear_b_tag {}; | |
147 | struct lisu_tag {}; | |
148 | struct lycian_tag {}; | |
149 | struct lydian_tag {}; | |
150 | struct malayalam_tag {}; | |
151 | struct mongolian_tag {}; | |
152 | struct meetei_mayek_tag {}; | |
153 | struct myanmar_tag {}; | |
154 | struct nko_tag {}; | |
155 | struct ogham_tag {}; | |
156 | struct ol_chiki_tag {}; | |
157 | struct old_turkic_tag {}; | |
158 | struct oriya_tag {}; | |
159 | struct osmanya_tag {}; | |
160 | struct phags_pa_tag {}; | |
161 | struct inscriptional_pahlavi_tag {}; | |
162 | struct phoenician_tag {}; | |
163 | struct inscriptional_parthian_tag {}; | |
164 | struct rejang_tag {}; | |
165 | struct runic_tag {}; | |
166 | struct samaritan_tag {}; | |
167 | struct old_south_arabian_tag {}; | |
168 | struct saurashtra_tag {}; | |
169 | struct shavian_tag {}; | |
170 | struct sinhala_tag {}; | |
171 | struct sundanese_tag {}; | |
172 | struct syloti_nagri_tag {}; | |
173 | struct syriac_tag {}; | |
174 | struct tagbanwa_tag {}; | |
175 | struct tai_le_tag {}; | |
176 | struct new_tai_lue_tag {}; | |
177 | struct tamil_tag {}; | |
178 | struct tai_viet_tag {}; | |
179 | struct telugu_tag {}; | |
180 | struct tifinagh_tag {}; | |
181 | struct tagalog_tag {}; | |
182 | struct thaana_tag {}; | |
183 | struct thai_tag {}; | |
184 | struct tibetan_tag {}; | |
185 | struct ugaritic_tag {}; | |
186 | struct vai_tag {}; | |
187 | struct old_persian_tag {}; | |
188 | struct cuneiform_tag {}; | |
189 | struct yi_tag {}; | |
190 | struct inherited_tag {}; | |
191 | struct common_tag {}; | |
192 | struct unknown_tag {}; | |
193 | ||
194 | /////////////////////////////////////////////////////////////////////////// | |
195 | struct unicode_char_class_base | |
196 | { | |
197 | typedef char_encoding::unicode encoding; | |
198 | typedef char_encoding::unicode::char_type char_type; | |
199 | ||
92f5a8d4 TL |
200 | #define BOOST_SPIRIT_X3_BASIC_CLASSIFY(name) \ |
201 | template <typename Char> \ | |
202 | static bool \ | |
203 | is(name##_tag, Char ch) \ | |
204 | { \ | |
205 | return encoding::is ##name \ | |
206 | BOOST_PREVENT_MACRO_SUBSTITUTION \ | |
207 | (detail::cast_char<char_type>(ch)); \ | |
208 | } \ | |
7c673cae FG |
209 | /***/ |
210 | ||
92f5a8d4 TL |
211 | #define BOOST_SPIRIT_X3_CLASSIFY(name) \ |
212 | template <typename Char> \ | |
213 | static bool \ | |
214 | is(name##_tag, Char ch) \ | |
215 | { \ | |
216 | return encoding::is_##name \ | |
217 | BOOST_PREVENT_MACRO_SUBSTITUTION \ | |
218 | (detail::cast_char<char_type>(ch)); \ | |
219 | } \ | |
7c673cae FG |
220 | /***/ |
221 | ||
222 | ||
223 | /////////////////////////////////////////////////////////////////////////// | |
224 | // Unicode Major Categories | |
225 | /////////////////////////////////////////////////////////////////////////// | |
226 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(char) | |
227 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(alnum) | |
228 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(alpha) | |
229 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(digit) | |
230 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(xdigit) | |
231 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(cntrl) | |
232 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(graph) | |
233 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(lower) | |
234 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(print) | |
235 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(punct) | |
236 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(space) | |
237 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(blank) | |
238 | BOOST_SPIRIT_X3_BASIC_CLASSIFY(upper) | |
239 | ||
240 | /////////////////////////////////////////////////////////////////////////// | |
241 | // Unicode Major Categories | |
242 | /////////////////////////////////////////////////////////////////////////// | |
243 | BOOST_SPIRIT_X3_CLASSIFY(letter) | |
244 | BOOST_SPIRIT_X3_CLASSIFY(mark) | |
245 | BOOST_SPIRIT_X3_CLASSIFY(number) | |
246 | BOOST_SPIRIT_X3_CLASSIFY(separator) | |
247 | BOOST_SPIRIT_X3_CLASSIFY(other) | |
248 | BOOST_SPIRIT_X3_CLASSIFY(punctuation) | |
249 | BOOST_SPIRIT_X3_CLASSIFY(symbol) | |
250 | ||
251 | /////////////////////////////////////////////////////////////////////////// | |
252 | // Unicode General Categories | |
253 | /////////////////////////////////////////////////////////////////////////// | |
254 | BOOST_SPIRIT_X3_CLASSIFY(uppercase_letter) | |
255 | BOOST_SPIRIT_X3_CLASSIFY(lowercase_letter) | |
256 | BOOST_SPIRIT_X3_CLASSIFY(titlecase_letter) | |
257 | BOOST_SPIRIT_X3_CLASSIFY(modifier_letter) | |
258 | BOOST_SPIRIT_X3_CLASSIFY(other_letter) | |
259 | ||
260 | BOOST_SPIRIT_X3_CLASSIFY(nonspacing_mark) | |
261 | BOOST_SPIRIT_X3_CLASSIFY(enclosing_mark) | |
262 | BOOST_SPIRIT_X3_CLASSIFY(spacing_mark) | |
263 | ||
264 | BOOST_SPIRIT_X3_CLASSIFY(decimal_number) | |
265 | BOOST_SPIRIT_X3_CLASSIFY(letter_number) | |
266 | BOOST_SPIRIT_X3_CLASSIFY(other_number) | |
267 | ||
268 | BOOST_SPIRIT_X3_CLASSIFY(space_separator) | |
269 | BOOST_SPIRIT_X3_CLASSIFY(line_separator) | |
270 | BOOST_SPIRIT_X3_CLASSIFY(paragraph_separator) | |
271 | ||
272 | BOOST_SPIRIT_X3_CLASSIFY(control) | |
273 | BOOST_SPIRIT_X3_CLASSIFY(format) | |
274 | BOOST_SPIRIT_X3_CLASSIFY(private_use) | |
275 | BOOST_SPIRIT_X3_CLASSIFY(surrogate) | |
276 | BOOST_SPIRIT_X3_CLASSIFY(unassigned) | |
277 | ||
278 | BOOST_SPIRIT_X3_CLASSIFY(dash_punctuation) | |
279 | BOOST_SPIRIT_X3_CLASSIFY(open_punctuation) | |
280 | BOOST_SPIRIT_X3_CLASSIFY(close_punctuation) | |
281 | BOOST_SPIRIT_X3_CLASSIFY(connector_punctuation) | |
282 | BOOST_SPIRIT_X3_CLASSIFY(other_punctuation) | |
283 | BOOST_SPIRIT_X3_CLASSIFY(initial_punctuation) | |
284 | BOOST_SPIRIT_X3_CLASSIFY(final_punctuation) | |
285 | ||
286 | BOOST_SPIRIT_X3_CLASSIFY(math_symbol) | |
287 | BOOST_SPIRIT_X3_CLASSIFY(currency_symbol) | |
288 | BOOST_SPIRIT_X3_CLASSIFY(modifier_symbol) | |
289 | BOOST_SPIRIT_X3_CLASSIFY(other_symbol) | |
290 | ||
291 | /////////////////////////////////////////////////////////////////////////// | |
292 | // Unicode Derived Categories | |
293 | /////////////////////////////////////////////////////////////////////////// | |
294 | BOOST_SPIRIT_X3_CLASSIFY(alphabetic) | |
295 | BOOST_SPIRIT_X3_CLASSIFY(uppercase) | |
296 | BOOST_SPIRIT_X3_CLASSIFY(lowercase) | |
297 | BOOST_SPIRIT_X3_CLASSIFY(white_space) | |
298 | BOOST_SPIRIT_X3_CLASSIFY(hex_digit) | |
299 | BOOST_SPIRIT_X3_CLASSIFY(noncharacter_code_point) | |
300 | BOOST_SPIRIT_X3_CLASSIFY(default_ignorable_code_point) | |
301 | ||
302 | /////////////////////////////////////////////////////////////////////////// | |
303 | // Unicode Scripts | |
304 | /////////////////////////////////////////////////////////////////////////// | |
305 | BOOST_SPIRIT_X3_CLASSIFY(arabic) | |
306 | BOOST_SPIRIT_X3_CLASSIFY(imperial_aramaic) | |
307 | BOOST_SPIRIT_X3_CLASSIFY(armenian) | |
308 | BOOST_SPIRIT_X3_CLASSIFY(avestan) | |
309 | BOOST_SPIRIT_X3_CLASSIFY(balinese) | |
310 | BOOST_SPIRIT_X3_CLASSIFY(bamum) | |
311 | BOOST_SPIRIT_X3_CLASSIFY(bengali) | |
312 | BOOST_SPIRIT_X3_CLASSIFY(bopomofo) | |
313 | BOOST_SPIRIT_X3_CLASSIFY(braille) | |
314 | BOOST_SPIRIT_X3_CLASSIFY(buginese) | |
315 | BOOST_SPIRIT_X3_CLASSIFY(buhid) | |
316 | BOOST_SPIRIT_X3_CLASSIFY(canadian_aboriginal) | |
317 | BOOST_SPIRIT_X3_CLASSIFY(carian) | |
318 | BOOST_SPIRIT_X3_CLASSIFY(cham) | |
319 | BOOST_SPIRIT_X3_CLASSIFY(cherokee) | |
320 | BOOST_SPIRIT_X3_CLASSIFY(coptic) | |
321 | BOOST_SPIRIT_X3_CLASSIFY(cypriot) | |
322 | BOOST_SPIRIT_X3_CLASSIFY(cyrillic) | |
323 | BOOST_SPIRIT_X3_CLASSIFY(devanagari) | |
324 | BOOST_SPIRIT_X3_CLASSIFY(deseret) | |
325 | BOOST_SPIRIT_X3_CLASSIFY(egyptian_hieroglyphs) | |
326 | BOOST_SPIRIT_X3_CLASSIFY(ethiopic) | |
327 | BOOST_SPIRIT_X3_CLASSIFY(georgian) | |
328 | BOOST_SPIRIT_X3_CLASSIFY(glagolitic) | |
329 | BOOST_SPIRIT_X3_CLASSIFY(gothic) | |
330 | BOOST_SPIRIT_X3_CLASSIFY(greek) | |
331 | BOOST_SPIRIT_X3_CLASSIFY(gujarati) | |
332 | BOOST_SPIRIT_X3_CLASSIFY(gurmukhi) | |
333 | BOOST_SPIRIT_X3_CLASSIFY(hangul) | |
334 | BOOST_SPIRIT_X3_CLASSIFY(han) | |
335 | BOOST_SPIRIT_X3_CLASSIFY(hanunoo) | |
336 | BOOST_SPIRIT_X3_CLASSIFY(hebrew) | |
337 | BOOST_SPIRIT_X3_CLASSIFY(hiragana) | |
338 | BOOST_SPIRIT_X3_CLASSIFY(katakana_or_hiragana) | |
339 | BOOST_SPIRIT_X3_CLASSIFY(old_italic) | |
340 | BOOST_SPIRIT_X3_CLASSIFY(javanese) | |
341 | BOOST_SPIRIT_X3_CLASSIFY(kayah_li) | |
342 | BOOST_SPIRIT_X3_CLASSIFY(katakana) | |
343 | BOOST_SPIRIT_X3_CLASSIFY(kharoshthi) | |
344 | BOOST_SPIRIT_X3_CLASSIFY(khmer) | |
345 | BOOST_SPIRIT_X3_CLASSIFY(kannada) | |
346 | BOOST_SPIRIT_X3_CLASSIFY(kaithi) | |
347 | BOOST_SPIRIT_X3_CLASSIFY(tai_tham) | |
348 | BOOST_SPIRIT_X3_CLASSIFY(lao) | |
349 | BOOST_SPIRIT_X3_CLASSIFY(latin) | |
350 | BOOST_SPIRIT_X3_CLASSIFY(lepcha) | |
351 | BOOST_SPIRIT_X3_CLASSIFY(limbu) | |
352 | BOOST_SPIRIT_X3_CLASSIFY(linear_b) | |
353 | BOOST_SPIRIT_X3_CLASSIFY(lisu) | |
354 | BOOST_SPIRIT_X3_CLASSIFY(lycian) | |
355 | BOOST_SPIRIT_X3_CLASSIFY(lydian) | |
356 | BOOST_SPIRIT_X3_CLASSIFY(malayalam) | |
357 | BOOST_SPIRIT_X3_CLASSIFY(mongolian) | |
358 | BOOST_SPIRIT_X3_CLASSIFY(meetei_mayek) | |
359 | BOOST_SPIRIT_X3_CLASSIFY(myanmar) | |
360 | BOOST_SPIRIT_X3_CLASSIFY(nko) | |
361 | BOOST_SPIRIT_X3_CLASSIFY(ogham) | |
362 | BOOST_SPIRIT_X3_CLASSIFY(ol_chiki) | |
363 | BOOST_SPIRIT_X3_CLASSIFY(old_turkic) | |
364 | BOOST_SPIRIT_X3_CLASSIFY(oriya) | |
365 | BOOST_SPIRIT_X3_CLASSIFY(osmanya) | |
366 | BOOST_SPIRIT_X3_CLASSIFY(phags_pa) | |
367 | BOOST_SPIRIT_X3_CLASSIFY(inscriptional_pahlavi) | |
368 | BOOST_SPIRIT_X3_CLASSIFY(phoenician) | |
369 | BOOST_SPIRIT_X3_CLASSIFY(inscriptional_parthian) | |
370 | BOOST_SPIRIT_X3_CLASSIFY(rejang) | |
371 | BOOST_SPIRIT_X3_CLASSIFY(runic) | |
372 | BOOST_SPIRIT_X3_CLASSIFY(samaritan) | |
373 | BOOST_SPIRIT_X3_CLASSIFY(old_south_arabian) | |
374 | BOOST_SPIRIT_X3_CLASSIFY(saurashtra) | |
375 | BOOST_SPIRIT_X3_CLASSIFY(shavian) | |
376 | BOOST_SPIRIT_X3_CLASSIFY(sinhala) | |
377 | BOOST_SPIRIT_X3_CLASSIFY(sundanese) | |
378 | BOOST_SPIRIT_X3_CLASSIFY(syloti_nagri) | |
379 | BOOST_SPIRIT_X3_CLASSIFY(syriac) | |
380 | BOOST_SPIRIT_X3_CLASSIFY(tagbanwa) | |
381 | BOOST_SPIRIT_X3_CLASSIFY(tai_le) | |
382 | BOOST_SPIRIT_X3_CLASSIFY(new_tai_lue) | |
383 | BOOST_SPIRIT_X3_CLASSIFY(tamil) | |
384 | BOOST_SPIRIT_X3_CLASSIFY(tai_viet) | |
385 | BOOST_SPIRIT_X3_CLASSIFY(telugu) | |
386 | BOOST_SPIRIT_X3_CLASSIFY(tifinagh) | |
387 | BOOST_SPIRIT_X3_CLASSIFY(tagalog) | |
388 | BOOST_SPIRIT_X3_CLASSIFY(thaana) | |
389 | BOOST_SPIRIT_X3_CLASSIFY(thai) | |
390 | BOOST_SPIRIT_X3_CLASSIFY(tibetan) | |
391 | BOOST_SPIRIT_X3_CLASSIFY(ugaritic) | |
392 | BOOST_SPIRIT_X3_CLASSIFY(vai) | |
393 | BOOST_SPIRIT_X3_CLASSIFY(old_persian) | |
394 | BOOST_SPIRIT_X3_CLASSIFY(cuneiform) | |
395 | BOOST_SPIRIT_X3_CLASSIFY(yi) | |
396 | BOOST_SPIRIT_X3_CLASSIFY(inherited) | |
397 | BOOST_SPIRIT_X3_CLASSIFY(common) | |
398 | BOOST_SPIRIT_X3_CLASSIFY(unknown) | |
399 | ||
400 | #undef BOOST_SPIRIT_X3_BASIC_CLASSIFY | |
401 | #undef BOOST_SPIRIT_X3_CLASSIFY | |
402 | }; | |
403 | ||
404 | template <typename Tag> | |
405 | struct unicode_char_class | |
406 | : char_parser<unicode_char_class<Tag>> | |
407 | { | |
408 | typedef char_encoding::unicode encoding; | |
409 | typedef Tag tag; | |
410 | typedef typename encoding::char_type char_type; | |
411 | typedef char_type attribute_type; | |
412 | static bool const has_attribute = true; | |
413 | ||
414 | template <typename Char, typename Context> | |
415 | bool test(Char ch, Context const&) const | |
416 | { | |
92f5a8d4 | 417 | return encoding::ischar(ch) && unicode_char_class_base::is(tag(), ch); |
7c673cae FG |
418 | } |
419 | }; | |
420 | ||
92f5a8d4 TL |
421 | #define BOOST_SPIRIT_X3_CHAR_CLASS(name) \ |
422 | typedef unicode_char_class<name##_tag> name##_type; \ | |
f67539c2 | 423 | constexpr name##_type name = name##_type(); \ |
7c673cae FG |
424 | /***/ |
425 | ||
426 | namespace unicode | |
427 | { | |
428 | typedef any_char<char_encoding::unicode> char_type; | |
f67539c2 | 429 | constexpr auto char_ = char_type{}; |
7c673cae FG |
430 | |
431 | /////////////////////////////////////////////////////////////////////////// | |
432 | // Unicode Major Categories | |
433 | /////////////////////////////////////////////////////////////////////////// | |
434 | BOOST_SPIRIT_X3_CHAR_CLASS(alnum) | |
435 | BOOST_SPIRIT_X3_CHAR_CLASS(alpha) | |
436 | BOOST_SPIRIT_X3_CHAR_CLASS(digit) | |
437 | BOOST_SPIRIT_X3_CHAR_CLASS(xdigit) | |
438 | BOOST_SPIRIT_X3_CHAR_CLASS(cntrl) | |
439 | BOOST_SPIRIT_X3_CHAR_CLASS(graph) | |
440 | BOOST_SPIRIT_X3_CHAR_CLASS(lower) | |
441 | BOOST_SPIRIT_X3_CHAR_CLASS(print) | |
442 | BOOST_SPIRIT_X3_CHAR_CLASS(punct) | |
443 | BOOST_SPIRIT_X3_CHAR_CLASS(space) | |
444 | BOOST_SPIRIT_X3_CHAR_CLASS(blank) | |
445 | BOOST_SPIRIT_X3_CHAR_CLASS(upper) | |
446 | ||
447 | /////////////////////////////////////////////////////////////////////////// | |
448 | // Unicode Major Categories | |
449 | /////////////////////////////////////////////////////////////////////////// | |
450 | BOOST_SPIRIT_X3_CHAR_CLASS(letter) | |
451 | BOOST_SPIRIT_X3_CHAR_CLASS(mark) | |
452 | BOOST_SPIRIT_X3_CHAR_CLASS(number) | |
453 | BOOST_SPIRIT_X3_CHAR_CLASS(separator) | |
454 | BOOST_SPIRIT_X3_CHAR_CLASS(other) | |
455 | BOOST_SPIRIT_X3_CHAR_CLASS(punctuation) | |
456 | BOOST_SPIRIT_X3_CHAR_CLASS(symbol) | |
457 | ||
458 | /////////////////////////////////////////////////////////////////////////// | |
459 | // Unicode General Categories | |
460 | /////////////////////////////////////////////////////////////////////////// | |
461 | BOOST_SPIRIT_X3_CHAR_CLASS(uppercase_letter) | |
462 | BOOST_SPIRIT_X3_CHAR_CLASS(lowercase_letter) | |
463 | BOOST_SPIRIT_X3_CHAR_CLASS(titlecase_letter) | |
464 | BOOST_SPIRIT_X3_CHAR_CLASS(modifier_letter) | |
465 | BOOST_SPIRIT_X3_CHAR_CLASS(other_letter) | |
466 | ||
467 | BOOST_SPIRIT_X3_CHAR_CLASS(nonspacing_mark) | |
468 | BOOST_SPIRIT_X3_CHAR_CLASS(enclosing_mark) | |
469 | BOOST_SPIRIT_X3_CHAR_CLASS(spacing_mark) | |
470 | ||
471 | BOOST_SPIRIT_X3_CHAR_CLASS(decimal_number) | |
472 | BOOST_SPIRIT_X3_CHAR_CLASS(letter_number) | |
473 | BOOST_SPIRIT_X3_CHAR_CLASS(other_number) | |
474 | ||
475 | BOOST_SPIRIT_X3_CHAR_CLASS(space_separator) | |
476 | BOOST_SPIRIT_X3_CHAR_CLASS(line_separator) | |
477 | BOOST_SPIRIT_X3_CHAR_CLASS(paragraph_separator) | |
478 | ||
479 | BOOST_SPIRIT_X3_CHAR_CLASS(control) | |
480 | BOOST_SPIRIT_X3_CHAR_CLASS(format) | |
481 | BOOST_SPIRIT_X3_CHAR_CLASS(private_use) | |
482 | BOOST_SPIRIT_X3_CHAR_CLASS(surrogate) | |
483 | BOOST_SPIRIT_X3_CHAR_CLASS(unassigned) | |
484 | ||
485 | BOOST_SPIRIT_X3_CHAR_CLASS(dash_punctuation) | |
486 | BOOST_SPIRIT_X3_CHAR_CLASS(open_punctuation) | |
487 | BOOST_SPIRIT_X3_CHAR_CLASS(close_punctuation) | |
488 | BOOST_SPIRIT_X3_CHAR_CLASS(connector_punctuation) | |
489 | BOOST_SPIRIT_X3_CHAR_CLASS(other_punctuation) | |
490 | BOOST_SPIRIT_X3_CHAR_CLASS(initial_punctuation) | |
491 | BOOST_SPIRIT_X3_CHAR_CLASS(final_punctuation) | |
492 | ||
493 | BOOST_SPIRIT_X3_CHAR_CLASS(math_symbol) | |
494 | BOOST_SPIRIT_X3_CHAR_CLASS(currency_symbol) | |
495 | BOOST_SPIRIT_X3_CHAR_CLASS(modifier_symbol) | |
496 | BOOST_SPIRIT_X3_CHAR_CLASS(other_symbol) | |
497 | ||
498 | /////////////////////////////////////////////////////////////////////////// | |
499 | // Unicode Derived Categories | |
500 | /////////////////////////////////////////////////////////////////////////// | |
501 | BOOST_SPIRIT_X3_CHAR_CLASS(alphabetic) | |
502 | BOOST_SPIRIT_X3_CHAR_CLASS(uppercase) | |
503 | BOOST_SPIRIT_X3_CHAR_CLASS(lowercase) | |
504 | BOOST_SPIRIT_X3_CHAR_CLASS(white_space) | |
505 | BOOST_SPIRIT_X3_CHAR_CLASS(hex_digit) | |
506 | BOOST_SPIRIT_X3_CHAR_CLASS(noncharacter_code_point) | |
507 | BOOST_SPIRIT_X3_CHAR_CLASS(default_ignorable_code_point) | |
508 | ||
509 | /////////////////////////////////////////////////////////////////////////// | |
510 | // Unicode Scripts | |
511 | /////////////////////////////////////////////////////////////////////////// | |
512 | BOOST_SPIRIT_X3_CHAR_CLASS(arabic) | |
513 | BOOST_SPIRIT_X3_CHAR_CLASS(imperial_aramaic) | |
514 | BOOST_SPIRIT_X3_CHAR_CLASS(armenian) | |
515 | BOOST_SPIRIT_X3_CHAR_CLASS(avestan) | |
516 | BOOST_SPIRIT_X3_CHAR_CLASS(balinese) | |
517 | BOOST_SPIRIT_X3_CHAR_CLASS(bamum) | |
518 | BOOST_SPIRIT_X3_CHAR_CLASS(bengali) | |
519 | BOOST_SPIRIT_X3_CHAR_CLASS(bopomofo) | |
520 | BOOST_SPIRIT_X3_CHAR_CLASS(braille) | |
521 | BOOST_SPIRIT_X3_CHAR_CLASS(buginese) | |
522 | BOOST_SPIRIT_X3_CHAR_CLASS(buhid) | |
523 | BOOST_SPIRIT_X3_CHAR_CLASS(canadian_aboriginal) | |
524 | BOOST_SPIRIT_X3_CHAR_CLASS(carian) | |
525 | BOOST_SPIRIT_X3_CHAR_CLASS(cham) | |
526 | BOOST_SPIRIT_X3_CHAR_CLASS(cherokee) | |
527 | BOOST_SPIRIT_X3_CHAR_CLASS(coptic) | |
528 | BOOST_SPIRIT_X3_CHAR_CLASS(cypriot) | |
529 | BOOST_SPIRIT_X3_CHAR_CLASS(cyrillic) | |
530 | BOOST_SPIRIT_X3_CHAR_CLASS(devanagari) | |
531 | BOOST_SPIRIT_X3_CHAR_CLASS(deseret) | |
532 | BOOST_SPIRIT_X3_CHAR_CLASS(egyptian_hieroglyphs) | |
533 | BOOST_SPIRIT_X3_CHAR_CLASS(ethiopic) | |
534 | BOOST_SPIRIT_X3_CHAR_CLASS(georgian) | |
535 | BOOST_SPIRIT_X3_CHAR_CLASS(glagolitic) | |
536 | BOOST_SPIRIT_X3_CHAR_CLASS(gothic) | |
537 | BOOST_SPIRIT_X3_CHAR_CLASS(greek) | |
538 | BOOST_SPIRIT_X3_CHAR_CLASS(gujarati) | |
539 | BOOST_SPIRIT_X3_CHAR_CLASS(gurmukhi) | |
540 | BOOST_SPIRIT_X3_CHAR_CLASS(hangul) | |
541 | BOOST_SPIRIT_X3_CHAR_CLASS(han) | |
542 | BOOST_SPIRIT_X3_CHAR_CLASS(hanunoo) | |
543 | BOOST_SPIRIT_X3_CHAR_CLASS(hebrew) | |
544 | BOOST_SPIRIT_X3_CHAR_CLASS(hiragana) | |
545 | BOOST_SPIRIT_X3_CHAR_CLASS(katakana_or_hiragana) | |
546 | BOOST_SPIRIT_X3_CHAR_CLASS(old_italic) | |
547 | BOOST_SPIRIT_X3_CHAR_CLASS(javanese) | |
548 | BOOST_SPIRIT_X3_CHAR_CLASS(kayah_li) | |
549 | BOOST_SPIRIT_X3_CHAR_CLASS(katakana) | |
550 | BOOST_SPIRIT_X3_CHAR_CLASS(kharoshthi) | |
551 | BOOST_SPIRIT_X3_CHAR_CLASS(khmer) | |
552 | BOOST_SPIRIT_X3_CHAR_CLASS(kannada) | |
553 | BOOST_SPIRIT_X3_CHAR_CLASS(kaithi) | |
554 | BOOST_SPIRIT_X3_CHAR_CLASS(tai_tham) | |
555 | BOOST_SPIRIT_X3_CHAR_CLASS(lao) | |
556 | BOOST_SPIRIT_X3_CHAR_CLASS(latin) | |
557 | BOOST_SPIRIT_X3_CHAR_CLASS(lepcha) | |
558 | BOOST_SPIRIT_X3_CHAR_CLASS(limbu) | |
559 | BOOST_SPIRIT_X3_CHAR_CLASS(linear_b) | |
560 | BOOST_SPIRIT_X3_CHAR_CLASS(lisu) | |
561 | BOOST_SPIRIT_X3_CHAR_CLASS(lycian) | |
562 | BOOST_SPIRIT_X3_CHAR_CLASS(lydian) | |
563 | BOOST_SPIRIT_X3_CHAR_CLASS(malayalam) | |
564 | BOOST_SPIRIT_X3_CHAR_CLASS(mongolian) | |
565 | BOOST_SPIRIT_X3_CHAR_CLASS(meetei_mayek) | |
566 | BOOST_SPIRIT_X3_CHAR_CLASS(myanmar) | |
567 | BOOST_SPIRIT_X3_CHAR_CLASS(nko) | |
568 | BOOST_SPIRIT_X3_CHAR_CLASS(ogham) | |
569 | BOOST_SPIRIT_X3_CHAR_CLASS(ol_chiki) | |
570 | BOOST_SPIRIT_X3_CHAR_CLASS(old_turkic) | |
571 | BOOST_SPIRIT_X3_CHAR_CLASS(oriya) | |
572 | BOOST_SPIRIT_X3_CHAR_CLASS(osmanya) | |
573 | BOOST_SPIRIT_X3_CHAR_CLASS(phags_pa) | |
574 | BOOST_SPIRIT_X3_CHAR_CLASS(inscriptional_pahlavi) | |
575 | BOOST_SPIRIT_X3_CHAR_CLASS(phoenician) | |
576 | BOOST_SPIRIT_X3_CHAR_CLASS(inscriptional_parthian) | |
577 | BOOST_SPIRIT_X3_CHAR_CLASS(rejang) | |
578 | BOOST_SPIRIT_X3_CHAR_CLASS(runic) | |
579 | BOOST_SPIRIT_X3_CHAR_CLASS(samaritan) | |
580 | BOOST_SPIRIT_X3_CHAR_CLASS(old_south_arabian) | |
581 | BOOST_SPIRIT_X3_CHAR_CLASS(saurashtra) | |
582 | BOOST_SPIRIT_X3_CHAR_CLASS(shavian) | |
583 | BOOST_SPIRIT_X3_CHAR_CLASS(sinhala) | |
584 | BOOST_SPIRIT_X3_CHAR_CLASS(sundanese) | |
585 | BOOST_SPIRIT_X3_CHAR_CLASS(syloti_nagri) | |
586 | BOOST_SPIRIT_X3_CHAR_CLASS(syriac) | |
587 | BOOST_SPIRIT_X3_CHAR_CLASS(tagbanwa) | |
588 | BOOST_SPIRIT_X3_CHAR_CLASS(tai_le) | |
589 | BOOST_SPIRIT_X3_CHAR_CLASS(new_tai_lue) | |
590 | BOOST_SPIRIT_X3_CHAR_CLASS(tamil) | |
591 | BOOST_SPIRIT_X3_CHAR_CLASS(tai_viet) | |
592 | BOOST_SPIRIT_X3_CHAR_CLASS(telugu) | |
593 | BOOST_SPIRIT_X3_CHAR_CLASS(tifinagh) | |
594 | BOOST_SPIRIT_X3_CHAR_CLASS(tagalog) | |
595 | BOOST_SPIRIT_X3_CHAR_CLASS(thaana) | |
596 | BOOST_SPIRIT_X3_CHAR_CLASS(thai) | |
597 | BOOST_SPIRIT_X3_CHAR_CLASS(tibetan) | |
598 | BOOST_SPIRIT_X3_CHAR_CLASS(ugaritic) | |
599 | BOOST_SPIRIT_X3_CHAR_CLASS(vai) | |
600 | BOOST_SPIRIT_X3_CHAR_CLASS(old_persian) | |
601 | BOOST_SPIRIT_X3_CHAR_CLASS(cuneiform) | |
602 | BOOST_SPIRIT_X3_CHAR_CLASS(yi) | |
603 | BOOST_SPIRIT_X3_CHAR_CLASS(inherited) | |
604 | BOOST_SPIRIT_X3_CHAR_CLASS(common) | |
605 | BOOST_SPIRIT_X3_CHAR_CLASS(unknown) | |
606 | } | |
607 | ||
608 | #undef BOOST_SPIRIT_X3_CHAR_CLASS | |
609 | ||
610 | }}} | |
611 | ||
612 | #endif |