source: icGREP/icgrep-devel/icgrep/UCD/PropertyValueAliases.h @ 4366

Last change on this file since 4366 was 4366, checked in by cameron, 4 years ago

Updated files generated from revised UCD_properties.py

File size: 36.6 KB
Line 
1#ifndef PROPERTYVALUEALIASES_H
2#define PROPERTYVALUEALIASES_H
3/*
4 *  Copyright (c) 2014 International Characters, Inc.
5 *  This software is licensed to the public under the Open Software License 3.0.
6 *  icgrep is a trademark of International Characters, Inc.
7 *
8 *  This file is generated by UCD_properties.py - manual edits may be lost.
9 */
10
11#include <string>
12#include <unordered_map>
13#include "PropertyAliases.h"
14namespace UCD {
15
16  namespace Binary {
17    enum value_t {
18      N, Y};
19    const std::vector<std::string> value_names = {
20      "No", "Yes"};
21    const std::unordered_map<std::string, int> aliases_only_map = {
22      {"n", N}, {"y", Y}, {"no", N}, {"yes", Y}, {"f", N}, {"t", Y},
23      {"false", N}, {"true", Y}};
24  }
25
26  namespace JSN {
27    enum value_t {
28      A, AE, B, BB, BS, C, D, DD, E, EO, EU, G, GG, GS, H, I, J, JJ, K, L,
29      LB, LG, LH, LM, LP, LS, LT, M, N, NG, NH, NJ, O, OE, P, R, S, SS, T,
30      U, WA, WAE, WE, WEO, WI, YA, YAE, YE, YEO, YI, YO, YU};
31    const std::vector<std::string> value_names = {
32      "A", "AE", "B", "BB", "BS", "C", "D", "DD", "E", "EO", "EU", "G",
33      "GG", "GS", "H", "I", "J", "JJ", "K", "L", "LB", "LG", "LH", "LM",
34      "LP", "LS", "LT", "M", "N", "NG", "NH", "NJ", "O", "OE", "P", "R",
35      "S", "SS", "T", "U", "WA", "WAE", "WE", "WEO", "WI", "YA", "YAE",
36      "YE", "YEO", "YI", "YO", "YU"};
37    const std::unordered_map<std::string, int> aliases_only_map = {
38      };
39  }
40
41  namespace AGE {
42    enum value_t {
43      V1_1, V2_0, V2_1, V3_0, V3_1, V3_2, V4_0, V4_1, V5_0, V5_1, V5_2,
44      V6_0, V6_1, V6_2, V6_3, V7_0, Unassigned};
45    const std::vector<std::string> value_names = {
46      "V1_1", "V2_0", "V2_1", "V3_0", "V3_1", "V3_2", "V4_0", "V4_1",
47      "V5_0", "V5_1", "V5_2", "V6_0", "V6_1", "V6_2", "V6_3", "V7_0",
48      "Unassigned"};
49    const std::unordered_map<std::string, int> aliases_only_map = {
50      {"1.1", AGE::V1_1}, {"2.0", AGE::V2_0}, {"2.1", AGE::V2_1},
51      {"3.0", AGE::V3_0}, {"3.1", AGE::V3_1}, {"3.2", AGE::V3_2},
52      {"4.0", AGE::V4_0}, {"4.1", AGE::V4_1}, {"5.0", AGE::V5_0},
53      {"5.1", AGE::V5_1}, {"5.2", AGE::V5_2}, {"6.0", AGE::V6_0},
54      {"6.1", AGE::V6_1}, {"6.2", AGE::V6_2}, {"6.3", AGE::V6_3},
55      {"7.0", AGE::V7_0}, {"na", AGE::Unassigned}};
56  }
57
58  namespace BLK {
59    enum value_t {
60      Aegean_Numbers, Alchemical, Alphabetic_PF, Ancient_Greek_Music,
61      Ancient_Greek_Numbers, Ancient_Symbols, Arabic, Arabic_Ext_A,
62      Arabic_Math, Arabic_PF_A, Arabic_PF_B, Arabic_Sup, Armenian, Arrows,
63      ASCII, Avestan, Balinese, Bamum, Bamum_Sup, Bassa_Vah, Batak, Bengali,
64      Block_Elements, Bopomofo, Bopomofo_Ext, Box_Drawing, Brahmi, Braille,
65      Buginese, Buhid, Byzantine_Music, Carian, Caucasian_Albanian, Chakma,
66      Cham, Cherokee, CJK, CJK_Compat, CJK_Compat_Forms,
67      CJK_Compat_Ideographs, CJK_Compat_Ideographs_Sup, CJK_Ext_A,
68      CJK_Ext_B, CJK_Ext_C, CJK_Ext_D, CJK_Radicals_Sup, CJK_Strokes,
69      CJK_Symbols, Compat_Jamo, Control_Pictures, Coptic,
70      Coptic_Epact_Numbers, Counting_Rod, Cuneiform, Cuneiform_Numbers,
71      Currency_Symbols, Cypriot_Syllabary, Cyrillic, Cyrillic_Ext_A,
72      Cyrillic_Ext_B, Cyrillic_Sup, Deseret, Devanagari, Devanagari_Ext,
73      Diacriticals, Diacriticals_Ext, Diacriticals_For_Symbols,
74      Diacriticals_Sup, Dingbats, Domino, Duployan, Egyptian_Hieroglyphs,
75      Elbasan, Emoticons, Enclosed_Alphanum, Enclosed_Alphanum_Sup,
76      Enclosed_CJK, Enclosed_Ideographic_Sup, Ethiopic, Ethiopic_Ext,
77      Ethiopic_Ext_A, Ethiopic_Sup, Geometric_Shapes, Geometric_Shapes_Ext,
78      Georgian, Georgian_Sup, Glagolitic, Gothic, Grantha, Greek, Greek_Ext,
79      Gujarati, Gurmukhi, Half_And_Full_Forms, Half_Marks, Hangul, Hanunoo,
80      Hebrew, High_PU_Surrogates, High_Surrogates, Hiragana, IDC,
81      Imperial_Aramaic, Indic_Number_Forms, Inscriptional_Pahlavi,
82      Inscriptional_Parthian, IPA_Ext, Jamo, Jamo_Ext_A, Jamo_Ext_B,
83      Javanese, Kaithi, Kana_Sup, Kanbun, Kangxi, Kannada, Katakana,
84      Katakana_Ext, Kayah_Li, Kharoshthi, Khmer, Khmer_Symbols, Khojki,
85      Khudawadi, Lao, Latin_1_Sup, Latin_Ext_A, Latin_Ext_Additional,
86      Latin_Ext_B, Latin_Ext_C, Latin_Ext_D, Latin_Ext_E, Lepcha,
87      Letterlike_Symbols, Limbu, Linear_A, Linear_B_Ideograms,
88      Linear_B_Syllabary, Lisu, Low_Surrogates, Lycian, Lydian, Mahajani,
89      Mahjong, Malayalam, Mandaic, Manichaean, Math_Alphanum,
90      Math_Operators, Meetei_Mayek, Meetei_Mayek_Ext, Mende_Kikakui,
91      Meroitic_Cursive, Meroitic_Hieroglyphs, Miao, Misc_Arrows,
92      Misc_Math_Symbols_A, Misc_Math_Symbols_B, Misc_Pictographs,
93      Misc_Symbols, Misc_Technical, Modi, Modifier_Letters,
94      Modifier_Tone_Letters, Mongolian, Mro, Music, Myanmar, Myanmar_Ext_A,
95      Myanmar_Ext_B, Nabataean, NB, New_Tai_Lue, NKo, Number_Forms, OCR,
96      Ogham, Ol_Chiki, Old_Italic, Old_North_Arabian, Old_Permic,
97      Old_Persian, Old_South_Arabian, Old_Turkic, Oriya,
98      Ornamental_Dingbats, Osmanya, Pahawh_Hmong, Palmyrene, Pau_Cin_Hau,
99      Phags_Pa, Phaistos, Phoenician, Phonetic_Ext, Phonetic_Ext_Sup,
100      Playing_Cards, Psalter_Pahlavi, PUA, Punctuation, Rejang, Rumi, Runic,
101      Samaritan, Saurashtra, Sharada, Shavian, Shorthand_Format_Controls,
102      Siddham, Sinhala, Sinhala_Archaic_Numbers, Small_Forms, Sora_Sompeng,
103      Specials, Sundanese, Sundanese_Sup, Sup_Arrows_A, Sup_Arrows_B,
104      Sup_Arrows_C, Sup_Math_Operators, Sup_PUA_A, Sup_PUA_B,
105      Sup_Punctuation, Super_And_Sub, Syloti_Nagri, Syriac, Tagalog,
106      Tagbanwa, Tags, Tai_Le, Tai_Tham, Tai_Viet, Tai_Xuan_Jing, Takri,
107      Tamil, Telugu, Thaana, Thai, Tibetan, Tifinagh, Tirhuta,
108      Transport_And_Map, UCAS, UCAS_Ext, Ugaritic, Vai, Vedic_Ext,
109      Vertical_Forms, VS, VS_Sup, Warang_Citi, Yi_Radicals, Yi_Syllables,
110      Yijing};
111    const std::vector<std::string> value_names = {
112      "Aegean_Numbers", "Alchemical_Symbols",
113      "Alphabetic_Presentation_Forms", "Ancient_Greek_Musical_Notation",
114      "Ancient_Greek_Numbers", "Ancient_Symbols", "Arabic",
115      "Arabic_Extended_A", "Arabic_Mathematical_Alphabetic_Symbols",
116      "Arabic_Presentation_Forms_A", "Arabic_Presentation_Forms_B",
117      "Arabic_Supplement", "Armenian", "Arrows", "Basic_Latin", "Avestan",
118      "Balinese", "Bamum", "Bamum_Supplement", "Bassa_Vah", "Batak",
119      "Bengali", "Block_Elements", "Bopomofo", "Bopomofo_Extended",
120      "Box_Drawing", "Brahmi", "Braille_Patterns", "Buginese", "Buhid",
121      "Byzantine_Musical_Symbols", "Carian", "Caucasian_Albanian", "Chakma",
122      "Cham", "Cherokee", "CJK_Unified_Ideographs", "CJK_Compatibility",
123      "CJK_Compatibility_Forms", "CJK_Compatibility_Ideographs",
124      "CJK_Compatibility_Ideographs_Supplement",
125      "CJK_Unified_Ideographs_Extension_A",
126      "CJK_Unified_Ideographs_Extension_B",
127      "CJK_Unified_Ideographs_Extension_C",
128      "CJK_Unified_Ideographs_Extension_D", "CJK_Radicals_Supplement",
129      "CJK_Strokes", "CJK_Symbols_And_Punctuation",
130      "Hangul_Compatibility_Jamo", "Control_Pictures", "Coptic",
131      "Coptic_Epact_Numbers", "Counting_Rod_Numerals", "Cuneiform",
132      "Cuneiform_Numbers_And_Punctuation", "Currency_Symbols",
133      "Cypriot_Syllabary", "Cyrillic", "Cyrillic_Extended_A",
134      "Cyrillic_Extended_B", "Cyrillic_Supplement", "Deseret", "Devanagari",
135      "Devanagari_Extended", "Combining_Diacritical_Marks",
136      "Combining_Diacritical_Marks_Extended",
137      "Combining_Diacritical_Marks_For_Symbols",
138      "Combining_Diacritical_Marks_Supplement", "Dingbats", "Domino_Tiles",
139      "Duployan", "Egyptian_Hieroglyphs", "Elbasan", "Emoticons",
140      "Enclosed_Alphanumerics", "Enclosed_Alphanumeric_Supplement",
141      "Enclosed_CJK_Letters_And_Months", "Enclosed_Ideographic_Supplement",
142      "Ethiopic", "Ethiopic_Extended", "Ethiopic_Extended_A",
143      "Ethiopic_Supplement", "Geometric_Shapes",
144      "Geometric_Shapes_Extended", "Georgian", "Georgian_Supplement",
145      "Glagolitic", "Gothic", "Grantha", "Greek_And_Coptic",
146      "Greek_Extended", "Gujarati", "Gurmukhi",
147      "Halfwidth_And_Fullwidth_Forms", "Combining_Half_Marks",
148      "Hangul_Syllables", "Hanunoo", "Hebrew",
149      "High_Private_Use_Surrogates", "High_Surrogates", "Hiragana",
150      "Ideographic_Description_Characters", "Imperial_Aramaic",
151      "Common_Indic_Number_Forms", "Inscriptional_Pahlavi",
152      "Inscriptional_Parthian", "IPA_Extensions", "Hangul_Jamo",
153      "Hangul_Jamo_Extended_A", "Hangul_Jamo_Extended_B", "Javanese",
154      "Kaithi", "Kana_Supplement", "Kanbun", "Kangxi_Radicals", "Kannada",
155      "Katakana", "Katakana_Phonetic_Extensions", "Kayah_Li", "Kharoshthi",
156      "Khmer", "Khmer_Symbols", "Khojki", "Khudawadi", "Lao",
157      "Latin_1_Supplement", "Latin_Extended_A", "Latin_Extended_Additional",
158      "Latin_Extended_B", "Latin_Extended_C", "Latin_Extended_D",
159      "Latin_Extended_E", "Lepcha", "Letterlike_Symbols", "Limbu",
160      "Linear_A", "Linear_B_Ideograms", "Linear_B_Syllabary", "Lisu",
161      "Low_Surrogates", "Lycian", "Lydian", "Mahajani", "Mahjong_Tiles",
162      "Malayalam", "Mandaic", "Manichaean",
163      "Mathematical_Alphanumeric_Symbols", "Mathematical_Operators",
164      "Meetei_Mayek", "Meetei_Mayek_Extensions", "Mende_Kikakui",
165      "Meroitic_Cursive", "Meroitic_Hieroglyphs", "Miao",
166      "Miscellaneous_Symbols_And_Arrows",
167      "Miscellaneous_Mathematical_Symbols_A",
168      "Miscellaneous_Mathematical_Symbols_B",
169      "Miscellaneous_Symbols_And_Pictographs", "Miscellaneous_Symbols",
170      "Miscellaneous_Technical", "Modi", "Spacing_Modifier_Letters",
171      "Modifier_Tone_Letters", "Mongolian", "Mro", "Musical_Symbols",
172      "Myanmar", "Myanmar_Extended_A", "Myanmar_Extended_B", "Nabataean",
173      "No_Block", "New_Tai_Lue", "NKo", "Number_Forms",
174      "Optical_Character_Recognition", "Ogham", "Ol_Chiki", "Old_Italic",
175      "Old_North_Arabian", "Old_Permic", "Old_Persian", "Old_South_Arabian",
176      "Old_Turkic", "Oriya", "Ornamental_Dingbats", "Osmanya",
177      "Pahawh_Hmong", "Palmyrene", "Pau_Cin_Hau", "Phags_Pa",
178      "Phaistos_Disc", "Phoenician", "Phonetic_Extensions",
179      "Phonetic_Extensions_Supplement", "Playing_Cards", "Psalter_Pahlavi",
180      "Private_Use_Area", "General_Punctuation", "Rejang",
181      "Rumi_Numeral_Symbols", "Runic", "Samaritan", "Saurashtra", "Sharada",
182      "Shavian", "Shorthand_Format_Controls", "Siddham", "Sinhala",
183      "Sinhala_Archaic_Numbers", "Small_Form_Variants", "Sora_Sompeng",
184      "Specials", "Sundanese", "Sundanese_Supplement",
185      "Supplemental_Arrows_A", "Supplemental_Arrows_B",
186      "Supplemental_Arrows_C", "Supplemental_Mathematical_Operators",
187      "Supplementary_Private_Use_Area_A",
188      "Supplementary_Private_Use_Area_B", "Supplemental_Punctuation",
189      "Superscripts_And_Subscripts", "Syloti_Nagri", "Syriac", "Tagalog",
190      "Tagbanwa", "Tags", "Tai_Le", "Tai_Tham", "Tai_Viet",
191      "Tai_Xuan_Jing_Symbols", "Takri", "Tamil", "Telugu", "Thaana", "Thai",
192      "Tibetan", "Tifinagh", "Tirhuta", "Transport_And_Map_Symbols",
193      "Unified_Canadian_Aboriginal_Syllabics",
194      "Unified_Canadian_Aboriginal_Syllabics_Extended", "Ugaritic", "Vai",
195      "Vedic_Extensions", "Vertical_Forms", "Variation_Selectors",
196      "Variation_Selectors_Supplement", "Warang_Citi", "Yi_Radicals",
197      "Yi_Syllables", "Yijing_Hexagram_Symbols"};
198    const std::unordered_map<std::string, int> aliases_only_map = {
199      {"alchemical", BLK::Alchemical}, {"alphabeticpf", BLK::Alphabetic_PF},
200      {"ancientgreekmusic", BLK::Ancient_Greek_Music},
201      {"arabicexta", BLK::Arabic_Ext_A}, {"arabicmath", BLK::Arabic_Math},
202      {"arabicpfa", BLK::Arabic_PF_A}, {"arabicpfb", BLK::Arabic_PF_B},
203      {"arabicsup", BLK::Arabic_Sup}, {"ascii", BLK::ASCII},
204      {"bamumsup", BLK::Bamum_Sup}, {"bopomofoext", BLK::Bopomofo_Ext},
205      {"braille", BLK::Braille}, {"byzantinemusic", BLK::Byzantine_Music},
206      {"canadiansyllabics", BLK::UCAS}, {"cjk", BLK::CJK},
207      {"cjkcompat", BLK::CJK_Compat},
208      {"cjkcompatforms", BLK::CJK_Compat_Forms},
209      {"cjkcompatideographs", BLK::CJK_Compat_Ideographs},
210      {"cjkcompatideographssup", BLK::CJK_Compat_Ideographs_Sup},
211      {"cjkexta", BLK::CJK_Ext_A}, {"cjkextb", BLK::CJK_Ext_B},
212      {"cjkextc", BLK::CJK_Ext_C}, {"cjkextd", BLK::CJK_Ext_D},
213      {"cjkradicalssup", BLK::CJK_Radicals_Sup},
214      {"cjksymbols", BLK::CJK_Symbols},
215      {"combiningmarksforsymbols", BLK::Diacriticals_For_Symbols},
216      {"compatjamo", BLK::Compat_Jamo}, {"countingrod", BLK::Counting_Rod},
217      {"cuneiformnumbers", BLK::Cuneiform_Numbers},
218      {"cyrillicexta", BLK::Cyrillic_Ext_A},
219      {"cyrillicextb", BLK::Cyrillic_Ext_B},
220      {"cyrillicsup", BLK::Cyrillic_Sup},
221      {"cyrillicsupplementary", BLK::Cyrillic_Sup},
222      {"devanagariext", BLK::Devanagari_Ext},
223      {"diacriticals", BLK::Diacriticals},
224      {"diacriticalsext", BLK::Diacriticals_Ext},
225      {"diacriticalsforsymbols", BLK::Diacriticals_For_Symbols},
226      {"diacriticalssup", BLK::Diacriticals_Sup}, {"domino", BLK::Domino},
227      {"enclosedalphanum", BLK::Enclosed_Alphanum},
228      {"enclosedalphanumsup", BLK::Enclosed_Alphanum_Sup},
229      {"enclosedcjk", BLK::Enclosed_CJK},
230      {"enclosedideographicsup", BLK::Enclosed_Ideographic_Sup},
231      {"ethiopicext", BLK::Ethiopic_Ext},
232      {"ethiopicexta", BLK::Ethiopic_Ext_A},
233      {"ethiopicsup", BLK::Ethiopic_Sup},
234      {"geometricshapesext", BLK::Geometric_Shapes_Ext},
235      {"georgiansup", BLK::Georgian_Sup}, {"greek", BLK::Greek},
236      {"greekext", BLK::Greek_Ext},
237      {"halfandfullforms", BLK::Half_And_Full_Forms},
238      {"halfmarks", BLK::Half_Marks}, {"hangul", BLK::Hangul},
239      {"highpusurrogates", BLK::High_PU_Surrogates}, {"idc", BLK::IDC},
240      {"indicnumberforms", BLK::Indic_Number_Forms},
241      {"ipaext", BLK::IPA_Ext}, {"jamo", BLK::Jamo},
242      {"jamoexta", BLK::Jamo_Ext_A}, {"jamoextb", BLK::Jamo_Ext_B},
243      {"kanasup", BLK::Kana_Sup}, {"kangxi", BLK::Kangxi},
244      {"katakanaext", BLK::Katakana_Ext}, {"latin1", BLK::Latin_1_Sup},
245      {"latin1sup", BLK::Latin_1_Sup}, {"latinexta", BLK::Latin_Ext_A},
246      {"latinextadditional", BLK::Latin_Ext_Additional},
247      {"latinextb", BLK::Latin_Ext_B}, {"latinextc", BLK::Latin_Ext_C},
248      {"latinextd", BLK::Latin_Ext_D}, {"latinexte", BLK::Latin_Ext_E},
249      {"mahjong", BLK::Mahjong}, {"mathalphanum", BLK::Math_Alphanum},
250      {"mathoperators", BLK::Math_Operators},
251      {"meeteimayekext", BLK::Meetei_Mayek_Ext},
252      {"miscarrows", BLK::Misc_Arrows},
253      {"miscmathsymbolsa", BLK::Misc_Math_Symbols_A},
254      {"miscmathsymbolsb", BLK::Misc_Math_Symbols_B},
255      {"miscpictographs", BLK::Misc_Pictographs},
256      {"miscsymbols", BLK::Misc_Symbols},
257      {"misctechnical", BLK::Misc_Technical},
258      {"modifierletters", BLK::Modifier_Letters}, {"music", BLK::Music},
259      {"myanmarexta", BLK::Myanmar_Ext_A},
260      {"myanmarextb", BLK::Myanmar_Ext_B}, {"nb", BLK::NB},
261      {"ocr", BLK::OCR}, {"phaistos", BLK::Phaistos},
262      {"phoneticext", BLK::Phonetic_Ext},
263      {"phoneticextsup", BLK::Phonetic_Ext_Sup}, {"privateuse", BLK::PUA},
264      {"pua", BLK::PUA}, {"punctuation", BLK::Punctuation},
265      {"rumi", BLK::Rumi}, {"smallforms", BLK::Small_Forms},
266      {"sundanesesup", BLK::Sundanese_Sup},
267      {"suparrowsa", BLK::Sup_Arrows_A}, {"suparrowsb", BLK::Sup_Arrows_B},
268      {"suparrowsc", BLK::Sup_Arrows_C},
269      {"superandsub", BLK::Super_And_Sub},
270      {"supmathoperators", BLK::Sup_Math_Operators},
271      {"suppuaa", BLK::Sup_PUA_A}, {"suppuab", BLK::Sup_PUA_B},
272      {"suppunctuation", BLK::Sup_Punctuation},
273      {"taixuanjing", BLK::Tai_Xuan_Jing},
274      {"transportandmap", BLK::Transport_And_Map}, {"ucas", BLK::UCAS},
275      {"ucasext", BLK::UCAS_Ext}, {"vedicext", BLK::Vedic_Ext},
276      {"vs", BLK::VS}, {"vssup", BLK::VS_Sup}, {"yijing", BLK::Yijing}};
277  }
278
279  namespace SC {
280    enum value_t {
281      Aghb, Arab, Armi, Armn, Avst, Bali, Bamu, Bass, Batk, Beng, Bopo,
282      Brah, Brai, Bugi, Buhd, Cakm, Cans, Cari, Cham, Cher, Copt, Cprt,
283      Cyrl, Deva, Dsrt, Dupl, Egyp, Elba, Ethi, Geor, Glag, Goth, Gran,
284      Grek, Gujr, Guru, Hang, Hani, Hano, Hebr, Hira, Hmng, Hrkt, Ital,
285      Java, Kali, Kana, Khar, Khmr, Khoj, Knda, Kthi, Lana, Laoo, Latn,
286      Lepc, Limb, Lina, Linb, Lisu, Lyci, Lydi, Mahj, Mand, Mani, Mend,
287      Merc, Mero, Mlym, Modi, Mong, Mroo, Mtei, Mymr, Narb, Nbat, Nkoo,
288      Ogam, Olck, Orkh, Orya, Osma, Palm, Pauc, Perm, Phag, Phli, Phlp,
289      Phnx, Plrd, Prti, Rjng, Runr, Samr, Sarb, Saur, Shaw, Shrd, Sidd,
290      Sind, Sinh, Sora, Sund, Sylo, Syrc, Tagb, Takr, Tale, Talu, Taml,
291      Tavt, Telu, Tfng, Tglg, Thaa, Thai, Tibt, Tirh, Ugar, Vaii, Wara,
292      Xpeo, Xsux, Yiii, Zinh, Zyyy, Zzzz};
293    const std::vector<std::string> value_names = {
294      "Caucasian_Albanian", "Arabic", "Imperial_Aramaic", "Armenian",
295      "Avestan", "Balinese", "Bamum", "Bassa_Vah", "Batak", "Bengali",
296      "Bopomofo", "Brahmi", "Braille", "Buginese", "Buhid", "Chakma",
297      "Canadian_Aboriginal", "Carian", "Cham", "Cherokee", "Coptic",
298      "Cypriot", "Cyrillic", "Devanagari", "Deseret", "Duployan",
299      "Egyptian_Hieroglyphs", "Elbasan", "Ethiopic", "Georgian",
300      "Glagolitic", "Gothic", "Grantha", "Greek", "Gujarati", "Gurmukhi",
301      "Hangul", "Han", "Hanunoo", "Hebrew", "Hiragana", "Pahawh_Hmong",
302      "Katakana_Or_Hiragana", "Old_Italic", "Javanese", "Kayah_Li",
303      "Katakana", "Kharoshthi", "Khmer", "Khojki", "Kannada", "Kaithi",
304      "Tai_Tham", "Lao", "Latin", "Lepcha", "Limbu", "Linear_A", "Linear_B",
305      "Lisu", "Lycian", "Lydian", "Mahajani", "Mandaic", "Manichaean",
306      "Mende_Kikakui", "Meroitic_Cursive", "Meroitic_Hieroglyphs",
307      "Malayalam", "Modi", "Mongolian", "Mro", "Meetei_Mayek", "Myanmar",
308      "Old_North_Arabian", "Nabataean", "Nko", "Ogham", "Ol_Chiki",
309      "Old_Turkic", "Oriya", "Osmanya", "Palmyrene", "Pau_Cin_Hau",
310      "Old_Permic", "Phags_Pa", "Inscriptional_Pahlavi", "Psalter_Pahlavi",
311      "Phoenician", "Miao", "Inscriptional_Parthian", "Rejang", "Runic",
312      "Samaritan", "Old_South_Arabian", "Saurashtra", "Shavian", "Sharada",
313      "Siddham", "Khudawadi", "Sinhala", "Sora_Sompeng", "Sundanese",
314      "Syloti_Nagri", "Syriac", "Tagbanwa", "Takri", "Tai_Le",
315      "New_Tai_Lue", "Tamil", "Tai_Viet", "Telugu", "Tifinagh", "Tagalog",
316      "Thaana", "Thai", "Tibetan", "Tirhuta", "Ugaritic", "Vai",
317      "Warang_Citi", "Old_Persian", "Cuneiform", "Yi", "Inherited",
318      "Common", "Unknown"};
319    const std::unordered_map<std::string, int> aliases_only_map = {
320      {"aghb", SC::Aghb}, {"arab", SC::Arab}, {"armi", SC::Armi},
321      {"armn", SC::Armn}, {"avst", SC::Avst}, {"bali", SC::Bali},
322      {"bamu", SC::Bamu}, {"bass", SC::Bass}, {"batk", SC::Batk},
323      {"beng", SC::Beng}, {"bopo", SC::Bopo}, {"brah", SC::Brah},
324      {"brai", SC::Brai}, {"bugi", SC::Bugi}, {"buhd", SC::Buhd},
325      {"cakm", SC::Cakm}, {"cans", SC::Cans}, {"cari", SC::Cari},
326      {"cher", SC::Cher}, {"copt", SC::Copt}, {"cprt", SC::Cprt},
327      {"cyrl", SC::Cyrl}, {"deva", SC::Deva}, {"dsrt", SC::Dsrt},
328      {"dupl", SC::Dupl}, {"egyp", SC::Egyp}, {"elba", SC::Elba},
329      {"ethi", SC::Ethi}, {"geor", SC::Geor}, {"glag", SC::Glag},
330      {"goth", SC::Goth}, {"gran", SC::Gran}, {"grek", SC::Grek},
331      {"gujr", SC::Gujr}, {"guru", SC::Guru}, {"hang", SC::Hang},
332      {"hani", SC::Hani}, {"hano", SC::Hano}, {"hebr", SC::Hebr},
333      {"hira", SC::Hira}, {"hmng", SC::Hmng}, {"hrkt", SC::Hrkt},
334      {"ital", SC::Ital}, {"java", SC::Java}, {"kali", SC::Kali},
335      {"kana", SC::Kana}, {"khar", SC::Khar}, {"khmr", SC::Khmr},
336      {"khoj", SC::Khoj}, {"knda", SC::Knda}, {"kthi", SC::Kthi},
337      {"lana", SC::Lana}, {"laoo", SC::Laoo}, {"latn", SC::Latn},
338      {"lepc", SC::Lepc}, {"limb", SC::Limb}, {"lina", SC::Lina},
339      {"linb", SC::Linb}, {"lyci", SC::Lyci}, {"lydi", SC::Lydi},
340      {"mahj", SC::Mahj}, {"mand", SC::Mand}, {"mani", SC::Mani},
341      {"mend", SC::Mend}, {"merc", SC::Merc}, {"mero", SC::Mero},
342      {"mlym", SC::Mlym}, {"mong", SC::Mong}, {"mroo", SC::Mroo},
343      {"mtei", SC::Mtei}, {"mymr", SC::Mymr}, {"narb", SC::Narb},
344      {"nbat", SC::Nbat}, {"nkoo", SC::Nkoo}, {"ogam", SC::Ogam},
345      {"olck", SC::Olck}, {"orkh", SC::Orkh}, {"orya", SC::Orya},
346      {"osma", SC::Osma}, {"palm", SC::Palm}, {"pauc", SC::Pauc},
347      {"perm", SC::Perm}, {"phag", SC::Phag}, {"phli", SC::Phli},
348      {"phlp", SC::Phlp}, {"phnx", SC::Phnx}, {"plrd", SC::Plrd},
349      {"prti", SC::Prti}, {"qaac", SC::Copt}, {"qaai", SC::Zinh},
350      {"rjng", SC::Rjng}, {"runr", SC::Runr}, {"samr", SC::Samr},
351      {"sarb", SC::Sarb}, {"saur", SC::Saur}, {"shaw", SC::Shaw},
352      {"shrd", SC::Shrd}, {"sidd", SC::Sidd}, {"sind", SC::Sind},
353      {"sinh", SC::Sinh}, {"sora", SC::Sora}, {"sund", SC::Sund},
354      {"sylo", SC::Sylo}, {"syrc", SC::Syrc}, {"tagb", SC::Tagb},
355      {"takr", SC::Takr}, {"tale", SC::Tale}, {"talu", SC::Talu},
356      {"taml", SC::Taml}, {"tavt", SC::Tavt}, {"telu", SC::Telu},
357      {"tfng", SC::Tfng}, {"tglg", SC::Tglg}, {"thaa", SC::Thaa},
358      {"tibt", SC::Tibt}, {"tirh", SC::Tirh}, {"ugar", SC::Ugar},
359      {"vaii", SC::Vaii}, {"wara", SC::Wara}, {"xpeo", SC::Xpeo},
360      {"xsux", SC::Xsux}, {"yiii", SC::Yiii}, {"zinh", SC::Zinh},
361      {"zyyy", SC::Zyyy}, {"zzzz", SC::Zzzz}};
362  }
363
364  namespace BC {
365    enum value_t {
366      AL, AN, B, BN, CS, EN, ES, ET, FSI, L, LRE, LRI, LRO, NSM, ON, PDF,
367      PDI, R, RLE, RLI, RLO, S, WS};
368    const std::vector<std::string> value_names = {
369      "Arabic_Letter", "Arabic_Number", "Paragraph_Separator",
370      "Boundary_Neutral", "Common_Separator", "European_Number",
371      "European_Separator", "European_Terminator", "First_Strong_Isolate",
372      "Left_To_Right", "Left_To_Right_Embedding", "Left_To_Right_Isolate",
373      "Left_To_Right_Override", "Nonspacing_Mark", "Other_Neutral",
374      "Pop_Directional_Format", "Pop_Directional_Isolate", "Right_To_Left",
375      "Right_To_Left_Embedding", "Right_To_Left_Isolate",
376      "Right_To_Left_Override", "Segment_Separator", "White_Space"};
377    const std::unordered_map<std::string, int> aliases_only_map = {
378      {"al", BC::AL}, {"an", BC::AN}, {"b", BC::B}, {"bn", BC::BN},
379      {"cs", BC::CS}, {"en", BC::EN}, {"es", BC::ES}, {"et", BC::ET},
380      {"fsi", BC::FSI}, {"l", BC::L}, {"lre", BC::LRE}, {"lri", BC::LRI},
381      {"lro", BC::LRO}, {"nsm", BC::NSM}, {"on", BC::ON}, {"pdf", BC::PDF},
382      {"pdi", BC::PDI}, {"r", BC::R}, {"rle", BC::RLE}, {"rli", BC::RLI},
383      {"rlo", BC::RLO}, {"s", BC::S}, {"ws", BC::WS}};
384  }
385
386  namespace BPT {
387    enum value_t {
388      c, n, o};
389    const std::vector<std::string> value_names = {
390      "Close", "None", "Open"};
391    const std::unordered_map<std::string, int> aliases_only_map = {
392      {"c", BPT::c}, {"n", BPT::n}, {"o", BPT::o}};
393  }
394
395  namespace CCC {
396    enum value_t {
397      NR, OV, NK, KV, VR, CCC10, CCC11, CCC12, CCC13, CCC14, CCC15, CCC16,
398      CCC17, CCC18, CCC19, CCC20, CCC21, CCC22, CCC23, CCC24, CCC25, CCC26,
399      CCC27, CCC28, CCC29, CCC30, CCC31, CCC32, CCC33, CCC34, CCC35, CCC36,
400      CCC84, CCC91, CCC103, CCC107, CCC118, CCC122, CCC129, CCC130, CCC132,
401      CCC133, ATBL, ATB, ATA, ATAR, BL, B, BR, L, R, AL, A, AR, DB, DA, IS
402        };
403        const uint8_t enum_val[] = {
404          0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
405      24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 84, 91, 103, 107,
406      118, 122, 129, 130, 132, 133, 200, 202, 214, 216, 218, 220, 222, 224,
407      226, 228, 230, 232, 233, 234, 240};
408    const std::vector<std::string> value_names = {
409      "Not_Reordered", "Overlay", "Nukta", "Kana_Voicing", "Virama",
410      "CCC10", "CCC11", "CCC12", "CCC13", "CCC14", "CCC15", "CCC16",
411      "CCC17", "CCC18", "CCC19", "CCC20", "CCC21", "CCC22", "CCC23",
412      "CCC24", "CCC25", "CCC26", "CCC27", "CCC28", "CCC29", "CCC30",
413      "CCC31", "CCC32", "CCC33", "CCC34", "CCC35", "CCC36", "CCC84",
414      "CCC91", "CCC103", "CCC107", "CCC118", "CCC122", "CCC129", "CCC130",
415      "CCC132", "CCC133", "Attached_Below_Left", "Attached_Below",
416      "Attached_Above", "Attached_Above_Right", "Below_Left", "Below",
417      "Below_Right", "Left", "Right", "Above_Left", "Above", "Above_Right",
418      "Double_Below", "Double_Above", "Iota_Subscript"};
419    const std::unordered_map<std::string, int> aliases_only_map = {
420      {"a", CCC::A}, {"al", CCC::AL}, {"ar", CCC::AR}, {"ata", CCC::ATA},
421      {"atar", CCC::ATAR}, {"atb", CCC::ATB}, {"atbl", CCC::ATBL},
422      {"b", CCC::B}, {"bl", CCC::BL}, {"br", CCC::BR}, {"da", CCC::DA},
423      {"db", CCC::DB}, {"is", CCC::IS}, {"kv", CCC::KV}, {"l", CCC::L},
424      {"nk", CCC::NK}, {"nr", CCC::NR}, {"ov", CCC::OV}, {"r", CCC::R},
425      {"vr", CCC::VR}};
426  }
427
428  namespace DT {
429    enum value_t {
430      Can, Com, Enc, Fin, Font, Fra, Init, Iso, Med, Nar, Nb, None, Sml,
431      Sqr, Sub, Sup, Vert, Wide};
432    const std::vector<std::string> value_names = {
433      "Canonical", "Compat", "Circle", "Final", "Font", "Fraction",
434      "Initial", "Isolated", "Medial", "Narrow", "Nobreak", "None", "Small",
435      "Square", "Sub", "Super", "Vertical", "Wide"};
436    const std::unordered_map<std::string, int> aliases_only_map = {
437      {"can", DT::Can}, {"com", DT::Com}, {"enc", DT::Enc},
438      {"fin", DT::Fin}, {"fra", DT::Fra}, {"init", DT::Init},
439      {"med", DT::Med}, {"nar", DT::Nar}, {"nb", DT::Nb}, {"o", DT::Iso},
440      {"sml", DT::Sml}, {"sqr", DT::Sqr}, {"sup", DT::Sup},
441      {"vert", DT::Vert}};
442  }
443
444  namespace EA {
445    enum value_t {
446      A, F, H, N, Na, W};
447    const std::vector<std::string> value_names = {
448      "Ambiguous", "Fullwidth", "Halfwidth", "Neutral", "Narrow", "Wide"};
449    const std::unordered_map<std::string, int> aliases_only_map = {
450      {"a", EA::A}, {"f", EA::F}, {"h", EA::H}, {"n", EA::N},
451      {"na", EA::Na}, {"w", EA::W}};
452  }
453
454  namespace GC {
455    enum value_t {
456      C, Cc, Cf, Cn, Co, Cs, L, LC, Ll, Lm, Lo, Lt, Lu, M, Mc, Me, Mn, N,
457      Nd, Nl, No, P, Pc, Pd, Pe, Pf, Pi, Po, Ps, S, Sc, Sk, Sm, So, Z, Zl,
458      Zp, Zs};
459    const std::vector<std::string> value_names = {
460      "Other", "Control", "Format", "Unassigned", "Private_Use",
461      "Surrogate", "Letter", "Cased_Letter", "Lowercase_Letter",
462      "Modifier_Letter", "Other_Letter", "Titlecase_Letter",
463      "Uppercase_Letter", "Mark", "Spacing_Mark", "Enclosing_Mark",
464      "Nonspacing_Mark", "Number", "Decimal_Number", "Letter_Number",
465      "Other_Number", "Punctuation", "Connector_Punctuation",
466      "Dash_Punctuation", "Close_Punctuation", "Final_Punctuation",
467      "Initial_Punctuation", "Other_Punctuation", "Open_Punctuation",
468      "Symbol", "Currency_Symbol", "Modifier_Symbol", "Math_Symbol",
469      "Other_Symbol", "Separator", "Line_Separator", "Paragraph_Separator",
470      "Space_Separator"};
471    const std::unordered_map<std::string, int> aliases_only_map = {
472      {"c", GC::C}, {"cc", GC::Cc}, {"cf", GC::Cf}, {"cn", GC::Cn},
473      {"cntrl", GC::Cc}, {"co", GC::Co}, {"combiningmark", GC::M},
474      {"cs", GC::Cs}, {"digit", GC::Nd}, {"l", GC::L}, {"lc", GC::LC},
475      {"ll", GC::Ll}, {"lm", GC::Lm}, {"lo", GC::Lo}, {"lt", GC::Lt},
476      {"lu", GC::Lu}, {"m", GC::M}, {"mc", GC::Mc}, {"me", GC::Me},
477      {"mn", GC::Mn}, {"n", GC::N}, {"nd", GC::Nd}, {"nl", GC::Nl},
478      {"no", GC::No}, {"p", GC::P}, {"pc", GC::Pc}, {"pd", GC::Pd},
479      {"pe", GC::Pe}, {"pf", GC::Pf}, {"pi", GC::Pi}, {"po", GC::Po},
480      {"ps", GC::Ps}, {"punct", GC::P}, {"s", GC::S}, {"sc", GC::Sc},
481      {"sk", GC::Sk}, {"sm", GC::Sm}, {"so", GC::So}, {"z", GC::Z},
482      {"zl", GC::Zl}, {"zp", GC::Zp}, {"zs", GC::Zs}};
483  }
484
485  namespace GCB {
486    enum value_t {
487      CN, CR, EX, L, LF, LV, LVT, PP, RI, SM, T, V, XX};
488    const std::vector<std::string> value_names = {
489      "Control", "CR", "Extend", "L", "LF", "LV", "LVT", "Prepend",
490      "Regional_Indicator", "SpacingMark", "T", "V", "Other"};
491    const std::unordered_map<std::string, int> aliases_only_map = {
492      {"cn", GCB::CN}, {"ex", GCB::EX}, {"pp", GCB::PP}, {"ri", GCB::RI},
493      {"sm", GCB::SM}, {"xx", GCB::XX}};
494  }
495
496  namespace HST {
497    enum value_t {
498      L, LV, LVT, NA, T, V};
499    const std::vector<std::string> value_names = {
500      "Leading_Jamo", "LV_Syllable", "LVT_Syllable", "Not_Applicable",
501      "Trailing_Jamo", "Vowel_Jamo"};
502    const std::unordered_map<std::string, int> aliases_only_map = {
503      {"l", HST::L}, {"lv", HST::LV}, {"lvt", HST::LVT}, {"na", HST::NA},
504      {"t", HST::T}, {"v", HST::V}};
505  }
506
507  namespace INMC {
508    enum value_t {
509      Bottom, Bottom_And_Right, Left, Left_And_Right, NA, Overstruck, Right,
510      Top, Top_And_Bottom, Top_And_Bottom_And_Right, Top_And_Left,
511      Top_And_Left_And_Right, Top_And_Right, Visual_Order_Left};
512    const std::vector<std::string> value_names = {
513      "Bottom", "Bottom_And_Right", "Left", "Left_And_Right", "NA",
514      "Overstruck", "Right", "Top", "Top_And_Bottom",
515      "Top_And_Bottom_And_Right", "Top_And_Left", "Top_And_Left_And_Right",
516      "Top_And_Right", "Visual_Order_Left"};
517    const std::unordered_map<std::string, int> aliases_only_map = {
518      };
519  }
520
521  namespace INSC {
522    enum value_t {
523      Avagraha, Bindu, Brahmi_Joining_Number, Cantillation_Mark, Consonant,
524      Consonant_Dead, Consonant_Final, Consonant_Head_Letter,
525      Consonant_Medial, Consonant_Placeholder, Consonant_Preceding_Repha,
526      Consonant_Subjoined, Consonant_Succeeding_Repha, Gemination_Mark,
527      Invisible_Stacker, Joiner, Modifying_Letter, Non_Joiner, Nukta,
528      Number, Number_Joiner, Other, Pure_Killer, Register_Shifter,
529      Tone_Letter, Tone_Mark, Virama, Visarga, Vowel, Vowel_Dependent,
530      Vowel_Independent};
531    const std::vector<std::string> value_names = {
532      "Avagraha", "Bindu", "Brahmi_Joining_Number", "Cantillation_Mark",
533      "Consonant", "Consonant_Dead", "Consonant_Final",
534      "Consonant_Head_Letter", "Consonant_Medial", "Consonant_Placeholder",
535      "Consonant_Preceding_Repha", "Consonant_Subjoined",
536      "Consonant_Succeeding_Repha", "Gemination_Mark", "Invisible_Stacker",
537      "Joiner", "Modifying_Letter", "Non_Joiner", "Nukta", "Number",
538      "Number_Joiner", "Other", "Pure_Killer", "Register_Shifter",
539      "Tone_Letter", "Tone_Mark", "Virama", "Visarga", "Vowel",
540      "Vowel_Dependent", "Vowel_Independent"};
541    const std::unordered_map<std::string, int> aliases_only_map = {
542      };
543  }
544
545  namespace JG {
546    enum value_t {
547      Ain, Alaph, Alef, Beh, Beth, Burushaski_Yeh_Barree, Dal, Dalath_Rish,
548      E, Farsi_Yeh, Fe, Feh, Final_Semkath, Gaf, Gamal, Hah, He, Heh,
549      Heh_Goal, Heth, Kaf, Kaph, Khaph, Knotted_Heh, Lam, Lamadh,
550      Manichaean_Aleph, Manichaean_Ayin, Manichaean_Beth, Manichaean_Daleth,
551      Manichaean_Dhamedh, Manichaean_Five, Manichaean_Gimel,
552      Manichaean_Heth, Manichaean_Hundred, Manichaean_Kaph,
553      Manichaean_Lamedh, Manichaean_Mem, Manichaean_Nun, Manichaean_One,
554      Manichaean_Pe, Manichaean_Qoph, Manichaean_Resh, Manichaean_Sadhe,
555      Manichaean_Samekh, Manichaean_Taw, Manichaean_Ten, Manichaean_Teth,
556      Manichaean_Thamedh, Manichaean_Twenty, Manichaean_Waw,
557      Manichaean_Yodh, Manichaean_Zayin, Meem, Mim, No_Joining_Group, Noon,
558      Nun, Nya, Pe, Qaf, Qaph, Reh, Reversed_Pe, Rohingya_Yeh, Sad, Sadhe,
559      Seen, Semkath, Shin, Straight_Waw, Swash_Kaf, Syriac_Waw, Tah, Taw,
560      Teh_Marbuta, Teh_Marbuta_Goal, Teth, Waw, Yeh, Yeh_Barree,
561      Yeh_With_Tail, Yudh, Yudh_He, Zain, Zhain};
562    const std::vector<std::string> value_names = {
563      "Ain", "Alaph", "Alef", "Beh", "Beth", "Burushaski_Yeh_Barree", "Dal",
564      "Dalath_Rish", "E", "Farsi_Yeh", "Fe", "Feh", "Final_Semkath", "Gaf",
565      "Gamal", "Hah", "He", "Heh", "Heh_Goal", "Heth", "Kaf", "Kaph",
566      "Khaph", "Knotted_Heh", "Lam", "Lamadh", "Manichaean_Aleph",
567      "Manichaean_Ayin", "Manichaean_Beth", "Manichaean_Daleth",
568      "Manichaean_Dhamedh", "Manichaean_Five", "Manichaean_Gimel",
569      "Manichaean_Heth", "Manichaean_Hundred", "Manichaean_Kaph",
570      "Manichaean_Lamedh", "Manichaean_Mem", "Manichaean_Nun",
571      "Manichaean_One", "Manichaean_Pe", "Manichaean_Qoph",
572      "Manichaean_Resh", "Manichaean_Sadhe", "Manichaean_Samekh",
573      "Manichaean_Taw", "Manichaean_Ten", "Manichaean_Teth",
574      "Manichaean_Thamedh", "Manichaean_Twenty", "Manichaean_Waw",
575      "Manichaean_Yodh", "Manichaean_Zayin", "Meem", "Mim",
576      "No_Joining_Group", "Noon", "Nun", "Nya", "Pe", "Qaf", "Qaph", "Reh",
577      "Reversed_Pe", "Rohingya_Yeh", "Sad", "Sadhe", "Seen", "Semkath",
578      "Shin", "Straight_Waw", "Swash_Kaf", "Syriac_Waw", "Tah", "Taw",
579      "Teh_Marbuta", "Hamza_On_Heh_Goal", "Teth", "Waw", "Yeh",
580      "Yeh_Barree", "Yeh_With_Tail", "Yudh", "Yudh_He", "Zain", "Zhain"};
581    const std::unordered_map<std::string, int> aliases_only_map = {
582      {"tehmarbutagoal", JG::Teh_Marbuta_Goal}};
583  }
584
585  namespace JT {
586    enum value_t {
587      C, D, L, R, T, U};
588    const std::vector<std::string> value_names = {
589      "Join_Causing", "Dual_Joining", "Left_Joining", "Right_Joining",
590      "Transparent", "Non_Joining"};
591    const std::unordered_map<std::string, int> aliases_only_map = {
592      {"c", JT::C}, {"d", JT::D}, {"l", JT::L}, {"r", JT::R}, {"t", JT::T},
593      {"u", JT::U}};
594  }
595
596  namespace LB {
597    enum value_t {
598      AI, AL, B2, BA, BB, BK, CB, CJ, CL, CM, CP, CR, EX, GL, H2, H3, HL,
599      HY, ID, IN, IS, JL, JT, JV, LF, NL, NS, NU, OP, PO, PR, QU, RI, SA,
600      SG, SP, SY, WJ, XX, ZW};
601    const std::vector<std::string> value_names = {
602      "Ambiguous", "Alphabetic", "Break_Both", "Break_After",
603      "Break_Before", "Mandatory_Break", "Contingent_Break",
604      "Conditional_Japanese_Starter", "Close_Punctuation", "Combining_Mark",
605      "Close_Parenthesis", "Carriage_Return", "Exclamation", "Glue", "H2",
606      "H3", "Hebrew_Letter", "Hyphen", "Ideographic", "Inseparable",
607      "Infix_Numeric", "JL", "JT", "JV", "Line_Feed", "Next_Line",
608      "Nonstarter", "Numeric", "Open_Punctuation", "Postfix_Numeric",
609      "Prefix_Numeric", "Quotation", "Regional_Indicator",
610      "Complex_Context", "Surrogate", "Space", "Break_Symbols",
611      "Word_Joiner", "Unknown", "ZWSpace"};
612    const std::unordered_map<std::string, int> aliases_only_map = {
613      {"ai", LB::AI}, {"al", LB::AL}, {"b2", LB::B2}, {"ba", LB::BA},
614      {"bb", LB::BB}, {"bk", LB::BK}, {"cb", LB::CB}, {"cj", LB::CJ},
615      {"cl", LB::CL}, {"cm", LB::CM}, {"cp", LB::CP}, {"cr", LB::CR},
616      {"ex", LB::EX}, {"gl", LB::GL}, {"hl", LB::HL}, {"hy", LB::HY},
617      {"id", LB::ID}, {"in", LB::IN}, {"inseperable", LB::IN},
618      {"is", LB::IS}, {"lf", LB::LF}, {"nl", LB::NL}, {"ns", LB::NS},
619      {"nu", LB::NU}, {"op", LB::OP}, {"po", LB::PO}, {"pr", LB::PR},
620      {"qu", LB::QU}, {"ri", LB::RI}, {"sa", LB::SA}, {"sg", LB::SG},
621      {"sp", LB::SP}, {"sy", LB::SY}, {"wj", LB::WJ}, {"xx", LB::XX},
622      {"zw", LB::ZW}};
623  }
624
625  namespace NFC_QC {
626    enum value_t {
627      M, N, Y};
628    const std::vector<std::string> value_names = {
629      "Maybe", "No", "Yes"};
630    const std::unordered_map<std::string, int> aliases_only_map = {
631      {"m", NFC_QC::M}, {"n", NFC_QC::N}, {"y", NFC_QC::Y}};
632  }
633
634  namespace NFD_QC {
635    enum value_t {
636      N, Y};
637    const std::vector<std::string> value_names = {
638      "No", "Yes"};
639    const std::unordered_map<std::string, int> aliases_only_map = {
640      {"n", NFD_QC::N}, {"y", NFD_QC::Y}};
641  }
642
643  namespace NFKC_QC {
644    enum value_t {
645      M, N, Y};
646    const std::vector<std::string> value_names = {
647      "Maybe", "No", "Yes"};
648    const std::unordered_map<std::string, int> aliases_only_map = {
649      {"m", NFKC_QC::M}, {"n", NFKC_QC::N}, {"y", NFKC_QC::Y}};
650  }
651
652  namespace NFKD_QC {
653    enum value_t {
654      N, Y};
655    const std::vector<std::string> value_names = {
656      "No", "Yes"};
657    const std::unordered_map<std::string, int> aliases_only_map = {
658      {"n", NFKD_QC::N}, {"y", NFKD_QC::Y}};
659  }
660
661  namespace NT {
662    enum value_t {
663      De, Di, None, Nu};
664    const std::vector<std::string> value_names = {
665      "Decimal", "Digit", "None", "Numeric"};
666    const std::unordered_map<std::string, int> aliases_only_map = {
667      {"de", NT::De}, {"di", NT::Di}, {"nu", NT::Nu}};
668  }
669
670  namespace SB {
671    enum value_t {
672      AT, CL, CR, EX, FO, LE, LF, LO, NU, SC, SE, SP, ST, UP, XX};
673    const std::vector<std::string> value_names = {
674      "ATerm", "Close", "CR", "Extend", "Format", "OLetter", "LF", "Lower",
675      "Numeric", "SContinue", "Sep", "Sp", "STerm", "Upper", "Other"};
676    const std::unordered_map<std::string, int> aliases_only_map = {
677      {"at", SB::AT}, {"cl", SB::CL}, {"ex", SB::EX}, {"fo", SB::FO},
678      {"le", SB::LE}, {"lo", SB::LO}, {"nu", SB::NU}, {"sc", SB::SC},
679      {"se", SB::SE}, {"st", SB::ST}, {"up", SB::UP}, {"xx", SB::XX}};
680  }
681
682  namespace WB {
683    enum value_t {
684      CR, DQ, EX, Extend, FO, HL, KA, LE, LF, MB, ML, MN, NL, NU, RI, SQ,
685      XX};
686    const std::vector<std::string> value_names = {
687      "CR", "Double_Quote", "ExtendNumLet", "Extend", "Format",
688      "Hebrew_Letter", "Katakana", "ALetter", "LF", "MidNumLet",
689      "MidLetter", "MidNum", "Newline", "Numeric", "Regional_Indicator",
690      "Single_Quote", "Other"};
691    const std::unordered_map<std::string, int> aliases_only_map = {
692      {"dq", WB::DQ}, {"ex", WB::EX}, {"fo", WB::FO}, {"hl", WB::HL},
693      {"ka", WB::KA}, {"le", WB::LE}, {"mb", WB::MB}, {"ml", WB::ML},
694      {"mn", WB::MN}, {"nl", WB::NL}, {"nu", WB::NU}, {"ri", WB::RI},
695      {"sq", WB::SQ}, {"xx", WB::XX}};
696  }
697}
698
699#endif
Note: See TracBrowser for help on using the repository browser.