Chris@16: /*============================================================================= Chris@16: Copyright (c) 2001-2011 Joel de Guzman Chris@16: http://spirit.sourceforge.net/ Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: =============================================================================*/ Chris@16: #ifndef BOOST_SPIRIT_COMMON_PLACEHOLDERS_OCTOBER_16_2008_0102PM Chris@16: #define BOOST_SPIRIT_COMMON_PLACEHOLDERS_OCTOBER_16_2008_0102PM Chris@16: Chris@16: #if defined(_MSC_VER) Chris@16: #pragma once Chris@16: #endif Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: #if defined(BOOST_SPIRIT_UNICODE) Chris@16: # include Chris@16: #endif Chris@16: Chris@16: namespace boost { namespace spirit Chris@16: { Chris@16: typedef mpl::vector< Chris@16: spirit::char_encoding::ascii Chris@16: , spirit::char_encoding::iso8859_1 Chris@16: , spirit::char_encoding::standard Chris@16: , spirit::char_encoding::standard_wide Chris@16: #if defined(BOOST_SPIRIT_UNICODE) Chris@16: , spirit::char_encoding::unicode Chris@16: #endif Chris@16: > Chris@16: char_encodings; Chris@16: Chris@16: template Chris@16: struct is_char_encoding : mpl::false_ {}; Chris@16: Chris@16: template <> Chris@16: struct is_char_encoding : mpl::true_ {}; Chris@16: Chris@16: template <> Chris@16: struct is_char_encoding : mpl::true_ {}; Chris@16: Chris@16: template <> Chris@16: struct is_char_encoding : mpl::true_ {}; Chris@16: Chris@16: template <> Chris@16: struct is_char_encoding : mpl::true_ {}; Chris@16: Chris@16: #if defined(BOOST_SPIRIT_UNICODE) Chris@16: template <> Chris@16: struct is_char_encoding : mpl::true_ {}; Chris@16: #endif Chris@16: Chris@16: template Chris@16: struct encoding Chris@16: : proto::terminal >::type Chris@16: {}; Chris@16: Chris@16: // Our basic terminals Chris@16: BOOST_SPIRIT_DEFINE_TERMINALS_NAME( Chris@16: ( verbatim, verbatim_type ) Chris@16: ( no_delimit, no_delimit_type ) Chris@16: ( lexeme, lexeme_type ) Chris@16: ( no_skip, no_skip_type ) Chris@16: ( omit, omit_type ) Chris@16: ( raw, raw_type ) Chris@16: ( as_string, as_string_type ) Chris@16: ( as_wstring, as_wstring_type ) Chris@16: ( inf, inf_type ) Chris@16: ( eol, eol_type ) Chris@16: ( eoi, eoi_type ) Chris@16: ( buffer, buffer_type ) Chris@16: ( true_, true_type ) Chris@16: ( false_, false_type ) Chris@16: ( matches, matches_type ) Chris@16: ( hold, hold_type ) Chris@16: ( strict, strict_type ) Chris@16: ( relaxed, relaxed_type ) Chris@16: ( duplicate, duplicate_type ) Chris@16: ) Chris@16: Chris@16: // Our extended terminals Chris@16: BOOST_SPIRIT_DEFINE_TERMINALS_NAME_EX( Chris@16: ( lit, lit_type ) Chris@16: ( bin, bin_type ) Chris@16: ( oct, oct_type ) Chris@16: ( hex, hex_type ) Chris@16: ( bool_, bool_type ) Chris@16: ( ushort_, ushort_type ) Chris@16: ( ulong_, ulong_type ) Chris@16: ( uint_, uint_type ) Chris@16: ( short_, short_type ) Chris@16: ( long_, long_type ) Chris@16: ( int_, int_type ) Chris@16: ( ulong_long, ulong_long_type ) Chris@16: ( long_long, long_long_type ) Chris@16: ( float_, float_type ) Chris@16: ( double_, double_type ) Chris@16: ( long_double, long_double_type ) Chris@16: ( repeat, repeat_type ) Chris@16: ( eps, eps_type ) Chris@16: ( pad, pad_type ) Chris@16: ( byte_, byte_type ) Chris@16: ( word, word_type ) Chris@16: ( big_word, big_word_type ) Chris@16: ( little_word, little_word_type ) Chris@16: ( dword, dword_type ) Chris@16: ( big_dword, big_dword_type ) Chris@16: ( little_dword, little_dword_type ) Chris@16: ( qword, qword_type ) Chris@16: ( big_qword, big_qword_type ) Chris@16: ( little_qword, little_qword_type ) Chris@16: ( bin_float, bin_float_type ) Chris@16: ( big_bin_float, big_bin_float_type ) Chris@16: ( little_bin_float, little_bin_float_type ) Chris@16: ( bin_double, bin_double_type ) Chris@16: ( big_bin_double, big_bin_double_type ) Chris@16: ( little_bin_double, little_bin_double_type ) Chris@16: ( skip, skip_type ) Chris@16: ( delimit, delimit_type ) Chris@16: ( stream, stream_type ) Chris@16: ( wstream, wstream_type ) Chris@16: ( left_align, left_align_type ) Chris@16: ( right_align, right_align_type ) Chris@16: ( center, center_type ) Chris@16: ( maxwidth, maxwidth_type ) Chris@16: ( set_state, set_state_type ) Chris@16: ( in_state, in_state_type ) Chris@16: ( token, token_type ) Chris@16: ( tokenid, tokenid_type ) Chris@16: ( raw_token, raw_token_type ) Chris@16: ( tokenid_mask, tokenid_mask_type ) Chris@16: ( attr, attr_type ) Chris@16: ( columns, columns_type ) Chris@16: ( auto_, auto_type ) Chris@16: ) Chris@16: Chris@16: // special tags (used mainly for stateful tag types) Chris@16: namespace tag Chris@16: { Chris@16: struct attr_cast { BOOST_SPIRIT_IS_TAG() }; Chris@16: struct as { BOOST_SPIRIT_IS_TAG() }; Chris@16: } Chris@16: }} Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // Here we place the character-set sensitive placeholders. We have one set Chris@16: // each for ascii, iso8859_1, standard and standard_wide and unicode. These Chris@16: // placeholders are placed in its char-set namespace. For example, there exist Chris@16: // a placeholder spirit::ascii::alnum for ascii versions of alnum. Chris@16: Chris@16: #define BOOST_SPIRIT_TAG_CHAR_SPEC(charset) \ Chris@16: typedef tag::char_code char_; \ Chris@16: typedef tag::char_code string; \ Chris@16: /***/ Chris@16: Chris@16: #ifdef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS Chris@16: Chris@16: #define BOOST_SPIRIT_CHAR_SPEC(charset) \ Chris@16: typedef spirit::terminal char_type; \ Chris@16: typedef spirit::terminal string_type; \ Chris@16: /***/ Chris@16: Chris@16: #else Chris@16: Chris@16: #define BOOST_SPIRIT_CHAR_SPEC(charset) \ Chris@16: typedef spirit::terminal char_type; \ Chris@16: char_type const char_ = char_type(); \ Chris@16: \ Chris@16: inline void silence_unused_warnings_##char_() { (void) char_; } \ Chris@16: \ Chris@16: typedef spirit::terminal string_type; \ Chris@16: string_type const string = string_type(); \ Chris@16: \ Chris@16: inline void silence_unused_warnings_##string() { (void) string; } \ Chris@16: /***/ Chris@16: Chris@16: #endif Chris@16: Chris@16: #ifdef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS Chris@16: Chris@16: #define BOOST_SPIRIT_CHAR_CODE(name, charset) \ Chris@16: typedef proto::terminal >::type \ Chris@16: name##_type; \ Chris@16: /***/ Chris@16: Chris@16: #else Chris@16: Chris@16: #define BOOST_SPIRIT_CHAR_CODE(name, charset) \ Chris@16: typedef proto::terminal >::type \ Chris@16: name##_type; \ Chris@16: name##_type const name = name##_type(); \ Chris@16: \ Chris@16: inline void silence_unused_warnings_##name() { (void) name; } \ Chris@16: /***/ Chris@16: Chris@16: Chris@16: #endif Chris@16: Chris@16: #define BOOST_SPIRIT_DEFINE_CHAR_CODES(charset) \ Chris@16: namespace boost { namespace spirit { namespace tag { namespace charset \ Chris@16: { \ Chris@16: BOOST_SPIRIT_TAG_CHAR_SPEC(spirit::char_encoding::charset) \ Chris@16: }}}} \ Chris@16: namespace boost { namespace spirit { namespace charset \ Chris@16: { \ Chris@16: BOOST_SPIRIT_CHAR_SPEC(charset) \ Chris@16: \ Chris@16: BOOST_SPIRIT_CHAR_CODE(alnum, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(alpha, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(blank, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(cntrl, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(digit, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(graph, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(print, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(punct, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(space, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(xdigit, spirit::char_encoding::charset) \ Chris@16: \ Chris@16: BOOST_SPIRIT_CHAR_CODE(no_case, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(lower, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(upper, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(lowernum, spirit::char_encoding::charset) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(uppernum, spirit::char_encoding::charset) \ Chris@16: }}} \ Chris@16: /***/ Chris@16: Chris@16: BOOST_SPIRIT_DEFINE_CHAR_CODES(ascii) Chris@16: BOOST_SPIRIT_DEFINE_CHAR_CODES(iso8859_1) Chris@16: BOOST_SPIRIT_DEFINE_CHAR_CODES(standard) Chris@16: BOOST_SPIRIT_DEFINE_CHAR_CODES(standard_wide) Chris@16: Chris@16: namespace boost { namespace spirit { namespace traits Chris@16: { Chris@16: template Chris@16: struct char_encoding_from_char; Chris@16: Chris@16: template <> Chris@16: struct char_encoding_from_char Chris@16: : mpl::identity Chris@16: {}; Chris@16: Chris@16: template <> Chris@16: struct char_encoding_from_char Chris@16: : mpl::identity Chris@16: {}; Chris@16: Chris@16: template Chris@16: struct char_encoding_from_char Chris@16: : char_encoding_from_char Chris@16: {}; Chris@16: }}} Chris@16: Chris@16: #if defined(BOOST_SPIRIT_UNICODE) Chris@16: BOOST_SPIRIT_DEFINE_CHAR_CODES(unicode) Chris@16: Chris@16: namespace boost { namespace spirit { namespace tag { namespace unicode Chris@16: { Chris@16: BOOST_SPIRIT_TAG_CHAR_SPEC(spirit::char_encoding::unicode) Chris@16: }}}} Chris@16: Chris@16: namespace boost { namespace spirit { namespace unicode Chris@16: { Chris@16: #define BOOST_SPIRIT_UNICODE_CHAR_CODE(name) \ Chris@16: BOOST_SPIRIT_CHAR_CODE(name, spirit::char_encoding::unicode) \ Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: // Unicode Major Categories Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(letter) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(mark) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(number) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(separator) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(other) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(punctuation) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(symbol) Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: // Unicode General Categories Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(uppercase_letter) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(lowercase_letter) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(titlecase_letter) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(modifier_letter) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(other_letter) Chris@16: Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(nonspacing_mark) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(enclosing_mark) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(spacing_mark) Chris@16: Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(decimal_number) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(letter_number) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(other_number) Chris@16: Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(space_separator) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(line_separator) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(paragraph_separator) Chris@16: Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(control) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(format) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(private_use) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(surrogate) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(unassigned) Chris@16: Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(dash_punctuation) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(open_punctuation) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(close_punctuation) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(connector_punctuation) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(other_punctuation) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(initial_punctuation) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(final_punctuation) Chris@16: Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(math_symbol) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(currency_symbol) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(modifier_symbol) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(other_symbol) Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: // Unicode Derived Categories Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(alphabetic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(uppercase) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(lowercase) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(white_space) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(hex_digit) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(noncharacter_code_point) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(default_ignorable_code_point) Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: // Unicode Scripts Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(arabic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(imperial_aramaic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(armenian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(avestan) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(balinese) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(bamum) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(bengali) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(bopomofo) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(braille) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(buginese) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(buhid) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(canadian_aboriginal) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(carian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(cham) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(cherokee) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(coptic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(cypriot) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(cyrillic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(devanagari) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(deseret) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(egyptian_hieroglyphs) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(ethiopic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(georgian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(glagolitic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(gothic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(greek) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(gujarati) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(gurmukhi) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(hangul) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(han) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(hanunoo) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(hebrew) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(hiragana) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(katakana_or_hiragana) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(old_italic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(javanese) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(kayah_li) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(katakana) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(kharoshthi) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(khmer) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(kannada) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(kaithi) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tai_tham) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(lao) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(latin) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(lepcha) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(limbu) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(linear_b) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(lisu) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(lycian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(lydian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(malayalam) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(mongolian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(meetei_mayek) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(myanmar) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(nko) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(ogham) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(ol_chiki) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(old_turkic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(oriya) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(osmanya) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(phags_pa) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(inscriptional_pahlavi) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(phoenician) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(inscriptional_parthian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(rejang) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(runic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(samaritan) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(old_south_arabian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(saurashtra) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(shavian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(sinhala) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(sundanese) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(syloti_nagri) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(syriac) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tagbanwa) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tai_le) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(new_tai_lue) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tamil) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tai_viet) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(telugu) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tifinagh) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tagalog) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(thaana) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(thai) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(tibetan) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(ugaritic) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(vai) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(old_persian) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(cuneiform) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(yi) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(inherited) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(common) Chris@16: BOOST_SPIRIT_UNICODE_CHAR_CODE(unknown) Chris@16: Chris@16: #undef BOOST_SPIRIT_UNICODE_CHAR_CODE Chris@16: }}} Chris@16: #endif Chris@16: Chris@16: #endif