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

Last change on this file since 5145 was 5145, checked in by cameron, 3 years ago

Updates for Unicode 9.0

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