123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982 |
- /*=============================================================================
- Copyright (c) 2001-2011 Joel de Guzman
- Copyright (c) 2001-2011 Hartmut Kaiser
- 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_CHAR_CLASS_NOVEMBER_10_2006_0907AM)
- #define BOOST_SPIRIT_CHAR_CLASS_NOVEMBER_10_2006_0907AM
- #if defined(_MSC_VER)
- #pragma once
- #endif
- #include <boost/config.hpp>
- #include <boost/mpl/bool.hpp>
- #include <boost/spirit/home/support/unused.hpp>
- #include <boost/spirit/home/support/detail/is_spirit_tag.hpp>
- #include <boost/type_traits/is_signed.hpp>
- #include <boost/type_traits/make_unsigned.hpp>
- #include <boost/type_traits/make_signed.hpp>
- #if defined(BOOST_MSVC)
- # pragma warning(push)
- # pragma warning(disable: 4127) // conditional expression is constant
- # pragma warning(disable: 4800) // 'int' : forcing value to bool 'true' or 'false' warning
- #endif
- namespace boost { namespace spirit { namespace detail
- {
- // Here's the thing... typical encodings (except ASCII) deal with unsigned
- // integers > 127. ASCII uses only 127. Yet, most char and wchar_t are signed.
- // Thus, a char with value > 127 is negative (e.g. char 233 is -23). When you
- // cast this to an unsigned int with 32 bits, you get 4294967273!
- //
- // The trick is to cast to an unsigned version of the source char first
- // before casting to the target. {P.S. Don't worry about the code, the
- // optimizer will optimize the if-else branches}
- template <typename TargetChar, typename SourceChar>
- TargetChar cast_char(SourceChar ch)
- {
- if (is_signed<TargetChar>::value != is_signed<SourceChar>::value)
- {
- if (is_signed<SourceChar>::value)
- {
- // source is signed, target is unsigned
- typedef typename make_unsigned<SourceChar>::type USourceChar;
- return TargetChar(USourceChar(ch));
- }
- else
- {
- // source is unsigned, target is signed
- typedef typename make_signed<SourceChar>::type SSourceChar;
- return TargetChar(SSourceChar(ch));
- }
- }
- else
- {
- // source and target has same signedness
- return TargetChar(ch); // just cast
- }
- }
- }}}
- namespace boost { namespace spirit { namespace tag
- {
- struct char_ { BOOST_SPIRIT_IS_TAG() };
- struct string { BOOST_SPIRIT_IS_TAG() };
- ///////////////////////////////////////////////////////////////////////////
- // classification tags
- struct alnum { BOOST_SPIRIT_IS_TAG() };
- struct alpha { BOOST_SPIRIT_IS_TAG() };
- struct digit { BOOST_SPIRIT_IS_TAG() };
- struct xdigit { BOOST_SPIRIT_IS_TAG() };
- struct cntrl { BOOST_SPIRIT_IS_TAG() };
- struct graph { BOOST_SPIRIT_IS_TAG() };
- struct print { BOOST_SPIRIT_IS_TAG() };
- struct punct { BOOST_SPIRIT_IS_TAG() };
- struct space { BOOST_SPIRIT_IS_TAG() };
- struct blank { BOOST_SPIRIT_IS_TAG() };
- ///////////////////////////////////////////////////////////////////////////
- // classification/conversion tags
- struct no_case { BOOST_SPIRIT_IS_TAG() };
- struct lower { BOOST_SPIRIT_IS_TAG() };
- struct upper { BOOST_SPIRIT_IS_TAG() };
- struct lowernum { BOOST_SPIRIT_IS_TAG() };
- struct uppernum { BOOST_SPIRIT_IS_TAG() };
- struct ucs4 { BOOST_SPIRIT_IS_TAG() };
- struct encoding { BOOST_SPIRIT_IS_TAG() };
- #if defined(BOOST_SPIRIT_UNICODE)
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Major Categories
- ///////////////////////////////////////////////////////////////////////////
- struct letter { BOOST_SPIRIT_IS_TAG() };
- struct mark { BOOST_SPIRIT_IS_TAG() };
- struct number { BOOST_SPIRIT_IS_TAG() };
- struct separator { BOOST_SPIRIT_IS_TAG() };
- struct other { BOOST_SPIRIT_IS_TAG() };
- struct punctuation { BOOST_SPIRIT_IS_TAG() };
- struct symbol { BOOST_SPIRIT_IS_TAG() };
- ///////////////////////////////////////////////////////////////////////////
- // Unicode General Categories
- ///////////////////////////////////////////////////////////////////////////
- struct uppercase_letter { BOOST_SPIRIT_IS_TAG() };
- struct lowercase_letter { BOOST_SPIRIT_IS_TAG() };
- struct titlecase_letter { BOOST_SPIRIT_IS_TAG() };
- struct modifier_letter { BOOST_SPIRIT_IS_TAG() };
- struct other_letter { BOOST_SPIRIT_IS_TAG() };
- struct nonspacing_mark { BOOST_SPIRIT_IS_TAG() };
- struct enclosing_mark { BOOST_SPIRIT_IS_TAG() };
- struct spacing_mark { BOOST_SPIRIT_IS_TAG() };
- struct decimal_number { BOOST_SPIRIT_IS_TAG() };
- struct letter_number { BOOST_SPIRIT_IS_TAG() };
- struct other_number { BOOST_SPIRIT_IS_TAG() };
- struct space_separator { BOOST_SPIRIT_IS_TAG() };
- struct line_separator { BOOST_SPIRIT_IS_TAG() };
- struct paragraph_separator { BOOST_SPIRIT_IS_TAG() };
- struct control { BOOST_SPIRIT_IS_TAG() };
- struct format { BOOST_SPIRIT_IS_TAG() };
- struct private_use { BOOST_SPIRIT_IS_TAG() };
- struct surrogate { BOOST_SPIRIT_IS_TAG() };
- struct unassigned { BOOST_SPIRIT_IS_TAG() };
- struct dash_punctuation { BOOST_SPIRIT_IS_TAG() };
- struct open_punctuation { BOOST_SPIRIT_IS_TAG() };
- struct close_punctuation { BOOST_SPIRIT_IS_TAG() };
- struct connector_punctuation { BOOST_SPIRIT_IS_TAG() };
- struct other_punctuation { BOOST_SPIRIT_IS_TAG() };
- struct initial_punctuation { BOOST_SPIRIT_IS_TAG() };
- struct final_punctuation { BOOST_SPIRIT_IS_TAG() };
- struct math_symbol { BOOST_SPIRIT_IS_TAG() };
- struct currency_symbol { BOOST_SPIRIT_IS_TAG() };
- struct modifier_symbol { BOOST_SPIRIT_IS_TAG() };
- struct other_symbol { BOOST_SPIRIT_IS_TAG() };
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Derived Categories
- ///////////////////////////////////////////////////////////////////////////
- struct alphabetic { BOOST_SPIRIT_IS_TAG() };
- struct uppercase { BOOST_SPIRIT_IS_TAG() };
- struct lowercase { BOOST_SPIRIT_IS_TAG() };
- struct white_space { BOOST_SPIRIT_IS_TAG() };
- struct hex_digit { BOOST_SPIRIT_IS_TAG() };
- struct noncharacter_code_point { BOOST_SPIRIT_IS_TAG() };
- struct default_ignorable_code_point { BOOST_SPIRIT_IS_TAG() };
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Scripts
- ///////////////////////////////////////////////////////////////////////////
- struct adlam { BOOST_SPIRIT_IS_TAG() };
- struct caucasian_albanian { BOOST_SPIRIT_IS_TAG() };
- struct ahom { BOOST_SPIRIT_IS_TAG() };
- struct arabic { BOOST_SPIRIT_IS_TAG() };
- struct imperial_aramaic { BOOST_SPIRIT_IS_TAG() };
- struct armenian { BOOST_SPIRIT_IS_TAG() };
- struct avestan { BOOST_SPIRIT_IS_TAG() };
- struct balinese { BOOST_SPIRIT_IS_TAG() };
- struct bamum { BOOST_SPIRIT_IS_TAG() };
- struct bassa_vah { BOOST_SPIRIT_IS_TAG() };
- struct batak { BOOST_SPIRIT_IS_TAG() };
- struct bengali { BOOST_SPIRIT_IS_TAG() };
- struct bhaiksuki { BOOST_SPIRIT_IS_TAG() };
- struct bopomofo { BOOST_SPIRIT_IS_TAG() };
- struct brahmi { BOOST_SPIRIT_IS_TAG() };
- struct braille { BOOST_SPIRIT_IS_TAG() };
- struct buginese { BOOST_SPIRIT_IS_TAG() };
- struct buhid { BOOST_SPIRIT_IS_TAG() };
- struct chakma { BOOST_SPIRIT_IS_TAG() };
- struct canadian_aboriginal { BOOST_SPIRIT_IS_TAG() };
- struct carian { BOOST_SPIRIT_IS_TAG() };
- struct cham { BOOST_SPIRIT_IS_TAG() };
- struct cherokee { BOOST_SPIRIT_IS_TAG() };
- struct chorasmian { BOOST_SPIRIT_IS_TAG() };
- struct coptic { BOOST_SPIRIT_IS_TAG() };
- struct cypro_minoan { BOOST_SPIRIT_IS_TAG() };
- struct cypriot { BOOST_SPIRIT_IS_TAG() };
- struct cyrillic { BOOST_SPIRIT_IS_TAG() };
- struct devanagari { BOOST_SPIRIT_IS_TAG() };
- struct dives_akuru { BOOST_SPIRIT_IS_TAG() };
- struct dogra { BOOST_SPIRIT_IS_TAG() };
- struct deseret { BOOST_SPIRIT_IS_TAG() };
- struct duployan { BOOST_SPIRIT_IS_TAG() };
- struct egyptian_hieroglyphs { BOOST_SPIRIT_IS_TAG() };
- struct elbasan { BOOST_SPIRIT_IS_TAG() };
- struct elymaic { BOOST_SPIRIT_IS_TAG() };
- struct ethiopic { BOOST_SPIRIT_IS_TAG() };
- struct georgian { BOOST_SPIRIT_IS_TAG() };
- struct glagolitic { BOOST_SPIRIT_IS_TAG() };
- struct gunjala_gondi { BOOST_SPIRIT_IS_TAG() };
- struct masaram_gondi { BOOST_SPIRIT_IS_TAG() };
- struct gothic { BOOST_SPIRIT_IS_TAG() };
- struct grantha { BOOST_SPIRIT_IS_TAG() };
- struct greek { BOOST_SPIRIT_IS_TAG() };
- struct gujarati { BOOST_SPIRIT_IS_TAG() };
- struct gurmukhi { BOOST_SPIRIT_IS_TAG() };
- struct hangul { BOOST_SPIRIT_IS_TAG() };
- struct han { BOOST_SPIRIT_IS_TAG() };
- struct hanunoo { BOOST_SPIRIT_IS_TAG() };
- struct hatran { BOOST_SPIRIT_IS_TAG() };
- struct hebrew { BOOST_SPIRIT_IS_TAG() };
- struct hiragana { BOOST_SPIRIT_IS_TAG() };
- struct anatolian_hieroglyphs { BOOST_SPIRIT_IS_TAG() };
- struct pahawh_hmong { BOOST_SPIRIT_IS_TAG() };
- struct nyiakeng_puachue_hmong { BOOST_SPIRIT_IS_TAG() };
- struct katakana_or_hiragana { BOOST_SPIRIT_IS_TAG() };
- struct old_hungarian { BOOST_SPIRIT_IS_TAG() };
- struct old_italic { BOOST_SPIRIT_IS_TAG() };
- struct javanese { BOOST_SPIRIT_IS_TAG() };
- struct kayah_li { BOOST_SPIRIT_IS_TAG() };
- struct katakana { BOOST_SPIRIT_IS_TAG() };
- struct kawi { BOOST_SPIRIT_IS_TAG() };
- struct kharoshthi { BOOST_SPIRIT_IS_TAG() };
- struct khmer { BOOST_SPIRIT_IS_TAG() };
- struct khojki { BOOST_SPIRIT_IS_TAG() };
- struct khitan_small_script { BOOST_SPIRIT_IS_TAG() };
- struct kannada { BOOST_SPIRIT_IS_TAG() };
- struct kaithi { BOOST_SPIRIT_IS_TAG() };
- struct tai_tham { BOOST_SPIRIT_IS_TAG() };
- struct lao { BOOST_SPIRIT_IS_TAG() };
- struct latin { BOOST_SPIRIT_IS_TAG() };
- struct lepcha { BOOST_SPIRIT_IS_TAG() };
- struct limbu { BOOST_SPIRIT_IS_TAG() };
- struct linear_a { BOOST_SPIRIT_IS_TAG() };
- struct linear_b { BOOST_SPIRIT_IS_TAG() };
- struct lisu { BOOST_SPIRIT_IS_TAG() };
- struct lycian { BOOST_SPIRIT_IS_TAG() };
- struct lydian { BOOST_SPIRIT_IS_TAG() };
- struct mahajani { BOOST_SPIRIT_IS_TAG() };
- struct makasar { BOOST_SPIRIT_IS_TAG() };
- struct mandaic { BOOST_SPIRIT_IS_TAG() };
- struct manichaean { BOOST_SPIRIT_IS_TAG() };
- struct marchen { BOOST_SPIRIT_IS_TAG() };
- struct medefaidrin { BOOST_SPIRIT_IS_TAG() };
- struct mende_kikakui { BOOST_SPIRIT_IS_TAG() };
- struct meroitic_cursive { BOOST_SPIRIT_IS_TAG() };
- struct meroitic_hieroglyphs { BOOST_SPIRIT_IS_TAG() };
- struct malayalam { BOOST_SPIRIT_IS_TAG() };
- struct modi { BOOST_SPIRIT_IS_TAG() };
- struct mongolian { BOOST_SPIRIT_IS_TAG() };
- struct mro { BOOST_SPIRIT_IS_TAG() };
- struct meetei_mayek { BOOST_SPIRIT_IS_TAG() };
- struct multani { BOOST_SPIRIT_IS_TAG() };
- struct myanmar { BOOST_SPIRIT_IS_TAG() };
- struct nag_mundari { BOOST_SPIRIT_IS_TAG() };
- struct nandinagari { BOOST_SPIRIT_IS_TAG() };
- struct old_north_arabian { BOOST_SPIRIT_IS_TAG() };
- struct nabataean { BOOST_SPIRIT_IS_TAG() };
- struct newa { BOOST_SPIRIT_IS_TAG() };
- struct nko { BOOST_SPIRIT_IS_TAG() };
- struct nushu { BOOST_SPIRIT_IS_TAG() };
- struct ogham { BOOST_SPIRIT_IS_TAG() };
- struct ol_chiki { BOOST_SPIRIT_IS_TAG() };
- struct old_turkic { BOOST_SPIRIT_IS_TAG() };
- struct oriya { BOOST_SPIRIT_IS_TAG() };
- struct osage { BOOST_SPIRIT_IS_TAG() };
- struct osmanya { BOOST_SPIRIT_IS_TAG() };
- struct old_uyghur { BOOST_SPIRIT_IS_TAG() };
- struct palmyrene { BOOST_SPIRIT_IS_TAG() };
- struct pau_cin_hau { BOOST_SPIRIT_IS_TAG() };
- struct old_permic { BOOST_SPIRIT_IS_TAG() };
- struct phags_pa { BOOST_SPIRIT_IS_TAG() };
- struct inscriptional_pahlavi { BOOST_SPIRIT_IS_TAG() };
- struct psalter_pahlavi { BOOST_SPIRIT_IS_TAG() };
- struct phoenician { BOOST_SPIRIT_IS_TAG() };
- struct miao { BOOST_SPIRIT_IS_TAG() };
- struct inscriptional_parthian { BOOST_SPIRIT_IS_TAG() };
- struct rejang { BOOST_SPIRIT_IS_TAG() };
- struct hanifi_rohingya { BOOST_SPIRIT_IS_TAG() };
- struct runic { BOOST_SPIRIT_IS_TAG() };
- struct samaritan { BOOST_SPIRIT_IS_TAG() };
- struct old_south_arabian { BOOST_SPIRIT_IS_TAG() };
- struct saurashtra { BOOST_SPIRIT_IS_TAG() };
- struct signwriting { BOOST_SPIRIT_IS_TAG() };
- struct shavian { BOOST_SPIRIT_IS_TAG() };
- struct sharada { BOOST_SPIRIT_IS_TAG() };
- struct siddham { BOOST_SPIRIT_IS_TAG() };
- struct khudawadi { BOOST_SPIRIT_IS_TAG() };
- struct sinhala { BOOST_SPIRIT_IS_TAG() };
- struct sogdian { BOOST_SPIRIT_IS_TAG() };
- struct old_sogdian { BOOST_SPIRIT_IS_TAG() };
- struct sora_sompeng { BOOST_SPIRIT_IS_TAG() };
- struct soyombo { BOOST_SPIRIT_IS_TAG() };
- struct sundanese { BOOST_SPIRIT_IS_TAG() };
- struct syloti_nagri { BOOST_SPIRIT_IS_TAG() };
- struct syriac { BOOST_SPIRIT_IS_TAG() };
- struct tagbanwa { BOOST_SPIRIT_IS_TAG() };
- struct takri { BOOST_SPIRIT_IS_TAG() };
- struct tai_le { BOOST_SPIRIT_IS_TAG() };
- struct new_tai_lue { BOOST_SPIRIT_IS_TAG() };
- struct tamil { BOOST_SPIRIT_IS_TAG() };
- struct tangut { BOOST_SPIRIT_IS_TAG() };
- struct tai_viet { BOOST_SPIRIT_IS_TAG() };
- struct telugu { BOOST_SPIRIT_IS_TAG() };
- struct tifinagh { BOOST_SPIRIT_IS_TAG() };
- struct tagalog { BOOST_SPIRIT_IS_TAG() };
- struct thaana { BOOST_SPIRIT_IS_TAG() };
- struct thai { BOOST_SPIRIT_IS_TAG() };
- struct tibetan { BOOST_SPIRIT_IS_TAG() };
- struct tirhuta { BOOST_SPIRIT_IS_TAG() };
- struct tangsa { BOOST_SPIRIT_IS_TAG() };
- struct toto { BOOST_SPIRIT_IS_TAG() };
- struct ugaritic { BOOST_SPIRIT_IS_TAG() };
- struct vai { BOOST_SPIRIT_IS_TAG() };
- struct vithkuqi { BOOST_SPIRIT_IS_TAG() };
- struct warang_citi { BOOST_SPIRIT_IS_TAG() };
- struct wancho { BOOST_SPIRIT_IS_TAG() };
- struct old_persian { BOOST_SPIRIT_IS_TAG() };
- struct cuneiform { BOOST_SPIRIT_IS_TAG() };
- struct yezidi { BOOST_SPIRIT_IS_TAG() };
- struct yi { BOOST_SPIRIT_IS_TAG() };
- struct zanabazar_square { BOOST_SPIRIT_IS_TAG() };
- struct inherited { BOOST_SPIRIT_IS_TAG() };
- struct common { BOOST_SPIRIT_IS_TAG() };
- struct unknown { BOOST_SPIRIT_IS_TAG() };
- #endif
- ///////////////////////////////////////////////////////////////////////////
- // This composite tag type encodes both the character
- // set and the specific char tag (used for classification
- // or conversion). char_code_base and char_encoding_base
- // can be used to test for modifier membership (see modifier.hpp)
- template <typename CharClass>
- struct char_code_base {};
- template <typename CharEncoding>
- struct char_encoding_base {};
- template <typename CharClass, typename CharEncoding>
- struct char_code
- : char_code_base<CharClass>, char_encoding_base<CharEncoding>
- {
- BOOST_SPIRIT_IS_TAG()
- typedef CharEncoding char_encoding; // e.g. ascii
- typedef CharClass char_class; // e.g. tag::alnum
- };
- }}}
- namespace boost { namespace spirit { namespace char_class
- {
- ///////////////////////////////////////////////////////////////////////////
- // Test characters for classification
- template <typename CharEncoding>
- struct classify
- {
- typedef typename CharEncoding::classify_type char_type;
- #define BOOST_SPIRIT_CLASSIFY(name, isname) \
- template <typename Char> \
- static bool \
- is(tag::name, Char ch) \
- { \
- return CharEncoding::isname \
- BOOST_PREVENT_MACRO_SUBSTITUTION \
- (detail::cast_char<char_type>(ch)); \
- } \
- /***/
- BOOST_SPIRIT_CLASSIFY(char_, ischar)
- BOOST_SPIRIT_CLASSIFY(alnum, isalnum)
- BOOST_SPIRIT_CLASSIFY(alpha, isalpha)
- BOOST_SPIRIT_CLASSIFY(digit, isdigit)
- BOOST_SPIRIT_CLASSIFY(xdigit, isxdigit)
- BOOST_SPIRIT_CLASSIFY(cntrl, iscntrl)
- BOOST_SPIRIT_CLASSIFY(graph, isgraph)
- BOOST_SPIRIT_CLASSIFY(lower, islower)
- BOOST_SPIRIT_CLASSIFY(print, isprint)
- BOOST_SPIRIT_CLASSIFY(punct, ispunct)
- BOOST_SPIRIT_CLASSIFY(space, isspace)
- BOOST_SPIRIT_CLASSIFY(blank, isblank)
- BOOST_SPIRIT_CLASSIFY(upper, isupper)
- #undef BOOST_SPIRIT_CLASSIFY
- template <typename Char>
- static bool
- is(tag::lowernum, Char ch)
- {
- return CharEncoding::islower(detail::cast_char<char_type>(ch)) ||
- CharEncoding::isdigit(detail::cast_char<char_type>(ch));
- }
- template <typename Char>
- static bool
- is(tag::uppernum, Char ch)
- {
- return CharEncoding::isupper(detail::cast_char<char_type>(ch)) ||
- CharEncoding::isdigit(detail::cast_char<char_type>(ch));
- }
- #if defined(BOOST_SPIRIT_UNICODE)
- #define BOOST_SPIRIT_UNICODE_CLASSIFY(name) \
- template <typename Char> \
- static bool \
- is(tag::name, Char ch) \
- { \
- return CharEncoding::is_##name(detail::cast_char<char_type>(ch)); \
- } \
- /***/
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Major Categories
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY(letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY(mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY(number)
- BOOST_SPIRIT_UNICODE_CLASSIFY(separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY(other)
- BOOST_SPIRIT_UNICODE_CLASSIFY(punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(symbol)
- ///////////////////////////////////////////////////////////////////////////
- // Unicode General Categories
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY(uppercase_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY(lowercase_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY(titlecase_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY(modifier_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY(other_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY(nonspacing_mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY(enclosing_mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY(spacing_mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY(decimal_number)
- BOOST_SPIRIT_UNICODE_CLASSIFY(letter_number)
- BOOST_SPIRIT_UNICODE_CLASSIFY(other_number)
- BOOST_SPIRIT_UNICODE_CLASSIFY(space_separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY(line_separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY(paragraph_separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY(control)
- BOOST_SPIRIT_UNICODE_CLASSIFY(format)
- BOOST_SPIRIT_UNICODE_CLASSIFY(private_use)
- BOOST_SPIRIT_UNICODE_CLASSIFY(surrogate)
- BOOST_SPIRIT_UNICODE_CLASSIFY(unassigned)
- BOOST_SPIRIT_UNICODE_CLASSIFY(dash_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(open_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(close_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(connector_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(other_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(initial_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(final_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY(math_symbol)
- BOOST_SPIRIT_UNICODE_CLASSIFY(currency_symbol)
- BOOST_SPIRIT_UNICODE_CLASSIFY(modifier_symbol)
- BOOST_SPIRIT_UNICODE_CLASSIFY(other_symbol)
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Derived Categories
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY(alphabetic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(uppercase)
- BOOST_SPIRIT_UNICODE_CLASSIFY(lowercase)
- BOOST_SPIRIT_UNICODE_CLASSIFY(white_space)
- BOOST_SPIRIT_UNICODE_CLASSIFY(hex_digit)
- BOOST_SPIRIT_UNICODE_CLASSIFY(noncharacter_code_point)
- BOOST_SPIRIT_UNICODE_CLASSIFY(default_ignorable_code_point)
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Scripts
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY(adlam)
- BOOST_SPIRIT_UNICODE_CLASSIFY(caucasian_albanian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(ahom)
- BOOST_SPIRIT_UNICODE_CLASSIFY(arabic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(imperial_aramaic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(armenian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(avestan)
- BOOST_SPIRIT_UNICODE_CLASSIFY(balinese)
- BOOST_SPIRIT_UNICODE_CLASSIFY(bamum)
- BOOST_SPIRIT_UNICODE_CLASSIFY(bassa_vah)
- BOOST_SPIRIT_UNICODE_CLASSIFY(batak)
- BOOST_SPIRIT_UNICODE_CLASSIFY(bengali)
- BOOST_SPIRIT_UNICODE_CLASSIFY(bhaiksuki)
- BOOST_SPIRIT_UNICODE_CLASSIFY(bopomofo)
- BOOST_SPIRIT_UNICODE_CLASSIFY(brahmi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(braille)
- BOOST_SPIRIT_UNICODE_CLASSIFY(buginese)
- BOOST_SPIRIT_UNICODE_CLASSIFY(buhid)
- BOOST_SPIRIT_UNICODE_CLASSIFY(chakma)
- BOOST_SPIRIT_UNICODE_CLASSIFY(canadian_aboriginal)
- BOOST_SPIRIT_UNICODE_CLASSIFY(carian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(cham)
- BOOST_SPIRIT_UNICODE_CLASSIFY(cherokee)
- BOOST_SPIRIT_UNICODE_CLASSIFY(chorasmian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(coptic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(cypro_minoan)
- BOOST_SPIRIT_UNICODE_CLASSIFY(cypriot)
- BOOST_SPIRIT_UNICODE_CLASSIFY(cyrillic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(devanagari)
- BOOST_SPIRIT_UNICODE_CLASSIFY(dives_akuru)
- BOOST_SPIRIT_UNICODE_CLASSIFY(dogra)
- BOOST_SPIRIT_UNICODE_CLASSIFY(deseret)
- BOOST_SPIRIT_UNICODE_CLASSIFY(duployan)
- BOOST_SPIRIT_UNICODE_CLASSIFY(egyptian_hieroglyphs)
- BOOST_SPIRIT_UNICODE_CLASSIFY(elbasan)
- BOOST_SPIRIT_UNICODE_CLASSIFY(elymaic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(ethiopic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(georgian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(glagolitic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(gunjala_gondi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(masaram_gondi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(gothic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(grantha)
- BOOST_SPIRIT_UNICODE_CLASSIFY(greek)
- BOOST_SPIRIT_UNICODE_CLASSIFY(gujarati)
- BOOST_SPIRIT_UNICODE_CLASSIFY(gurmukhi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(hangul)
- BOOST_SPIRIT_UNICODE_CLASSIFY(han)
- BOOST_SPIRIT_UNICODE_CLASSIFY(hanunoo)
- BOOST_SPIRIT_UNICODE_CLASSIFY(hatran)
- BOOST_SPIRIT_UNICODE_CLASSIFY(hebrew)
- BOOST_SPIRIT_UNICODE_CLASSIFY(hiragana)
- BOOST_SPIRIT_UNICODE_CLASSIFY(anatolian_hieroglyphs)
- BOOST_SPIRIT_UNICODE_CLASSIFY(pahawh_hmong)
- BOOST_SPIRIT_UNICODE_CLASSIFY(nyiakeng_puachue_hmong)
- BOOST_SPIRIT_UNICODE_CLASSIFY(katakana_or_hiragana)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_hungarian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_italic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(javanese)
- BOOST_SPIRIT_UNICODE_CLASSIFY(kayah_li)
- BOOST_SPIRIT_UNICODE_CLASSIFY(katakana)
- BOOST_SPIRIT_UNICODE_CLASSIFY(kawi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(kharoshthi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(khmer)
- BOOST_SPIRIT_UNICODE_CLASSIFY(khojki)
- BOOST_SPIRIT_UNICODE_CLASSIFY(khitan_small_script)
- BOOST_SPIRIT_UNICODE_CLASSIFY(kannada)
- BOOST_SPIRIT_UNICODE_CLASSIFY(kaithi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tai_tham)
- BOOST_SPIRIT_UNICODE_CLASSIFY(lao)
- BOOST_SPIRIT_UNICODE_CLASSIFY(latin)
- BOOST_SPIRIT_UNICODE_CLASSIFY(lepcha)
- BOOST_SPIRIT_UNICODE_CLASSIFY(limbu)
- BOOST_SPIRIT_UNICODE_CLASSIFY(linear_a)
- BOOST_SPIRIT_UNICODE_CLASSIFY(linear_b)
- BOOST_SPIRIT_UNICODE_CLASSIFY(lisu)
- BOOST_SPIRIT_UNICODE_CLASSIFY(lycian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(lydian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(mahajani)
- BOOST_SPIRIT_UNICODE_CLASSIFY(makasar)
- BOOST_SPIRIT_UNICODE_CLASSIFY(mandaic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(manichaean)
- BOOST_SPIRIT_UNICODE_CLASSIFY(marchen)
- BOOST_SPIRIT_UNICODE_CLASSIFY(medefaidrin)
- BOOST_SPIRIT_UNICODE_CLASSIFY(mende_kikakui)
- BOOST_SPIRIT_UNICODE_CLASSIFY(meroitic_cursive)
- BOOST_SPIRIT_UNICODE_CLASSIFY(meroitic_hieroglyphs)
- BOOST_SPIRIT_UNICODE_CLASSIFY(malayalam)
- BOOST_SPIRIT_UNICODE_CLASSIFY(modi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(mongolian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(mro)
- BOOST_SPIRIT_UNICODE_CLASSIFY(meetei_mayek)
- BOOST_SPIRIT_UNICODE_CLASSIFY(multani)
- BOOST_SPIRIT_UNICODE_CLASSIFY(myanmar)
- BOOST_SPIRIT_UNICODE_CLASSIFY(nag_mundari)
- BOOST_SPIRIT_UNICODE_CLASSIFY(nandinagari)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_north_arabian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(nabataean)
- BOOST_SPIRIT_UNICODE_CLASSIFY(newa)
- BOOST_SPIRIT_UNICODE_CLASSIFY(nko)
- BOOST_SPIRIT_UNICODE_CLASSIFY(nushu)
- BOOST_SPIRIT_UNICODE_CLASSIFY(ogham)
- BOOST_SPIRIT_UNICODE_CLASSIFY(ol_chiki)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_turkic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(oriya)
- BOOST_SPIRIT_UNICODE_CLASSIFY(osage)
- BOOST_SPIRIT_UNICODE_CLASSIFY(osmanya)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_uyghur)
- BOOST_SPIRIT_UNICODE_CLASSIFY(palmyrene)
- BOOST_SPIRIT_UNICODE_CLASSIFY(pau_cin_hau)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_permic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(phags_pa)
- BOOST_SPIRIT_UNICODE_CLASSIFY(inscriptional_pahlavi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(psalter_pahlavi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(phoenician)
- BOOST_SPIRIT_UNICODE_CLASSIFY(miao)
- BOOST_SPIRIT_UNICODE_CLASSIFY(inscriptional_parthian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(rejang)
- BOOST_SPIRIT_UNICODE_CLASSIFY(hanifi_rohingya)
- BOOST_SPIRIT_UNICODE_CLASSIFY(runic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(samaritan)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_south_arabian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(saurashtra)
- BOOST_SPIRIT_UNICODE_CLASSIFY(signwriting)
- BOOST_SPIRIT_UNICODE_CLASSIFY(shavian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(sharada)
- BOOST_SPIRIT_UNICODE_CLASSIFY(siddham)
- BOOST_SPIRIT_UNICODE_CLASSIFY(khudawadi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(sinhala)
- BOOST_SPIRIT_UNICODE_CLASSIFY(sogdian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_sogdian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(sora_sompeng)
- BOOST_SPIRIT_UNICODE_CLASSIFY(soyombo)
- BOOST_SPIRIT_UNICODE_CLASSIFY(sundanese)
- BOOST_SPIRIT_UNICODE_CLASSIFY(syloti_nagri)
- BOOST_SPIRIT_UNICODE_CLASSIFY(syriac)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tagbanwa)
- BOOST_SPIRIT_UNICODE_CLASSIFY(takri)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tai_le)
- BOOST_SPIRIT_UNICODE_CLASSIFY(new_tai_lue)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tamil)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tangut)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tai_viet)
- BOOST_SPIRIT_UNICODE_CLASSIFY(telugu)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tifinagh)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tagalog)
- BOOST_SPIRIT_UNICODE_CLASSIFY(thaana)
- BOOST_SPIRIT_UNICODE_CLASSIFY(thai)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tibetan)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tirhuta)
- BOOST_SPIRIT_UNICODE_CLASSIFY(tangsa)
- BOOST_SPIRIT_UNICODE_CLASSIFY(toto)
- BOOST_SPIRIT_UNICODE_CLASSIFY(ugaritic)
- BOOST_SPIRIT_UNICODE_CLASSIFY(vai)
- BOOST_SPIRIT_UNICODE_CLASSIFY(vithkuqi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(warang_citi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(wancho)
- BOOST_SPIRIT_UNICODE_CLASSIFY(old_persian)
- BOOST_SPIRIT_UNICODE_CLASSIFY(cuneiform)
- BOOST_SPIRIT_UNICODE_CLASSIFY(yezidi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(yi)
- BOOST_SPIRIT_UNICODE_CLASSIFY(zanabazar_square)
- BOOST_SPIRIT_UNICODE_CLASSIFY(inherited)
- BOOST_SPIRIT_UNICODE_CLASSIFY(common)
- BOOST_SPIRIT_UNICODE_CLASSIFY(unknown)
- #undef BOOST_SPIRIT_UNICODE_CLASSIFY
- #endif
- };
- ///////////////////////////////////////////////////////////////////////////
- // Convert characters
- template <typename CharEncoding>
- struct convert
- {
- typedef typename CharEncoding::classify_type char_type;
- template <typename Char>
- static Char
- to(tag::lower, Char ch)
- {
- return static_cast<Char>(
- CharEncoding::tolower(detail::cast_char<char_type>(ch)));
- }
- template <typename Char>
- static Char
- to(tag::upper, Char ch)
- {
- return static_cast<Char>(
- CharEncoding::toupper(detail::cast_char<char_type>(ch)));
- }
- template <typename Char>
- static Char
- to(tag::ucs4, Char ch)
- {
- return static_cast<Char>(
- CharEncoding::toucs4(detail::cast_char<char_type>(ch)));
- }
- template <typename Char>
- static Char
- to(unused_type, Char ch)
- {
- return ch;
- }
- };
- ///////////////////////////////////////////////////////////////////////////
- // Info on character classification
- template <typename CharEncoding>
- struct what
- {
- #define BOOST_SPIRIT_CLASSIFY_WHAT(name, isname) \
- static char const* is(tag::name) \
- { \
- return isname; \
- } \
- /***/
- BOOST_SPIRIT_CLASSIFY_WHAT(char_, "char")
- BOOST_SPIRIT_CLASSIFY_WHAT(alnum, "alnum")
- BOOST_SPIRIT_CLASSIFY_WHAT(alpha, "alpha")
- BOOST_SPIRIT_CLASSIFY_WHAT(digit, "digit")
- BOOST_SPIRIT_CLASSIFY_WHAT(xdigit, "xdigit")
- BOOST_SPIRIT_CLASSIFY_WHAT(cntrl, "cntrl")
- BOOST_SPIRIT_CLASSIFY_WHAT(graph, "graph")
- BOOST_SPIRIT_CLASSIFY_WHAT(lower, "lower")
- BOOST_SPIRIT_CLASSIFY_WHAT(lowernum, "lowernum")
- BOOST_SPIRIT_CLASSIFY_WHAT(print, "print")
- BOOST_SPIRIT_CLASSIFY_WHAT(punct, "punct")
- BOOST_SPIRIT_CLASSIFY_WHAT(space, "space")
- BOOST_SPIRIT_CLASSIFY_WHAT(blank, "blank")
- BOOST_SPIRIT_CLASSIFY_WHAT(upper, "upper")
- BOOST_SPIRIT_CLASSIFY_WHAT(uppernum, "uppernum")
- BOOST_SPIRIT_CLASSIFY_WHAT(ucs4, "ucs4")
- #undef BOOST_SPIRIT_CLASSIFY_WHAT
- #if defined(BOOST_SPIRIT_UNICODE)
- #define BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(name) \
- static char const* is(tag::name) \
- { \
- return BOOST_PP_STRINGIZE(name); \
- } \
- /***/
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Major Categories
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(number)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(other)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(symbol)
- ///////////////////////////////////////////////////////////////////////////
- // Unicode General Categories
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(uppercase_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(lowercase_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(titlecase_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(modifier_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(other_letter)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(nonspacing_mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(enclosing_mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(spacing_mark)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(decimal_number)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(letter_number)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(other_number)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(space_separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(line_separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(paragraph_separator)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(control)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(format)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(private_use)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(surrogate)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(unassigned)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(dash_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(open_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(close_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(connector_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(other_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(initial_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(final_punctuation)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(math_symbol)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(currency_symbol)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(modifier_symbol)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(other_symbol)
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Derived Categories
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(alphabetic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(uppercase)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(lowercase)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(white_space)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(hex_digit)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(noncharacter_code_point)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(default_ignorable_code_point)
- ///////////////////////////////////////////////////////////////////////////
- // Unicode Scripts
- ///////////////////////////////////////////////////////////////////////////
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(adlam)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(caucasian_albanian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(ahom)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(arabic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(imperial_aramaic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(armenian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(avestan)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(balinese)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(bamum)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(bassa_vah)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(batak)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(bengali)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(bhaiksuki)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(bopomofo)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(brahmi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(braille)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(buginese)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(buhid)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(chakma)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(canadian_aboriginal)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(carian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(cham)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(cherokee)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(chorasmian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(coptic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(cypro_minoan)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(cypriot)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(cyrillic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(devanagari)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(dives_akuru)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(dogra)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(deseret)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(duployan)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(egyptian_hieroglyphs)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(elbasan)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(elymaic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(ethiopic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(georgian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(glagolitic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(gunjala_gondi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(masaram_gondi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(gothic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(grantha)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(greek)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(gujarati)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(gurmukhi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(hangul)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(han)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(hanunoo)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(hatran)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(hebrew)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(hiragana)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(anatolian_hieroglyphs)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(pahawh_hmong)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(nyiakeng_puachue_hmong)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(katakana_or_hiragana)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_hungarian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_italic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(javanese)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(kayah_li)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(katakana)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(kawi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(kharoshthi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(khmer)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(khojki)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(khitan_small_script)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(kannada)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(kaithi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tai_tham)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(lao)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(latin)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(lepcha)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(limbu)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(linear_a)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(linear_b)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(lisu)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(lycian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(lydian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(mahajani)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(makasar)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(mandaic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(manichaean)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(marchen)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(medefaidrin)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(mende_kikakui)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(meroitic_cursive)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(meroitic_hieroglyphs)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(malayalam)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(modi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(mongolian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(mro)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(meetei_mayek)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(multani)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(myanmar)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(nag_mundari)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(nandinagari)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_north_arabian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(nabataean)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(newa)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(nko)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(nushu)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(ogham)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(ol_chiki)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_turkic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(oriya)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(osage)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(osmanya)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_uyghur)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(palmyrene)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(pau_cin_hau)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_permic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(phags_pa)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(inscriptional_pahlavi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(psalter_pahlavi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(phoenician)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(miao)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(inscriptional_parthian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(rejang)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(hanifi_rohingya)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(runic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(samaritan)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_south_arabian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(saurashtra)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(signwriting)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(shavian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(sharada)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(siddham)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(khudawadi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(sinhala)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(sogdian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_sogdian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(sora_sompeng)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(soyombo)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(sundanese)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(syloti_nagri)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(syriac)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tagbanwa)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(takri)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tai_le)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(new_tai_lue)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tamil)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tangut)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tai_viet)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(telugu)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tifinagh)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tagalog)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(thaana)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(thai)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tibetan)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tirhuta)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(tangsa)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(toto)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(ugaritic)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(vai)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(vithkuqi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(warang_citi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(wancho)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(old_persian)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(cuneiform)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(yezidi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(yi)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(zanabazar_square)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(inherited)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(common)
- BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT(unknown)
- #undef BOOST_SPIRIT_UNICODE_CLASSIFY_WHAT
- #endif
- };
- }}}
- namespace boost { namespace spirit { namespace traits
- {
- ///////////////////////////////////////////////////////////////////////////
- template <typename CharParam, typename CharEncoding>
- struct ischar
- {
- static bool call(CharParam const& ch)
- {
- return CharEncoding::ischar(int(ch));
- }
- };
- }}}
- #if defined(BOOST_MSVC)
- # pragma warning(pop)
- #endif
- #endif
|