123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415 |
- /*=============================================================================
- Copyright (c) 2001-2011 Hartmut Kaiser
- Copyright (c) 2001-2011 Joel de Guzman
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- =============================================================================*/
- #if !defined(BOOST_SPIRIT_UNICODE_1_JANUARY_12_2010_0728PM)
- #define BOOST_SPIRIT_UNICODE_1_JANUARY_12_2010_0728PM
- #if defined(_MSC_VER)
- #pragma once
- #endif
- #include <boost/cstdint.hpp>
- #include <boost/spirit/home/support/char_encoding/unicode/query.hpp>
- namespace boost { namespace spirit { namespace char_encoding
- {
- ///////////////////////////////////////////////////////////////////////////
- // Test characters for specified conditions (using iso8859-1)
- ///////////////////////////////////////////////////////////////////////////
- struct unicode
- {
- #ifdef BOOST_NO_CXX11_CHAR32_T
- typedef ::boost::uint32_t char_type;
- #else
- typedef char32_t char_type;
- #endif
- typedef ::boost::uint32_t classify_type;
- ///////////////////////////////////////////////////////////////////////////
- // Posix stuff
- ///////////////////////////////////////////////////////////////////////////
- static bool
- isascii_(char_type ch)
- {
- return 0 == (ch & ~0x7f);
- }
- static bool
- ischar(char_type ch)
- {
- // unicode code points in the range 0x00 to 0x10FFFF
- return ch <= 0x10FFFF;
- }
- static bool
- isalnum(char_type ch)
- {
- return ucd::is_alphanumeric(ch);
- }
- static bool
- isalpha(char_type ch)
- {
- return ucd::is_alphabetic(ch);
- }
- static bool
- isdigit(char_type ch)
- {
- return ucd::is_decimal_number(ch);
- }
- static bool
- isxdigit(char_type ch)
- {
- return ucd::is_hex_digit(ch);
- }
- static bool
- iscntrl(char_type ch)
- {
- return ucd::is_control(ch);
- }
- static bool
- isgraph(char_type ch)
- {
- return ucd::is_graph(ch);
- }
- static bool
- islower(char_type ch)
- {
- return ucd::is_lowercase(ch);
- }
- static bool
- isprint(char_type ch)
- {
- return ucd::is_print(ch);
- }
- static bool
- ispunct(char_type ch)
- {
- return ucd::is_punctuation(ch);
- }
- static bool
- isspace(char_type ch)
- {
- return ucd::is_white_space(ch);
- }
- static bool
- isblank BOOST_PREVENT_MACRO_SUBSTITUTION (char_type ch)
- {
- return ucd::is_blank(ch);
- }
- static bool
- isupper(char_type ch)
- {
- return ucd::is_uppercase(ch);
- }
- ///////////////////////////////////////////////////////////////////////////
- // Simple character conversions
- ///////////////////////////////////////////////////////////////////////////
- static char_type
- tolower(char_type ch)
- {
- return ucd::to_lowercase(ch);
- }
- static char_type
- toupper(char_type ch)
- {
- return ucd::to_uppercase(ch);
- }
- static ::boost::uint32_t
- toucs4(char_type ch)
- {
- return ch;
- }
- ///////////////////////////////////////////////////////////////////////////
- // Major Categories
- ///////////////////////////////////////////////////////////////////////////
- #define BOOST_SPIRIT_MAJOR_CATEGORY(name) \
- static bool \
- is_##name(char_type ch) \
- { \
- return ucd::get_major_category(ch) == ucd::properties::name; \
- } \
- /***/
- BOOST_SPIRIT_MAJOR_CATEGORY(letter)
- BOOST_SPIRIT_MAJOR_CATEGORY(mark)
- BOOST_SPIRIT_MAJOR_CATEGORY(number)
- BOOST_SPIRIT_MAJOR_CATEGORY(separator)
- BOOST_SPIRIT_MAJOR_CATEGORY(other)
- BOOST_SPIRIT_MAJOR_CATEGORY(punctuation)
- BOOST_SPIRIT_MAJOR_CATEGORY(symbol)
- ///////////////////////////////////////////////////////////////////////////
- // General Categories
- ///////////////////////////////////////////////////////////////////////////
- #define BOOST_SPIRIT_CATEGORY(name) \
- static bool \
- is_##name(char_type ch) \
- { \
- return ucd::get_category(ch) == ucd::properties::name; \
- } \
- /***/
- BOOST_SPIRIT_CATEGORY(uppercase_letter)
- BOOST_SPIRIT_CATEGORY(lowercase_letter)
- BOOST_SPIRIT_CATEGORY(titlecase_letter)
- BOOST_SPIRIT_CATEGORY(modifier_letter)
- BOOST_SPIRIT_CATEGORY(other_letter)
- BOOST_SPIRIT_CATEGORY(nonspacing_mark)
- BOOST_SPIRIT_CATEGORY(enclosing_mark)
- BOOST_SPIRIT_CATEGORY(spacing_mark)
- BOOST_SPIRIT_CATEGORY(decimal_number)
- BOOST_SPIRIT_CATEGORY(letter_number)
- BOOST_SPIRIT_CATEGORY(other_number)
- BOOST_SPIRIT_CATEGORY(space_separator)
- BOOST_SPIRIT_CATEGORY(line_separator)
- BOOST_SPIRIT_CATEGORY(paragraph_separator)
- BOOST_SPIRIT_CATEGORY(control)
- BOOST_SPIRIT_CATEGORY(format)
- BOOST_SPIRIT_CATEGORY(private_use)
- BOOST_SPIRIT_CATEGORY(surrogate)
- BOOST_SPIRIT_CATEGORY(unassigned)
- BOOST_SPIRIT_CATEGORY(dash_punctuation)
- BOOST_SPIRIT_CATEGORY(open_punctuation)
- BOOST_SPIRIT_CATEGORY(close_punctuation)
- BOOST_SPIRIT_CATEGORY(connector_punctuation)
- BOOST_SPIRIT_CATEGORY(other_punctuation)
- BOOST_SPIRIT_CATEGORY(initial_punctuation)
- BOOST_SPIRIT_CATEGORY(final_punctuation)
- BOOST_SPIRIT_CATEGORY(math_symbol)
- BOOST_SPIRIT_CATEGORY(currency_symbol)
- BOOST_SPIRIT_CATEGORY(modifier_symbol)
- BOOST_SPIRIT_CATEGORY(other_symbol)
- ///////////////////////////////////////////////////////////////////////////
- // Derived Categories
- ///////////////////////////////////////////////////////////////////////////
- #define BOOST_SPIRIT_DERIVED_CATEGORY(name) \
- static bool \
- is_##name(char_type ch) \
- { \
- return ucd::is_##name(ch); \
- } \
- /***/
- BOOST_SPIRIT_DERIVED_CATEGORY(alphabetic)
- BOOST_SPIRIT_DERIVED_CATEGORY(uppercase)
- BOOST_SPIRIT_DERIVED_CATEGORY(lowercase)
- BOOST_SPIRIT_DERIVED_CATEGORY(white_space)
- BOOST_SPIRIT_DERIVED_CATEGORY(hex_digit)
- BOOST_SPIRIT_DERIVED_CATEGORY(noncharacter_code_point)
- BOOST_SPIRIT_DERIVED_CATEGORY(default_ignorable_code_point)
- ///////////////////////////////////////////////////////////////////////////
- // Scripts
- ///////////////////////////////////////////////////////////////////////////
- #define BOOST_SPIRIT_SCRIPT(name) \
- static bool \
- is_##name(char_type ch) \
- { \
- return ucd::get_script(ch) == ucd::properties::name; \
- } \
- /***/
- BOOST_SPIRIT_SCRIPT(adlam)
- BOOST_SPIRIT_SCRIPT(caucasian_albanian)
- BOOST_SPIRIT_SCRIPT(ahom)
- BOOST_SPIRIT_SCRIPT(arabic)
- BOOST_SPIRIT_SCRIPT(imperial_aramaic)
- BOOST_SPIRIT_SCRIPT(armenian)
- BOOST_SPIRIT_SCRIPT(avestan)
- BOOST_SPIRIT_SCRIPT(balinese)
- BOOST_SPIRIT_SCRIPT(bamum)
- BOOST_SPIRIT_SCRIPT(bassa_vah)
- BOOST_SPIRIT_SCRIPT(batak)
- BOOST_SPIRIT_SCRIPT(bengali)
- BOOST_SPIRIT_SCRIPT(bhaiksuki)
- BOOST_SPIRIT_SCRIPT(bopomofo)
- BOOST_SPIRIT_SCRIPT(brahmi)
- BOOST_SPIRIT_SCRIPT(braille)
- BOOST_SPIRIT_SCRIPT(buginese)
- BOOST_SPIRIT_SCRIPT(buhid)
- BOOST_SPIRIT_SCRIPT(chakma)
- BOOST_SPIRIT_SCRIPT(canadian_aboriginal)
- BOOST_SPIRIT_SCRIPT(carian)
- BOOST_SPIRIT_SCRIPT(cham)
- BOOST_SPIRIT_SCRIPT(cherokee)
- BOOST_SPIRIT_SCRIPT(chorasmian)
- BOOST_SPIRIT_SCRIPT(coptic)
- BOOST_SPIRIT_SCRIPT(cypro_minoan)
- BOOST_SPIRIT_SCRIPT(cypriot)
- BOOST_SPIRIT_SCRIPT(cyrillic)
- BOOST_SPIRIT_SCRIPT(devanagari)
- BOOST_SPIRIT_SCRIPT(dives_akuru)
- BOOST_SPIRIT_SCRIPT(dogra)
- BOOST_SPIRIT_SCRIPT(deseret)
- BOOST_SPIRIT_SCRIPT(duployan)
- BOOST_SPIRIT_SCRIPT(egyptian_hieroglyphs)
- BOOST_SPIRIT_SCRIPT(elbasan)
- BOOST_SPIRIT_SCRIPT(elymaic)
- BOOST_SPIRIT_SCRIPT(ethiopic)
- BOOST_SPIRIT_SCRIPT(georgian)
- BOOST_SPIRIT_SCRIPT(glagolitic)
- BOOST_SPIRIT_SCRIPT(gunjala_gondi)
- BOOST_SPIRIT_SCRIPT(masaram_gondi)
- BOOST_SPIRIT_SCRIPT(gothic)
- BOOST_SPIRIT_SCRIPT(grantha)
- BOOST_SPIRIT_SCRIPT(greek)
- BOOST_SPIRIT_SCRIPT(gujarati)
- BOOST_SPIRIT_SCRIPT(gurmukhi)
- BOOST_SPIRIT_SCRIPT(hangul)
- BOOST_SPIRIT_SCRIPT(han)
- BOOST_SPIRIT_SCRIPT(hanunoo)
- BOOST_SPIRIT_SCRIPT(hatran)
- BOOST_SPIRIT_SCRIPT(hebrew)
- BOOST_SPIRIT_SCRIPT(hiragana)
- BOOST_SPIRIT_SCRIPT(anatolian_hieroglyphs)
- BOOST_SPIRIT_SCRIPT(pahawh_hmong)
- BOOST_SPIRIT_SCRIPT(nyiakeng_puachue_hmong)
- BOOST_SPIRIT_SCRIPT(katakana_or_hiragana)
- BOOST_SPIRIT_SCRIPT(old_hungarian)
- BOOST_SPIRIT_SCRIPT(old_italic)
- BOOST_SPIRIT_SCRIPT(javanese)
- BOOST_SPIRIT_SCRIPT(kayah_li)
- BOOST_SPIRIT_SCRIPT(katakana)
- BOOST_SPIRIT_SCRIPT(kawi)
- BOOST_SPIRIT_SCRIPT(kharoshthi)
- BOOST_SPIRIT_SCRIPT(khmer)
- BOOST_SPIRIT_SCRIPT(khojki)
- BOOST_SPIRIT_SCRIPT(khitan_small_script)
- BOOST_SPIRIT_SCRIPT(kannada)
- BOOST_SPIRIT_SCRIPT(kaithi)
- BOOST_SPIRIT_SCRIPT(tai_tham)
- BOOST_SPIRIT_SCRIPT(lao)
- BOOST_SPIRIT_SCRIPT(latin)
- BOOST_SPIRIT_SCRIPT(lepcha)
- BOOST_SPIRIT_SCRIPT(limbu)
- BOOST_SPIRIT_SCRIPT(linear_a)
- BOOST_SPIRIT_SCRIPT(linear_b)
- BOOST_SPIRIT_SCRIPT(lisu)
- BOOST_SPIRIT_SCRIPT(lycian)
- BOOST_SPIRIT_SCRIPT(lydian)
- BOOST_SPIRIT_SCRIPT(mahajani)
- BOOST_SPIRIT_SCRIPT(makasar)
- BOOST_SPIRIT_SCRIPT(mandaic)
- BOOST_SPIRIT_SCRIPT(manichaean)
- BOOST_SPIRIT_SCRIPT(marchen)
- BOOST_SPIRIT_SCRIPT(medefaidrin)
- BOOST_SPIRIT_SCRIPT(mende_kikakui)
- BOOST_SPIRIT_SCRIPT(meroitic_cursive)
- BOOST_SPIRIT_SCRIPT(meroitic_hieroglyphs)
- BOOST_SPIRIT_SCRIPT(malayalam)
- BOOST_SPIRIT_SCRIPT(modi)
- BOOST_SPIRIT_SCRIPT(mongolian)
- BOOST_SPIRIT_SCRIPT(mro)
- BOOST_SPIRIT_SCRIPT(meetei_mayek)
- BOOST_SPIRIT_SCRIPT(multani)
- BOOST_SPIRIT_SCRIPT(myanmar)
- BOOST_SPIRIT_SCRIPT(nag_mundari)
- BOOST_SPIRIT_SCRIPT(nandinagari)
- BOOST_SPIRIT_SCRIPT(old_north_arabian)
- BOOST_SPIRIT_SCRIPT(nabataean)
- BOOST_SPIRIT_SCRIPT(newa)
- BOOST_SPIRIT_SCRIPT(nko)
- BOOST_SPIRIT_SCRIPT(nushu)
- BOOST_SPIRIT_SCRIPT(ogham)
- BOOST_SPIRIT_SCRIPT(ol_chiki)
- BOOST_SPIRIT_SCRIPT(old_turkic)
- BOOST_SPIRIT_SCRIPT(oriya)
- BOOST_SPIRIT_SCRIPT(osage)
- BOOST_SPIRIT_SCRIPT(osmanya)
- BOOST_SPIRIT_SCRIPT(old_uyghur)
- BOOST_SPIRIT_SCRIPT(palmyrene)
- BOOST_SPIRIT_SCRIPT(pau_cin_hau)
- BOOST_SPIRIT_SCRIPT(old_permic)
- BOOST_SPIRIT_SCRIPT(phags_pa)
- BOOST_SPIRIT_SCRIPT(inscriptional_pahlavi)
- BOOST_SPIRIT_SCRIPT(psalter_pahlavi)
- BOOST_SPIRIT_SCRIPT(phoenician)
- BOOST_SPIRIT_SCRIPT(miao)
- BOOST_SPIRIT_SCRIPT(inscriptional_parthian)
- BOOST_SPIRIT_SCRIPT(rejang)
- BOOST_SPIRIT_SCRIPT(hanifi_rohingya)
- BOOST_SPIRIT_SCRIPT(runic)
- BOOST_SPIRIT_SCRIPT(samaritan)
- BOOST_SPIRIT_SCRIPT(old_south_arabian)
- BOOST_SPIRIT_SCRIPT(saurashtra)
- BOOST_SPIRIT_SCRIPT(signwriting)
- BOOST_SPIRIT_SCRIPT(shavian)
- BOOST_SPIRIT_SCRIPT(sharada)
- BOOST_SPIRIT_SCRIPT(siddham)
- BOOST_SPIRIT_SCRIPT(khudawadi)
- BOOST_SPIRIT_SCRIPT(sinhala)
- BOOST_SPIRIT_SCRIPT(sogdian)
- BOOST_SPIRIT_SCRIPT(old_sogdian)
- BOOST_SPIRIT_SCRIPT(sora_sompeng)
- BOOST_SPIRIT_SCRIPT(soyombo)
- BOOST_SPIRIT_SCRIPT(sundanese)
- BOOST_SPIRIT_SCRIPT(syloti_nagri)
- BOOST_SPIRIT_SCRIPT(syriac)
- BOOST_SPIRIT_SCRIPT(tagbanwa)
- BOOST_SPIRIT_SCRIPT(takri)
- BOOST_SPIRIT_SCRIPT(tai_le)
- BOOST_SPIRIT_SCRIPT(new_tai_lue)
- BOOST_SPIRIT_SCRIPT(tamil)
- BOOST_SPIRIT_SCRIPT(tangut)
- BOOST_SPIRIT_SCRIPT(tai_viet)
- BOOST_SPIRIT_SCRIPT(telugu)
- BOOST_SPIRIT_SCRIPT(tifinagh)
- BOOST_SPIRIT_SCRIPT(tagalog)
- BOOST_SPIRIT_SCRIPT(thaana)
- BOOST_SPIRIT_SCRIPT(thai)
- BOOST_SPIRIT_SCRIPT(tibetan)
- BOOST_SPIRIT_SCRIPT(tirhuta)
- BOOST_SPIRIT_SCRIPT(tangsa)
- BOOST_SPIRIT_SCRIPT(toto)
- BOOST_SPIRIT_SCRIPT(ugaritic)
- BOOST_SPIRIT_SCRIPT(vai)
- BOOST_SPIRIT_SCRIPT(vithkuqi)
- BOOST_SPIRIT_SCRIPT(warang_citi)
- BOOST_SPIRIT_SCRIPT(wancho)
- BOOST_SPIRIT_SCRIPT(old_persian)
- BOOST_SPIRIT_SCRIPT(cuneiform)
- BOOST_SPIRIT_SCRIPT(yezidi)
- BOOST_SPIRIT_SCRIPT(yi)
- BOOST_SPIRIT_SCRIPT(zanabazar_square)
- BOOST_SPIRIT_SCRIPT(inherited)
- BOOST_SPIRIT_SCRIPT(common)
- BOOST_SPIRIT_SCRIPT(unknown)
- #undef BOOST_SPIRIT_MAJOR_CATEGORY
- #undef BOOST_SPIRIT_CATEGORY
- #undef BOOST_SPIRIT_DERIVED_CATEGORY
- #undef BOOST_SPIRIT_SCRIPT
- };
- }}}
- #endif
|