💿🐜 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.

347 lines
18 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. #include "unicode-block.hpp"
  20. namespace font {
  21. namespace unicode {
  22. const block block::basic_latin{0x0, 0x7F};
  23. const block block::latin_1_supplement{0x80, 0xFF};
  24. const block block::latin_extended_a{0x0100, 0x017F};
  25. const block block::latin_extended_b{0x0180, 0x024F};
  26. const block block::ipa_extensions{0x0250, 0x02AF};
  27. const block block::spacing_modifier_letters{0x02B0, 0x02FF};
  28. const block block::combining_diacritical_marks{0x0300, 0x036F};
  29. const block block::greek_and_coptic{0x0370, 0x03FF};
  30. const block block::cyrillic{0x0400, 0x04FF};
  31. const block block::cyrillic_supplement{0x0500, 0x052F};
  32. const block block::armenian{0x0530, 0x058F};
  33. const block block::hebrew{0x0590, 0x05FF};
  34. const block block::arabic{0x0600, 0x06FF};
  35. const block block::syriac{0x0700, 0x074F};
  36. const block block::arabic_supplement{0x0750, 0x077F};
  37. const block block::thaana{0x0780, 0x07BF};
  38. const block block::nko{0x07C0, 0x07FF};
  39. const block block::samaritan{0x0800, 0x083F};
  40. const block block::mandaic{0x0840, 0x085F};
  41. const block block::syriac_supplement{0x0860, 0x086F};
  42. const block block::arabic_extended_b{0x0870, 0x089F};
  43. const block block::arabic_extended_a{0x08A0, 0x08FF};
  44. const block block::devanagari{0x0900, 0x097F};
  45. const block block::bengali{0x0980, 0x09FF};
  46. const block block::gurmukhi{0x0A00, 0x0A7F};
  47. const block block::gujarati{0x0A80, 0x0AFF};
  48. const block block::oriya{0x0B00, 0x0B7F};
  49. const block block::tamil{0x0B80, 0x0BFF};
  50. const block block::telugu{0x0C00, 0x0C7F};
  51. const block block::kannada{0x0C80, 0x0CFF};
  52. const block block::malayalam{0x0D00, 0x0D7F};
  53. const block block::sinhala{0x0D80, 0x0DFF};
  54. const block block::thai{0x0E00, 0x0E7F};
  55. const block block::lao{0x0E80, 0x0EFF};
  56. const block block::tibetan{0x0F00, 0x0FFF};
  57. const block block::myanmar{0x1000, 0x109F};
  58. const block block::georgian{0x10A0, 0x10FF};
  59. const block block::hangul_jamo{0x1100, 0x11FF};
  60. const block block::ethiopic{0x1200, 0x137F};
  61. const block block::ethiopic_supplement{0x1380, 0x139F};
  62. const block block::cherokee{0x13A0, 0x13FF};
  63. const block block::unified_canadian_aboriginal_syllabics{0x1400, 0x167F};
  64. const block block::ogham{0x1680, 0x169F};
  65. const block block::runic{0x16A0, 0x16FF};
  66. const block block::tagalog{0x1700, 0x171F};
  67. const block block::hanunoo{0x1720, 0x173F};
  68. const block block::buhid{0x1740, 0x175F};
  69. const block block::tagbanwa{0x1760, 0x177F};
  70. const block block::khmer{0x1780, 0x17FF};
  71. const block block::mongolian{0x1800, 0x18AF};
  72. const block block::unified_canadian_aboriginal_syllabics_extended{0x18B0, 0x18FF};
  73. const block block::limbu{0x1900, 0x194F};
  74. const block block::tai_le{0x1950, 0x197F};
  75. const block block::new_tai_lue{0x1980, 0x19DF};
  76. const block block::khmer_symbols{0x19E0, 0x19FF};
  77. const block block::buginese{0x1A00, 0x1A1F};
  78. const block block::tai_tham{0x1A20, 0x1AAF};
  79. const block block::combining_diacritical_marks_extended{0x1AB0, 0x1AFF};
  80. const block block::balinese{0x1B00, 0x1B7F};
  81. const block block::sundanese{0x1B80, 0x1BBF};
  82. const block block::batak{0x1BC0, 0x1BFF};
  83. const block block::lepcha{0x1C00, 0x1C4F};
  84. const block block::ol_chiki{0x1C50, 0x1C7F};
  85. const block block::cyrillic_extended_c{0x1C80, 0x1C8F};
  86. const block block::georgian_extended{0x1C90, 0x1CBF};
  87. const block block::sundanese_supplement{0x1CC0, 0x1CCF};
  88. const block block::vedic_extensions{0x1CD0, 0x1CFF};
  89. const block block::phonetic_extensions{0x1D00, 0x1D7F};
  90. const block block::phonetic_extensions_supplement{0x1D80, 0x1DBF};
  91. const block block::combining_diacritical_marks_supplement{0x1DC0, 0x1DFF};
  92. const block block::latin_extended_additional{0x1E00, 0x1EFF};
  93. const block block::greek_extended{0x1F00, 0x1FFF};
  94. const block block::general_punctuation{0x2000, 0x206F};
  95. const block block::superscripts_and_subscripts{0x2070, 0x209F};
  96. const block block::currency_symbols{0x20A0, 0x20CF};
  97. const block block::combining_diacritical_marks_for_symbols{0x20D0, 0x20FF};
  98. const block block::letterlike_symbols{0x2100, 0x214F};
  99. const block block::number_forms{0x2150, 0x218F};
  100. const block block::arrows{0x2190, 0x21FF};
  101. const block block::mathematical_operators{0x2200, 0x22FF};
  102. const block block::miscellaneous_technical{0x2300, 0x23FF};
  103. const block block::control_pictures{0x2400, 0x243F};
  104. const block block::optical_character_recognition{0x2440, 0x245F};
  105. const block block::enclosed_alphanumerics{0x2460, 0x24FF};
  106. const block block::box_drawing{0x2500, 0x257F};
  107. const block block::block_elements{0x2580, 0x259F};
  108. const block block::geometric_shapes{0x25A0, 0x25FF};
  109. const block block::miscellaneous_symbols{0x2600, 0x26FF};
  110. const block block::dingbats{0x2700, 0x27BF};
  111. const block block::miscellaneous_mathematical_symbols_a{0x27C0, 0x27EF};
  112. const block block::supplemental_arrows_a{0x27F0, 0x27FF};
  113. const block block::braille_patterns{0x2800, 0x28FF};
  114. const block block::supplemental_arrows_b{0x2900, 0x297F};
  115. const block block::miscellaneous_mathematical_symbols_b{0x2980, 0x29FF};
  116. const block block::supplemental_mathematical_operators{0x2A00, 0x2AFF};
  117. const block block::miscellaneous_symbols_and_arrows{0x2B00, 0x2BFF};
  118. const block block::glagolitic{0x2C00, 0x2C5F};
  119. const block block::latin_extended_c{0x2C60, 0x2C7F};
  120. const block block::coptic{0x2C80, 0x2CFF};
  121. const block block::georgian_supplement{0x2D00, 0x2D2F};
  122. const block block::tifinagh{0x2D30, 0x2D7F};
  123. const block block::ethiopic_extended{0x2D80, 0x2DDF};
  124. const block block::cyrillic_extended_a{0x2DE0, 0x2DFF};
  125. const block block::supplemental_punctuation{0x2E00, 0x2E7F};
  126. const block block::cjk_radicals_supplement{0x2E80, 0x2EFF};
  127. const block block::kangxi_radicals{0x2F00, 0x2FDF};
  128. const block block::ideographic_description_characters{0x2FF0, 0x2FFF};
  129. const block block::cjk_symbols_and_punctuation{0x3000, 0x303F};
  130. const block block::hiragana{0x3040, 0x309F};
  131. const block block::katakana{0x30A0, 0x30FF};
  132. const block block::bopomofo{0x3100, 0x312F};
  133. const block block::hangul_compatibility_jamo{0x3130, 0x318F};
  134. const block block::kanbun{0x3190, 0x319F};
  135. const block block::bopomofo_extended{0x31A0, 0x31BF};
  136. const block block::cjk_strokes{0x31C0, 0x31EF};
  137. const block block::katakana_phonetic_extensions{0x31F0, 0x31FF};
  138. const block block::enclosed_cjk_letters_and_months{0x3200, 0x32FF};
  139. const block block::cjk_compatibility{0x3300, 0x33FF};
  140. const block block::cjk_unified_ideographs_extension_a{0x3400, 0x4DBF};
  141. const block block::yijing_hexagram_symbols{0x4DC0, 0x4DFF};
  142. const block block::cjk_unified_ideographs{0x4E00, 0x9FFF};
  143. const block block::yi_syllables{0xA000, 0xA48F};
  144. const block block::yi_radicals{0xA490, 0xA4CF};
  145. const block block::lisu{0xA4D0, 0xA4FF};
  146. const block block::vai{0xA500, 0xA63F};
  147. const block block::cyrillic_extended_b{0xA640, 0xA69F};
  148. const block block::bamum{0xA6A0, 0xA6FF};
  149. const block block::modifier_tone_letters{0xA700, 0xA71F};
  150. const block block::latin_extended_d{0xA720, 0xA7FF};
  151. const block block::syloti_nagri{0xA800, 0xA82F};
  152. const block block::common_indic_number_forms{0xA830, 0xA83F};
  153. const block block::phags_pa{0xA840, 0xA87F};
  154. const block block::saurashtra{0xA880, 0xA8DF};
  155. const block block::devanagari_extended{0xA8E0, 0xA8FF};
  156. const block block::kayah_li{0xA900, 0xA92F};
  157. const block block::rejang{0xA930, 0xA95F};
  158. const block block::hangul_jamo_extended_a{0xA960, 0xA97F};
  159. const block block::javanese{0xA980, 0xA9DF};
  160. const block block::myanmar_extended_b{0xA9E0, 0xA9FF};
  161. const block block::cham{0xAA00, 0xAA5F};
  162. const block block::myanmar_extended_a{0xAA60, 0xAA7F};
  163. const block block::tai_viet{0xAA80, 0xAADF};
  164. const block block::meetei_mayek_extensions{0xAAE0, 0xAAFF};
  165. const block block::ethiopic_extended_a{0xAB00, 0xAB2F};
  166. const block block::latin_extended_e{0xAB30, 0xAB6F};
  167. const block block::cherokee_supplement{0xAB70, 0xABBF};
  168. const block block::meetei_mayek{0xABC0, 0xABFF};
  169. const block block::hangul_syllables{0xAC00, 0xD7AF};
  170. const block block::hangul_jamo_extended_b{0xD7B0, 0xD7FF};
  171. const block block::high_surrogates{0xD800, 0xDB7F};
  172. const block block::high_private_use_surrogates{0xDB80, 0xDBFF};
  173. const block block::low_surrogates{0xDC00, 0xDFFF};
  174. const block block::private_use_area{0xE000, 0xF8FF};
  175. const block block::cjk_compatibility_ideographs{0xF900, 0xFAFF};
  176. const block block::alphabetic_presentation_forms{0xFB00, 0xFB4F};
  177. const block block::arabic_presentation_forms_a{0xFB50, 0xFDFF};
  178. const block block::variation_selectors{0xFE00, 0xFE0F};
  179. const block block::vertical_forms{0xFE10, 0xFE1F};
  180. const block block::combining_half_marks{0xFE20, 0xFE2F};
  181. const block block::cjk_compatibility_forms{0xFE30, 0xFE4F};
  182. const block block::small_form_variants{0xFE50, 0xFE6F};
  183. const block block::arabic_presentation_forms_b{0xFE70, 0xFEFF};
  184. const block block::halfwidth_and_fullwidth_forms{0xFF00, 0xFFEF};
  185. const block block::specials{0xFFF0, 0xFFFF};
  186. const block block::linear_b_syllabary{0x10000, 0x1007F};
  187. const block block::linear_b_ideograms{0x10080, 0x100FF};
  188. const block block::aegean_numbers{0x10100, 0x1013F};
  189. const block block::ancient_greek_numbers{0x10140, 0x1018F};
  190. const block block::ancient_symbols{0x10190, 0x101CF};
  191. const block block::phaistos_disc{0x101D0, 0x101FF};
  192. const block block::lycian{0x10280, 0x1029F};
  193. const block block::carian{0x102A0, 0x102DF};
  194. const block block::coptic_epact_numbers{0x102E0, 0x102FF};
  195. const block block::old_italic{0x10300, 0x1032F};
  196. const block block::gothic{0x10330, 0x1034F};
  197. const block block::old_permic{0x10350, 0x1037F};
  198. const block block::ugaritic{0x10380, 0x1039F};
  199. const block block::old_persian{0x103A0, 0x103DF};
  200. const block block::deseret{0x10400, 0x1044F};
  201. const block block::shavian{0x10450, 0x1047F};
  202. const block block::osmanya{0x10480, 0x104AF};
  203. const block block::osage{0x104B0, 0x104FF};
  204. const block block::elbasan{0x10500, 0x1052F};
  205. const block block::caucasian_albanian{0x10530, 0x1056F};
  206. const block block::vithkuqi{0x10570, 0x105BF};
  207. const block block::linear_a{0x10600, 0x1077F};
  208. const block block::latin_extended_f{0x10780, 0x107BF};
  209. const block block::cypriot_syllabary{0x10800, 0x1083F};
  210. const block block::imperial_aramaic{0x10840, 0x1085F};
  211. const block block::palmyrene{0x10860, 0x1087F};
  212. const block block::nabataean{0x10880, 0x108AF};
  213. const block block::hatran{0x108E0, 0x108FF};
  214. const block block::phoenician{0x10900, 0x1091F};
  215. const block block::lydian{0x10920, 0x1093F};
  216. const block block::meroitic_hieroglyphs{0x10980, 0x1099F};
  217. const block block::meroitic_cursive{0x109A0, 0x109FF};
  218. const block block::kharoshthi{0x10A00, 0x10A5F};
  219. const block block::old_south_arabian{0x10A60, 0x10A7F};
  220. const block block::old_north_arabian{0x10A80, 0x10A9F};
  221. const block block::manichaean{0x10AC0, 0x10AFF};
  222. const block block::avestan{0x10B00, 0x10B3F};
  223. const block block::inscriptional_parthian{0x10B40, 0x10B5F};
  224. const block block::inscriptional_pahlavi{0x10B60, 0x10B7F};
  225. const block block::psalter_pahlavi{0x10B80, 0x10BAF};
  226. const block block::old_turkic{0x10C00, 0x10C4F};
  227. const block block::old_hungarian{0x10C80, 0x10CFF};
  228. const block block::hanifi_rohingya{0x10D00, 0x10D3F};
  229. const block block::rumi_numeral_symbols{0x10E60, 0x10E7F};
  230. const block block::yezidi{0x10E80, 0x10EBF};
  231. const block block::old_sogdian{0x10F00, 0x10F2F};
  232. const block block::sogdian{0x10F30, 0x10F6F};
  233. const block block::old_uyghur{0x10F70, 0x10FAF};
  234. const block block::chorasmian{0x10FB0, 0x10FDF};
  235. const block block::elymaic{0x10FE0, 0x10FFF};
  236. const block block::brahmi{0x11000, 0x1107F};
  237. const block block::kaithi{0x11080, 0x110CF};
  238. const block block::sora_sompeng{0x110D0, 0x110FF};
  239. const block block::chakma{0x11100, 0x1114F};
  240. const block block::mahajani{0x11150, 0x1117F};
  241. const block block::sharada{0x11180, 0x111DF};
  242. const block block::sinhala_archaic_numbers{0x111E0, 0x111FF};
  243. const block block::khojki{0x11200, 0x1124F};
  244. const block block::multani{0x11280, 0x112AF};
  245. const block block::khudawadi{0x112B0, 0x112FF};
  246. const block block::grantha{0x11300, 0x1137F};
  247. const block block::newa{0x11400, 0x1147F};
  248. const block block::tirhuta{0x11480, 0x114DF};
  249. const block block::siddham{0x11580, 0x115FF};
  250. const block block::modi{0x11600, 0x1165F};
  251. const block block::mongolian_supplement{0x11660, 0x1167F};
  252. const block block::takri{0x11680, 0x116CF};
  253. const block block::ahom{0x11700, 0x1174F};
  254. const block block::dogra{0x11800, 0x1184F};
  255. const block block::warang_citi{0x118A0, 0x118FF};
  256. const block block::dives_akuru{0x11900, 0x1195F};
  257. const block block::nandinagari{0x119A0, 0x119FF};
  258. const block block::zanabazar_square{0x11A00, 0x11A4F};
  259. const block block::soyombo{0x11A50, 0x11AAF};
  260. const block block::unified_canadian_aboriginal_syllabics_extended_a{0x11AB0, 0x11ABF};
  261. const block block::pau_cin_hau{0x11AC0, 0x11AFF};
  262. const block block::bhaiksuki{0x11C00, 0x11C6F};
  263. const block block::marchen{0x11C70, 0x11CBF};
  264. const block block::masaram_gondi{0x11D00, 0x11D5F};
  265. const block block::gunjala_gondi{0x11D60, 0x11DAF};
  266. const block block::makasar{0x11EE0, 0x11EFF};
  267. const block block::lisu_supplement{0x11FB0, 0x11FBF};
  268. const block block::tamil_supplement{0x11FC0, 0x11FFF};
  269. const block block::cuneiform{0x12000, 0x123FF};
  270. const block block::cuneiform_numbers_and_punctuation{0x12400, 0x1247F};
  271. const block block::early_dynastic_cuneiform{0x12480, 0x1254F};
  272. const block block::cypro_minoan{0x12F90, 0x12FFF};
  273. const block block::egyptian_hieroglyphs{0x13000, 0x1342F};
  274. const block block::egyptian_hieroglyph_format_controls{0x13430, 0x1343F};
  275. const block block::anatolian_hieroglyphs{0x14400, 0x1467F};
  276. const block block::bamum_supplement{0x16800, 0x16A3F};
  277. const block block::mro{0x16A40, 0x16A6F};
  278. const block block::tangsa{0x16A70, 0x16ACF};
  279. const block block::bassa_vah{0x16AD0, 0x16AFF};
  280. const block block::pahawh_hmong{0x16B00, 0x16B8F};
  281. const block block::medefaidrin{0x16E40, 0x16E9F};
  282. const block block::miao{0x16F00, 0x16F9F};
  283. const block block::ideographic_symbols_and_punctuation{0x16FE0, 0x16FFF};
  284. const block block::tangut{0x17000, 0x187FF};
  285. const block block::tangut_components{0x18800, 0x18AFF};
  286. const block block::khitan_small_script{0x18B00, 0x18CFF};
  287. const block block::tangut_supplement{0x18D00, 0x18D7F};
  288. const block block::kana_extended_b{0x1AFF0, 0x1AFFF};
  289. const block block::kana_supplement{0x1B000, 0x1B0FF};
  290. const block block::kana_extended_a{0x1B100, 0x1B12F};
  291. const block block::small_kana_extension{0x1B130, 0x1B16F};
  292. const block block::nushu{0x1B170, 0x1B2FF};
  293. const block block::duployan{0x1BC00, 0x1BC9F};
  294. const block block::shorthand_format_controls{0x1BCA0, 0x1BCAF};
  295. const block block::znamenny_musical_notation{0x1CF00, 0x1CFCF};
  296. const block block::byzantine_musical_symbols{0x1D000, 0x1D0FF};
  297. const block block::musical_symbols{0x1D100, 0x1D1FF};
  298. const block block::ancient_greek_musical_notation{0x1D200, 0x1D24F};
  299. const block block::mayan_numerals{0x1D2E0, 0x1D2FF};
  300. const block block::tai_xuan_jing_symbols{0x1D300, 0x1D35F};
  301. const block block::counting_rod_numerals{0x1D360, 0x1D37F};
  302. const block block::mathematical_alphanumeric_symbols{0x1D400, 0x1D7FF};
  303. const block block::sutton_signwriting{0x1D800, 0x1DAAF};
  304. const block block::latin_extended_g{0x1DF00, 0x1DFFF};
  305. const block block::glagolitic_supplement{0x1E000, 0x1E02F};
  306. const block block::nyiakeng_puachue_hmong{0x1E100, 0x1E14F};
  307. const block block::toto{0x1E290, 0x1E2BF};
  308. const block block::wancho{0x1E2C0, 0x1E2FF};
  309. const block block::ethiopic_extended_b{0x1E7E0, 0x1E7FF};
  310. const block block::mende_kikakui{0x1E800, 0x1E8DF};
  311. const block block::adlam{0x1E900, 0x1E95F};
  312. const block block::indic_siyaq_numbers{0x1EC70, 0x1ECBF};
  313. const block block::ottoman_siyaq_numbers{0x1ED00, 0x1ED4F};
  314. const block block::arabic_mathematical_alphabetic_symbols{0x1EE00, 0x1EEFF};
  315. const block block::mahjong_tiles{0x1F000, 0x1F02F};
  316. const block block::domino_tiles{0x1F030, 0x1F09F};
  317. const block block::playing_cards{0x1F0A0, 0x1F0FF};
  318. const block block::enclosed_alphanumeric_supplement{0x1F100, 0x1F1FF};
  319. const block block::enclosed_ideographic_supplement{0x1F200, 0x1F2FF};
  320. const block block::miscellaneous_symbols_and_pictographs{0x1F300, 0x1F5FF};
  321. const block block::emoticons{0x1F600, 0x1F64F};
  322. const block block::ornamental_dingbats{0x1F650, 0x1F67F};
  323. const block block::transport_and_map_symbols{0x1F680, 0x1F6FF};
  324. const block block::alchemical_symbols{0x1F700, 0x1F77F};
  325. const block block::geometric_shapes_extended{0x1F780, 0x1F7FF};
  326. const block block::supplemental_arrows_c{0x1F800, 0x1F8FF};
  327. const block block::supplemental_symbols_and_pictographs{0x1F900, 0x1F9FF};
  328. const block block::chess_symbols{0x1FA00, 0x1FA6F};
  329. const block block::symbols_and_pictographs_extended_a{0x1FA70, 0x1FAFF};
  330. const block block::symbols_for_legacy_computing{0x1FB00, 0x1FBFF};
  331. const block block::cjk_unified_ideographs_extension_b{0x20000, 0x2A6DF};
  332. const block block::cjk_unified_ideographs_extension_c{0x2A700, 0x2B73F};
  333. const block block::cjk_unified_ideographs_extension_d{0x2B740, 0x2B81F};
  334. const block block::cjk_unified_ideographs_extension_e{0x2B820, 0x2CEAF};
  335. const block block::cjk_unified_ideographs_extension_f{0x2CEB0, 0x2EBEF};
  336. const block block::cjk_compatibility_ideographs_supplement{0x2F800, 0x2FA1F};
  337. const block block::cjk_unified_ideographs_extension_g{0x30000, 0x3134F};
  338. const block block::tags{0xE0000, 0xE007F};
  339. const block block::variation_selectors_supplement{0xE0100, 0xE01EF};
  340. const block block::supplementary_private_use_area_a{0xF0000, 0xFFFFF};
  341. const block block::supplementary_private_use_area_b{0x100000, 0x10FFFF};
  342. } // namespace unicode
  343. } // namespace font