unicode.hpp 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825
  1. /*=============================================================================
  2. Copyright (c) 2001-2014 Joel de Guzman
  3. Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. ==============================================================================*/
  6. #if !defined(BOOST_SPIRIT_X3_UNICODE_JAN_20_2012_1218AM)
  7. #define BOOST_SPIRIT_X3_UNICODE_JAN_20_2012_1218AM
  8. #include <boost/spirit/home/x3/char/char_parser.hpp>
  9. #include <boost/spirit/home/x3/char/char.hpp>
  10. #include <boost/spirit/home/x3/char/detail/cast_char.hpp>
  11. #include <boost/spirit/home/support/char_encoding/unicode.hpp>
  12. namespace boost { namespace spirit { namespace x3
  13. {
  14. ///////////////////////////////////////////////////////////////////////////
  15. // Unicode Major Categories
  16. ///////////////////////////////////////////////////////////////////////////
  17. struct char_tag;
  18. struct alnum_tag;
  19. struct alpha_tag;
  20. struct blank_tag;
  21. struct cntrl_tag;
  22. struct digit_tag;
  23. struct graph_tag;
  24. struct print_tag;
  25. struct punct_tag;
  26. struct space_tag;
  27. struct xdigit_tag;
  28. struct lower_tag;
  29. struct upper_tag;
  30. ///////////////////////////////////////////////////////////////////////////
  31. // Unicode Major Categories
  32. ///////////////////////////////////////////////////////////////////////////
  33. struct letter_tag {};
  34. struct mark_tag {};
  35. struct number_tag {};
  36. struct separator_tag {};
  37. struct other_tag {};
  38. struct punctuation_tag {};
  39. struct symbol_tag {};
  40. ///////////////////////////////////////////////////////////////////////////
  41. // Unicode General Categories
  42. ///////////////////////////////////////////////////////////////////////////
  43. struct uppercase_letter_tag {};
  44. struct lowercase_letter_tag {};
  45. struct titlecase_letter_tag {};
  46. struct modifier_letter_tag {};
  47. struct other_letter_tag {};
  48. struct nonspacing_mark_tag {};
  49. struct enclosing_mark_tag {};
  50. struct spacing_mark_tag {};
  51. struct decimal_number_tag {};
  52. struct letter_number_tag {};
  53. struct other_number_tag {};
  54. struct space_separator_tag {};
  55. struct line_separator_tag {};
  56. struct paragraph_separator_tag {};
  57. struct control_tag {};
  58. struct format_tag {};
  59. struct private_use_tag {};
  60. struct surrogate_tag {};
  61. struct unassigned_tag {};
  62. struct dash_punctuation_tag {};
  63. struct open_punctuation_tag {};
  64. struct close_punctuation_tag {};
  65. struct connector_punctuation_tag {};
  66. struct other_punctuation_tag {};
  67. struct initial_punctuation_tag {};
  68. struct final_punctuation_tag {};
  69. struct math_symbol_tag {};
  70. struct currency_symbol_tag {};
  71. struct modifier_symbol_tag {};
  72. struct other_symbol_tag {};
  73. ///////////////////////////////////////////////////////////////////////////
  74. // Unicode Derived Categories
  75. ///////////////////////////////////////////////////////////////////////////
  76. struct alphabetic_tag {};
  77. struct uppercase_tag {};
  78. struct lowercase_tag {};
  79. struct white_space_tag {};
  80. struct hex_digit_tag {};
  81. struct noncharacter_code_point_tag {};
  82. struct default_ignorable_code_point_tag {};
  83. ///////////////////////////////////////////////////////////////////////////
  84. // Unicode Scripts
  85. ///////////////////////////////////////////////////////////////////////////
  86. struct adlam_tag {};
  87. struct caucasian_albanian_tag {};
  88. struct ahom_tag {};
  89. struct arabic_tag {};
  90. struct imperial_aramaic_tag {};
  91. struct armenian_tag {};
  92. struct avestan_tag {};
  93. struct balinese_tag {};
  94. struct bamum_tag {};
  95. struct bassa_vah_tag {};
  96. struct batak_tag {};
  97. struct bengali_tag {};
  98. struct bhaiksuki_tag {};
  99. struct bopomofo_tag {};
  100. struct brahmi_tag {};
  101. struct braille_tag {};
  102. struct buginese_tag {};
  103. struct buhid_tag {};
  104. struct chakma_tag {};
  105. struct canadian_aboriginal_tag {};
  106. struct carian_tag {};
  107. struct cham_tag {};
  108. struct cherokee_tag {};
  109. struct chorasmian_tag {};
  110. struct coptic_tag {};
  111. struct cypro_minoan_tag {};
  112. struct cypriot_tag {};
  113. struct cyrillic_tag {};
  114. struct devanagari_tag {};
  115. struct dives_akuru_tag {};
  116. struct dogra_tag {};
  117. struct deseret_tag {};
  118. struct duployan_tag {};
  119. struct egyptian_hieroglyphs_tag {};
  120. struct elbasan_tag {};
  121. struct elymaic_tag {};
  122. struct ethiopic_tag {};
  123. struct georgian_tag {};
  124. struct glagolitic_tag {};
  125. struct gunjala_gondi_tag {};
  126. struct masaram_gondi_tag {};
  127. struct gothic_tag {};
  128. struct grantha_tag {};
  129. struct greek_tag {};
  130. struct gujarati_tag {};
  131. struct gurmukhi_tag {};
  132. struct hangul_tag {};
  133. struct han_tag {};
  134. struct hanunoo_tag {};
  135. struct hatran_tag {};
  136. struct hebrew_tag {};
  137. struct hiragana_tag {};
  138. struct anatolian_hieroglyphs_tag {};
  139. struct pahawh_hmong_tag {};
  140. struct nyiakeng_puachue_hmong_tag {};
  141. struct katakana_or_hiragana_tag {};
  142. struct old_hungarian_tag {};
  143. struct old_italic_tag {};
  144. struct javanese_tag {};
  145. struct kayah_li_tag {};
  146. struct katakana_tag {};
  147. struct kawi_tag {};
  148. struct kharoshthi_tag {};
  149. struct khmer_tag {};
  150. struct khojki_tag {};
  151. struct khitan_small_script_tag {};
  152. struct kannada_tag {};
  153. struct kaithi_tag {};
  154. struct tai_tham_tag {};
  155. struct lao_tag {};
  156. struct latin_tag {};
  157. struct lepcha_tag {};
  158. struct limbu_tag {};
  159. struct linear_a_tag {};
  160. struct linear_b_tag {};
  161. struct lisu_tag {};
  162. struct lycian_tag {};
  163. struct lydian_tag {};
  164. struct mahajani_tag {};
  165. struct makasar_tag {};
  166. struct mandaic_tag {};
  167. struct manichaean_tag {};
  168. struct marchen_tag {};
  169. struct medefaidrin_tag {};
  170. struct mende_kikakui_tag {};
  171. struct meroitic_cursive_tag {};
  172. struct meroitic_hieroglyphs_tag {};
  173. struct malayalam_tag {};
  174. struct modi_tag {};
  175. struct mongolian_tag {};
  176. struct mro_tag {};
  177. struct meetei_mayek_tag {};
  178. struct multani_tag {};
  179. struct myanmar_tag {};
  180. struct nag_mundari_tag {};
  181. struct nandinagari_tag {};
  182. struct old_north_arabian_tag {};
  183. struct nabataean_tag {};
  184. struct newa_tag {};
  185. struct nko_tag {};
  186. struct nushu_tag {};
  187. struct ogham_tag {};
  188. struct ol_chiki_tag {};
  189. struct old_turkic_tag {};
  190. struct oriya_tag {};
  191. struct osage_tag {};
  192. struct osmanya_tag {};
  193. struct old_uyghur_tag {};
  194. struct palmyrene_tag {};
  195. struct pau_cin_hau_tag {};
  196. struct old_permic_tag {};
  197. struct phags_pa_tag {};
  198. struct inscriptional_pahlavi_tag {};
  199. struct psalter_pahlavi_tag {};
  200. struct phoenician_tag {};
  201. struct miao_tag {};
  202. struct inscriptional_parthian_tag {};
  203. struct rejang_tag {};
  204. struct hanifi_rohingya_tag {};
  205. struct runic_tag {};
  206. struct samaritan_tag {};
  207. struct old_south_arabian_tag {};
  208. struct saurashtra_tag {};
  209. struct signwriting_tag {};
  210. struct shavian_tag {};
  211. struct sharada_tag {};
  212. struct siddham_tag {};
  213. struct khudawadi_tag {};
  214. struct sinhala_tag {};
  215. struct sogdian_tag {};
  216. struct old_sogdian_tag {};
  217. struct sora_sompeng_tag {};
  218. struct soyombo_tag {};
  219. struct sundanese_tag {};
  220. struct syloti_nagri_tag {};
  221. struct syriac_tag {};
  222. struct tagbanwa_tag {};
  223. struct takri_tag {};
  224. struct tai_le_tag {};
  225. struct new_tai_lue_tag {};
  226. struct tamil_tag {};
  227. struct tangut_tag {};
  228. struct tai_viet_tag {};
  229. struct telugu_tag {};
  230. struct tifinagh_tag {};
  231. struct tagalog_tag {};
  232. struct thaana_tag {};
  233. struct thai_tag {};
  234. struct tibetan_tag {};
  235. struct tirhuta_tag {};
  236. struct tangsa_tag {};
  237. struct toto_tag {};
  238. struct ugaritic_tag {};
  239. struct vai_tag {};
  240. struct vithkuqi_tag {};
  241. struct warang_citi_tag {};
  242. struct wancho_tag {};
  243. struct old_persian_tag {};
  244. struct cuneiform_tag {};
  245. struct yezidi_tag {};
  246. struct yi_tag {};
  247. struct zanabazar_square_tag {};
  248. struct inherited_tag {};
  249. struct common_tag {};
  250. struct unknown_tag {};
  251. ///////////////////////////////////////////////////////////////////////////
  252. struct unicode_char_class_base
  253. {
  254. typedef char_encoding::unicode encoding;
  255. typedef char_encoding::unicode::char_type char_type;
  256. #define BOOST_SPIRIT_X3_BASIC_CLASSIFY(name) \
  257. template <typename Char> \
  258. static bool \
  259. is(name##_tag, Char ch) \
  260. { \
  261. return encoding::is ##name \
  262. BOOST_PREVENT_MACRO_SUBSTITUTION \
  263. (detail::cast_char<char_type>(ch)); \
  264. } \
  265. /***/
  266. #define BOOST_SPIRIT_X3_CLASSIFY(name) \
  267. template <typename Char> \
  268. static bool \
  269. is(name##_tag, Char ch) \
  270. { \
  271. return encoding::is_##name \
  272. BOOST_PREVENT_MACRO_SUBSTITUTION \
  273. (detail::cast_char<char_type>(ch)); \
  274. } \
  275. /***/
  276. ///////////////////////////////////////////////////////////////////////////
  277. // Unicode Major Categories
  278. ///////////////////////////////////////////////////////////////////////////
  279. BOOST_SPIRIT_X3_BASIC_CLASSIFY(char)
  280. BOOST_SPIRIT_X3_BASIC_CLASSIFY(alnum)
  281. BOOST_SPIRIT_X3_BASIC_CLASSIFY(alpha)
  282. BOOST_SPIRIT_X3_BASIC_CLASSIFY(digit)
  283. BOOST_SPIRIT_X3_BASIC_CLASSIFY(xdigit)
  284. BOOST_SPIRIT_X3_BASIC_CLASSIFY(cntrl)
  285. BOOST_SPIRIT_X3_BASIC_CLASSIFY(graph)
  286. BOOST_SPIRIT_X3_BASIC_CLASSIFY(lower)
  287. BOOST_SPIRIT_X3_BASIC_CLASSIFY(print)
  288. BOOST_SPIRIT_X3_BASIC_CLASSIFY(punct)
  289. BOOST_SPIRIT_X3_BASIC_CLASSIFY(space)
  290. BOOST_SPIRIT_X3_BASIC_CLASSIFY(blank)
  291. BOOST_SPIRIT_X3_BASIC_CLASSIFY(upper)
  292. ///////////////////////////////////////////////////////////////////////////
  293. // Unicode Major Categories
  294. ///////////////////////////////////////////////////////////////////////////
  295. BOOST_SPIRIT_X3_CLASSIFY(letter)
  296. BOOST_SPIRIT_X3_CLASSIFY(mark)
  297. BOOST_SPIRIT_X3_CLASSIFY(number)
  298. BOOST_SPIRIT_X3_CLASSIFY(separator)
  299. BOOST_SPIRIT_X3_CLASSIFY(other)
  300. BOOST_SPIRIT_X3_CLASSIFY(punctuation)
  301. BOOST_SPIRIT_X3_CLASSIFY(symbol)
  302. ///////////////////////////////////////////////////////////////////////////
  303. // Unicode General Categories
  304. ///////////////////////////////////////////////////////////////////////////
  305. BOOST_SPIRIT_X3_CLASSIFY(uppercase_letter)
  306. BOOST_SPIRIT_X3_CLASSIFY(lowercase_letter)
  307. BOOST_SPIRIT_X3_CLASSIFY(titlecase_letter)
  308. BOOST_SPIRIT_X3_CLASSIFY(modifier_letter)
  309. BOOST_SPIRIT_X3_CLASSIFY(other_letter)
  310. BOOST_SPIRIT_X3_CLASSIFY(nonspacing_mark)
  311. BOOST_SPIRIT_X3_CLASSIFY(enclosing_mark)
  312. BOOST_SPIRIT_X3_CLASSIFY(spacing_mark)
  313. BOOST_SPIRIT_X3_CLASSIFY(decimal_number)
  314. BOOST_SPIRIT_X3_CLASSIFY(letter_number)
  315. BOOST_SPIRIT_X3_CLASSIFY(other_number)
  316. BOOST_SPIRIT_X3_CLASSIFY(space_separator)
  317. BOOST_SPIRIT_X3_CLASSIFY(line_separator)
  318. BOOST_SPIRIT_X3_CLASSIFY(paragraph_separator)
  319. BOOST_SPIRIT_X3_CLASSIFY(control)
  320. BOOST_SPIRIT_X3_CLASSIFY(format)
  321. BOOST_SPIRIT_X3_CLASSIFY(private_use)
  322. BOOST_SPIRIT_X3_CLASSIFY(surrogate)
  323. BOOST_SPIRIT_X3_CLASSIFY(unassigned)
  324. BOOST_SPIRIT_X3_CLASSIFY(dash_punctuation)
  325. BOOST_SPIRIT_X3_CLASSIFY(open_punctuation)
  326. BOOST_SPIRIT_X3_CLASSIFY(close_punctuation)
  327. BOOST_SPIRIT_X3_CLASSIFY(connector_punctuation)
  328. BOOST_SPIRIT_X3_CLASSIFY(other_punctuation)
  329. BOOST_SPIRIT_X3_CLASSIFY(initial_punctuation)
  330. BOOST_SPIRIT_X3_CLASSIFY(final_punctuation)
  331. BOOST_SPIRIT_X3_CLASSIFY(math_symbol)
  332. BOOST_SPIRIT_X3_CLASSIFY(currency_symbol)
  333. BOOST_SPIRIT_X3_CLASSIFY(modifier_symbol)
  334. BOOST_SPIRIT_X3_CLASSIFY(other_symbol)
  335. ///////////////////////////////////////////////////////////////////////////
  336. // Unicode Derived Categories
  337. ///////////////////////////////////////////////////////////////////////////
  338. BOOST_SPIRIT_X3_CLASSIFY(alphabetic)
  339. BOOST_SPIRIT_X3_CLASSIFY(uppercase)
  340. BOOST_SPIRIT_X3_CLASSIFY(lowercase)
  341. BOOST_SPIRIT_X3_CLASSIFY(white_space)
  342. BOOST_SPIRIT_X3_CLASSIFY(hex_digit)
  343. BOOST_SPIRIT_X3_CLASSIFY(noncharacter_code_point)
  344. BOOST_SPIRIT_X3_CLASSIFY(default_ignorable_code_point)
  345. ///////////////////////////////////////////////////////////////////////////
  346. // Unicode Scripts
  347. ///////////////////////////////////////////////////////////////////////////
  348. BOOST_SPIRIT_X3_CLASSIFY(adlam)
  349. BOOST_SPIRIT_X3_CLASSIFY(caucasian_albanian)
  350. BOOST_SPIRIT_X3_CLASSIFY(ahom)
  351. BOOST_SPIRIT_X3_CLASSIFY(arabic)
  352. BOOST_SPIRIT_X3_CLASSIFY(imperial_aramaic)
  353. BOOST_SPIRIT_X3_CLASSIFY(armenian)
  354. BOOST_SPIRIT_X3_CLASSIFY(avestan)
  355. BOOST_SPIRIT_X3_CLASSIFY(balinese)
  356. BOOST_SPIRIT_X3_CLASSIFY(bamum)
  357. BOOST_SPIRIT_X3_CLASSIFY(bassa_vah)
  358. BOOST_SPIRIT_X3_CLASSIFY(batak)
  359. BOOST_SPIRIT_X3_CLASSIFY(bengali)
  360. BOOST_SPIRIT_X3_CLASSIFY(bhaiksuki)
  361. BOOST_SPIRIT_X3_CLASSIFY(bopomofo)
  362. BOOST_SPIRIT_X3_CLASSIFY(brahmi)
  363. BOOST_SPIRIT_X3_CLASSIFY(braille)
  364. BOOST_SPIRIT_X3_CLASSIFY(buginese)
  365. BOOST_SPIRIT_X3_CLASSIFY(buhid)
  366. BOOST_SPIRIT_X3_CLASSIFY(chakma)
  367. BOOST_SPIRIT_X3_CLASSIFY(canadian_aboriginal)
  368. BOOST_SPIRIT_X3_CLASSIFY(carian)
  369. BOOST_SPIRIT_X3_CLASSIFY(cham)
  370. BOOST_SPIRIT_X3_CLASSIFY(cherokee)
  371. BOOST_SPIRIT_X3_CLASSIFY(chorasmian)
  372. BOOST_SPIRIT_X3_CLASSIFY(coptic)
  373. BOOST_SPIRIT_X3_CLASSIFY(cypro_minoan)
  374. BOOST_SPIRIT_X3_CLASSIFY(cypriot)
  375. BOOST_SPIRIT_X3_CLASSIFY(cyrillic)
  376. BOOST_SPIRIT_X3_CLASSIFY(devanagari)
  377. BOOST_SPIRIT_X3_CLASSIFY(dives_akuru)
  378. BOOST_SPIRIT_X3_CLASSIFY(dogra)
  379. BOOST_SPIRIT_X3_CLASSIFY(deseret)
  380. BOOST_SPIRIT_X3_CLASSIFY(duployan)
  381. BOOST_SPIRIT_X3_CLASSIFY(egyptian_hieroglyphs)
  382. BOOST_SPIRIT_X3_CLASSIFY(elbasan)
  383. BOOST_SPIRIT_X3_CLASSIFY(elymaic)
  384. BOOST_SPIRIT_X3_CLASSIFY(ethiopic)
  385. BOOST_SPIRIT_X3_CLASSIFY(georgian)
  386. BOOST_SPIRIT_X3_CLASSIFY(glagolitic)
  387. BOOST_SPIRIT_X3_CLASSIFY(gunjala_gondi)
  388. BOOST_SPIRIT_X3_CLASSIFY(masaram_gondi)
  389. BOOST_SPIRIT_X3_CLASSIFY(gothic)
  390. BOOST_SPIRIT_X3_CLASSIFY(grantha)
  391. BOOST_SPIRIT_X3_CLASSIFY(greek)
  392. BOOST_SPIRIT_X3_CLASSIFY(gujarati)
  393. BOOST_SPIRIT_X3_CLASSIFY(gurmukhi)
  394. BOOST_SPIRIT_X3_CLASSIFY(hangul)
  395. BOOST_SPIRIT_X3_CLASSIFY(han)
  396. BOOST_SPIRIT_X3_CLASSIFY(hanunoo)
  397. BOOST_SPIRIT_X3_CLASSIFY(hatran)
  398. BOOST_SPIRIT_X3_CLASSIFY(hebrew)
  399. BOOST_SPIRIT_X3_CLASSIFY(hiragana)
  400. BOOST_SPIRIT_X3_CLASSIFY(anatolian_hieroglyphs)
  401. BOOST_SPIRIT_X3_CLASSIFY(pahawh_hmong)
  402. BOOST_SPIRIT_X3_CLASSIFY(nyiakeng_puachue_hmong)
  403. BOOST_SPIRIT_X3_CLASSIFY(katakana_or_hiragana)
  404. BOOST_SPIRIT_X3_CLASSIFY(old_hungarian)
  405. BOOST_SPIRIT_X3_CLASSIFY(old_italic)
  406. BOOST_SPIRIT_X3_CLASSIFY(javanese)
  407. BOOST_SPIRIT_X3_CLASSIFY(kayah_li)
  408. BOOST_SPIRIT_X3_CLASSIFY(katakana)
  409. BOOST_SPIRIT_X3_CLASSIFY(kawi)
  410. BOOST_SPIRIT_X3_CLASSIFY(kharoshthi)
  411. BOOST_SPIRIT_X3_CLASSIFY(khmer)
  412. BOOST_SPIRIT_X3_CLASSIFY(khojki)
  413. BOOST_SPIRIT_X3_CLASSIFY(khitan_small_script)
  414. BOOST_SPIRIT_X3_CLASSIFY(kannada)
  415. BOOST_SPIRIT_X3_CLASSIFY(kaithi)
  416. BOOST_SPIRIT_X3_CLASSIFY(tai_tham)
  417. BOOST_SPIRIT_X3_CLASSIFY(lao)
  418. BOOST_SPIRIT_X3_CLASSIFY(latin)
  419. BOOST_SPIRIT_X3_CLASSIFY(lepcha)
  420. BOOST_SPIRIT_X3_CLASSIFY(limbu)
  421. BOOST_SPIRIT_X3_CLASSIFY(linear_a)
  422. BOOST_SPIRIT_X3_CLASSIFY(linear_b)
  423. BOOST_SPIRIT_X3_CLASSIFY(lisu)
  424. BOOST_SPIRIT_X3_CLASSIFY(lycian)
  425. BOOST_SPIRIT_X3_CLASSIFY(lydian)
  426. BOOST_SPIRIT_X3_CLASSIFY(mahajani)
  427. BOOST_SPIRIT_X3_CLASSIFY(makasar)
  428. BOOST_SPIRIT_X3_CLASSIFY(mandaic)
  429. BOOST_SPIRIT_X3_CLASSIFY(manichaean)
  430. BOOST_SPIRIT_X3_CLASSIFY(marchen)
  431. BOOST_SPIRIT_X3_CLASSIFY(medefaidrin)
  432. BOOST_SPIRIT_X3_CLASSIFY(mende_kikakui)
  433. BOOST_SPIRIT_X3_CLASSIFY(meroitic_cursive)
  434. BOOST_SPIRIT_X3_CLASSIFY(meroitic_hieroglyphs)
  435. BOOST_SPIRIT_X3_CLASSIFY(malayalam)
  436. BOOST_SPIRIT_X3_CLASSIFY(modi)
  437. BOOST_SPIRIT_X3_CLASSIFY(mongolian)
  438. BOOST_SPIRIT_X3_CLASSIFY(mro)
  439. BOOST_SPIRIT_X3_CLASSIFY(meetei_mayek)
  440. BOOST_SPIRIT_X3_CLASSIFY(multani)
  441. BOOST_SPIRIT_X3_CLASSIFY(myanmar)
  442. BOOST_SPIRIT_X3_CLASSIFY(nag_mundari)
  443. BOOST_SPIRIT_X3_CLASSIFY(nandinagari)
  444. BOOST_SPIRIT_X3_CLASSIFY(old_north_arabian)
  445. BOOST_SPIRIT_X3_CLASSIFY(nabataean)
  446. BOOST_SPIRIT_X3_CLASSIFY(newa)
  447. BOOST_SPIRIT_X3_CLASSIFY(nko)
  448. BOOST_SPIRIT_X3_CLASSIFY(nushu)
  449. BOOST_SPIRIT_X3_CLASSIFY(ogham)
  450. BOOST_SPIRIT_X3_CLASSIFY(ol_chiki)
  451. BOOST_SPIRIT_X3_CLASSIFY(old_turkic)
  452. BOOST_SPIRIT_X3_CLASSIFY(oriya)
  453. BOOST_SPIRIT_X3_CLASSIFY(osage)
  454. BOOST_SPIRIT_X3_CLASSIFY(osmanya)
  455. BOOST_SPIRIT_X3_CLASSIFY(old_uyghur)
  456. BOOST_SPIRIT_X3_CLASSIFY(palmyrene)
  457. BOOST_SPIRIT_X3_CLASSIFY(pau_cin_hau)
  458. BOOST_SPIRIT_X3_CLASSIFY(old_permic)
  459. BOOST_SPIRIT_X3_CLASSIFY(phags_pa)
  460. BOOST_SPIRIT_X3_CLASSIFY(inscriptional_pahlavi)
  461. BOOST_SPIRIT_X3_CLASSIFY(psalter_pahlavi)
  462. BOOST_SPIRIT_X3_CLASSIFY(phoenician)
  463. BOOST_SPIRIT_X3_CLASSIFY(miao)
  464. BOOST_SPIRIT_X3_CLASSIFY(inscriptional_parthian)
  465. BOOST_SPIRIT_X3_CLASSIFY(rejang)
  466. BOOST_SPIRIT_X3_CLASSIFY(hanifi_rohingya)
  467. BOOST_SPIRIT_X3_CLASSIFY(runic)
  468. BOOST_SPIRIT_X3_CLASSIFY(samaritan)
  469. BOOST_SPIRIT_X3_CLASSIFY(old_south_arabian)
  470. BOOST_SPIRIT_X3_CLASSIFY(saurashtra)
  471. BOOST_SPIRIT_X3_CLASSIFY(signwriting)
  472. BOOST_SPIRIT_X3_CLASSIFY(shavian)
  473. BOOST_SPIRIT_X3_CLASSIFY(sharada)
  474. BOOST_SPIRIT_X3_CLASSIFY(siddham)
  475. BOOST_SPIRIT_X3_CLASSIFY(khudawadi)
  476. BOOST_SPIRIT_X3_CLASSIFY(sinhala)
  477. BOOST_SPIRIT_X3_CLASSIFY(sogdian)
  478. BOOST_SPIRIT_X3_CLASSIFY(old_sogdian)
  479. BOOST_SPIRIT_X3_CLASSIFY(sora_sompeng)
  480. BOOST_SPIRIT_X3_CLASSIFY(soyombo)
  481. BOOST_SPIRIT_X3_CLASSIFY(sundanese)
  482. BOOST_SPIRIT_X3_CLASSIFY(syloti_nagri)
  483. BOOST_SPIRIT_X3_CLASSIFY(syriac)
  484. BOOST_SPIRIT_X3_CLASSIFY(tagbanwa)
  485. BOOST_SPIRIT_X3_CLASSIFY(takri)
  486. BOOST_SPIRIT_X3_CLASSIFY(tai_le)
  487. BOOST_SPIRIT_X3_CLASSIFY(new_tai_lue)
  488. BOOST_SPIRIT_X3_CLASSIFY(tamil)
  489. BOOST_SPIRIT_X3_CLASSIFY(tangut)
  490. BOOST_SPIRIT_X3_CLASSIFY(tai_viet)
  491. BOOST_SPIRIT_X3_CLASSIFY(telugu)
  492. BOOST_SPIRIT_X3_CLASSIFY(tifinagh)
  493. BOOST_SPIRIT_X3_CLASSIFY(tagalog)
  494. BOOST_SPIRIT_X3_CLASSIFY(thaana)
  495. BOOST_SPIRIT_X3_CLASSIFY(thai)
  496. BOOST_SPIRIT_X3_CLASSIFY(tibetan)
  497. BOOST_SPIRIT_X3_CLASSIFY(tirhuta)
  498. BOOST_SPIRIT_X3_CLASSIFY(tangsa)
  499. BOOST_SPIRIT_X3_CLASSIFY(toto)
  500. BOOST_SPIRIT_X3_CLASSIFY(ugaritic)
  501. BOOST_SPIRIT_X3_CLASSIFY(vai)
  502. BOOST_SPIRIT_X3_CLASSIFY(vithkuqi)
  503. BOOST_SPIRIT_X3_CLASSIFY(warang_citi)
  504. BOOST_SPIRIT_X3_CLASSIFY(wancho)
  505. BOOST_SPIRIT_X3_CLASSIFY(old_persian)
  506. BOOST_SPIRIT_X3_CLASSIFY(cuneiform)
  507. BOOST_SPIRIT_X3_CLASSIFY(yezidi)
  508. BOOST_SPIRIT_X3_CLASSIFY(yi)
  509. BOOST_SPIRIT_X3_CLASSIFY(zanabazar_square)
  510. BOOST_SPIRIT_X3_CLASSIFY(inherited)
  511. BOOST_SPIRIT_X3_CLASSIFY(common)
  512. BOOST_SPIRIT_X3_CLASSIFY(unknown)
  513. #undef BOOST_SPIRIT_X3_BASIC_CLASSIFY
  514. #undef BOOST_SPIRIT_X3_CLASSIFY
  515. };
  516. template <typename Tag>
  517. struct unicode_char_class
  518. : char_parser<unicode_char_class<Tag>>
  519. {
  520. typedef char_encoding::unicode encoding;
  521. typedef Tag tag;
  522. typedef typename encoding::char_type char_type;
  523. typedef char_type attribute_type;
  524. static bool const has_attribute = true;
  525. template <typename Char, typename Context>
  526. bool test(Char ch, Context const&) const
  527. {
  528. return encoding::ischar(ch) && unicode_char_class_base::is(tag(), ch);
  529. }
  530. };
  531. #define BOOST_SPIRIT_X3_CHAR_CLASS(name) \
  532. typedef unicode_char_class<name##_tag> name##_type; \
  533. constexpr name##_type name = name##_type(); \
  534. /***/
  535. namespace unicode
  536. {
  537. typedef any_char<char_encoding::unicode> char_type;
  538. constexpr auto char_ = char_type{};
  539. ///////////////////////////////////////////////////////////////////////////
  540. // Unicode Major Categories
  541. ///////////////////////////////////////////////////////////////////////////
  542. BOOST_SPIRIT_X3_CHAR_CLASS(alnum)
  543. BOOST_SPIRIT_X3_CHAR_CLASS(alpha)
  544. BOOST_SPIRIT_X3_CHAR_CLASS(digit)
  545. BOOST_SPIRIT_X3_CHAR_CLASS(xdigit)
  546. BOOST_SPIRIT_X3_CHAR_CLASS(cntrl)
  547. BOOST_SPIRIT_X3_CHAR_CLASS(graph)
  548. BOOST_SPIRIT_X3_CHAR_CLASS(lower)
  549. BOOST_SPIRIT_X3_CHAR_CLASS(print)
  550. BOOST_SPIRIT_X3_CHAR_CLASS(punct)
  551. BOOST_SPIRIT_X3_CHAR_CLASS(space)
  552. BOOST_SPIRIT_X3_CHAR_CLASS(blank)
  553. BOOST_SPIRIT_X3_CHAR_CLASS(upper)
  554. ///////////////////////////////////////////////////////////////////////////
  555. // Unicode Major Categories
  556. ///////////////////////////////////////////////////////////////////////////
  557. BOOST_SPIRIT_X3_CHAR_CLASS(letter)
  558. BOOST_SPIRIT_X3_CHAR_CLASS(mark)
  559. BOOST_SPIRIT_X3_CHAR_CLASS(number)
  560. BOOST_SPIRIT_X3_CHAR_CLASS(separator)
  561. BOOST_SPIRIT_X3_CHAR_CLASS(other)
  562. BOOST_SPIRIT_X3_CHAR_CLASS(punctuation)
  563. BOOST_SPIRIT_X3_CHAR_CLASS(symbol)
  564. ///////////////////////////////////////////////////////////////////////////
  565. // Unicode General Categories
  566. ///////////////////////////////////////////////////////////////////////////
  567. BOOST_SPIRIT_X3_CHAR_CLASS(uppercase_letter)
  568. BOOST_SPIRIT_X3_CHAR_CLASS(lowercase_letter)
  569. BOOST_SPIRIT_X3_CHAR_CLASS(titlecase_letter)
  570. BOOST_SPIRIT_X3_CHAR_CLASS(modifier_letter)
  571. BOOST_SPIRIT_X3_CHAR_CLASS(other_letter)
  572. BOOST_SPIRIT_X3_CHAR_CLASS(nonspacing_mark)
  573. BOOST_SPIRIT_X3_CHAR_CLASS(enclosing_mark)
  574. BOOST_SPIRIT_X3_CHAR_CLASS(spacing_mark)
  575. BOOST_SPIRIT_X3_CHAR_CLASS(decimal_number)
  576. BOOST_SPIRIT_X3_CHAR_CLASS(letter_number)
  577. BOOST_SPIRIT_X3_CHAR_CLASS(other_number)
  578. BOOST_SPIRIT_X3_CHAR_CLASS(space_separator)
  579. BOOST_SPIRIT_X3_CHAR_CLASS(line_separator)
  580. BOOST_SPIRIT_X3_CHAR_CLASS(paragraph_separator)
  581. BOOST_SPIRIT_X3_CHAR_CLASS(control)
  582. BOOST_SPIRIT_X3_CHAR_CLASS(format)
  583. BOOST_SPIRIT_X3_CHAR_CLASS(private_use)
  584. BOOST_SPIRIT_X3_CHAR_CLASS(surrogate)
  585. BOOST_SPIRIT_X3_CHAR_CLASS(unassigned)
  586. BOOST_SPIRIT_X3_CHAR_CLASS(dash_punctuation)
  587. BOOST_SPIRIT_X3_CHAR_CLASS(open_punctuation)
  588. BOOST_SPIRIT_X3_CHAR_CLASS(close_punctuation)
  589. BOOST_SPIRIT_X3_CHAR_CLASS(connector_punctuation)
  590. BOOST_SPIRIT_X3_CHAR_CLASS(other_punctuation)
  591. BOOST_SPIRIT_X3_CHAR_CLASS(initial_punctuation)
  592. BOOST_SPIRIT_X3_CHAR_CLASS(final_punctuation)
  593. BOOST_SPIRIT_X3_CHAR_CLASS(math_symbol)
  594. BOOST_SPIRIT_X3_CHAR_CLASS(currency_symbol)
  595. BOOST_SPIRIT_X3_CHAR_CLASS(modifier_symbol)
  596. BOOST_SPIRIT_X3_CHAR_CLASS(other_symbol)
  597. ///////////////////////////////////////////////////////////////////////////
  598. // Unicode Derived Categories
  599. ///////////////////////////////////////////////////////////////////////////
  600. BOOST_SPIRIT_X3_CHAR_CLASS(alphabetic)
  601. BOOST_SPIRIT_X3_CHAR_CLASS(uppercase)
  602. BOOST_SPIRIT_X3_CHAR_CLASS(lowercase)
  603. BOOST_SPIRIT_X3_CHAR_CLASS(white_space)
  604. BOOST_SPIRIT_X3_CHAR_CLASS(hex_digit)
  605. BOOST_SPIRIT_X3_CHAR_CLASS(noncharacter_code_point)
  606. BOOST_SPIRIT_X3_CHAR_CLASS(default_ignorable_code_point)
  607. ///////////////////////////////////////////////////////////////////////////
  608. // Unicode Scripts
  609. ///////////////////////////////////////////////////////////////////////////
  610. BOOST_SPIRIT_X3_CHAR_CLASS(adlam)
  611. BOOST_SPIRIT_X3_CHAR_CLASS(caucasian_albanian)
  612. BOOST_SPIRIT_X3_CHAR_CLASS(ahom)
  613. BOOST_SPIRIT_X3_CHAR_CLASS(arabic)
  614. BOOST_SPIRIT_X3_CHAR_CLASS(imperial_aramaic)
  615. BOOST_SPIRIT_X3_CHAR_CLASS(armenian)
  616. BOOST_SPIRIT_X3_CHAR_CLASS(avestan)
  617. BOOST_SPIRIT_X3_CHAR_CLASS(balinese)
  618. BOOST_SPIRIT_X3_CHAR_CLASS(bamum)
  619. BOOST_SPIRIT_X3_CHAR_CLASS(bassa_vah)
  620. BOOST_SPIRIT_X3_CHAR_CLASS(batak)
  621. BOOST_SPIRIT_X3_CHAR_CLASS(bengali)
  622. BOOST_SPIRIT_X3_CHAR_CLASS(bhaiksuki)
  623. BOOST_SPIRIT_X3_CHAR_CLASS(bopomofo)
  624. BOOST_SPIRIT_X3_CHAR_CLASS(brahmi)
  625. BOOST_SPIRIT_X3_CHAR_CLASS(braille)
  626. BOOST_SPIRIT_X3_CHAR_CLASS(buginese)
  627. BOOST_SPIRIT_X3_CHAR_CLASS(buhid)
  628. BOOST_SPIRIT_X3_CHAR_CLASS(chakma)
  629. BOOST_SPIRIT_X3_CHAR_CLASS(canadian_aboriginal)
  630. BOOST_SPIRIT_X3_CHAR_CLASS(carian)
  631. BOOST_SPIRIT_X3_CHAR_CLASS(cham)
  632. BOOST_SPIRIT_X3_CHAR_CLASS(cherokee)
  633. BOOST_SPIRIT_X3_CHAR_CLASS(chorasmian)
  634. BOOST_SPIRIT_X3_CHAR_CLASS(coptic)
  635. BOOST_SPIRIT_X3_CHAR_CLASS(cypro_minoan)
  636. BOOST_SPIRIT_X3_CHAR_CLASS(cypriot)
  637. BOOST_SPIRIT_X3_CHAR_CLASS(cyrillic)
  638. BOOST_SPIRIT_X3_CHAR_CLASS(devanagari)
  639. BOOST_SPIRIT_X3_CHAR_CLASS(dives_akuru)
  640. BOOST_SPIRIT_X3_CHAR_CLASS(dogra)
  641. BOOST_SPIRIT_X3_CHAR_CLASS(deseret)
  642. BOOST_SPIRIT_X3_CHAR_CLASS(duployan)
  643. BOOST_SPIRIT_X3_CHAR_CLASS(egyptian_hieroglyphs)
  644. BOOST_SPIRIT_X3_CHAR_CLASS(elbasan)
  645. BOOST_SPIRIT_X3_CHAR_CLASS(elymaic)
  646. BOOST_SPIRIT_X3_CHAR_CLASS(ethiopic)
  647. BOOST_SPIRIT_X3_CHAR_CLASS(georgian)
  648. BOOST_SPIRIT_X3_CHAR_CLASS(glagolitic)
  649. BOOST_SPIRIT_X3_CHAR_CLASS(gunjala_gondi)
  650. BOOST_SPIRIT_X3_CHAR_CLASS(masaram_gondi)
  651. BOOST_SPIRIT_X3_CHAR_CLASS(gothic)
  652. BOOST_SPIRIT_X3_CHAR_CLASS(grantha)
  653. BOOST_SPIRIT_X3_CHAR_CLASS(greek)
  654. BOOST_SPIRIT_X3_CHAR_CLASS(gujarati)
  655. BOOST_SPIRIT_X3_CHAR_CLASS(gurmukhi)
  656. BOOST_SPIRIT_X3_CHAR_CLASS(hangul)
  657. BOOST_SPIRIT_X3_CHAR_CLASS(han)
  658. BOOST_SPIRIT_X3_CHAR_CLASS(hanunoo)
  659. BOOST_SPIRIT_X3_CHAR_CLASS(hatran)
  660. BOOST_SPIRIT_X3_CHAR_CLASS(hebrew)
  661. BOOST_SPIRIT_X3_CHAR_CLASS(hiragana)
  662. BOOST_SPIRIT_X3_CHAR_CLASS(anatolian_hieroglyphs)
  663. BOOST_SPIRIT_X3_CHAR_CLASS(pahawh_hmong)
  664. BOOST_SPIRIT_X3_CHAR_CLASS(nyiakeng_puachue_hmong)
  665. BOOST_SPIRIT_X3_CHAR_CLASS(katakana_or_hiragana)
  666. BOOST_SPIRIT_X3_CHAR_CLASS(old_hungarian)
  667. BOOST_SPIRIT_X3_CHAR_CLASS(old_italic)
  668. BOOST_SPIRIT_X3_CHAR_CLASS(javanese)
  669. BOOST_SPIRIT_X3_CHAR_CLASS(kayah_li)
  670. BOOST_SPIRIT_X3_CHAR_CLASS(katakana)
  671. BOOST_SPIRIT_X3_CHAR_CLASS(kawi)
  672. BOOST_SPIRIT_X3_CHAR_CLASS(kharoshthi)
  673. BOOST_SPIRIT_X3_CHAR_CLASS(khmer)
  674. BOOST_SPIRIT_X3_CHAR_CLASS(khojki)
  675. BOOST_SPIRIT_X3_CHAR_CLASS(khitan_small_script)
  676. BOOST_SPIRIT_X3_CHAR_CLASS(kannada)
  677. BOOST_SPIRIT_X3_CHAR_CLASS(kaithi)
  678. BOOST_SPIRIT_X3_CHAR_CLASS(tai_tham)
  679. BOOST_SPIRIT_X3_CHAR_CLASS(lao)
  680. BOOST_SPIRIT_X3_CHAR_CLASS(latin)
  681. BOOST_SPIRIT_X3_CHAR_CLASS(lepcha)
  682. BOOST_SPIRIT_X3_CHAR_CLASS(limbu)
  683. BOOST_SPIRIT_X3_CHAR_CLASS(linear_a)
  684. BOOST_SPIRIT_X3_CHAR_CLASS(linear_b)
  685. BOOST_SPIRIT_X3_CHAR_CLASS(lisu)
  686. BOOST_SPIRIT_X3_CHAR_CLASS(lycian)
  687. BOOST_SPIRIT_X3_CHAR_CLASS(lydian)
  688. BOOST_SPIRIT_X3_CHAR_CLASS(mahajani)
  689. BOOST_SPIRIT_X3_CHAR_CLASS(makasar)
  690. BOOST_SPIRIT_X3_CHAR_CLASS(mandaic)
  691. BOOST_SPIRIT_X3_CHAR_CLASS(manichaean)
  692. BOOST_SPIRIT_X3_CHAR_CLASS(marchen)
  693. BOOST_SPIRIT_X3_CHAR_CLASS(medefaidrin)
  694. BOOST_SPIRIT_X3_CHAR_CLASS(mende_kikakui)
  695. BOOST_SPIRIT_X3_CHAR_CLASS(meroitic_cursive)
  696. BOOST_SPIRIT_X3_CHAR_CLASS(meroitic_hieroglyphs)
  697. BOOST_SPIRIT_X3_CHAR_CLASS(malayalam)
  698. BOOST_SPIRIT_X3_CHAR_CLASS(modi)
  699. BOOST_SPIRIT_X3_CHAR_CLASS(mongolian)
  700. BOOST_SPIRIT_X3_CHAR_CLASS(mro)
  701. BOOST_SPIRIT_X3_CHAR_CLASS(meetei_mayek)
  702. BOOST_SPIRIT_X3_CHAR_CLASS(multani)
  703. BOOST_SPIRIT_X3_CHAR_CLASS(myanmar)
  704. BOOST_SPIRIT_X3_CHAR_CLASS(nag_mundari)
  705. BOOST_SPIRIT_X3_CHAR_CLASS(nandinagari)
  706. BOOST_SPIRIT_X3_CHAR_CLASS(old_north_arabian)
  707. BOOST_SPIRIT_X3_CHAR_CLASS(nabataean)
  708. BOOST_SPIRIT_X3_CHAR_CLASS(newa)
  709. BOOST_SPIRIT_X3_CHAR_CLASS(nko)
  710. BOOST_SPIRIT_X3_CHAR_CLASS(nushu)
  711. BOOST_SPIRIT_X3_CHAR_CLASS(ogham)
  712. BOOST_SPIRIT_X3_CHAR_CLASS(ol_chiki)
  713. BOOST_SPIRIT_X3_CHAR_CLASS(old_turkic)
  714. BOOST_SPIRIT_X3_CHAR_CLASS(oriya)
  715. BOOST_SPIRIT_X3_CHAR_CLASS(osage)
  716. BOOST_SPIRIT_X3_CHAR_CLASS(osmanya)
  717. BOOST_SPIRIT_X3_CHAR_CLASS(old_uyghur)
  718. BOOST_SPIRIT_X3_CHAR_CLASS(palmyrene)
  719. BOOST_SPIRIT_X3_CHAR_CLASS(pau_cin_hau)
  720. BOOST_SPIRIT_X3_CHAR_CLASS(old_permic)
  721. BOOST_SPIRIT_X3_CHAR_CLASS(phags_pa)
  722. BOOST_SPIRIT_X3_CHAR_CLASS(inscriptional_pahlavi)
  723. BOOST_SPIRIT_X3_CHAR_CLASS(psalter_pahlavi)
  724. BOOST_SPIRIT_X3_CHAR_CLASS(phoenician)
  725. BOOST_SPIRIT_X3_CHAR_CLASS(miao)
  726. BOOST_SPIRIT_X3_CHAR_CLASS(inscriptional_parthian)
  727. BOOST_SPIRIT_X3_CHAR_CLASS(rejang)
  728. BOOST_SPIRIT_X3_CHAR_CLASS(hanifi_rohingya)
  729. BOOST_SPIRIT_X3_CHAR_CLASS(runic)
  730. BOOST_SPIRIT_X3_CHAR_CLASS(samaritan)
  731. BOOST_SPIRIT_X3_CHAR_CLASS(old_south_arabian)
  732. BOOST_SPIRIT_X3_CHAR_CLASS(saurashtra)
  733. BOOST_SPIRIT_X3_CHAR_CLASS(signwriting)
  734. BOOST_SPIRIT_X3_CHAR_CLASS(shavian)
  735. BOOST_SPIRIT_X3_CHAR_CLASS(sharada)
  736. BOOST_SPIRIT_X3_CHAR_CLASS(siddham)
  737. BOOST_SPIRIT_X3_CHAR_CLASS(khudawadi)
  738. BOOST_SPIRIT_X3_CHAR_CLASS(sinhala)
  739. BOOST_SPIRIT_X3_CHAR_CLASS(sogdian)
  740. BOOST_SPIRIT_X3_CHAR_CLASS(old_sogdian)
  741. BOOST_SPIRIT_X3_CHAR_CLASS(sora_sompeng)
  742. BOOST_SPIRIT_X3_CHAR_CLASS(soyombo)
  743. BOOST_SPIRIT_X3_CHAR_CLASS(sundanese)
  744. BOOST_SPIRIT_X3_CHAR_CLASS(syloti_nagri)
  745. BOOST_SPIRIT_X3_CHAR_CLASS(syriac)
  746. BOOST_SPIRIT_X3_CHAR_CLASS(tagbanwa)
  747. BOOST_SPIRIT_X3_CHAR_CLASS(takri)
  748. BOOST_SPIRIT_X3_CHAR_CLASS(tai_le)
  749. BOOST_SPIRIT_X3_CHAR_CLASS(new_tai_lue)
  750. BOOST_SPIRIT_X3_CHAR_CLASS(tamil)
  751. BOOST_SPIRIT_X3_CHAR_CLASS(tangut)
  752. BOOST_SPIRIT_X3_CHAR_CLASS(tai_viet)
  753. BOOST_SPIRIT_X3_CHAR_CLASS(telugu)
  754. BOOST_SPIRIT_X3_CHAR_CLASS(tifinagh)
  755. BOOST_SPIRIT_X3_CHAR_CLASS(tagalog)
  756. BOOST_SPIRIT_X3_CHAR_CLASS(thaana)
  757. BOOST_SPIRIT_X3_CHAR_CLASS(thai)
  758. BOOST_SPIRIT_X3_CHAR_CLASS(tibetan)
  759. BOOST_SPIRIT_X3_CHAR_CLASS(tirhuta)
  760. BOOST_SPIRIT_X3_CHAR_CLASS(tangsa)
  761. BOOST_SPIRIT_X3_CHAR_CLASS(toto)
  762. BOOST_SPIRIT_X3_CHAR_CLASS(ugaritic)
  763. BOOST_SPIRIT_X3_CHAR_CLASS(vai)
  764. BOOST_SPIRIT_X3_CHAR_CLASS(vithkuqi)
  765. BOOST_SPIRIT_X3_CHAR_CLASS(warang_citi)
  766. BOOST_SPIRIT_X3_CHAR_CLASS(wancho)
  767. BOOST_SPIRIT_X3_CHAR_CLASS(old_persian)
  768. BOOST_SPIRIT_X3_CHAR_CLASS(cuneiform)
  769. BOOST_SPIRIT_X3_CHAR_CLASS(yezidi)
  770. BOOST_SPIRIT_X3_CHAR_CLASS(yi)
  771. BOOST_SPIRIT_X3_CHAR_CLASS(zanabazar_square)
  772. BOOST_SPIRIT_X3_CHAR_CLASS(inherited)
  773. BOOST_SPIRIT_X3_CHAR_CLASS(common)
  774. BOOST_SPIRIT_X3_CHAR_CLASS(unknown)
  775. }
  776. #undef BOOST_SPIRIT_X3_CHAR_CLASS
  777. }}}
  778. #endif