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 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 } \ 209 /***/ 210 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 } \ 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> testboost::spirit::x3::unicode_char_class415 bool test(Char ch, Context const&) const 416 { 417 return ((sizeof(Char) <= sizeof(char_type)) || encoding::ischar(ch)) 418 && unicode_char_class_base::is(tag(), ch); 419 } 420 }; 421 422 #define BOOST_SPIRIT_X3_CHAR_CLASS(name) \ 423 typedef unicode_char_class<name##_tag> name##_type; \ 424 name##_type const name = name##_type(); \ 425 /***/ 426 427 namespace unicode 428 { 429 typedef any_char<char_encoding::unicode> char_type; 430 auto const char_ = char_type{}; 431 432 /////////////////////////////////////////////////////////////////////////// 433 // Unicode Major Categories 434 /////////////////////////////////////////////////////////////////////////// 435 BOOST_SPIRIT_X3_CHAR_CLASS(alnum) 436 BOOST_SPIRIT_X3_CHAR_CLASS(alpha) 437 BOOST_SPIRIT_X3_CHAR_CLASS(digit) 438 BOOST_SPIRIT_X3_CHAR_CLASS(xdigit) 439 BOOST_SPIRIT_X3_CHAR_CLASS(cntrl) 440 BOOST_SPIRIT_X3_CHAR_CLASS(graph) 441 BOOST_SPIRIT_X3_CHAR_CLASS(lower) 442 BOOST_SPIRIT_X3_CHAR_CLASS(print) 443 BOOST_SPIRIT_X3_CHAR_CLASS(punct) 444 BOOST_SPIRIT_X3_CHAR_CLASS(space) 445 BOOST_SPIRIT_X3_CHAR_CLASS(blank) 446 BOOST_SPIRIT_X3_CHAR_CLASS(upper) 447 448 /////////////////////////////////////////////////////////////////////////// 449 // Unicode Major Categories 450 /////////////////////////////////////////////////////////////////////////// 451 BOOST_SPIRIT_X3_CHAR_CLASS(letter) 452 BOOST_SPIRIT_X3_CHAR_CLASS(mark) 453 BOOST_SPIRIT_X3_CHAR_CLASS(number) 454 BOOST_SPIRIT_X3_CHAR_CLASS(separator) 455 BOOST_SPIRIT_X3_CHAR_CLASS(other) 456 BOOST_SPIRIT_X3_CHAR_CLASS(punctuation) 457 BOOST_SPIRIT_X3_CHAR_CLASS(symbol) 458 459 /////////////////////////////////////////////////////////////////////////// 460 // Unicode General Categories 461 /////////////////////////////////////////////////////////////////////////// 462 BOOST_SPIRIT_X3_CHAR_CLASS(uppercase_letter) 463 BOOST_SPIRIT_X3_CHAR_CLASS(lowercase_letter) 464 BOOST_SPIRIT_X3_CHAR_CLASS(titlecase_letter) 465 BOOST_SPIRIT_X3_CHAR_CLASS(modifier_letter) 466 BOOST_SPIRIT_X3_CHAR_CLASS(other_letter) 467 468 BOOST_SPIRIT_X3_CHAR_CLASS(nonspacing_mark) 469 BOOST_SPIRIT_X3_CHAR_CLASS(enclosing_mark) 470 BOOST_SPIRIT_X3_CHAR_CLASS(spacing_mark) 471 472 BOOST_SPIRIT_X3_CHAR_CLASS(decimal_number) 473 BOOST_SPIRIT_X3_CHAR_CLASS(letter_number) 474 BOOST_SPIRIT_X3_CHAR_CLASS(other_number) 475 476 BOOST_SPIRIT_X3_CHAR_CLASS(space_separator) 477 BOOST_SPIRIT_X3_CHAR_CLASS(line_separator) 478 BOOST_SPIRIT_X3_CHAR_CLASS(paragraph_separator) 479 480 BOOST_SPIRIT_X3_CHAR_CLASS(control) 481 BOOST_SPIRIT_X3_CHAR_CLASS(format) 482 BOOST_SPIRIT_X3_CHAR_CLASS(private_use) 483 BOOST_SPIRIT_X3_CHAR_CLASS(surrogate) 484 BOOST_SPIRIT_X3_CHAR_CLASS(unassigned) 485 486 BOOST_SPIRIT_X3_CHAR_CLASS(dash_punctuation) 487 BOOST_SPIRIT_X3_CHAR_CLASS(open_punctuation) 488 BOOST_SPIRIT_X3_CHAR_CLASS(close_punctuation) 489 BOOST_SPIRIT_X3_CHAR_CLASS(connector_punctuation) 490 BOOST_SPIRIT_X3_CHAR_CLASS(other_punctuation) 491 BOOST_SPIRIT_X3_CHAR_CLASS(initial_punctuation) 492 BOOST_SPIRIT_X3_CHAR_CLASS(final_punctuation) 493 494 BOOST_SPIRIT_X3_CHAR_CLASS(math_symbol) 495 BOOST_SPIRIT_X3_CHAR_CLASS(currency_symbol) 496 BOOST_SPIRIT_X3_CHAR_CLASS(modifier_symbol) 497 BOOST_SPIRIT_X3_CHAR_CLASS(other_symbol) 498 499 /////////////////////////////////////////////////////////////////////////// 500 // Unicode Derived Categories 501 /////////////////////////////////////////////////////////////////////////// 502 BOOST_SPIRIT_X3_CHAR_CLASS(alphabetic) 503 BOOST_SPIRIT_X3_CHAR_CLASS(uppercase) 504 BOOST_SPIRIT_X3_CHAR_CLASS(lowercase) 505 BOOST_SPIRIT_X3_CHAR_CLASS(white_space) 506 BOOST_SPIRIT_X3_CHAR_CLASS(hex_digit) 507 BOOST_SPIRIT_X3_CHAR_CLASS(noncharacter_code_point) 508 BOOST_SPIRIT_X3_CHAR_CLASS(default_ignorable_code_point) 509 510 /////////////////////////////////////////////////////////////////////////// 511 // Unicode Scripts 512 /////////////////////////////////////////////////////////////////////////// 513 BOOST_SPIRIT_X3_CHAR_CLASS(arabic) 514 BOOST_SPIRIT_X3_CHAR_CLASS(imperial_aramaic) 515 BOOST_SPIRIT_X3_CHAR_CLASS(armenian) 516 BOOST_SPIRIT_X3_CHAR_CLASS(avestan) 517 BOOST_SPIRIT_X3_CHAR_CLASS(balinese) 518 BOOST_SPIRIT_X3_CHAR_CLASS(bamum) 519 BOOST_SPIRIT_X3_CHAR_CLASS(bengali) 520 BOOST_SPIRIT_X3_CHAR_CLASS(bopomofo) 521 BOOST_SPIRIT_X3_CHAR_CLASS(braille) 522 BOOST_SPIRIT_X3_CHAR_CLASS(buginese) 523 BOOST_SPIRIT_X3_CHAR_CLASS(buhid) 524 BOOST_SPIRIT_X3_CHAR_CLASS(canadian_aboriginal) 525 BOOST_SPIRIT_X3_CHAR_CLASS(carian) 526 BOOST_SPIRIT_X3_CHAR_CLASS(cham) 527 BOOST_SPIRIT_X3_CHAR_CLASS(cherokee) 528 BOOST_SPIRIT_X3_CHAR_CLASS(coptic) 529 BOOST_SPIRIT_X3_CHAR_CLASS(cypriot) 530 BOOST_SPIRIT_X3_CHAR_CLASS(cyrillic) 531 BOOST_SPIRIT_X3_CHAR_CLASS(devanagari) 532 BOOST_SPIRIT_X3_CHAR_CLASS(deseret) 533 BOOST_SPIRIT_X3_CHAR_CLASS(egyptian_hieroglyphs) 534 BOOST_SPIRIT_X3_CHAR_CLASS(ethiopic) 535 BOOST_SPIRIT_X3_CHAR_CLASS(georgian) 536 BOOST_SPIRIT_X3_CHAR_CLASS(glagolitic) 537 BOOST_SPIRIT_X3_CHAR_CLASS(gothic) 538 BOOST_SPIRIT_X3_CHAR_CLASS(greek) 539 BOOST_SPIRIT_X3_CHAR_CLASS(gujarati) 540 BOOST_SPIRIT_X3_CHAR_CLASS(gurmukhi) 541 BOOST_SPIRIT_X3_CHAR_CLASS(hangul) 542 BOOST_SPIRIT_X3_CHAR_CLASS(han) 543 BOOST_SPIRIT_X3_CHAR_CLASS(hanunoo) 544 BOOST_SPIRIT_X3_CHAR_CLASS(hebrew) 545 BOOST_SPIRIT_X3_CHAR_CLASS(hiragana) 546 BOOST_SPIRIT_X3_CHAR_CLASS(katakana_or_hiragana) 547 BOOST_SPIRIT_X3_CHAR_CLASS(old_italic) 548 BOOST_SPIRIT_X3_CHAR_CLASS(javanese) 549 BOOST_SPIRIT_X3_CHAR_CLASS(kayah_li) 550 BOOST_SPIRIT_X3_CHAR_CLASS(katakana) 551 BOOST_SPIRIT_X3_CHAR_CLASS(kharoshthi) 552 BOOST_SPIRIT_X3_CHAR_CLASS(khmer) 553 BOOST_SPIRIT_X3_CHAR_CLASS(kannada) 554 BOOST_SPIRIT_X3_CHAR_CLASS(kaithi) 555 BOOST_SPIRIT_X3_CHAR_CLASS(tai_tham) 556 BOOST_SPIRIT_X3_CHAR_CLASS(lao) 557 BOOST_SPIRIT_X3_CHAR_CLASS(latin) 558 BOOST_SPIRIT_X3_CHAR_CLASS(lepcha) 559 BOOST_SPIRIT_X3_CHAR_CLASS(limbu) 560 BOOST_SPIRIT_X3_CHAR_CLASS(linear_b) 561 BOOST_SPIRIT_X3_CHAR_CLASS(lisu) 562 BOOST_SPIRIT_X3_CHAR_CLASS(lycian) 563 BOOST_SPIRIT_X3_CHAR_CLASS(lydian) 564 BOOST_SPIRIT_X3_CHAR_CLASS(malayalam) 565 BOOST_SPIRIT_X3_CHAR_CLASS(mongolian) 566 BOOST_SPIRIT_X3_CHAR_CLASS(meetei_mayek) 567 BOOST_SPIRIT_X3_CHAR_CLASS(myanmar) 568 BOOST_SPIRIT_X3_CHAR_CLASS(nko) 569 BOOST_SPIRIT_X3_CHAR_CLASS(ogham) 570 BOOST_SPIRIT_X3_CHAR_CLASS(ol_chiki) 571 BOOST_SPIRIT_X3_CHAR_CLASS(old_turkic) 572 BOOST_SPIRIT_X3_CHAR_CLASS(oriya) 573 BOOST_SPIRIT_X3_CHAR_CLASS(osmanya) 574 BOOST_SPIRIT_X3_CHAR_CLASS(phags_pa) 575 BOOST_SPIRIT_X3_CHAR_CLASS(inscriptional_pahlavi) 576 BOOST_SPIRIT_X3_CHAR_CLASS(phoenician) 577 BOOST_SPIRIT_X3_CHAR_CLASS(inscriptional_parthian) 578 BOOST_SPIRIT_X3_CHAR_CLASS(rejang) 579 BOOST_SPIRIT_X3_CHAR_CLASS(runic) 580 BOOST_SPIRIT_X3_CHAR_CLASS(samaritan) 581 BOOST_SPIRIT_X3_CHAR_CLASS(old_south_arabian) 582 BOOST_SPIRIT_X3_CHAR_CLASS(saurashtra) 583 BOOST_SPIRIT_X3_CHAR_CLASS(shavian) 584 BOOST_SPIRIT_X3_CHAR_CLASS(sinhala) 585 BOOST_SPIRIT_X3_CHAR_CLASS(sundanese) 586 BOOST_SPIRIT_X3_CHAR_CLASS(syloti_nagri) 587 BOOST_SPIRIT_X3_CHAR_CLASS(syriac) 588 BOOST_SPIRIT_X3_CHAR_CLASS(tagbanwa) 589 BOOST_SPIRIT_X3_CHAR_CLASS(tai_le) 590 BOOST_SPIRIT_X3_CHAR_CLASS(new_tai_lue) 591 BOOST_SPIRIT_X3_CHAR_CLASS(tamil) 592 BOOST_SPIRIT_X3_CHAR_CLASS(tai_viet) 593 BOOST_SPIRIT_X3_CHAR_CLASS(telugu) 594 BOOST_SPIRIT_X3_CHAR_CLASS(tifinagh) 595 BOOST_SPIRIT_X3_CHAR_CLASS(tagalog) 596 BOOST_SPIRIT_X3_CHAR_CLASS(thaana) 597 BOOST_SPIRIT_X3_CHAR_CLASS(thai) 598 BOOST_SPIRIT_X3_CHAR_CLASS(tibetan) 599 BOOST_SPIRIT_X3_CHAR_CLASS(ugaritic) 600 BOOST_SPIRIT_X3_CHAR_CLASS(vai) 601 BOOST_SPIRIT_X3_CHAR_CLASS(old_persian) 602 BOOST_SPIRIT_X3_CHAR_CLASS(cuneiform) 603 BOOST_SPIRIT_X3_CHAR_CLASS(yi) 604 BOOST_SPIRIT_X3_CHAR_CLASS(inherited) 605 BOOST_SPIRIT_X3_CHAR_CLASS(common) 606 BOOST_SPIRIT_X3_CHAR_CLASS(unknown) 607 } 608 609 #undef BOOST_SPIRIT_X3_CHAR_CLASS 610 611 }}} 612 613 #endif 614