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

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

Update to Unicode 8.0

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