annotate DEPENDENCIES/generic/include/boost/spirit/home/x3/char/unicode.hpp @ 118:770eb830ec19 emscripten

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