common_terminals.hpp 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  1. /*=============================================================================
  2. Copyright (c) 2001-2011 Joel de Guzman
  3. http://spirit.sourceforge.net/
  4. Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. =============================================================================*/
  7. #ifndef BOOST_SPIRIT_COMMON_PLACEHOLDERS_OCTOBER_16_2008_0102PM
  8. #define BOOST_SPIRIT_COMMON_PLACEHOLDERS_OCTOBER_16_2008_0102PM
  9. #if defined(_MSC_VER)
  10. #pragma once
  11. #endif
  12. #include <boost/spirit/home/support/terminal.hpp>
  13. #include <boost/spirit/home/support/char_encoding/standard.hpp>
  14. #include <boost/spirit/home/support/char_encoding/standard_wide.hpp>
  15. #include <boost/spirit/home/support/char_encoding/ascii.hpp>
  16. #include <boost/spirit/home/support/char_encoding/iso8859_1.hpp>
  17. #include <boost/spirit/home/support/char_class.hpp>
  18. #include <boost/mpl/vector.hpp>
  19. #include <boost/proto/traits.hpp>
  20. #if defined(BOOST_SPIRIT_UNICODE)
  21. # include <boost/spirit/home/support/char_encoding/unicode.hpp>
  22. #endif
  23. namespace boost { namespace spirit
  24. {
  25. typedef mpl::vector<
  26. spirit::char_encoding::ascii
  27. , spirit::char_encoding::iso8859_1
  28. , spirit::char_encoding::standard
  29. , spirit::char_encoding::standard_wide
  30. #if defined(BOOST_SPIRIT_UNICODE)
  31. , spirit::char_encoding::unicode
  32. #endif
  33. >
  34. char_encodings;
  35. template <typename T>
  36. struct is_char_encoding : mpl::false_ {};
  37. template <>
  38. struct is_char_encoding<spirit::char_encoding::ascii> : mpl::true_ {};
  39. template <>
  40. struct is_char_encoding<spirit::char_encoding::iso8859_1> : mpl::true_ {};
  41. template <>
  42. struct is_char_encoding<spirit::char_encoding::standard> : mpl::true_ {};
  43. template <>
  44. struct is_char_encoding<spirit::char_encoding::standard_wide> : mpl::true_ {};
  45. #if defined(BOOST_SPIRIT_UNICODE)
  46. template <>
  47. struct is_char_encoding<spirit::char_encoding::unicode> : mpl::true_ {};
  48. #endif
  49. template <typename Encoding>
  50. struct encoding
  51. : proto::terminal<tag::char_code<tag::encoding, Encoding> >::type
  52. {};
  53. // Our basic terminals
  54. BOOST_SPIRIT_DEFINE_TERMINALS_NAME(
  55. ( verbatim, verbatim_type )
  56. ( no_delimit, no_delimit_type )
  57. ( lexeme, lexeme_type )
  58. ( no_skip, no_skip_type )
  59. ( omit, omit_type )
  60. ( raw, raw_type )
  61. ( as_string, as_string_type )
  62. ( as_wstring, as_wstring_type )
  63. ( inf, inf_type )
  64. ( eol, eol_type )
  65. ( eoi, eoi_type )
  66. ( buffer, buffer_type )
  67. ( true_, true_type )
  68. ( false_, false_type )
  69. ( matches, matches_type )
  70. ( hold, hold_type )
  71. ( strict, strict_type )
  72. ( relaxed, relaxed_type )
  73. ( duplicate, duplicate_type )
  74. ( expect, expect_type )
  75. )
  76. // Our extended terminals
  77. BOOST_SPIRIT_DEFINE_TERMINALS_NAME_EX(
  78. ( lit, lit_type )
  79. ( bin, bin_type )
  80. ( oct, oct_type )
  81. ( hex, hex_type )
  82. ( bool_, bool_type )
  83. ( ushort_, ushort_type )
  84. ( ulong_, ulong_type )
  85. ( uint_, uint_type )
  86. ( short_, short_type )
  87. ( long_, long_type )
  88. ( int_, int_type )
  89. ( ulong_long, ulong_long_type )
  90. ( long_long, long_long_type )
  91. ( float_, float_type )
  92. ( double_, double_type )
  93. ( long_double, long_double_type )
  94. ( repeat, repeat_type )
  95. ( eps, eps_type )
  96. ( pad, pad_type )
  97. ( byte_, byte_type )
  98. ( word, word_type )
  99. ( big_word, big_word_type )
  100. ( little_word, little_word_type )
  101. ( dword, dword_type )
  102. ( big_dword, big_dword_type )
  103. ( little_dword, little_dword_type )
  104. ( qword, qword_type )
  105. ( big_qword, big_qword_type )
  106. ( little_qword, little_qword_type )
  107. ( bin_float, bin_float_type )
  108. ( big_bin_float, big_bin_float_type )
  109. ( little_bin_float, little_bin_float_type )
  110. ( bin_double, bin_double_type )
  111. ( big_bin_double, big_bin_double_type )
  112. ( little_bin_double, little_bin_double_type )
  113. ( skip, skip_type )
  114. ( delimit, delimit_type )
  115. ( stream, stream_type )
  116. ( wstream, wstream_type )
  117. ( left_align, left_align_type )
  118. ( right_align, right_align_type )
  119. ( center, center_type )
  120. ( maxwidth, maxwidth_type )
  121. ( set_state, set_state_type )
  122. ( in_state, in_state_type )
  123. ( token, token_type )
  124. ( tokenid, tokenid_type )
  125. ( raw_token, raw_token_type )
  126. ( tokenid_mask, tokenid_mask_type )
  127. ( attr, attr_type )
  128. ( columns, columns_type )
  129. ( auto_, auto_type )
  130. )
  131. // special tags (used mainly for stateful tag types)
  132. namespace tag
  133. {
  134. struct attr_cast { BOOST_SPIRIT_IS_TAG() };
  135. struct as { BOOST_SPIRIT_IS_TAG() };
  136. }
  137. }}
  138. ///////////////////////////////////////////////////////////////////////////////
  139. // Here we place the character-set sensitive placeholders. We have one set
  140. // each for ascii, iso8859_1, standard and standard_wide and unicode. These
  141. // placeholders are placed in its char-set namespace. For example, there exist
  142. // a placeholder spirit::ascii::alnum for ascii versions of alnum.
  143. #define BOOST_SPIRIT_TAG_CHAR_SPEC(charset) \
  144. typedef tag::char_code<tag::char_, charset> char_; \
  145. typedef tag::char_code<tag::string, charset> string; \
  146. /***/
  147. #ifdef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
  148. #define BOOST_SPIRIT_CHAR_SPEC(charset) \
  149. typedef spirit::terminal<tag::charset::char_> char_type; \
  150. typedef spirit::terminal<tag::charset::string> string_type; \
  151. /***/
  152. #else
  153. #define BOOST_SPIRIT_CHAR_SPEC(charset) \
  154. typedef spirit::terminal<tag::charset::char_> char_type; \
  155. char_type const char_ = char_type(); \
  156. \
  157. inline void silence_unused_warnings_##char_() { (void) char_; } \
  158. \
  159. typedef spirit::terminal<tag::charset::string> string_type; \
  160. string_type const string = string_type(); \
  161. \
  162. inline void silence_unused_warnings_##string() { (void) string; } \
  163. /***/
  164. #endif
  165. #ifdef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
  166. #define BOOST_SPIRIT_CHAR_CODE(name, charset) \
  167. typedef proto::terminal<tag::char_code<tag::name, charset> >::type \
  168. name##_type; \
  169. /***/
  170. #else
  171. #define BOOST_SPIRIT_CHAR_CODE(name, charset) \
  172. typedef proto::terminal<tag::char_code<tag::name, charset> >::type \
  173. name##_type; \
  174. name##_type const name = name##_type(); \
  175. \
  176. inline void silence_unused_warnings_##name() { (void) name; } \
  177. /***/
  178. #endif
  179. #define BOOST_SPIRIT_DEFINE_CHAR_CODES(charset) \
  180. namespace boost { namespace spirit { namespace tag { namespace charset \
  181. { \
  182. BOOST_SPIRIT_TAG_CHAR_SPEC(spirit::char_encoding::charset) \
  183. }}}} \
  184. namespace boost { namespace spirit { namespace charset \
  185. { \
  186. BOOST_SPIRIT_CHAR_SPEC(charset) \
  187. \
  188. BOOST_SPIRIT_CHAR_CODE(alnum, spirit::char_encoding::charset) \
  189. BOOST_SPIRIT_CHAR_CODE(alpha, spirit::char_encoding::charset) \
  190. BOOST_SPIRIT_CHAR_CODE(blank, spirit::char_encoding::charset) \
  191. BOOST_SPIRIT_CHAR_CODE(cntrl, spirit::char_encoding::charset) \
  192. BOOST_SPIRIT_CHAR_CODE(digit, spirit::char_encoding::charset) \
  193. BOOST_SPIRIT_CHAR_CODE(graph, spirit::char_encoding::charset) \
  194. BOOST_SPIRIT_CHAR_CODE(print, spirit::char_encoding::charset) \
  195. BOOST_SPIRIT_CHAR_CODE(punct, spirit::char_encoding::charset) \
  196. BOOST_SPIRIT_CHAR_CODE(space, spirit::char_encoding::charset) \
  197. BOOST_SPIRIT_CHAR_CODE(xdigit, spirit::char_encoding::charset) \
  198. \
  199. BOOST_SPIRIT_CHAR_CODE(no_case, spirit::char_encoding::charset) \
  200. BOOST_SPIRIT_CHAR_CODE(lower, spirit::char_encoding::charset) \
  201. BOOST_SPIRIT_CHAR_CODE(upper, spirit::char_encoding::charset) \
  202. BOOST_SPIRIT_CHAR_CODE(lowernum, spirit::char_encoding::charset) \
  203. BOOST_SPIRIT_CHAR_CODE(uppernum, spirit::char_encoding::charset) \
  204. }}} \
  205. /***/
  206. BOOST_SPIRIT_DEFINE_CHAR_CODES(ascii)
  207. BOOST_SPIRIT_DEFINE_CHAR_CODES(iso8859_1)
  208. BOOST_SPIRIT_DEFINE_CHAR_CODES(standard)
  209. BOOST_SPIRIT_DEFINE_CHAR_CODES(standard_wide)
  210. namespace boost { namespace spirit { namespace traits
  211. {
  212. template <typename Char>
  213. struct char_encoding_from_char;
  214. template <>
  215. struct char_encoding_from_char<char>
  216. : mpl::identity<spirit::char_encoding::standard>
  217. {};
  218. template <>
  219. struct char_encoding_from_char<wchar_t>
  220. : mpl::identity<spirit::char_encoding::standard_wide>
  221. {};
  222. template <typename T>
  223. struct char_encoding_from_char<T const>
  224. : char_encoding_from_char<T>
  225. {};
  226. }}}
  227. #if defined(BOOST_SPIRIT_UNICODE)
  228. BOOST_SPIRIT_DEFINE_CHAR_CODES(unicode)
  229. namespace boost { namespace spirit { namespace tag { namespace unicode
  230. {
  231. BOOST_SPIRIT_TAG_CHAR_SPEC(spirit::char_encoding::unicode)
  232. }}}}
  233. namespace boost { namespace spirit { namespace unicode
  234. {
  235. #define BOOST_SPIRIT_UNICODE_CHAR_CODE(name) \
  236. BOOST_SPIRIT_CHAR_CODE(name, spirit::char_encoding::unicode) \
  237. ///////////////////////////////////////////////////////////////////////////
  238. // Unicode Major Categories
  239. ///////////////////////////////////////////////////////////////////////////
  240. BOOST_SPIRIT_UNICODE_CHAR_CODE(letter)
  241. BOOST_SPIRIT_UNICODE_CHAR_CODE(mark)
  242. BOOST_SPIRIT_UNICODE_CHAR_CODE(number)
  243. BOOST_SPIRIT_UNICODE_CHAR_CODE(separator)
  244. BOOST_SPIRIT_UNICODE_CHAR_CODE(other)
  245. BOOST_SPIRIT_UNICODE_CHAR_CODE(punctuation)
  246. BOOST_SPIRIT_UNICODE_CHAR_CODE(symbol)
  247. ///////////////////////////////////////////////////////////////////////////
  248. // Unicode General Categories
  249. ///////////////////////////////////////////////////////////////////////////
  250. BOOST_SPIRIT_UNICODE_CHAR_CODE(uppercase_letter)
  251. BOOST_SPIRIT_UNICODE_CHAR_CODE(lowercase_letter)
  252. BOOST_SPIRIT_UNICODE_CHAR_CODE(titlecase_letter)
  253. BOOST_SPIRIT_UNICODE_CHAR_CODE(modifier_letter)
  254. BOOST_SPIRIT_UNICODE_CHAR_CODE(other_letter)
  255. BOOST_SPIRIT_UNICODE_CHAR_CODE(nonspacing_mark)
  256. BOOST_SPIRIT_UNICODE_CHAR_CODE(enclosing_mark)
  257. BOOST_SPIRIT_UNICODE_CHAR_CODE(spacing_mark)
  258. BOOST_SPIRIT_UNICODE_CHAR_CODE(decimal_number)
  259. BOOST_SPIRIT_UNICODE_CHAR_CODE(letter_number)
  260. BOOST_SPIRIT_UNICODE_CHAR_CODE(other_number)
  261. BOOST_SPIRIT_UNICODE_CHAR_CODE(space_separator)
  262. BOOST_SPIRIT_UNICODE_CHAR_CODE(line_separator)
  263. BOOST_SPIRIT_UNICODE_CHAR_CODE(paragraph_separator)
  264. BOOST_SPIRIT_UNICODE_CHAR_CODE(control)
  265. BOOST_SPIRIT_UNICODE_CHAR_CODE(format)
  266. BOOST_SPIRIT_UNICODE_CHAR_CODE(private_use)
  267. BOOST_SPIRIT_UNICODE_CHAR_CODE(surrogate)
  268. BOOST_SPIRIT_UNICODE_CHAR_CODE(unassigned)
  269. BOOST_SPIRIT_UNICODE_CHAR_CODE(dash_punctuation)
  270. BOOST_SPIRIT_UNICODE_CHAR_CODE(open_punctuation)
  271. BOOST_SPIRIT_UNICODE_CHAR_CODE(close_punctuation)
  272. BOOST_SPIRIT_UNICODE_CHAR_CODE(connector_punctuation)
  273. BOOST_SPIRIT_UNICODE_CHAR_CODE(other_punctuation)
  274. BOOST_SPIRIT_UNICODE_CHAR_CODE(initial_punctuation)
  275. BOOST_SPIRIT_UNICODE_CHAR_CODE(final_punctuation)
  276. BOOST_SPIRIT_UNICODE_CHAR_CODE(math_symbol)
  277. BOOST_SPIRIT_UNICODE_CHAR_CODE(currency_symbol)
  278. BOOST_SPIRIT_UNICODE_CHAR_CODE(modifier_symbol)
  279. BOOST_SPIRIT_UNICODE_CHAR_CODE(other_symbol)
  280. ///////////////////////////////////////////////////////////////////////////
  281. // Unicode Derived Categories
  282. ///////////////////////////////////////////////////////////////////////////
  283. BOOST_SPIRIT_UNICODE_CHAR_CODE(alphabetic)
  284. BOOST_SPIRIT_UNICODE_CHAR_CODE(uppercase)
  285. BOOST_SPIRIT_UNICODE_CHAR_CODE(lowercase)
  286. BOOST_SPIRIT_UNICODE_CHAR_CODE(white_space)
  287. BOOST_SPIRIT_UNICODE_CHAR_CODE(hex_digit)
  288. BOOST_SPIRIT_UNICODE_CHAR_CODE(noncharacter_code_point)
  289. BOOST_SPIRIT_UNICODE_CHAR_CODE(default_ignorable_code_point)
  290. ///////////////////////////////////////////////////////////////////////////
  291. // Unicode Scripts
  292. ///////////////////////////////////////////////////////////////////////////
  293. BOOST_SPIRIT_UNICODE_CHAR_CODE(adlam)
  294. BOOST_SPIRIT_UNICODE_CHAR_CODE(caucasian_albanian)
  295. BOOST_SPIRIT_UNICODE_CHAR_CODE(ahom)
  296. BOOST_SPIRIT_UNICODE_CHAR_CODE(arabic)
  297. BOOST_SPIRIT_UNICODE_CHAR_CODE(imperial_aramaic)
  298. BOOST_SPIRIT_UNICODE_CHAR_CODE(armenian)
  299. BOOST_SPIRIT_UNICODE_CHAR_CODE(avestan)
  300. BOOST_SPIRIT_UNICODE_CHAR_CODE(balinese)
  301. BOOST_SPIRIT_UNICODE_CHAR_CODE(bamum)
  302. BOOST_SPIRIT_UNICODE_CHAR_CODE(bassa_vah)
  303. BOOST_SPIRIT_UNICODE_CHAR_CODE(batak)
  304. BOOST_SPIRIT_UNICODE_CHAR_CODE(bengali)
  305. BOOST_SPIRIT_UNICODE_CHAR_CODE(bhaiksuki)
  306. BOOST_SPIRIT_UNICODE_CHAR_CODE(bopomofo)
  307. BOOST_SPIRIT_UNICODE_CHAR_CODE(brahmi)
  308. BOOST_SPIRIT_UNICODE_CHAR_CODE(braille)
  309. BOOST_SPIRIT_UNICODE_CHAR_CODE(buginese)
  310. BOOST_SPIRIT_UNICODE_CHAR_CODE(buhid)
  311. BOOST_SPIRIT_UNICODE_CHAR_CODE(chakma)
  312. BOOST_SPIRIT_UNICODE_CHAR_CODE(canadian_aboriginal)
  313. BOOST_SPIRIT_UNICODE_CHAR_CODE(carian)
  314. BOOST_SPIRIT_UNICODE_CHAR_CODE(cham)
  315. BOOST_SPIRIT_UNICODE_CHAR_CODE(cherokee)
  316. BOOST_SPIRIT_UNICODE_CHAR_CODE(chorasmian)
  317. BOOST_SPIRIT_UNICODE_CHAR_CODE(coptic)
  318. BOOST_SPIRIT_UNICODE_CHAR_CODE(cypro_minoan)
  319. BOOST_SPIRIT_UNICODE_CHAR_CODE(cypriot)
  320. BOOST_SPIRIT_UNICODE_CHAR_CODE(cyrillic)
  321. BOOST_SPIRIT_UNICODE_CHAR_CODE(devanagari)
  322. BOOST_SPIRIT_UNICODE_CHAR_CODE(dives_akuru)
  323. BOOST_SPIRIT_UNICODE_CHAR_CODE(dogra)
  324. BOOST_SPIRIT_UNICODE_CHAR_CODE(deseret)
  325. BOOST_SPIRIT_UNICODE_CHAR_CODE(duployan)
  326. BOOST_SPIRIT_UNICODE_CHAR_CODE(egyptian_hieroglyphs)
  327. BOOST_SPIRIT_UNICODE_CHAR_CODE(elbasan)
  328. BOOST_SPIRIT_UNICODE_CHAR_CODE(elymaic)
  329. BOOST_SPIRIT_UNICODE_CHAR_CODE(ethiopic)
  330. BOOST_SPIRIT_UNICODE_CHAR_CODE(georgian)
  331. BOOST_SPIRIT_UNICODE_CHAR_CODE(glagolitic)
  332. BOOST_SPIRIT_UNICODE_CHAR_CODE(gunjala_gondi)
  333. BOOST_SPIRIT_UNICODE_CHAR_CODE(masaram_gondi)
  334. BOOST_SPIRIT_UNICODE_CHAR_CODE(gothic)
  335. BOOST_SPIRIT_UNICODE_CHAR_CODE(grantha)
  336. BOOST_SPIRIT_UNICODE_CHAR_CODE(greek)
  337. BOOST_SPIRIT_UNICODE_CHAR_CODE(gujarati)
  338. BOOST_SPIRIT_UNICODE_CHAR_CODE(gurmukhi)
  339. BOOST_SPIRIT_UNICODE_CHAR_CODE(hangul)
  340. BOOST_SPIRIT_UNICODE_CHAR_CODE(han)
  341. BOOST_SPIRIT_UNICODE_CHAR_CODE(hanunoo)
  342. BOOST_SPIRIT_UNICODE_CHAR_CODE(hatran)
  343. BOOST_SPIRIT_UNICODE_CHAR_CODE(hebrew)
  344. BOOST_SPIRIT_UNICODE_CHAR_CODE(hiragana)
  345. BOOST_SPIRIT_UNICODE_CHAR_CODE(anatolian_hieroglyphs)
  346. BOOST_SPIRIT_UNICODE_CHAR_CODE(pahawh_hmong)
  347. BOOST_SPIRIT_UNICODE_CHAR_CODE(nyiakeng_puachue_hmong)
  348. BOOST_SPIRIT_UNICODE_CHAR_CODE(katakana_or_hiragana)
  349. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_hungarian)
  350. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_italic)
  351. BOOST_SPIRIT_UNICODE_CHAR_CODE(javanese)
  352. BOOST_SPIRIT_UNICODE_CHAR_CODE(kayah_li)
  353. BOOST_SPIRIT_UNICODE_CHAR_CODE(katakana)
  354. BOOST_SPIRIT_UNICODE_CHAR_CODE(kawi)
  355. BOOST_SPIRIT_UNICODE_CHAR_CODE(kharoshthi)
  356. BOOST_SPIRIT_UNICODE_CHAR_CODE(khmer)
  357. BOOST_SPIRIT_UNICODE_CHAR_CODE(khojki)
  358. BOOST_SPIRIT_UNICODE_CHAR_CODE(khitan_small_script)
  359. BOOST_SPIRIT_UNICODE_CHAR_CODE(kannada)
  360. BOOST_SPIRIT_UNICODE_CHAR_CODE(kaithi)
  361. BOOST_SPIRIT_UNICODE_CHAR_CODE(tai_tham)
  362. BOOST_SPIRIT_UNICODE_CHAR_CODE(lao)
  363. BOOST_SPIRIT_UNICODE_CHAR_CODE(latin)
  364. BOOST_SPIRIT_UNICODE_CHAR_CODE(lepcha)
  365. BOOST_SPIRIT_UNICODE_CHAR_CODE(limbu)
  366. BOOST_SPIRIT_UNICODE_CHAR_CODE(linear_a)
  367. BOOST_SPIRIT_UNICODE_CHAR_CODE(linear_b)
  368. BOOST_SPIRIT_UNICODE_CHAR_CODE(lisu)
  369. BOOST_SPIRIT_UNICODE_CHAR_CODE(lycian)
  370. BOOST_SPIRIT_UNICODE_CHAR_CODE(lydian)
  371. BOOST_SPIRIT_UNICODE_CHAR_CODE(mahajani)
  372. BOOST_SPIRIT_UNICODE_CHAR_CODE(makasar)
  373. BOOST_SPIRIT_UNICODE_CHAR_CODE(mandaic)
  374. BOOST_SPIRIT_UNICODE_CHAR_CODE(manichaean)
  375. BOOST_SPIRIT_UNICODE_CHAR_CODE(marchen)
  376. BOOST_SPIRIT_UNICODE_CHAR_CODE(medefaidrin)
  377. BOOST_SPIRIT_UNICODE_CHAR_CODE(mende_kikakui)
  378. BOOST_SPIRIT_UNICODE_CHAR_CODE(meroitic_cursive)
  379. BOOST_SPIRIT_UNICODE_CHAR_CODE(meroitic_hieroglyphs)
  380. BOOST_SPIRIT_UNICODE_CHAR_CODE(malayalam)
  381. BOOST_SPIRIT_UNICODE_CHAR_CODE(modi)
  382. BOOST_SPIRIT_UNICODE_CHAR_CODE(mongolian)
  383. BOOST_SPIRIT_UNICODE_CHAR_CODE(mro)
  384. BOOST_SPIRIT_UNICODE_CHAR_CODE(meetei_mayek)
  385. BOOST_SPIRIT_UNICODE_CHAR_CODE(multani)
  386. BOOST_SPIRIT_UNICODE_CHAR_CODE(myanmar)
  387. BOOST_SPIRIT_UNICODE_CHAR_CODE(nag_mundari)
  388. BOOST_SPIRIT_UNICODE_CHAR_CODE(nandinagari)
  389. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_north_arabian)
  390. BOOST_SPIRIT_UNICODE_CHAR_CODE(nabataean)
  391. BOOST_SPIRIT_UNICODE_CHAR_CODE(newa)
  392. BOOST_SPIRIT_UNICODE_CHAR_CODE(nko)
  393. BOOST_SPIRIT_UNICODE_CHAR_CODE(nushu)
  394. BOOST_SPIRIT_UNICODE_CHAR_CODE(ogham)
  395. BOOST_SPIRIT_UNICODE_CHAR_CODE(ol_chiki)
  396. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_turkic)
  397. BOOST_SPIRIT_UNICODE_CHAR_CODE(oriya)
  398. BOOST_SPIRIT_UNICODE_CHAR_CODE(osage)
  399. BOOST_SPIRIT_UNICODE_CHAR_CODE(osmanya)
  400. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_uyghur)
  401. BOOST_SPIRIT_UNICODE_CHAR_CODE(palmyrene)
  402. BOOST_SPIRIT_UNICODE_CHAR_CODE(pau_cin_hau)
  403. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_permic)
  404. BOOST_SPIRIT_UNICODE_CHAR_CODE(phags_pa)
  405. BOOST_SPIRIT_UNICODE_CHAR_CODE(inscriptional_pahlavi)
  406. BOOST_SPIRIT_UNICODE_CHAR_CODE(psalter_pahlavi)
  407. BOOST_SPIRIT_UNICODE_CHAR_CODE(phoenician)
  408. BOOST_SPIRIT_UNICODE_CHAR_CODE(miao)
  409. BOOST_SPIRIT_UNICODE_CHAR_CODE(inscriptional_parthian)
  410. BOOST_SPIRIT_UNICODE_CHAR_CODE(rejang)
  411. BOOST_SPIRIT_UNICODE_CHAR_CODE(hanifi_rohingya)
  412. BOOST_SPIRIT_UNICODE_CHAR_CODE(runic)
  413. BOOST_SPIRIT_UNICODE_CHAR_CODE(samaritan)
  414. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_south_arabian)
  415. BOOST_SPIRIT_UNICODE_CHAR_CODE(saurashtra)
  416. BOOST_SPIRIT_UNICODE_CHAR_CODE(signwriting)
  417. BOOST_SPIRIT_UNICODE_CHAR_CODE(shavian)
  418. BOOST_SPIRIT_UNICODE_CHAR_CODE(sharada)
  419. BOOST_SPIRIT_UNICODE_CHAR_CODE(siddham)
  420. BOOST_SPIRIT_UNICODE_CHAR_CODE(khudawadi)
  421. BOOST_SPIRIT_UNICODE_CHAR_CODE(sinhala)
  422. BOOST_SPIRIT_UNICODE_CHAR_CODE(sogdian)
  423. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_sogdian)
  424. BOOST_SPIRIT_UNICODE_CHAR_CODE(sora_sompeng)
  425. BOOST_SPIRIT_UNICODE_CHAR_CODE(soyombo)
  426. BOOST_SPIRIT_UNICODE_CHAR_CODE(sundanese)
  427. BOOST_SPIRIT_UNICODE_CHAR_CODE(syloti_nagri)
  428. BOOST_SPIRIT_UNICODE_CHAR_CODE(syriac)
  429. BOOST_SPIRIT_UNICODE_CHAR_CODE(tagbanwa)
  430. BOOST_SPIRIT_UNICODE_CHAR_CODE(takri)
  431. BOOST_SPIRIT_UNICODE_CHAR_CODE(tai_le)
  432. BOOST_SPIRIT_UNICODE_CHAR_CODE(new_tai_lue)
  433. BOOST_SPIRIT_UNICODE_CHAR_CODE(tamil)
  434. BOOST_SPIRIT_UNICODE_CHAR_CODE(tangut)
  435. BOOST_SPIRIT_UNICODE_CHAR_CODE(tai_viet)
  436. BOOST_SPIRIT_UNICODE_CHAR_CODE(telugu)
  437. BOOST_SPIRIT_UNICODE_CHAR_CODE(tifinagh)
  438. BOOST_SPIRIT_UNICODE_CHAR_CODE(tagalog)
  439. BOOST_SPIRIT_UNICODE_CHAR_CODE(thaana)
  440. BOOST_SPIRIT_UNICODE_CHAR_CODE(thai)
  441. BOOST_SPIRIT_UNICODE_CHAR_CODE(tibetan)
  442. BOOST_SPIRIT_UNICODE_CHAR_CODE(tirhuta)
  443. BOOST_SPIRIT_UNICODE_CHAR_CODE(tangsa)
  444. BOOST_SPIRIT_UNICODE_CHAR_CODE(toto)
  445. BOOST_SPIRIT_UNICODE_CHAR_CODE(ugaritic)
  446. BOOST_SPIRIT_UNICODE_CHAR_CODE(vai)
  447. BOOST_SPIRIT_UNICODE_CHAR_CODE(vithkuqi)
  448. BOOST_SPIRIT_UNICODE_CHAR_CODE(warang_citi)
  449. BOOST_SPIRIT_UNICODE_CHAR_CODE(wancho)
  450. BOOST_SPIRIT_UNICODE_CHAR_CODE(old_persian)
  451. BOOST_SPIRIT_UNICODE_CHAR_CODE(cuneiform)
  452. BOOST_SPIRIT_UNICODE_CHAR_CODE(yezidi)
  453. BOOST_SPIRIT_UNICODE_CHAR_CODE(yi)
  454. BOOST_SPIRIT_UNICODE_CHAR_CODE(zanabazar_square)
  455. BOOST_SPIRIT_UNICODE_CHAR_CODE(inherited)
  456. BOOST_SPIRIT_UNICODE_CHAR_CODE(common)
  457. BOOST_SPIRIT_UNICODE_CHAR_CODE(unknown)
  458. #undef BOOST_SPIRIT_UNICODE_CHAR_CODE
  459. }}}
  460. #endif
  461. #endif