💿🐜 Antkeeper source code https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1004 lines
20 KiB

  1. /*
  2. * Copyright (C) 2021 Christopher J. Howard
  3. *
  4. * This file is part of Antkeeper source code.
  5. *
  6. * Antkeeper source code is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * Antkeeper source code is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #ifndef ANTKEEPER_TYPE_UNICODE_BLOCK_HPP
  20. #define ANTKEEPER_TYPE_UNICODE_BLOCK_HPP
  21. namespace type {
  22. namespace unicode {
  23. /**
  24. * Contiguous range of Unicode characters.
  25. *
  26. * @see https://en.wikipedia.org/wiki/Unicode_block
  27. * @see http://jrgraphix.net/research/unicode.php
  28. */
  29. struct block
  30. {
  31. /// First character in the block.
  32. char32_t first;
  33. /// Last character in the block.
  34. char32_t last;
  35. /// Basic Latin[g]
  36. static const block basic_latin;
  37. /// Latin-1 Supplement[h]
  38. static const block latin_1_supplement;
  39. /// Latin Extended-A
  40. static const block latin_extended_a;
  41. /// Latin Extended-B
  42. static const block latin_extended_b;
  43. /// IPA Extensions
  44. static const block ipa_extensions;
  45. /// Spacing Modifier Letters
  46. static const block spacing_modifier_letters;
  47. /// Combining Diacritical Marks
  48. static const block combining_diacritical_marks;
  49. /// Greek and Coptic
  50. static const block greek_and_coptic;
  51. /// Cyrillic
  52. static const block cyrillic;
  53. /// Cyrillic Supplement
  54. static const block cyrillic_supplement;
  55. /// Armenian
  56. static const block armenian;
  57. /// Hebrew
  58. static const block hebrew;
  59. /// Arabic
  60. static const block arabic;
  61. /// Syriac
  62. static const block syriac;
  63. /// Arabic Supplement
  64. static const block arabic_supplement;
  65. /// Thaana
  66. static const block thaana;
  67. /// NKo
  68. static const block nko;
  69. /// Samaritan
  70. static const block samaritan;
  71. /// Mandaic
  72. static const block mandaic;
  73. /// Syriac Supplement
  74. static const block syriac_supplement;
  75. /// Arabic Extended-B
  76. static const block arabic_extended_b;
  77. /// Arabic Extended-A
  78. static const block arabic_extended_a;
  79. /// Devanagari
  80. static const block devanagari;
  81. /// Bengali
  82. static const block bengali;
  83. /// Gurmukhi
  84. static const block gurmukhi;
  85. /// Gujarati
  86. static const block gujarati;
  87. /// Oriya
  88. static const block oriya;
  89. /// Tamil
  90. static const block tamil;
  91. /// Telugu
  92. static const block telugu;
  93. /// Kannada
  94. static const block kannada;
  95. /// Malayalam
  96. static const block malayalam;
  97. /// Sinhala
  98. static const block sinhala;
  99. /// Thai
  100. static const block thai;
  101. /// Lao
  102. static const block lao;
  103. /// Tibetan
  104. static const block tibetan;
  105. /// Myanmar
  106. static const block myanmar;
  107. /// Georgian
  108. static const block georgian;
  109. /// Hangul Jamo
  110. static const block hangul_jamo;
  111. /// Ethiopic
  112. static const block ethiopic;
  113. /// Ethiopic Supplement
  114. static const block ethiopic_supplement;
  115. /// Cherokee
  116. static const block cherokee;
  117. /// Unified Canadian Aboriginal Syllabics
  118. static const block unified_canadian_aboriginal_syllabics;
  119. /// Ogham
  120. static const block ogham;
  121. /// Runic
  122. static const block runic;
  123. /// Tagalog
  124. static const block tagalog;
  125. /// Hanunoo
  126. static const block hanunoo;
  127. /// Buhid
  128. static const block buhid;
  129. /// Tagbanwa
  130. static const block tagbanwa;
  131. /// Khmer
  132. static const block khmer;
  133. /// Mongolian
  134. static const block mongolian;
  135. /// Unified Canadian Aboriginal Syllabics Extended
  136. static const block unified_canadian_aboriginal_syllabics_extended;
  137. /// Limbu
  138. static const block limbu;
  139. /// Tai Le
  140. static const block tai_le;
  141. /// New Tai Lue
  142. static const block new_tai_lue;
  143. /// Khmer Symbols
  144. static const block khmer_symbols;
  145. /// Buginese
  146. static const block buginese;
  147. /// Tai Tham
  148. static const block tai_tham;
  149. /// Combining Diacritical Marks Extended
  150. static const block combining_diacritical_marks_extended;
  151. /// Balinese
  152. static const block balinese;
  153. /// Sundanese
  154. static const block sundanese;
  155. /// Batak
  156. static const block batak;
  157. /// Lepcha
  158. static const block lepcha;
  159. /// Ol Chiki
  160. static const block ol_chiki;
  161. /// Cyrillic Extended-C
  162. static const block cyrillic_extended_c;
  163. /// Georgian Extended
  164. static const block georgian_extended;
  165. /// Sundanese Supplement
  166. static const block sundanese_supplement;
  167. /// Vedic Extensions
  168. static const block vedic_extensions;
  169. /// Phonetic Extensions
  170. static const block phonetic_extensions;
  171. /// Phonetic Extensions Supplement
  172. static const block phonetic_extensions_supplement;
  173. /// Combining Diacritical Marks Supplement
  174. static const block combining_diacritical_marks_supplement;
  175. /// Latin Extended Additional
  176. static const block latin_extended_additional;
  177. /// Greek Extended
  178. static const block greek_extended;
  179. /// General Punctuation
  180. static const block general_punctuation;
  181. /// Superscripts and Subscripts
  182. static const block superscripts_and_subscripts;
  183. /// Currency Symbols
  184. static const block currency_symbols;
  185. /// Combining Diacritical Marks for Symbols
  186. static const block combining_diacritical_marks_for_symbols;
  187. /// Letterlike Symbols
  188. static const block letterlike_symbols;
  189. /// Number Forms
  190. static const block number_forms;
  191. /// Arrows
  192. static const block arrows;
  193. /// Mathematical Operators
  194. static const block mathematical_operators;
  195. /// Miscellaneous Technical
  196. static const block miscellaneous_technical;
  197. /// Control Pictures
  198. static const block control_pictures;
  199. /// Optical Character Recognition
  200. static const block optical_character_recognition;
  201. /// Enclosed Alphanumerics
  202. static const block enclosed_alphanumerics;
  203. /// Box Drawing
  204. static const block box_drawing;
  205. /// Block Elements
  206. static const block block_elements;
  207. /// Geometric Shapes
  208. static const block geometric_shapes;
  209. /// Miscellaneous Symbols
  210. static const block miscellaneous_symbols;
  211. /// Dingbats
  212. static const block dingbats;
  213. /// Miscellaneous Mathematical Symbols-A
  214. static const block miscellaneous_mathematical_symbols_a;
  215. /// Supplemental Arrows-A
  216. static const block supplemental_arrows_a;
  217. /// Braille Patterns
  218. static const block braille_patterns;
  219. /// Supplemental Arrows-B
  220. static const block supplemental_arrows_b;
  221. /// Miscellaneous Mathematical Symbols-B
  222. static const block miscellaneous_mathematical_symbols_b;
  223. /// Supplemental Mathematical Operators
  224. static const block supplemental_mathematical_operators;
  225. /// Miscellaneous Symbols and Arrows
  226. static const block miscellaneous_symbols_and_arrows;
  227. /// Glagolitic
  228. static const block glagolitic;
  229. /// Latin Extended-C
  230. static const block latin_extended_c;
  231. /// Coptic
  232. static const block coptic;
  233. /// Georgian Supplement
  234. static const block georgian_supplement;
  235. /// Tifinagh
  236. static const block tifinagh;
  237. /// Ethiopic Extended
  238. static const block ethiopic_extended;
  239. /// Cyrillic Extended-A
  240. static const block cyrillic_extended_a;
  241. /// Supplemental Punctuation
  242. static const block supplemental_punctuation;
  243. /// CJK Radicals Supplement
  244. static const block cjk_radicals_supplement;
  245. /// Kangxi Radicals
  246. static const block kangxi_radicals;
  247. /// Ideographic Description Characters
  248. static const block ideographic_description_characters;
  249. /// CJK Symbols and Punctuation
  250. static const block cjk_symbols_and_punctuation;
  251. /// Hiragana
  252. static const block hiragana;
  253. /// Katakana
  254. static const block katakana;
  255. /// Bopomofo
  256. static const block bopomofo;
  257. /// Hangul Compatibility Jamo
  258. static const block hangul_compatibility_jamo;
  259. /// Kanbun
  260. static const block kanbun;
  261. /// Bopomofo Extended
  262. static const block bopomofo_extended;
  263. /// CJK Strokes
  264. static const block cjk_strokes;
  265. /// Katakana Phonetic Extensions
  266. static const block katakana_phonetic_extensions;
  267. /// Enclosed CJK Letters and Months
  268. static const block enclosed_cjk_letters_and_months;
  269. /// CJK Compatibility
  270. static const block cjk_compatibility;
  271. /// CJK Unified Ideographs Extension A
  272. static const block cjk_unified_ideographs_extension_a;
  273. /// Yijing Hexagram Symbols
  274. static const block yijing_hexagram_symbols;
  275. /// CJK Unified Ideographs
  276. static const block cjk_unified_ideographs;
  277. /// Yi Syllables
  278. static const block yi_syllables;
  279. /// Yi Radicals
  280. static const block yi_radicals;
  281. /// Lisu
  282. static const block lisu;
  283. /// Vai
  284. static const block vai;
  285. /// Cyrillic Extended-B
  286. static const block cyrillic_extended_b;
  287. /// Bamum
  288. static const block bamum;
  289. /// Modifier Tone Letters
  290. static const block modifier_tone_letters;
  291. /// Latin Extended-D
  292. static const block latin_extended_d;
  293. /// Syloti Nagri
  294. static const block syloti_nagri;
  295. /// Common Indic Number Forms
  296. static const block common_indic_number_forms;
  297. /// Phags-pa
  298. static const block phags_pa;
  299. /// Saurashtra
  300. static const block saurashtra;
  301. /// Devanagari Extended
  302. static const block devanagari_extended;
  303. /// Kayah Li
  304. static const block kayah_li;
  305. /// Rejang
  306. static const block rejang;
  307. /// Hangul Jamo Extended-A
  308. static const block hangul_jamo_extended_a;
  309. /// Javanese
  310. static const block javanese;
  311. /// Myanmar Extended-B
  312. static const block myanmar_extended_b;
  313. /// Cham
  314. static const block cham;
  315. /// Myanmar Extended-A
  316. static const block myanmar_extended_a;
  317. /// Tai Viet
  318. static const block tai_viet;
  319. /// Meetei Mayek Extensions
  320. static const block meetei_mayek_extensions;
  321. /// Ethiopic Extended-A
  322. static const block ethiopic_extended_a;
  323. /// Latin Extended-E
  324. static const block latin_extended_e;
  325. /// Cherokee Supplement
  326. static const block cherokee_supplement;
  327. /// Meetei Mayek
  328. static const block meetei_mayek;
  329. /// Hangul Syllables
  330. static const block hangul_syllables;
  331. /// Hangul Jamo Extended-B
  332. static const block hangul_jamo_extended_b;
  333. /// High Surrogates
  334. static const block high_surrogates;
  335. /// High Private Use Surrogates
  336. static const block high_private_use_surrogates;
  337. /// Low Surrogates
  338. static const block low_surrogates;
  339. /// Private Use Area
  340. static const block private_use_area;
  341. /// CJK Compatibility Ideographs
  342. static const block cjk_compatibility_ideographs;
  343. /// Alphabetic Presentation Forms
  344. static const block alphabetic_presentation_forms;
  345. /// Arabic Presentation Forms-A
  346. static const block arabic_presentation_forms_a;
  347. /// Variation Selectors
  348. static const block variation_selectors;
  349. /// Vertical Forms
  350. static const block vertical_forms;
  351. /// Combining Half Marks
  352. static const block combining_half_marks;
  353. /// CJK Compatibility Forms
  354. static const block cjk_compatibility_forms;
  355. /// Small Form Variants
  356. static const block small_form_variants;
  357. /// Arabic Presentation Forms-B
  358. static const block arabic_presentation_forms_b;
  359. /// Halfwidth and Fullwidth Forms
  360. static const block halfwidth_and_fullwidth_forms;
  361. /// Specials
  362. static const block specials;
  363. /// Linear B Syllabary
  364. static const block linear_b_syllabary;
  365. /// Linear B Ideograms
  366. static const block linear_b_ideograms;
  367. /// Aegean Numbers
  368. static const block aegean_numbers;
  369. /// Ancient Greek Numbers
  370. static const block ancient_greek_numbers;
  371. /// Ancient Symbols
  372. static const block ancient_symbols;
  373. /// Phaistos Disc
  374. static const block phaistos_disc;
  375. /// Lycian
  376. static const block lycian;
  377. /// Carian
  378. static const block carian;
  379. /// Coptic Epact Numbers
  380. static const block coptic_epact_numbers;
  381. /// Old Italic
  382. static const block old_italic;
  383. /// Gothic
  384. static const block gothic;
  385. /// Old Permic
  386. static const block old_permic;
  387. /// Ugaritic
  388. static const block ugaritic;
  389. /// Old Persian
  390. static const block old_persian;
  391. /// Deseret
  392. static const block deseret;
  393. /// Shavian
  394. static const block shavian;
  395. /// Osmanya
  396. static const block osmanya;
  397. /// Osage
  398. static const block osage;
  399. /// Elbasan
  400. static const block elbasan;
  401. /// Caucasian Albanian
  402. static const block caucasian_albanian;
  403. /// Vithkuqi
  404. static const block vithkuqi;
  405. /// Linear A
  406. static const block linear_a;
  407. /// Latin Extended-F
  408. static const block latin_extended_f;
  409. /// Cypriot Syllabary
  410. static const block cypriot_syllabary;
  411. /// Imperial Aramaic
  412. static const block imperial_aramaic;
  413. /// Palmyrene
  414. static const block palmyrene;
  415. /// Nabataean
  416. static const block nabataean;
  417. /// Hatran
  418. static const block hatran;
  419. /// Phoenician
  420. static const block phoenician;
  421. /// Lydian
  422. static const block lydian;
  423. /// Meroitic Hieroglyphs
  424. static const block meroitic_hieroglyphs;
  425. /// Meroitic Cursive
  426. static const block meroitic_cursive;
  427. /// Kharoshthi
  428. static const block kharoshthi;
  429. /// Old South Arabian
  430. static const block old_south_arabian;
  431. /// Old North Arabian
  432. static const block old_north_arabian;
  433. /// Manichaean
  434. static const block manichaean;
  435. /// Avestan
  436. static const block avestan;
  437. /// Inscriptional Parthian
  438. static const block inscriptional_parthian;
  439. /// Inscriptional Pahlavi
  440. static const block inscriptional_pahlavi;
  441. /// Psalter Pahlavi
  442. static const block psalter_pahlavi;
  443. /// Old Turkic
  444. static const block old_turkic;
  445. /// Old Hungarian
  446. static const block old_hungarian;
  447. /// Hanifi Rohingya
  448. static const block hanifi_rohingya;
  449. /// Rumi Numeral Symbols
  450. static const block rumi_numeral_symbols;
  451. /// Yezidi
  452. static const block yezidi;
  453. /// Old Sogdian
  454. static const block old_sogdian;
  455. /// Sogdian
  456. static const block sogdian;
  457. /// Old Uyghur
  458. static const block old_uyghur;
  459. /// Chorasmian
  460. static const block chorasmian;
  461. /// Elymaic
  462. static const block elymaic;
  463. /// Brahmi
  464. static const block brahmi;
  465. /// Kaithi
  466. static const block kaithi;
  467. /// Sora Sompeng
  468. static const block sora_sompeng;
  469. /// Chakma
  470. static const block chakma;
  471. /// Mahajani
  472. static const block mahajani;
  473. /// Sharada
  474. static const block sharada;
  475. /// Sinhala Archaic Numbers
  476. static const block sinhala_archaic_numbers;
  477. /// Khojki
  478. static const block khojki;
  479. /// Multani
  480. static const block multani;
  481. /// Khudawadi
  482. static const block khudawadi;
  483. /// Grantha
  484. static const block grantha;
  485. /// Newa
  486. static const block newa;
  487. /// Tirhuta
  488. static const block tirhuta;
  489. /// Siddham
  490. static const block siddham;
  491. /// Modi
  492. static const block modi;
  493. /// Mongolian Supplement
  494. static const block mongolian_supplement;
  495. /// Takri
  496. static const block takri;
  497. /// Ahom
  498. static const block ahom;
  499. /// Dogra
  500. static const block dogra;
  501. /// Warang Citi
  502. static const block warang_citi;
  503. /// Dives Akuru
  504. static const block dives_akuru;
  505. /// Nandinagari
  506. static const block nandinagari;
  507. /// Zanabazar Square
  508. static const block zanabazar_square;
  509. /// Soyombo
  510. static const block soyombo;
  511. /// Unified Canadian Aboriginal Syllabics Extended-A
  512. static const block unified_canadian_aboriginal_syllabics_extended_a;
  513. /// Pau Cin Hau
  514. static const block pau_cin_hau;
  515. /// Bhaiksuki
  516. static const block bhaiksuki;
  517. /// Marchen
  518. static const block marchen;
  519. /// Masaram Gondi
  520. static const block masaram_gondi;
  521. /// Gunjala Gondi
  522. static const block gunjala_gondi;
  523. /// Makasar
  524. static const block makasar;
  525. /// Lisu Supplement
  526. static const block lisu_supplement;
  527. /// Tamil Supplement
  528. static const block tamil_supplement;
  529. /// Cuneiform
  530. static const block cuneiform;
  531. /// Cuneiform Numbers and Punctuation
  532. static const block cuneiform_numbers_and_punctuation;
  533. /// Early Dynastic Cuneiform
  534. static const block early_dynastic_cuneiform;
  535. /// Cypro-Minoan
  536. static const block cypro_minoan;
  537. /// Egyptian Hieroglyphs
  538. static const block egyptian_hieroglyphs;
  539. /// Egyptian Hieroglyph Format Controls
  540. static const block egyptian_hieroglyph_format_controls;
  541. /// Anatolian Hieroglyphs
  542. static const block anatolian_hieroglyphs;
  543. /// Bamum Supplement
  544. static const block bamum_supplement;
  545. /// Mro
  546. static const block mro;
  547. /// Tangsa
  548. static const block tangsa;
  549. /// Bassa Vah
  550. static const block bassa_vah;
  551. /// Pahawh Hmong
  552. static const block pahawh_hmong;
  553. /// Medefaidrin
  554. static const block medefaidrin;
  555. /// Miao
  556. static const block miao;
  557. /// Ideographic Symbols and Punctuation
  558. static const block ideographic_symbols_and_punctuation;
  559. /// Tangut
  560. static const block tangut;
  561. /// Tangut Components
  562. static const block tangut_components;
  563. /// Khitan Small Script
  564. static const block khitan_small_script;
  565. /// Tangut Supplement
  566. static const block tangut_supplement;
  567. /// Kana Extended-B
  568. static const block kana_extended_b;
  569. /// Kana Supplement
  570. static const block kana_supplement;
  571. /// Kana Extended-A
  572. static const block kana_extended_a;
  573. /// Small Kana Extension
  574. static const block small_kana_extension;
  575. /// Nushu
  576. static const block nushu;
  577. /// Duployan
  578. static const block duployan;
  579. /// Shorthand Format Controls
  580. static const block shorthand_format_controls;
  581. /// Znamenny Musical Notation
  582. static const block znamenny_musical_notation;
  583. /// Byzantine Musical Symbols
  584. static const block byzantine_musical_symbols;
  585. /// Musical Symbols
  586. static const block musical_symbols;
  587. /// Ancient Greek Musical Notation
  588. static const block ancient_greek_musical_notation;
  589. /// Mayan Numerals
  590. static const block mayan_numerals;
  591. /// Tai Xuan Jing Symbols
  592. static const block tai_xuan_jing_symbols;
  593. /// Counting Rod Numerals
  594. static const block counting_rod_numerals;
  595. /// Mathematical Alphanumeric Symbols
  596. static const block mathematical_alphanumeric_symbols;
  597. /// Sutton SignWriting
  598. static const block sutton_signwriting;
  599. /// Latin Extended-G
  600. static const block latin_extended_g;
  601. /// Glagolitic Supplement
  602. static const block glagolitic_supplement;
  603. /// Nyiakeng Puachue Hmong
  604. static const block nyiakeng_puachue_hmong;
  605. /// Toto
  606. static const block toto;
  607. /// Wancho
  608. static const block wancho;
  609. /// Ethiopic Extended-B
  610. static const block ethiopic_extended_b;
  611. /// Mende Kikakui
  612. static const block mende_kikakui;
  613. /// Adlam
  614. static const block adlam;
  615. /// Indic Siyaq Numbers
  616. static const block indic_siyaq_numbers;
  617. /// Ottoman Siyaq Numbers
  618. static const block ottoman_siyaq_numbers;
  619. /// Arabic Mathematical Alphabetic Symbols
  620. static const block arabic_mathematical_alphabetic_symbols;
  621. /// Mahjong Tiles
  622. static const block mahjong_tiles;
  623. /// Domino Tiles
  624. static const block domino_tiles;
  625. /// Playing Cards
  626. static const block playing_cards;
  627. /// Enclosed Alphanumeric Supplement
  628. static const block enclosed_alphanumeric_supplement;
  629. /// Enclosed Ideographic Supplement
  630. static const block enclosed_ideographic_supplement;
  631. /// Miscellaneous Symbols and Pictographs
  632. static const block miscellaneous_symbols_and_pictographs;
  633. /// Emoticons
  634. static const block emoticons;
  635. /// Ornamental Dingbats
  636. static const block ornamental_dingbats;
  637. /// Transport and Map Symbols
  638. static const block transport_and_map_symbols;
  639. /// Alchemical Symbols
  640. static const block alchemical_symbols;
  641. /// Geometric Shapes Extended
  642. static const block geometric_shapes_extended;
  643. /// Supplemental Arrows-C
  644. static const block supplemental_arrows_c;
  645. /// Supplemental Symbols and Pictographs
  646. static const block supplemental_symbols_and_pictographs;
  647. /// Chess Symbols
  648. static const block chess_symbols;
  649. /// Symbols and Pictographs Extended-A
  650. static const block symbols_and_pictographs_extended_a;
  651. /// Symbols for Legacy Computing
  652. static const block symbols_for_legacy_computing;
  653. /// CJK Unified Ideographs Extension B
  654. static const block cjk_unified_ideographs_extension_b;
  655. /// CJK Unified Ideographs Extension C
  656. static const block cjk_unified_ideographs_extension_c;
  657. /// CJK Unified Ideographs Extension D
  658. static const block cjk_unified_ideographs_extension_d;
  659. /// CJK Unified Ideographs Extension E
  660. static const block cjk_unified_ideographs_extension_e;
  661. /// CJK Unified Ideographs Extension F
  662. static const block cjk_unified_ideographs_extension_f;
  663. /// CJK Compatibility Ideographs Supplement
  664. static const block cjk_compatibility_ideographs_supplement;
  665. /// CJK Unified Ideographs Extension G
  666. static const block cjk_unified_ideographs_extension_g;
  667. /// Tags
  668. static const block tags;
  669. /// Variation Selectors Supplement
  670. static const block variation_selectors_supplement;
  671. /// Supplementary Private Use Area-A
  672. static const block supplementary_private_use_area_a;
  673. /// Supplementary Private Use Area-B
  674. static const block supplementary_private_use_area_b;
  675. };
  676. } // namespace unicode
  677. } // namespace type
  678. #endif // ANTKEEPER_TYPE_UNICODE_BLOCK_HPP