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

Last change on this file was 6192, checked in by cameron, 10 months ago

Updates for Unicode 11.0 plus Emoji properties

File size: 47.3 KB
Line 
1#ifndef PROPERTYVALUEALIASES_H
2#define PROPERTYVALUEALIASES_H
3/*
4 *  Copyright (c) 2018 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 "PropertyAliases.h"
12#include <string>
13#include <unordered_map>
14#include <vector>
15namespace UCD {
16
17    namespace Binary_ns {
18        enum value_t {
19            N, Y};
20        const static std::vector<std::string> enum_names = {
21            "N", "Y"};
22        const static std::vector<std::string> value_names = {
23            "No", "Yes"};
24        static std::unordered_map<std::string, int> aliases_only_map {{
25            {"n", N}, {"y", Y}, {"no", N}, {"yes", Y}, {"f", N}, {"t", Y},
26            {"false", N}, {"true", Y}}};
27    }
28
29    namespace AGE_ns {
30        enum value_t {
31            Unassigned, V1_1, V2_0, V2_1, V3_0, V3_1, V3_2, V4_0, V4_1,
32            V5_0, V5_1, V5_2, V6_0, V6_1, V6_2, V6_3, V7_0, V8_0, V9_0,
33            V10_0, V11_0};
34        const static std::vector<std::string> enum_names = {
35            "Unassigned", "V1_1", "V2_0", "V2_1", "V3_0", "V3_1", "V3_2",
36            "V4_0", "V4_1", "V5_0", "V5_1", "V5_2", "V6_0", "V6_1", "V6_2",
37            "V6_3", "V7_0", "V8_0", "V9_0", "V10_0", "V11_0"};
38        const static std::vector<std::string> value_names = {
39            "Unassigned", "V1_1", "V2_0", "V2_1", "V3_0", "V3_1", "V3_2",
40            "V4_0", "V4_1", "V5_0", "V5_1", "V5_2", "V6_0", "V6_1", "V6_2",
41            "V6_3", "V7_0", "V8_0", "V9_0", "V10_0", "V11_0"};
42        static std::unordered_map<std::string, int> aliases_only_map {{
43            {"1.1", AGE_ns::V1_1}, {"10.0", AGE_ns::V10_0},
44            {"11.0", AGE_ns::V11_0}, {"2.0", AGE_ns::V2_0},
45            {"2.1", AGE_ns::V2_1}, {"3.0", AGE_ns::V3_0},
46            {"3.1", AGE_ns::V3_1}, {"3.2", AGE_ns::V3_2},
47            {"4.0", AGE_ns::V4_0}, {"4.1", AGE_ns::V4_1},
48            {"5.0", AGE_ns::V5_0}, {"5.1", AGE_ns::V5_1},
49            {"5.2", AGE_ns::V5_2}, {"6.0", AGE_ns::V6_0},
50            {"6.1", AGE_ns::V6_1}, {"6.2", AGE_ns::V6_2},
51            {"6.3", AGE_ns::V6_3}, {"7.0", AGE_ns::V7_0},
52            {"8.0", AGE_ns::V8_0}, {"9.0", AGE_ns::V9_0},
53            {"na", AGE_ns::Unassigned}}};
54    }
55
56    namespace BLK_ns {
57        enum value_t {
58            NB, ASCII, Latin_1_Sup, Latin_Ext_A, Latin_Ext_B, IPA_Ext,
59            Modifier_Letters, Diacriticals, Greek, Cyrillic, Cyrillic_Sup,
60            Armenian, Hebrew, Arabic, Syriac, Arabic_Sup, Thaana, NKo,
61            Samaritan, Mandaic, Syriac_Sup, Arabic_Ext_A, Devanagari,
62            Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada,
63            Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar, Georgian, Jamo,
64            Ethiopic, Ethiopic_Sup, Cherokee, UCAS, Ogham, Runic, Tagalog,
65            Hanunoo, Buhid, Tagbanwa, Khmer, Mongolian, UCAS_Ext, Limbu,
66            Tai_Le, New_Tai_Lue, Khmer_Symbols, Buginese, Tai_Tham,
67            Diacriticals_Ext, Balinese, Sundanese, Batak, Lepcha, Ol_Chiki,
68            Cyrillic_Ext_C, Georgian_Ext, Sundanese_Sup, Vedic_Ext,
69            Phonetic_Ext, Phonetic_Ext_Sup, Diacriticals_Sup,
70            Latin_Ext_Additional, Greek_Ext, Punctuation, Super_And_Sub,
71            Currency_Symbols, Diacriticals_For_Symbols, Letterlike_Symbols,
72            Number_Forms, Arrows, Math_Operators, Misc_Technical,
73            Control_Pictures, OCR, Enclosed_Alphanum, Box_Drawing,
74            Block_Elements, Geometric_Shapes, Misc_Symbols, Dingbats,
75            Misc_Math_Symbols_A, Sup_Arrows_A, Braille, Sup_Arrows_B,
76            Misc_Math_Symbols_B, Sup_Math_Operators, Misc_Arrows,
77            Glagolitic, Latin_Ext_C, Coptic, Georgian_Sup, Tifinagh,
78            Ethiopic_Ext, Cyrillic_Ext_A, Sup_Punctuation, CJK_Radicals_Sup,
79            Kangxi, IDC, CJK_Symbols, Hiragana, Katakana, Bopomofo,
80            Compat_Jamo, Kanbun, Bopomofo_Ext, CJK_Strokes, Katakana_Ext,
81            Enclosed_CJK, CJK_Compat, CJK_Ext_A, Yijing, CJK, Yi_Syllables,
82            Yi_Radicals, Lisu, Vai, Cyrillic_Ext_B, Bamum,
83            Modifier_Tone_Letters, Latin_Ext_D, Syloti_Nagri,
84            Indic_Number_Forms, Phags_Pa, Saurashtra, Devanagari_Ext,
85            Kayah_Li, Rejang, Jamo_Ext_A, Javanese, Myanmar_Ext_B, Cham,
86            Myanmar_Ext_A, Tai_Viet, Meetei_Mayek_Ext, Ethiopic_Ext_A,
87            Latin_Ext_E, Cherokee_Sup, Meetei_Mayek, Hangul, Jamo_Ext_B,
88            High_Surrogates, High_PU_Surrogates, Low_Surrogates, PUA,
89            CJK_Compat_Ideographs, Alphabetic_PF, Arabic_PF_A, VS,
90            Vertical_Forms, Half_Marks, CJK_Compat_Forms, Small_Forms,
91            Arabic_PF_B, Half_And_Full_Forms, Specials, Linear_B_Syllabary,
92            Linear_B_Ideograms, Aegean_Numbers, Ancient_Greek_Numbers,
93            Ancient_Symbols, Phaistos, Lycian, Carian, Coptic_Epact_Numbers,
94            Old_Italic, Gothic, Old_Permic, Ugaritic, Old_Persian, Deseret,
95            Shavian, Osmanya, Osage, Elbasan, Caucasian_Albanian, Linear_A,
96            Cypriot_Syllabary, Imperial_Aramaic, Palmyrene, Nabataean,
97            Hatran, Phoenician, Lydian, Meroitic_Hieroglyphs,
98            Meroitic_Cursive, Kharoshthi, Old_South_Arabian,
99            Old_North_Arabian, Manichaean, Avestan, Inscriptional_Parthian,
100            Inscriptional_Pahlavi, Psalter_Pahlavi, Old_Turkic,
101            Old_Hungarian, Hanifi_Rohingya, Rumi, Old_Sogdian, Sogdian,
102            Brahmi, Kaithi, Sora_Sompeng, Chakma, Mahajani, Sharada,
103            Sinhala_Archaic_Numbers, Khojki, Multani, Khudawadi, Grantha,
104            Newa, Tirhuta, Siddham, Modi, Mongolian_Sup, Takri, Ahom, Dogra,
105            Warang_Citi, Zanabazar_Square, Soyombo, Pau_Cin_Hau, Bhaiksuki,
106            Marchen, Masaram_Gondi, Gunjala_Gondi, Makasar, Cuneiform,
107            Cuneiform_Numbers, Early_Dynastic_Cuneiform,
108            Egyptian_Hieroglyphs, Anatolian_Hieroglyphs, Bamum_Sup, Mro,
109            Bassa_Vah, Pahawh_Hmong, Medefaidrin, Miao, Ideographic_Symbols,
110            Tangut, Tangut_Components, Kana_Sup, Kana_Ext_A, Nushu,
111            Duployan, Shorthand_Format_Controls, Byzantine_Music, Music,
112            Ancient_Greek_Music, Mayan_Numerals, Tai_Xuan_Jing,
113            Counting_Rod, Math_Alphanum, Sutton_SignWriting, Glagolitic_Sup,
114            Mende_Kikakui, Adlam, Indic_Siyaq_Numbers, Arabic_Math, Mahjong,
115            Domino, Playing_Cards, Enclosed_Alphanum_Sup,
116            Enclosed_Ideographic_Sup, Misc_Pictographs, Emoticons,
117            Ornamental_Dingbats, Transport_And_Map, Alchemical,
118            Geometric_Shapes_Ext, Sup_Arrows_C, Sup_Symbols_And_Pictographs,
119            Chess_Symbols, CJK_Ext_B, CJK_Ext_C, CJK_Ext_D, CJK_Ext_E,
120            CJK_Ext_F, CJK_Compat_Ideographs_Sup, Tags, VS_Sup, Sup_PUA_A,
121            Sup_PUA_B};
122        const static std::vector<std::string> enum_names = {
123            "NB", "ASCII", "Latin_1_Sup", "Latin_Ext_A", "Latin_Ext_B",
124            "IPA_Ext", "Modifier_Letters", "Diacriticals", "Greek",
125            "Cyrillic", "Cyrillic_Sup", "Armenian", "Hebrew", "Arabic",
126            "Syriac", "Arabic_Sup", "Thaana", "NKo", "Samaritan", "Mandaic",
127            "Syriac_Sup", "Arabic_Ext_A", "Devanagari", "Bengali",
128            "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada",
129            "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar",
130            "Georgian", "Jamo", "Ethiopic", "Ethiopic_Sup", "Cherokee",
131            "UCAS", "Ogham", "Runic", "Tagalog", "Hanunoo", "Buhid",
132            "Tagbanwa", "Khmer", "Mongolian", "UCAS_Ext", "Limbu", "Tai_Le",
133            "New_Tai_Lue", "Khmer_Symbols", "Buginese", "Tai_Tham",
134            "Diacriticals_Ext", "Balinese", "Sundanese", "Batak", "Lepcha",
135            "Ol_Chiki", "Cyrillic_Ext_C", "Georgian_Ext", "Sundanese_Sup",
136            "Vedic_Ext", "Phonetic_Ext", "Phonetic_Ext_Sup",
137            "Diacriticals_Sup", "Latin_Ext_Additional", "Greek_Ext",
138            "Punctuation", "Super_And_Sub", "Currency_Symbols",
139            "Diacriticals_For_Symbols", "Letterlike_Symbols",
140            "Number_Forms", "Arrows", "Math_Operators", "Misc_Technical",
141            "Control_Pictures", "OCR", "Enclosed_Alphanum", "Box_Drawing",
142            "Block_Elements", "Geometric_Shapes", "Misc_Symbols",
143            "Dingbats", "Misc_Math_Symbols_A", "Sup_Arrows_A", "Braille",
144            "Sup_Arrows_B", "Misc_Math_Symbols_B", "Sup_Math_Operators",
145            "Misc_Arrows", "Glagolitic", "Latin_Ext_C", "Coptic",
146            "Georgian_Sup", "Tifinagh", "Ethiopic_Ext", "Cyrillic_Ext_A",
147            "Sup_Punctuation", "CJK_Radicals_Sup", "Kangxi", "IDC",
148            "CJK_Symbols", "Hiragana", "Katakana", "Bopomofo",
149            "Compat_Jamo", "Kanbun", "Bopomofo_Ext", "CJK_Strokes",
150            "Katakana_Ext", "Enclosed_CJK", "CJK_Compat", "CJK_Ext_A",
151            "Yijing", "CJK", "Yi_Syllables", "Yi_Radicals", "Lisu", "Vai",
152            "Cyrillic_Ext_B", "Bamum", "Modifier_Tone_Letters",
153            "Latin_Ext_D", "Syloti_Nagri", "Indic_Number_Forms", "Phags_Pa",
154            "Saurashtra", "Devanagari_Ext", "Kayah_Li", "Rejang",
155            "Jamo_Ext_A", "Javanese", "Myanmar_Ext_B", "Cham",
156            "Myanmar_Ext_A", "Tai_Viet", "Meetei_Mayek_Ext",
157            "Ethiopic_Ext_A", "Latin_Ext_E", "Cherokee_Sup", "Meetei_Mayek",
158            "Hangul", "Jamo_Ext_B", "High_Surrogates", "High_PU_Surrogates",
159            "Low_Surrogates", "PUA", "CJK_Compat_Ideographs",
160            "Alphabetic_PF", "Arabic_PF_A", "VS", "Vertical_Forms",
161            "Half_Marks", "CJK_Compat_Forms", "Small_Forms", "Arabic_PF_B",
162            "Half_And_Full_Forms", "Specials", "Linear_B_Syllabary",
163            "Linear_B_Ideograms", "Aegean_Numbers", "Ancient_Greek_Numbers",
164            "Ancient_Symbols", "Phaistos", "Lycian", "Carian",
165            "Coptic_Epact_Numbers", "Old_Italic", "Gothic", "Old_Permic",
166            "Ugaritic", "Old_Persian", "Deseret", "Shavian", "Osmanya",
167            "Osage", "Elbasan", "Caucasian_Albanian", "Linear_A",
168            "Cypriot_Syllabary", "Imperial_Aramaic", "Palmyrene",
169            "Nabataean", "Hatran", "Phoenician", "Lydian",
170            "Meroitic_Hieroglyphs", "Meroitic_Cursive", "Kharoshthi",
171            "Old_South_Arabian", "Old_North_Arabian", "Manichaean",
172            "Avestan", "Inscriptional_Parthian", "Inscriptional_Pahlavi",
173            "Psalter_Pahlavi", "Old_Turkic", "Old_Hungarian",
174            "Hanifi_Rohingya", "Rumi", "Old_Sogdian", "Sogdian", "Brahmi",
175            "Kaithi", "Sora_Sompeng", "Chakma", "Mahajani", "Sharada",
176            "Sinhala_Archaic_Numbers", "Khojki", "Multani", "Khudawadi",
177            "Grantha", "Newa", "Tirhuta", "Siddham", "Modi",
178            "Mongolian_Sup", "Takri", "Ahom", "Dogra", "Warang_Citi",
179            "Zanabazar_Square", "Soyombo", "Pau_Cin_Hau", "Bhaiksuki",
180            "Marchen", "Masaram_Gondi", "Gunjala_Gondi", "Makasar",
181            "Cuneiform", "Cuneiform_Numbers", "Early_Dynastic_Cuneiform",
182            "Egyptian_Hieroglyphs", "Anatolian_Hieroglyphs", "Bamum_Sup",
183            "Mro", "Bassa_Vah", "Pahawh_Hmong", "Medefaidrin", "Miao",
184            "Ideographic_Symbols", "Tangut", "Tangut_Components",
185            "Kana_Sup", "Kana_Ext_A", "Nushu", "Duployan",
186            "Shorthand_Format_Controls", "Byzantine_Music", "Music",
187            "Ancient_Greek_Music", "Mayan_Numerals", "Tai_Xuan_Jing",
188            "Counting_Rod", "Math_Alphanum", "Sutton_SignWriting",
189            "Glagolitic_Sup", "Mende_Kikakui", "Adlam",
190            "Indic_Siyaq_Numbers", "Arabic_Math", "Mahjong", "Domino",
191            "Playing_Cards", "Enclosed_Alphanum_Sup",
192            "Enclosed_Ideographic_Sup", "Misc_Pictographs", "Emoticons",
193            "Ornamental_Dingbats", "Transport_And_Map", "Alchemical",
194            "Geometric_Shapes_Ext", "Sup_Arrows_C",
195            "Sup_Symbols_And_Pictographs", "Chess_Symbols", "CJK_Ext_B",
196            "CJK_Ext_C", "CJK_Ext_D", "CJK_Ext_E", "CJK_Ext_F",
197            "CJK_Compat_Ideographs_Sup", "Tags", "VS_Sup", "Sup_PUA_A",
198            "Sup_PUA_B"};
199        const static std::vector<std::string> value_names = {
200            "No_Block", "Basic_Latin", "Latin_1_Supplement",
201            "Latin_Extended_A", "Latin_Extended_B", "IPA_Extensions",
202            "Spacing_Modifier_Letters", "Combining_Diacritical_Marks",
203            "Greek_And_Coptic", "Cyrillic", "Cyrillic_Supplement",
204            "Armenian", "Hebrew", "Arabic", "Syriac", "Arabic_Supplement",
205            "Thaana", "NKo", "Samaritan", "Mandaic", "Syriac_Supplement",
206            "Arabic_Extended_A", "Devanagari", "Bengali", "Gurmukhi",
207            "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam",
208            "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian",
209            "Hangul_Jamo", "Ethiopic", "Ethiopic_Supplement", "Cherokee",
210            "Unified_Canadian_Aboriginal_Syllabics", "Ogham", "Runic",
211            "Tagalog", "Hanunoo", "Buhid", "Tagbanwa", "Khmer", "Mongolian",
212            "Unified_Canadian_Aboriginal_Syllabics_Extended", "Limbu",
213            "Tai_Le", "New_Tai_Lue", "Khmer_Symbols", "Buginese",
214            "Tai_Tham", "Combining_Diacritical_Marks_Extended", "Balinese",
215            "Sundanese", "Batak", "Lepcha", "Ol_Chiki",
216            "Cyrillic_Extended_C", "Georgian_Extended",
217            "Sundanese_Supplement", "Vedic_Extensions",
218            "Phonetic_Extensions", "Phonetic_Extensions_Supplement",
219            "Combining_Diacritical_Marks_Supplement",
220            "Latin_Extended_Additional", "Greek_Extended",
221            "General_Punctuation", "Superscripts_And_Subscripts",
222            "Currency_Symbols", "Combining_Diacritical_Marks_For_Symbols",
223            "Letterlike_Symbols", "Number_Forms", "Arrows",
224            "Mathematical_Operators", "Miscellaneous_Technical",
225            "Control_Pictures", "Optical_Character_Recognition",
226            "Enclosed_Alphanumerics", "Box_Drawing", "Block_Elements",
227            "Geometric_Shapes", "Miscellaneous_Symbols", "Dingbats",
228            "Miscellaneous_Mathematical_Symbols_A", "Supplemental_Arrows_A",
229            "Braille_Patterns", "Supplemental_Arrows_B",
230            "Miscellaneous_Mathematical_Symbols_B",
231            "Supplemental_Mathematical_Operators",
232            "Miscellaneous_Symbols_And_Arrows", "Glagolitic",
233            "Latin_Extended_C", "Coptic", "Georgian_Supplement", "Tifinagh",
234            "Ethiopic_Extended", "Cyrillic_Extended_A",
235            "Supplemental_Punctuation", "CJK_Radicals_Supplement",
236            "Kangxi_Radicals", "Ideographic_Description_Characters",
237            "CJK_Symbols_And_Punctuation", "Hiragana", "Katakana",
238            "Bopomofo", "Hangul_Compatibility_Jamo", "Kanbun",
239            "Bopomofo_Extended", "CJK_Strokes",
240            "Katakana_Phonetic_Extensions",
241            "Enclosed_CJK_Letters_And_Months", "CJK_Compatibility",
242            "CJK_Unified_Ideographs_Extension_A", "Yijing_Hexagram_Symbols",
243            "CJK_Unified_Ideographs", "Yi_Syllables", "Yi_Radicals", "Lisu",
244            "Vai", "Cyrillic_Extended_B", "Bamum", "Modifier_Tone_Letters",
245            "Latin_Extended_D", "Syloti_Nagri", "Common_Indic_Number_Forms",
246            "Phags_Pa", "Saurashtra", "Devanagari_Extended", "Kayah_Li",
247            "Rejang", "Hangul_Jamo_Extended_A", "Javanese",
248            "Myanmar_Extended_B", "Cham", "Myanmar_Extended_A", "Tai_Viet",
249            "Meetei_Mayek_Extensions", "Ethiopic_Extended_A",
250            "Latin_Extended_E", "Cherokee_Supplement", "Meetei_Mayek",
251            "Hangul_Syllables", "Hangul_Jamo_Extended_B", "High_Surrogates",
252            "High_Private_Use_Surrogates", "Low_Surrogates",
253            "Private_Use_Area", "CJK_Compatibility_Ideographs",
254            "Alphabetic_Presentation_Forms", "Arabic_Presentation_Forms_A",
255            "Variation_Selectors", "Vertical_Forms", "Combining_Half_Marks",
256            "CJK_Compatibility_Forms", "Small_Form_Variants",
257            "Arabic_Presentation_Forms_B", "Halfwidth_And_Fullwidth_Forms",
258            "Specials", "Linear_B_Syllabary", "Linear_B_Ideograms",
259            "Aegean_Numbers", "Ancient_Greek_Numbers", "Ancient_Symbols",
260            "Phaistos_Disc", "Lycian", "Carian", "Coptic_Epact_Numbers",
261            "Old_Italic", "Gothic", "Old_Permic", "Ugaritic", "Old_Persian",
262            "Deseret", "Shavian", "Osmanya", "Osage", "Elbasan",
263            "Caucasian_Albanian", "Linear_A", "Cypriot_Syllabary",
264            "Imperial_Aramaic", "Palmyrene", "Nabataean", "Hatran",
265            "Phoenician", "Lydian", "Meroitic_Hieroglyphs",
266            "Meroitic_Cursive", "Kharoshthi", "Old_South_Arabian",
267            "Old_North_Arabian", "Manichaean", "Avestan",
268            "Inscriptional_Parthian", "Inscriptional_Pahlavi",
269            "Psalter_Pahlavi", "Old_Turkic", "Old_Hungarian",
270            "Hanifi_Rohingya", "Rumi_Numeral_Symbols", "Old_Sogdian",
271            "Sogdian", "Brahmi", "Kaithi", "Sora_Sompeng", "Chakma",
272            "Mahajani", "Sharada", "Sinhala_Archaic_Numbers", "Khojki",
273            "Multani", "Khudawadi", "Grantha", "Newa", "Tirhuta", "Siddham",
274            "Modi", "Mongolian_Supplement", "Takri", "Ahom", "Dogra",
275            "Warang_Citi", "Zanabazar_Square", "Soyombo", "Pau_Cin_Hau",
276            "Bhaiksuki", "Marchen", "Masaram_Gondi", "Gunjala_Gondi",
277            "Makasar", "Cuneiform", "Cuneiform_Numbers_And_Punctuation",
278            "Early_Dynastic_Cuneiform", "Egyptian_Hieroglyphs",
279            "Anatolian_Hieroglyphs", "Bamum_Supplement", "Mro", "Bassa_Vah",
280            "Pahawh_Hmong", "Medefaidrin", "Miao",
281            "Ideographic_Symbols_And_Punctuation", "Tangut",
282            "Tangut_Components", "Kana_Supplement", "Kana_Extended_A",
283            "Nushu", "Duployan", "Shorthand_Format_Controls",
284            "Byzantine_Musical_Symbols", "Musical_Symbols",
285            "Ancient_Greek_Musical_Notation", "Mayan_Numerals",
286            "Tai_Xuan_Jing_Symbols", "Counting_Rod_Numerals",
287            "Mathematical_Alphanumeric_Symbols", "Sutton_SignWriting",
288            "Glagolitic_Supplement", "Mende_Kikakui", "Adlam",
289            "Indic_Siyaq_Numbers", "Arabic_Mathematical_Alphabetic_Symbols",
290            "Mahjong_Tiles", "Domino_Tiles", "Playing_Cards",
291            "Enclosed_Alphanumeric_Supplement",
292            "Enclosed_Ideographic_Supplement",
293            "Miscellaneous_Symbols_And_Pictographs", "Emoticons",
294            "Ornamental_Dingbats", "Transport_And_Map_Symbols",
295            "Alchemical_Symbols", "Geometric_Shapes_Extended",
296            "Supplemental_Arrows_C", "Supplemental_Symbols_And_Pictographs",
297            "Chess_Symbols", "CJK_Unified_Ideographs_Extension_B",
298            "CJK_Unified_Ideographs_Extension_C",
299            "CJK_Unified_Ideographs_Extension_D",
300            "CJK_Unified_Ideographs_Extension_E",
301            "CJK_Unified_Ideographs_Extension_F",
302            "CJK_Compatibility_Ideographs_Supplement", "Tags",
303            "Variation_Selectors_Supplement",
304            "Supplementary_Private_Use_Area_A",
305            "Supplementary_Private_Use_Area_B"};
306        static std::unordered_map<std::string, int> aliases_only_map {{
307            {"canadiansyllabics", BLK_ns::UCAS},
308            {"combiningmarksforsymbols", BLK_ns::Diacriticals_For_Symbols},
309            {"cyrillicsupplementary", BLK_ns::Cyrillic_Sup},
310            {"latin1", BLK_ns::Latin_1_Sup}, {"privateuse", BLK_ns::PUA}}};
311    }
312
313    namespace SC_ns {
314        enum value_t {
315            Zzzz, Zyyy, Latn, Grek, Cyrl, Armn, Hebr, Arab, Syrc, Thaa,
316            Deva, Beng, Guru, Gujr, Orya, Taml, Telu, Knda, Mlym, Sinh,
317            Thai, Laoo, Tibt, Mymr, Geor, Hang, Ethi, Cher, Cans, Ogam,
318            Runr, Khmr, Mong, Hira, Kana, Bopo, Hani, Yiii, Ital, Goth,
319            Dsrt, Zinh, Tglg, Hano, Buhd, Tagb, Limb, Tale, Linb, Ugar,
320            Shaw, Osma, Cprt, Brai, Bugi, Copt, Talu, Glag, Tfng, Sylo,
321            Xpeo, Khar, Bali, Xsux, Phnx, Phag, Nkoo, Sund, Lepc, Olck,
322            Vaii, Saur, Kali, Rjng, Lyci, Cari, Lydi, Cham, Lana, Tavt,
323            Avst, Egyp, Samr, Lisu, Bamu, Java, Mtei, Armi, Sarb, Prti,
324            Phli, Orkh, Kthi, Batk, Brah, Mand, Cakm, Merc, Mero, Plrd,
325            Shrd, Sora, Takr, Aghb, Bass, Dupl, Elba, Gran, Hmng, Khoj,
326            Lina, Mahj, Mani, Mend, Modi, Mroo, Narb, Nbat, Palm, Pauc,
327            Perm, Phlp, Sidd, Sind, Tirh, Wara, Ahom, Hluw, Hatr, Mult,
328            Hung, Sgnw, Adlm, Bhks, Marc, Newa, Osge, Tang, Gonm, Nshu,
329            Soyo, Zanb, Dogr, Gong, Maka, Medf, Rohg, Sogd, Sogo, Hrkt};
330        const static std::vector<std::string> enum_names = {
331            "Zzzz", "Zyyy", "Latn", "Grek", "Cyrl", "Armn", "Hebr", "Arab",
332            "Syrc", "Thaa", "Deva", "Beng", "Guru", "Gujr", "Orya", "Taml",
333            "Telu", "Knda", "Mlym", "Sinh", "Thai", "Laoo", "Tibt", "Mymr",
334            "Geor", "Hang", "Ethi", "Cher", "Cans", "Ogam", "Runr", "Khmr",
335            "Mong", "Hira", "Kana", "Bopo", "Hani", "Yiii", "Ital", "Goth",
336            "Dsrt", "Zinh", "Tglg", "Hano", "Buhd", "Tagb", "Limb", "Tale",
337            "Linb", "Ugar", "Shaw", "Osma", "Cprt", "Brai", "Bugi", "Copt",
338            "Talu", "Glag", "Tfng", "Sylo", "Xpeo", "Khar", "Bali", "Xsux",
339            "Phnx", "Phag", "Nkoo", "Sund", "Lepc", "Olck", "Vaii", "Saur",
340            "Kali", "Rjng", "Lyci", "Cari", "Lydi", "Cham", "Lana", "Tavt",
341            "Avst", "Egyp", "Samr", "Lisu", "Bamu", "Java", "Mtei", "Armi",
342            "Sarb", "Prti", "Phli", "Orkh", "Kthi", "Batk", "Brah", "Mand",
343            "Cakm", "Merc", "Mero", "Plrd", "Shrd", "Sora", "Takr", "Aghb",
344            "Bass", "Dupl", "Elba", "Gran", "Hmng", "Khoj", "Lina", "Mahj",
345            "Mani", "Mend", "Modi", "Mroo", "Narb", "Nbat", "Palm", "Pauc",
346            "Perm", "Phlp", "Sidd", "Sind", "Tirh", "Wara", "Ahom", "Hluw",
347            "Hatr", "Mult", "Hung", "Sgnw", "Adlm", "Bhks", "Marc", "Newa",
348            "Osge", "Tang", "Gonm", "Nshu", "Soyo", "Zanb", "Dogr", "Gong",
349            "Maka", "Medf", "Rohg", "Sogd", "Sogo", "Hrkt"};
350        const static std::vector<std::string> value_names = {
351            "Unknown", "Common", "Latin", "Greek", "Cyrillic", "Armenian",
352            "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali",
353            "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada",
354            "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar",
355            "Georgian", "Hangul", "Ethiopic", "Cherokee",
356            "Canadian_Aboriginal", "Ogham", "Runic", "Khmer", "Mongolian",
357            "Hiragana", "Katakana", "Bopomofo", "Han", "Yi", "Old_Italic",
358            "Gothic", "Deseret", "Inherited", "Tagalog", "Hanunoo", "Buhid",
359            "Tagbanwa", "Limbu", "Tai_Le", "Linear_B", "Ugaritic",
360            "Shavian", "Osmanya", "Cypriot", "Braille", "Buginese",
361            "Coptic", "New_Tai_Lue", "Glagolitic", "Tifinagh",
362            "Syloti_Nagri", "Old_Persian", "Kharoshthi", "Balinese",
363            "Cuneiform", "Phoenician", "Phags_Pa", "Nko", "Sundanese",
364            "Lepcha", "Ol_Chiki", "Vai", "Saurashtra", "Kayah_Li", "Rejang",
365            "Lycian", "Carian", "Lydian", "Cham", "Tai_Tham", "Tai_Viet",
366            "Avestan", "Egyptian_Hieroglyphs", "Samaritan", "Lisu", "Bamum",
367            "Javanese", "Meetei_Mayek", "Imperial_Aramaic",
368            "Old_South_Arabian", "Inscriptional_Parthian",
369            "Inscriptional_Pahlavi", "Old_Turkic", "Kaithi", "Batak",
370            "Brahmi", "Mandaic", "Chakma", "Meroitic_Cursive",
371            "Meroitic_Hieroglyphs", "Miao", "Sharada", "Sora_Sompeng",
372            "Takri", "Caucasian_Albanian", "Bassa_Vah", "Duployan",
373            "Elbasan", "Grantha", "Pahawh_Hmong", "Khojki", "Linear_A",
374            "Mahajani", "Manichaean", "Mende_Kikakui", "Modi", "Mro",
375            "Old_North_Arabian", "Nabataean", "Palmyrene", "Pau_Cin_Hau",
376            "Old_Permic", "Psalter_Pahlavi", "Siddham", "Khudawadi",
377            "Tirhuta", "Warang_Citi", "Ahom", "Anatolian_Hieroglyphs",
378            "Hatran", "Multani", "Old_Hungarian", "SignWriting", "Adlam",
379            "Bhaiksuki", "Marchen", "Newa", "Osage", "Tangut",
380            "Masaram_Gondi", "Nushu", "Soyombo", "Zanabazar_Square",
381            "Dogra", "Gunjala_Gondi", "Makasar", "Medefaidrin",
382            "Hanifi_Rohingya", "Sogdian", "Old_Sogdian",
383            "Katakana_Or_Hiragana"};
384        static std::unordered_map<std::string, int> aliases_only_map {{
385            {"qaac", SC_ns::Copt}, {"qaai", SC_ns::Zinh}}};
386    }
387
388    namespace BC_ns {
389        enum value_t {
390            L, R, EN, ES, ET, AN, CS, B, S, WS, ON, BN, NSM, AL, LRO, RLO,
391            LRE, RLE, PDF, LRI, RLI, FSI, PDI};
392        const static std::vector<std::string> enum_names = {
393            "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S", "WS", "ON",
394            "BN", "NSM", "AL", "LRO", "RLO", "LRE", "RLE", "PDF", "LRI",
395            "RLI", "FSI", "PDI"};
396        const static std::vector<std::string> value_names = {
397            "Left_To_Right", "Right_To_Left", "European_Number",
398            "European_Separator", "European_Terminator", "Arabic_Number",
399            "Common_Separator", "Paragraph_Separator", "Segment_Separator",
400            "White_Space", "Other_Neutral", "Boundary_Neutral",
401            "Nonspacing_Mark", "Arabic_Letter", "Left_To_Right_Override",
402            "Right_To_Left_Override", "Left_To_Right_Embedding",
403            "Right_To_Left_Embedding", "Pop_Directional_Format",
404            "Left_To_Right_Isolate", "Right_To_Left_Isolate",
405            "First_Strong_Isolate", "Pop_Directional_Isolate"};
406        static std::unordered_map<std::string, int> aliases_only_map {{
407            }};
408    }
409
410    namespace BPT_ns {
411        enum value_t {
412            n, o, c};
413        const static std::vector<std::string> enum_names = {
414            "n", "o", "c"};
415        const static std::vector<std::string> value_names = {
416            "None", "Open", "Close"};
417        static std::unordered_map<std::string, int> aliases_only_map {{
418            }};
419    }
420
421    namespace CCC_ns {
422        enum value_t {
423            NR, OV, NK, KV, VR, CCC10, CCC11, CCC12, CCC13, CCC14, CCC15,
424            CCC16, CCC17, CCC18, CCC19, CCC20, CCC21, CCC22, CCC23, CCC24,
425            CCC25, CCC26, CCC27, CCC28, CCC29, CCC30, CCC31, CCC32, CCC33,
426            CCC34, CCC35, CCC36, CCC84, CCC91, CCC103, CCC107, CCC118,
427            CCC122, CCC129, CCC130, CCC132, ATB, ATA, ATAR, BL, B, BR, L, R,
428            AL, A, AR, DB, DA, IS, CCC133, ATBL
429        };
430        const uint16_t enum_val[] = {
431              0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
432            22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 84,
433            91, 103, 107, 118, 122, 129, 130, 132, 202, 214, 216, 218, 220,
434            222, 224, 226, 228, 230, 232, 233, 234, 240, 133, 200};
435        const static std::vector<std::string> enum_names = {
436            "NR", "OV", "NK", "KV", "VR", "CCC10", "CCC11", "CCC12",
437            "CCC13", "CCC14", "CCC15", "CCC16", "CCC17", "CCC18", "CCC19",
438            "CCC20", "CCC21", "CCC22", "CCC23", "CCC24", "CCC25", "CCC26",
439            "CCC27", "CCC28", "CCC29", "CCC30", "CCC31", "CCC32", "CCC33",
440            "CCC34", "CCC35", "CCC36", "CCC84", "CCC91", "CCC103", "CCC107",
441            "CCC118", "CCC122", "CCC129", "CCC130", "CCC132", "ATB", "ATA",
442            "ATAR", "BL", "B", "BR", "L", "R", "AL", "A", "AR", "DB", "DA",
443            "IS", "CCC133", "ATBL"};
444        const static std::vector<std::string> value_names = {
445            "Not_Reordered", "Overlay", "Nukta", "Kana_Voicing", "Virama",
446            "CCC10", "CCC11", "CCC12", "CCC13", "CCC14", "CCC15", "CCC16",
447            "CCC17", "CCC18", "CCC19", "CCC20", "CCC21", "CCC22", "CCC23",
448            "CCC24", "CCC25", "CCC26", "CCC27", "CCC28", "CCC29", "CCC30",
449            "CCC31", "CCC32", "CCC33", "CCC34", "CCC35", "CCC36", "CCC84",
450            "CCC91", "CCC103", "CCC107", "CCC118", "CCC122", "CCC129",
451            "CCC130", "CCC132", "Attached_Below", "Attached_Above",
452            "Attached_Above_Right", "Below_Left", "Below", "Below_Right",
453            "Left", "Right", "Above_Left", "Above", "Above_Right",
454            "Double_Below", "Double_Above", "Iota_Subscript", "CCC133",
455            "Attached_Below_Left"};
456        static std::unordered_map<std::string, int> aliases_only_map {{
457            {"0", CCC_ns::NR}, {"1", CCC_ns::OV}, {"10", CCC_ns::CCC10},
458            {"103", CCC_ns::CCC103}, {"107", CCC_ns::CCC107},
459            {"11", CCC_ns::CCC11}, {"118", CCC_ns::CCC118},
460            {"12", CCC_ns::CCC12}, {"122", CCC_ns::CCC122},
461            {"129", CCC_ns::CCC129}, {"13", CCC_ns::CCC13},
462            {"130", CCC_ns::CCC130}, {"132", CCC_ns::CCC132},
463            {"133", CCC_ns::CCC133}, {"14", CCC_ns::CCC14},
464            {"15", CCC_ns::CCC15}, {"16", CCC_ns::CCC16},
465            {"17", CCC_ns::CCC17}, {"18", CCC_ns::CCC18},
466            {"19", CCC_ns::CCC19}, {"20", CCC_ns::CCC20},
467            {"200", CCC_ns::ATBL}, {"202", CCC_ns::ATB},
468            {"21", CCC_ns::CCC21}, {"214", CCC_ns::ATA},
469            {"216", CCC_ns::ATAR}, {"218", CCC_ns::BL},
470            {"22", CCC_ns::CCC22}, {"220", CCC_ns::B}, {"222", CCC_ns::BR},
471            {"224", CCC_ns::L}, {"226", CCC_ns::R}, {"228", CCC_ns::AL},
472            {"23", CCC_ns::CCC23}, {"230", CCC_ns::A}, {"232", CCC_ns::AR},
473            {"233", CCC_ns::DB}, {"234", CCC_ns::DA}, {"24", CCC_ns::CCC24},
474            {"240", CCC_ns::IS}, {"25", CCC_ns::CCC25},
475            {"26", CCC_ns::CCC26}, {"27", CCC_ns::CCC27},
476            {"28", CCC_ns::CCC28}, {"29", CCC_ns::CCC29},
477            {"30", CCC_ns::CCC30}, {"31", CCC_ns::CCC31},
478            {"32", CCC_ns::CCC32}, {"33", CCC_ns::CCC33},
479            {"34", CCC_ns::CCC34}, {"35", CCC_ns::CCC35},
480            {"36", CCC_ns::CCC36}, {"7", CCC_ns::NK}, {"8", CCC_ns::KV},
481            {"84", CCC_ns::CCC84}, {"9", CCC_ns::VR}, {"91", CCC_ns::CCC91}}};
482    }
483
484    namespace DT_ns {
485        enum value_t {
486            None, Can, Com, Font, Nb, Init, Med, Fin, Iso, Enc, Sup, Sub,
487            Vert, Wide, Nar, Sml, Sqr, Fra};
488        const static std::vector<std::string> enum_names = {
489            "None", "Can", "Com", "Font", "Nb", "Init", "Med", "Fin", "Iso",
490            "Enc", "Sup", "Sub", "Vert", "Wide", "Nar", "Sml", "Sqr", "Fra"};
491        const static std::vector<std::string> value_names = {
492            "None", "Canonical", "Compat", "Font", "Nobreak", "Initial",
493            "Medial", "Final", "Isolated", "Circle", "Super", "Sub",
494            "Vertical", "Wide", "Narrow", "Small", "Square", "Fraction"};
495        static std::unordered_map<std::string, int> aliases_only_map {{
496            }};
497    }
498
499    namespace EA_ns {
500        enum value_t {
501            N, Na, A, W, H, F};
502        const static std::vector<std::string> enum_names = {
503            "N", "Na", "A", "W", "H", "F"};
504        const static std::vector<std::string> value_names = {
505            "Neutral", "Narrow", "Ambiguous", "Wide", "Halfwidth",
506            "Fullwidth"};
507        static std::unordered_map<std::string, int> aliases_only_map {{
508            }};
509    }
510
511    namespace GC_ns {
512        enum value_t {
513            Cn, Lu, Ll, Lt, Lm, Lo, Mn, Me, Mc, Nd, Nl, No, Zs, Zl, Zp, Cc,
514            Cf, Co, Cs, Pd, Ps, Pe, Pc, Po, Sm, Sc, Sk, So, Pi, Pf, C, L,
515            LC, M, N, P, S, Z};
516        const static std::vector<std::string> enum_names = {
517            "Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd",
518            "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", "Co", "Cs", "Pd",
519            "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "C",
520            "L", "LC", "M", "N", "P", "S", "Z"};
521        const static std::vector<std::string> value_names = {
522            "Unassigned", "Uppercase_Letter", "Lowercase_Letter",
523            "Titlecase_Letter", "Modifier_Letter", "Other_Letter",
524            "Nonspacing_Mark", "Enclosing_Mark", "Spacing_Mark",
525            "Decimal_Number", "Letter_Number", "Other_Number",
526            "Space_Separator", "Line_Separator", "Paragraph_Separator",
527            "Control", "Format", "Private_Use", "Surrogate",
528            "Dash_Punctuation", "Open_Punctuation", "Close_Punctuation",
529            "Connector_Punctuation", "Other_Punctuation", "Math_Symbol",
530            "Currency_Symbol", "Modifier_Symbol", "Other_Symbol",
531            "Initial_Punctuation", "Final_Punctuation", "Other", "Letter",
532            "Cased_Letter", "Mark", "Number", "Punctuation", "Symbol",
533            "Separator"};
534        static std::unordered_map<std::string, int> aliases_only_map {{
535            {"cntrl", GC_ns::Cc}, {"combiningmark", GC_ns::M},
536            {"digit", GC_ns::Nd}, {"punct", GC_ns::P}}};
537    }
538
539    namespace GCB_ns {
540        enum value_t {
541            XX, PP, CR, LF, CN, EX, RI, SM, L, V, T, LV, LVT, ZWJ, EB, EBG,
542            EM, GAZ};
543        const static std::vector<std::string> enum_names = {
544            "XX", "PP", "CR", "LF", "CN", "EX", "RI", "SM", "L", "V", "T",
545            "LV", "LVT", "ZWJ", "EB", "EBG", "EM", "GAZ"};
546        const static std::vector<std::string> value_names = {
547            "Other", "Prepend", "CR", "LF", "Control", "Extend",
548            "Regional_Indicator", "SpacingMark", "L", "V", "T", "LV", "LVT",
549            "ZWJ", "E_Base", "E_Base_GAZ", "E_Modifier", "Glue_After_Zwj"};
550        static std::unordered_map<std::string, int> aliases_only_map {{
551            }};
552    }
553
554    namespace HST_ns {
555        enum value_t {
556            NA, L, V, T, LV, LVT};
557        const static std::vector<std::string> enum_names = {
558            "NA", "L", "V", "T", "LV", "LVT"};
559        const static std::vector<std::string> value_names = {
560            "Not_Applicable", "Leading_Jamo", "Vowel_Jamo", "Trailing_Jamo",
561            "LV_Syllable", "LVT_Syllable"};
562        static std::unordered_map<std::string, int> aliases_only_map {{
563            }};
564    }
565
566    namespace INPC_ns {
567        enum value_t {
568            NA, Right, Left, Visual_Order_Left, Left_And_Right, Top, Bottom,
569            Top_And_Bottom, Top_And_Right, Top_And_Left,
570            Top_And_Left_And_Right, Bottom_And_Right, Bottom_And_Left,
571            Top_And_Bottom_And_Right, Overstruck};
572        const static std::vector<std::string> enum_names = {
573            "NA", "Right", "Left", "Visual_Order_Left", "Left_And_Right",
574            "Top", "Bottom", "Top_And_Bottom", "Top_And_Right",
575            "Top_And_Left", "Top_And_Left_And_Right", "Bottom_And_Right",
576            "Bottom_And_Left", "Top_And_Bottom_And_Right", "Overstruck"};
577        const static std::vector<std::string> value_names = {
578            "NA", "Right", "Left", "Visual_Order_Left", "Left_And_Right",
579            "Top", "Bottom", "Top_And_Bottom", "Top_And_Right",
580            "Top_And_Left", "Top_And_Left_And_Right", "Bottom_And_Right",
581            "Bottom_And_Left", "Top_And_Bottom_And_Right", "Overstruck"};
582        static std::unordered_map<std::string, int> aliases_only_map {{
583            }};
584    }
585
586    namespace INSC_ns {
587        enum value_t {
588            Other, Bindu, Visarga, Avagraha, Nukta, Virama, Pure_Killer,
589            Invisible_Stacker, Vowel_Independent, Vowel_Dependent, Vowel,
590            Consonant_Placeholder, Consonant, Consonant_Dead,
591            Consonant_With_Stacker, Consonant_Prefixed,
592            Consonant_Preceding_Repha, Consonant_Initial_Postfixed,
593            Consonant_Succeeding_Repha, Consonant_Subjoined,
594            Consonant_Medial, Consonant_Final, Consonant_Head_Letter,
595            Modifying_Letter, Tone_Letter, Tone_Mark, Gemination_Mark,
596            Cantillation_Mark, Register_Shifter, Syllable_Modifier,
597            Consonant_Killer, Non_Joiner, Joiner, Number_Joiner, Number,
598            Brahmi_Joining_Number};
599        const static std::vector<std::string> enum_names = {
600            "Other", "Bindu", "Visarga", "Avagraha", "Nukta", "Virama",
601            "Pure_Killer", "Invisible_Stacker", "Vowel_Independent",
602            "Vowel_Dependent", "Vowel", "Consonant_Placeholder",
603            "Consonant", "Consonant_Dead", "Consonant_With_Stacker",
604            "Consonant_Prefixed", "Consonant_Preceding_Repha",
605            "Consonant_Initial_Postfixed", "Consonant_Succeeding_Repha",
606            "Consonant_Subjoined", "Consonant_Medial", "Consonant_Final",
607            "Consonant_Head_Letter", "Modifying_Letter", "Tone_Letter",
608            "Tone_Mark", "Gemination_Mark", "Cantillation_Mark",
609            "Register_Shifter", "Syllable_Modifier", "Consonant_Killer",
610            "Non_Joiner", "Joiner", "Number_Joiner", "Number",
611            "Brahmi_Joining_Number"};
612        const static std::vector<std::string> value_names = {
613            "Other", "Bindu", "Visarga", "Avagraha", "Nukta", "Virama",
614            "Pure_Killer", "Invisible_Stacker", "Vowel_Independent",
615            "Vowel_Dependent", "Vowel", "Consonant_Placeholder",
616            "Consonant", "Consonant_Dead", "Consonant_With_Stacker",
617            "Consonant_Prefixed", "Consonant_Preceding_Repha",
618            "Consonant_Initial_Postfixed", "Consonant_Succeeding_Repha",
619            "Consonant_Subjoined", "Consonant_Medial", "Consonant_Final",
620            "Consonant_Head_Letter", "Modifying_Letter", "Tone_Letter",
621            "Tone_Mark", "Gemination_Mark", "Cantillation_Mark",
622            "Register_Shifter", "Syllable_Modifier", "Consonant_Killer",
623            "Non_Joiner", "Joiner", "Number_Joiner", "Number",
624            "Brahmi_Joining_Number"};
625        static std::unordered_map<std::string, int> aliases_only_map {{
626            }};
627    }
628
629    namespace JG_ns {
630        enum value_t {
631            No_Joining_Group, Ain, Alaph, Alef, Beh, Beth, Dal, Dalath_Rish,
632            E, Feh, Final_Semkath, Gaf, Gamal, Hah, Teh_Marbuta_Goal, He,
633            Heh, Heh_Goal, Heth, Kaf, Kaph, Knotted_Heh, Lam, Lamadh, Meem,
634            Mim, Noon, Nun, Pe, Qaf, Qaph, Reh, Reversed_Pe, Sad, Sadhe,
635            Seen, Semkath, Shin, Swash_Kaf, Tah, Taw, Teh_Marbuta, Teth,
636            Waw, Syriac_Waw, Yeh, Yeh_Barree, Yeh_With_Tail, Yudh, Yudh_He,
637            Zain, Zhain, Khaph, Fe, Burushaski_Yeh_Barree, Farsi_Yeh, Nya,
638            Rohingya_Yeh, Straight_Waw, Manichaean_Aleph, Manichaean_Ayin,
639            Manichaean_Beth, Manichaean_Daleth, Manichaean_Dhamedh,
640            Manichaean_Five, Manichaean_Gimel, Manichaean_Heth,
641            Manichaean_Hundred, Manichaean_Kaph, Manichaean_Lamedh,
642            Manichaean_Mem, Manichaean_Nun, Manichaean_One, Manichaean_Pe,
643            Manichaean_Qoph, Manichaean_Resh, Manichaean_Sadhe,
644            Manichaean_Samekh, Manichaean_Taw, Manichaean_Ten,
645            Manichaean_Teth, Manichaean_Thamedh, Manichaean_Twenty,
646            Manichaean_Waw, Manichaean_Yodh, Manichaean_Zayin, African_Feh,
647            African_Qaf, African_Noon, Malayalam_Nga, Malayalam_Ja,
648            Malayalam_Nya, Malayalam_Tta, Malayalam_Nna, Malayalam_Nnna,
649            Malayalam_Bha, Malayalam_Ra, Malayalam_Lla, Malayalam_Llla,
650            Malayalam_Ssa, Hanifi_Rohingya_Pa, Hanifi_Rohingya_Kinna_Ya};
651        const static std::vector<std::string> enum_names = {
652            "No_Joining_Group", "Ain", "Alaph", "Alef", "Beh", "Beth",
653            "Dal", "Dalath_Rish", "E", "Feh", "Final_Semkath", "Gaf",
654            "Gamal", "Hah", "Teh_Marbuta_Goal", "He", "Heh", "Heh_Goal",
655            "Heth", "Kaf", "Kaph", "Knotted_Heh", "Lam", "Lamadh", "Meem",
656            "Mim", "Noon", "Nun", "Pe", "Qaf", "Qaph", "Reh", "Reversed_Pe",
657            "Sad", "Sadhe", "Seen", "Semkath", "Shin", "Swash_Kaf", "Tah",
658            "Taw", "Teh_Marbuta", "Teth", "Waw", "Syriac_Waw", "Yeh",
659            "Yeh_Barree", "Yeh_With_Tail", "Yudh", "Yudh_He", "Zain",
660            "Zhain", "Khaph", "Fe", "Burushaski_Yeh_Barree", "Farsi_Yeh",
661            "Nya", "Rohingya_Yeh", "Straight_Waw", "Manichaean_Aleph",
662            "Manichaean_Ayin", "Manichaean_Beth", "Manichaean_Daleth",
663            "Manichaean_Dhamedh", "Manichaean_Five", "Manichaean_Gimel",
664            "Manichaean_Heth", "Manichaean_Hundred", "Manichaean_Kaph",
665            "Manichaean_Lamedh", "Manichaean_Mem", "Manichaean_Nun",
666            "Manichaean_One", "Manichaean_Pe", "Manichaean_Qoph",
667            "Manichaean_Resh", "Manichaean_Sadhe", "Manichaean_Samekh",
668            "Manichaean_Taw", "Manichaean_Ten", "Manichaean_Teth",
669            "Manichaean_Thamedh", "Manichaean_Twenty", "Manichaean_Waw",
670            "Manichaean_Yodh", "Manichaean_Zayin", "African_Feh",
671            "African_Qaf", "African_Noon", "Malayalam_Nga", "Malayalam_Ja",
672            "Malayalam_Nya", "Malayalam_Tta", "Malayalam_Nna",
673            "Malayalam_Nnna", "Malayalam_Bha", "Malayalam_Ra",
674            "Malayalam_Lla", "Malayalam_Llla", "Malayalam_Ssa",
675            "Hanifi_Rohingya_Pa", "Hanifi_Rohingya_Kinna_Ya"};
676        const static std::vector<std::string> value_names = {
677            "No_Joining_Group", "Ain", "Alaph", "Alef", "Beh", "Beth",
678            "Dal", "Dalath_Rish", "E", "Feh", "Final_Semkath", "Gaf",
679            "Gamal", "Hah", "Hamza_On_Heh_Goal", "He", "Heh", "Heh_Goal",
680            "Heth", "Kaf", "Kaph", "Knotted_Heh", "Lam", "Lamadh", "Meem",
681            "Mim", "Noon", "Nun", "Pe", "Qaf", "Qaph", "Reh", "Reversed_Pe",
682            "Sad", "Sadhe", "Seen", "Semkath", "Shin", "Swash_Kaf", "Tah",
683            "Taw", "Teh_Marbuta", "Teth", "Waw", "Syriac_Waw", "Yeh",
684            "Yeh_Barree", "Yeh_With_Tail", "Yudh", "Yudh_He", "Zain",
685            "Zhain", "Khaph", "Fe", "Burushaski_Yeh_Barree", "Farsi_Yeh",
686            "Nya", "Rohingya_Yeh", "Straight_Waw", "Manichaean_Aleph",
687            "Manichaean_Ayin", "Manichaean_Beth", "Manichaean_Daleth",
688            "Manichaean_Dhamedh", "Manichaean_Five", "Manichaean_Gimel",
689            "Manichaean_Heth", "Manichaean_Hundred", "Manichaean_Kaph",
690            "Manichaean_Lamedh", "Manichaean_Mem", "Manichaean_Nun",
691            "Manichaean_One", "Manichaean_Pe", "Manichaean_Qoph",
692            "Manichaean_Resh", "Manichaean_Sadhe", "Manichaean_Samekh",
693            "Manichaean_Taw", "Manichaean_Ten", "Manichaean_Teth",
694            "Manichaean_Thamedh", "Manichaean_Twenty", "Manichaean_Waw",
695            "Manichaean_Yodh", "Manichaean_Zayin", "African_Feh",
696            "African_Qaf", "African_Noon", "Malayalam_Nga", "Malayalam_Ja",
697            "Malayalam_Nya", "Malayalam_Tta", "Malayalam_Nna",
698            "Malayalam_Nnna", "Malayalam_Bha", "Malayalam_Ra",
699            "Malayalam_Lla", "Malayalam_Llla", "Malayalam_Ssa",
700            "Hanifi_Rohingya_Pa", "Hanifi_Rohingya_Kinna_Ya"};
701        static std::unordered_map<std::string, int> aliases_only_map {{
702            }};
703    }
704
705    namespace JT_ns {
706        enum value_t {
707            U, C, D, R, L, T};
708        const static std::vector<std::string> enum_names = {
709            "U", "C", "D", "R", "L", "T"};
710        const static std::vector<std::string> value_names = {
711            "Non_Joining", "Join_Causing", "Dual_Joining", "Right_Joining",
712            "Left_Joining", "Transparent"};
713        static std::unordered_map<std::string, int> aliases_only_map {{
714            }};
715    }
716
717    namespace LB_ns {
718        enum value_t {
719            XX, CM, BA, LF, BK, CR, SP, EX, QU, AL, PR, PO, OP, CP, IS, HY,
720            SY, NU, CL, NL, GL, AI, BB, HL, SA, JL, JV, JT, NS, ZW, ZWJ, B2,
721            IN, WJ, ID, EB, CJ, H2, H3, SG, CB, RI, EM};
722        const static std::vector<std::string> enum_names = {
723            "XX", "CM", "BA", "LF", "BK", "CR", "SP", "EX", "QU", "AL",
724            "PR", "PO", "OP", "CP", "IS", "HY", "SY", "NU", "CL", "NL",
725            "GL", "AI", "BB", "HL", "SA", "JL", "JV", "JT", "NS", "ZW",
726            "ZWJ", "B2", "IN", "WJ", "ID", "EB", "CJ", "H2", "H3", "SG",
727            "CB", "RI", "EM"};
728        const static std::vector<std::string> value_names = {
729            "Unknown", "Combining_Mark", "Break_After", "Line_Feed",
730            "Mandatory_Break", "Carriage_Return", "Space", "Exclamation",
731            "Quotation", "Alphabetic", "Prefix_Numeric", "Postfix_Numeric",
732            "Open_Punctuation", "Close_Parenthesis", "Infix_Numeric",
733            "Hyphen", "Break_Symbols", "Numeric", "Close_Punctuation",
734            "Next_Line", "Glue", "Ambiguous", "Break_Before",
735            "Hebrew_Letter", "Complex_Context", "JL", "JV", "JT",
736            "Nonstarter", "ZWSpace", "ZWJ", "Break_Both", "Inseparable",
737            "Word_Joiner", "Ideographic", "E_Base",
738            "Conditional_Japanese_Starter", "H2", "H3", "Surrogate",
739            "Contingent_Break", "Regional_Indicator", "E_Modifier"};
740        static std::unordered_map<std::string, int> aliases_only_map {{
741            {"inseperable", LB_ns::IN}}};
742    }
743
744    namespace NFC_QC_ns {
745        enum value_t {
746            Y, N, M};
747        const static std::vector<std::string> enum_names = {
748            "Y", "N", "M"};
749        const static std::vector<std::string> value_names = {
750            "Yes", "No", "Maybe"};
751        static std::unordered_map<std::string, int> aliases_only_map {{
752            }};
753    }
754
755    namespace NFD_QC_ns {
756        enum value_t {
757            Y, N};
758        const static std::vector<std::string> enum_names = {
759            "Y", "N"};
760        const static std::vector<std::string> value_names = {
761            "Yes", "No"};
762        static std::unordered_map<std::string, int> aliases_only_map {{
763            }};
764    }
765
766    namespace NFKC_QC_ns {
767        enum value_t {
768            Y, N, M};
769        const static std::vector<std::string> enum_names = {
770            "Y", "N", "M"};
771        const static std::vector<std::string> value_names = {
772            "Yes", "No", "Maybe"};
773        static std::unordered_map<std::string, int> aliases_only_map {{
774            }};
775    }
776
777    namespace NFKD_QC_ns {
778        enum value_t {
779            Y, N};
780        const static std::vector<std::string> enum_names = {
781            "Y", "N"};
782        const static std::vector<std::string> value_names = {
783            "Yes", "No"};
784        static std::unordered_map<std::string, int> aliases_only_map {{
785            }};
786    }
787
788    namespace NT_ns {
789        enum value_t {
790            None, Nu, Di, De};
791        const static std::vector<std::string> enum_names = {
792            "None", "Nu", "Di", "De"};
793        const static std::vector<std::string> value_names = {
794            "None", "Numeric", "Digit", "Decimal"};
795        static std::unordered_map<std::string, int> aliases_only_map {{
796            }};
797    }
798
799    namespace SB_ns {
800        enum value_t {
801            XX, CR, LF, EX, SE, FO, SP, LO, UP, LE, NU, AT, ST, CL, SC};
802        const static std::vector<std::string> enum_names = {
803            "XX", "CR", "LF", "EX", "SE", "FO", "SP", "LO", "UP", "LE",
804            "NU", "AT", "ST", "CL", "SC"};
805        const static std::vector<std::string> value_names = {
806            "Other", "CR", "LF", "Extend", "Sep", "Format", "Sp", "Lower",
807            "Upper", "OLetter", "Numeric", "ATerm", "STerm", "Close",
808            "SContinue"};
809        static std::unordered_map<std::string, int> aliases_only_map {{
810            }};
811    }
812
813    namespace VO_ns {
814        enum value_t {
815            R, U, Tr, Tu};
816        const static std::vector<std::string> enum_names = {
817            "R", "U", "Tr", "Tu"};
818        const static std::vector<std::string> value_names = {
819            "Rotated", "Upright", "Transformed_Rotated",
820            "Transformed_Upright"};
821        static std::unordered_map<std::string, int> aliases_only_map {{
822            }};
823    }
824
825    namespace WB_ns {
826        enum value_t {
827            XX, DQ, SQ, HL, CR, LF, NL, Extend, RI, FO, KA, LE, ML, MN, MB,
828            NU, EX, ZWJ, WSegSpace, EB, EBG, EM, GAZ};
829        const static std::vector<std::string> enum_names = {
830            "XX", "DQ", "SQ", "HL", "CR", "LF", "NL", "Extend", "RI", "FO",
831            "KA", "LE", "ML", "MN", "MB", "NU", "EX", "ZWJ", "WSegSpace",
832            "EB", "EBG", "EM", "GAZ"};
833        const static std::vector<std::string> value_names = {
834            "Other", "Double_Quote", "Single_Quote", "Hebrew_Letter", "CR",
835            "LF", "Newline", "Extend", "Regional_Indicator", "Format",
836            "Katakana", "ALetter", "MidLetter", "MidNum", "MidNumLet",
837            "Numeric", "ExtendNumLet", "ZWJ", "WSegSpace", "E_Base",
838            "E_Base_GAZ", "E_Modifier", "Glue_After_Zwj"};
839        static std::unordered_map<std::string, int> aliases_only_map {{
840            }};
841    }
842}
843
844#endif
Note: See TracBrowser for help on using the repository browser.