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

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

Support for Canonical Combining Class property

File size: 48.9 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            {"0", CCC_ns::NR}, {"1", CCC_ns::OV}, {"10", CCC_ns::CCC10},
519            {"103", CCC_ns::CCC103}, {"107", CCC_ns::CCC107},
520            {"11", CCC_ns::CCC11}, {"118", CCC_ns::CCC118},
521            {"12", CCC_ns::CCC12}, {"122", CCC_ns::CCC122},
522            {"129", CCC_ns::CCC129}, {"13", CCC_ns::CCC13},
523            {"130", CCC_ns::CCC130}, {"132", CCC_ns::CCC132},
524            {"133", CCC_ns::CCC133}, {"14", CCC_ns::CCC14},
525            {"15", CCC_ns::CCC15}, {"16", CCC_ns::CCC16},
526            {"17", CCC_ns::CCC17}, {"18", CCC_ns::CCC18},
527            {"19", CCC_ns::CCC19}, {"20", CCC_ns::CCC20},
528            {"200", CCC_ns::ATBL}, {"202", CCC_ns::ATB},
529            {"21", CCC_ns::CCC21}, {"214", CCC_ns::ATA},
530            {"216", CCC_ns::ATAR}, {"218", CCC_ns::BL},
531            {"22", CCC_ns::CCC22}, {"220", CCC_ns::B}, {"222", CCC_ns::BR},
532            {"224", CCC_ns::L}, {"226", CCC_ns::R}, {"228", CCC_ns::AL},
533            {"23", CCC_ns::CCC23}, {"230", CCC_ns::A}, {"232", CCC_ns::AR},
534            {"233", CCC_ns::DB}, {"234", CCC_ns::DA}, {"24", CCC_ns::CCC24},
535            {"240", CCC_ns::IS}, {"25", CCC_ns::CCC25},
536            {"26", CCC_ns::CCC26}, {"27", CCC_ns::CCC27},
537            {"28", CCC_ns::CCC28}, {"29", CCC_ns::CCC29},
538            {"30", CCC_ns::CCC30}, {"31", CCC_ns::CCC31},
539            {"32", CCC_ns::CCC32}, {"33", CCC_ns::CCC33},
540            {"34", CCC_ns::CCC34}, {"35", CCC_ns::CCC35},
541            {"36", CCC_ns::CCC36}, {"7", CCC_ns::NK}, {"8", CCC_ns::KV},
542            {"84", CCC_ns::CCC84}, {"9", CCC_ns::VR}, {"91", CCC_ns::CCC91}}};
543    }
544
545    namespace DT_ns {
546        enum value_t {
547            Can, Com, Enc, Fin, Font, Fra, Init, Iso, Med, Nar, Nb, None,
548            Sml, Sqr, Sub, Sup, Vert, Wide};
549        const static std::vector<std::string> enum_names = {
550            "Can", "Com", "Enc", "Fin", "Font", "Fra", "Init", "Iso", "Med",
551            "Nar", "Nb", "None", "Sml", "Sqr", "Sub", "Sup", "Vert", "Wide"};
552        const static std::vector<std::string> value_names = {
553            "Canonical", "Compat", "Circle", "Final", "Font", "Fraction",
554            "Initial", "Isolated", "Medial", "Narrow", "Nobreak", "None",
555            "Small", "Square", "Sub", "Super", "Vertical", "Wide"};
556        static std::unordered_map<std::string, int> aliases_only_map {{
557            }};
558    }
559
560    namespace EA_ns {
561        enum value_t {
562            A, F, H, N, Na, W};
563        const static std::vector<std::string> enum_names = {
564            "A", "F", "H", "N", "Na", "W"};
565        const static std::vector<std::string> value_names = {
566            "Ambiguous", "Fullwidth", "Halfwidth", "Neutral", "Narrow",
567            "Wide"};
568        static std::unordered_map<std::string, int> aliases_only_map {{
569            }};
570    }
571
572    namespace GC_ns {
573        enum value_t {
574            C, Cc, Cf, Cn, Co, Cs, L, LC, Ll, Lm, Lo, Lt, Lu, M, Mc, Me, Mn,
575            N, Nd, Nl, No, P, Pc, Pd, Pe, Pf, Pi, Po, Ps, S, Sc, Sk, Sm, So,
576            Z, Zl, Zp, Zs};
577        const static std::vector<std::string> enum_names = {
578            "C", "Cc", "Cf", "Cn", "Co", "Cs", "L", "LC", "Ll", "Lm", "Lo",
579            "Lt", "Lu", "M", "Mc", "Me", "Mn", "N", "Nd", "Nl", "No", "P",
580            "Pc", "Pd", "Pe", "Pf", "Pi", "Po", "Ps", "S", "Sc", "Sk", "Sm",
581            "So", "Z", "Zl", "Zp", "Zs"};
582        const static std::vector<std::string> value_names = {
583            "Other", "Control", "Format", "Unassigned", "Private_Use",
584            "Surrogate", "Letter", "Cased_Letter", "Lowercase_Letter",
585            "Modifier_Letter", "Other_Letter", "Titlecase_Letter",
586            "Uppercase_Letter", "Mark", "Spacing_Mark", "Enclosing_Mark",
587            "Nonspacing_Mark", "Number", "Decimal_Number", "Letter_Number",
588            "Other_Number", "Punctuation", "Connector_Punctuation",
589            "Dash_Punctuation", "Close_Punctuation", "Final_Punctuation",
590            "Initial_Punctuation", "Other_Punctuation", "Open_Punctuation",
591            "Symbol", "Currency_Symbol", "Modifier_Symbol", "Math_Symbol",
592            "Other_Symbol", "Separator", "Line_Separator",
593            "Paragraph_Separator", "Space_Separator"};
594        static std::unordered_map<std::string, int> aliases_only_map {{
595            {"cntrl", GC_ns::Cc}, {"combiningmark", GC_ns::M},
596            {"digit", GC_ns::Nd}, {"punct", GC_ns::P}}};
597    }
598
599    namespace GCB_ns {
600        enum value_t {
601            CN, CR, EX, L, LF, LV, LVT, PP, RI, SM, T, V, XX};
602        const static std::vector<std::string> enum_names = {
603            "CN", "CR", "EX", "L", "LF", "LV", "LVT", "PP", "RI", "SM", "T",
604            "V", "XX"};
605        const static std::vector<std::string> value_names = {
606            "Control", "CR", "Extend", "L", "LF", "LV", "LVT", "Prepend",
607            "Regional_Indicator", "SpacingMark", "T", "V", "Other"};
608        static std::unordered_map<std::string, int> aliases_only_map {{
609            }};
610    }
611
612    namespace HST_ns {
613        enum value_t {
614            L, LV, LVT, NA, T, V};
615        const static std::vector<std::string> enum_names = {
616            "L", "LV", "LVT", "NA", "T", "V"};
617        const static std::vector<std::string> value_names = {
618            "Leading_Jamo", "LV_Syllable", "LVT_Syllable", "Not_Applicable",
619            "Trailing_Jamo", "Vowel_Jamo"};
620        static std::unordered_map<std::string, int> aliases_only_map {{
621            }};
622    }
623
624    namespace INPC_ns {
625        enum value_t {
626            Bottom, Bottom_And_Right, Left, Left_And_Right, NA, Overstruck,
627            Right, Top, Top_And_Bottom, Top_And_Bottom_And_Right,
628            Top_And_Left, Top_And_Left_And_Right, Top_And_Right,
629            Visual_Order_Left};
630        const static std::vector<std::string> enum_names = {
631            "Bottom", "Bottom_And_Right", "Left", "Left_And_Right", "NA",
632            "Overstruck", "Right", "Top", "Top_And_Bottom",
633            "Top_And_Bottom_And_Right", "Top_And_Left",
634            "Top_And_Left_And_Right", "Top_And_Right", "Visual_Order_Left"};
635        const static std::vector<std::string> value_names = {
636            "Bottom", "Bottom_And_Right", "Left", "Left_And_Right", "NA",
637            "Overstruck", "Right", "Top", "Top_And_Bottom",
638            "Top_And_Bottom_And_Right", "Top_And_Left",
639            "Top_And_Left_And_Right", "Top_And_Right", "Visual_Order_Left"};
640        static std::unordered_map<std::string, int> aliases_only_map {{
641            }};
642    }
643
644    namespace INSC_ns {
645        enum value_t {
646            Avagraha, Bindu, Brahmi_Joining_Number, Cantillation_Mark,
647            Consonant, Consonant_Dead, Consonant_Final,
648            Consonant_Head_Letter, Consonant_Killer, Consonant_Medial,
649            Consonant_Placeholder, Consonant_Preceding_Repha,
650            Consonant_Prefixed, Consonant_Subjoined,
651            Consonant_Succeeding_Repha, Consonant_With_Stacker,
652            Gemination_Mark, Invisible_Stacker, Joiner, Modifying_Letter,
653            Non_Joiner, Nukta, Number, Number_Joiner, Other, Pure_Killer,
654            Register_Shifter, Syllable_Modifier, Tone_Letter, Tone_Mark,
655            Virama, Visarga, Vowel, Vowel_Dependent, Vowel_Independent};
656        const static std::vector<std::string> enum_names = {
657            "Avagraha", "Bindu", "Brahmi_Joining_Number",
658            "Cantillation_Mark", "Consonant", "Consonant_Dead",
659            "Consonant_Final", "Consonant_Head_Letter", "Consonant_Killer",
660            "Consonant_Medial", "Consonant_Placeholder",
661            "Consonant_Preceding_Repha", "Consonant_Prefixed",
662            "Consonant_Subjoined", "Consonant_Succeeding_Repha",
663            "Consonant_With_Stacker", "Gemination_Mark",
664            "Invisible_Stacker", "Joiner", "Modifying_Letter", "Non_Joiner",
665            "Nukta", "Number", "Number_Joiner", "Other", "Pure_Killer",
666            "Register_Shifter", "Syllable_Modifier", "Tone_Letter",
667            "Tone_Mark", "Virama", "Visarga", "Vowel", "Vowel_Dependent",
668            "Vowel_Independent"};
669        const static std::vector<std::string> value_names = {
670            "Avagraha", "Bindu", "Brahmi_Joining_Number",
671            "Cantillation_Mark", "Consonant", "Consonant_Dead",
672            "Consonant_Final", "Consonant_Head_Letter", "Consonant_Killer",
673            "Consonant_Medial", "Consonant_Placeholder",
674            "Consonant_Preceding_Repha", "Consonant_Prefixed",
675            "Consonant_Subjoined", "Consonant_Succeeding_Repha",
676            "Consonant_With_Stacker", "Gemination_Mark",
677            "Invisible_Stacker", "Joiner", "Modifying_Letter", "Non_Joiner",
678            "Nukta", "Number", "Number_Joiner", "Other", "Pure_Killer",
679            "Register_Shifter", "Syllable_Modifier", "Tone_Letter",
680            "Tone_Mark", "Virama", "Visarga", "Vowel", "Vowel_Dependent",
681            "Vowel_Independent"};
682        static std::unordered_map<std::string, int> aliases_only_map {{
683            }};
684    }
685
686    namespace JG_ns {
687        enum value_t {
688            Ain, Alaph, Alef, Beh, Beth, Burushaski_Yeh_Barree, Dal,
689            Dalath_Rish, E, Farsi_Yeh, Fe, Feh, Final_Semkath, Gaf, Gamal,
690            Hah, He, Heh, Heh_Goal, Heth, Kaf, Kaph, Khaph, Knotted_Heh,
691            Lam, Lamadh, Manichaean_Aleph, Manichaean_Ayin, Manichaean_Beth,
692            Manichaean_Daleth, Manichaean_Dhamedh, Manichaean_Five,
693            Manichaean_Gimel, Manichaean_Heth, Manichaean_Hundred,
694            Manichaean_Kaph, Manichaean_Lamedh, Manichaean_Mem,
695            Manichaean_Nun, Manichaean_One, Manichaean_Pe, Manichaean_Qoph,
696            Manichaean_Resh, Manichaean_Sadhe, Manichaean_Samekh,
697            Manichaean_Taw, Manichaean_Ten, Manichaean_Teth,
698            Manichaean_Thamedh, Manichaean_Twenty, Manichaean_Waw,
699            Manichaean_Yodh, Manichaean_Zayin, Meem, Mim, No_Joining_Group,
700            Noon, Nun, Nya, Pe, Qaf, Qaph, Reh, Reversed_Pe, Rohingya_Yeh,
701            Sad, Sadhe, Seen, Semkath, Shin, Straight_Waw, Swash_Kaf,
702            Syriac_Waw, Tah, Taw, Teh_Marbuta, Teh_Marbuta_Goal, Teth, Waw,
703            Yeh, Yeh_Barree, Yeh_With_Tail, Yudh, Yudh_He, Zain, Zhain};
704        const static std::vector<std::string> enum_names = {
705            "Ain", "Alaph", "Alef", "Beh", "Beth", "Burushaski_Yeh_Barree",
706            "Dal", "Dalath_Rish", "E", "Farsi_Yeh", "Fe", "Feh",
707            "Final_Semkath", "Gaf", "Gamal", "Hah", "He", "Heh", "Heh_Goal",
708            "Heth", "Kaf", "Kaph", "Khaph", "Knotted_Heh", "Lam", "Lamadh",
709            "Manichaean_Aleph", "Manichaean_Ayin", "Manichaean_Beth",
710            "Manichaean_Daleth", "Manichaean_Dhamedh", "Manichaean_Five",
711            "Manichaean_Gimel", "Manichaean_Heth", "Manichaean_Hundred",
712            "Manichaean_Kaph", "Manichaean_Lamedh", "Manichaean_Mem",
713            "Manichaean_Nun", "Manichaean_One", "Manichaean_Pe",
714            "Manichaean_Qoph", "Manichaean_Resh", "Manichaean_Sadhe",
715            "Manichaean_Samekh", "Manichaean_Taw", "Manichaean_Ten",
716            "Manichaean_Teth", "Manichaean_Thamedh", "Manichaean_Twenty",
717            "Manichaean_Waw", "Manichaean_Yodh", "Manichaean_Zayin", "Meem",
718            "Mim", "No_Joining_Group", "Noon", "Nun", "Nya", "Pe", "Qaf",
719            "Qaph", "Reh", "Reversed_Pe", "Rohingya_Yeh", "Sad", "Sadhe",
720            "Seen", "Semkath", "Shin", "Straight_Waw", "Swash_Kaf",
721            "Syriac_Waw", "Tah", "Taw", "Teh_Marbuta", "Teh_Marbuta_Goal",
722            "Teth", "Waw", "Yeh", "Yeh_Barree", "Yeh_With_Tail", "Yudh",
723            "Yudh_He", "Zain", "Zhain"};
724        const static std::vector<std::string> value_names = {
725            "Ain", "Alaph", "Alef", "Beh", "Beth", "Burushaski_Yeh_Barree",
726            "Dal", "Dalath_Rish", "E", "Farsi_Yeh", "Fe", "Feh",
727            "Final_Semkath", "Gaf", "Gamal", "Hah", "He", "Heh", "Heh_Goal",
728            "Heth", "Kaf", "Kaph", "Khaph", "Knotted_Heh", "Lam", "Lamadh",
729            "Manichaean_Aleph", "Manichaean_Ayin", "Manichaean_Beth",
730            "Manichaean_Daleth", "Manichaean_Dhamedh", "Manichaean_Five",
731            "Manichaean_Gimel", "Manichaean_Heth", "Manichaean_Hundred",
732            "Manichaean_Kaph", "Manichaean_Lamedh", "Manichaean_Mem",
733            "Manichaean_Nun", "Manichaean_One", "Manichaean_Pe",
734            "Manichaean_Qoph", "Manichaean_Resh", "Manichaean_Sadhe",
735            "Manichaean_Samekh", "Manichaean_Taw", "Manichaean_Ten",
736            "Manichaean_Teth", "Manichaean_Thamedh", "Manichaean_Twenty",
737            "Manichaean_Waw", "Manichaean_Yodh", "Manichaean_Zayin", "Meem",
738            "Mim", "No_Joining_Group", "Noon", "Nun", "Nya", "Pe", "Qaf",
739            "Qaph", "Reh", "Reversed_Pe", "Rohingya_Yeh", "Sad", "Sadhe",
740            "Seen", "Semkath", "Shin", "Straight_Waw", "Swash_Kaf",
741            "Syriac_Waw", "Tah", "Taw", "Teh_Marbuta", "Hamza_On_Heh_Goal",
742            "Teth", "Waw", "Yeh", "Yeh_Barree", "Yeh_With_Tail", "Yudh",
743            "Yudh_He", "Zain", "Zhain"};
744        static std::unordered_map<std::string, int> aliases_only_map {{
745            }};
746    }
747
748    namespace JT_ns {
749        enum value_t {
750            C, D, L, R, T, U};
751        const static std::vector<std::string> enum_names = {
752            "C", "D", "L", "R", "T", "U"};
753        const static std::vector<std::string> value_names = {
754            "Join_Causing", "Dual_Joining", "Left_Joining", "Right_Joining",
755            "Transparent", "Non_Joining"};
756        static std::unordered_map<std::string, int> aliases_only_map {{
757            }};
758    }
759
760    namespace LB_ns {
761        enum value_t {
762            AI, AL, B2, BA, BB, BK, CB, CJ, CL, CM, CP, CR, EX, GL, H2, H3,
763            HL, HY, ID, IN, IS, JL, JT, JV, LF, NL, NS, NU, OP, PO, PR, QU,
764            RI, SA, SG, SP, SY, WJ, XX, ZW};
765        const static std::vector<std::string> enum_names = {
766            "AI", "AL", "B2", "BA", "BB", "BK", "CB", "CJ", "CL", "CM",
767            "CP", "CR", "EX", "GL", "H2", "H3", "HL", "HY", "ID", "IN",
768            "IS", "JL", "JT", "JV", "LF", "NL", "NS", "NU", "OP", "PO",
769            "PR", "QU", "RI", "SA", "SG", "SP", "SY", "WJ", "XX", "ZW"};
770        const static std::vector<std::string> value_names = {
771            "Ambiguous", "Alphabetic", "Break_Both", "Break_After",
772            "Break_Before", "Mandatory_Break", "Contingent_Break",
773            "Conditional_Japanese_Starter", "Close_Punctuation",
774            "Combining_Mark", "Close_Parenthesis", "Carriage_Return",
775            "Exclamation", "Glue", "H2", "H3", "Hebrew_Letter", "Hyphen",
776            "Ideographic", "Inseparable", "Infix_Numeric", "JL", "JT", "JV",
777            "Line_Feed", "Next_Line", "Nonstarter", "Numeric",
778            "Open_Punctuation", "Postfix_Numeric", "Prefix_Numeric",
779            "Quotation", "Regional_Indicator", "Complex_Context",
780            "Surrogate", "Space", "Break_Symbols", "Word_Joiner", "Unknown",
781            "ZWSpace"};
782        static std::unordered_map<std::string, int> aliases_only_map {{
783            {"inseperable", LB_ns::IN}}};
784    }
785
786    namespace NFC_QC_ns {
787        enum value_t {
788            M, N, Y};
789        const static std::vector<std::string> enum_names = {
790            "M", "N", "Y"};
791        const static std::vector<std::string> value_names = {
792            "Maybe", "No", "Yes"};
793        static std::unordered_map<std::string, int> aliases_only_map {{
794            }};
795    }
796
797    namespace NFD_QC_ns {
798        enum value_t {
799            N, Y};
800        const static std::vector<std::string> enum_names = {
801            "N", "Y"};
802        const static std::vector<std::string> value_names = {
803            "No", "Yes"};
804        static std::unordered_map<std::string, int> aliases_only_map {{
805            }};
806    }
807
808    namespace NFKC_QC_ns {
809        enum value_t {
810            M, N, Y};
811        const static std::vector<std::string> enum_names = {
812            "M", "N", "Y"};
813        const static std::vector<std::string> value_names = {
814            "Maybe", "No", "Yes"};
815        static std::unordered_map<std::string, int> aliases_only_map {{
816            }};
817    }
818
819    namespace NFKD_QC_ns {
820        enum value_t {
821            N, Y};
822        const static std::vector<std::string> enum_names = {
823            "N", "Y"};
824        const static std::vector<std::string> value_names = {
825            "No", "Yes"};
826        static std::unordered_map<std::string, int> aliases_only_map {{
827            }};
828    }
829
830    namespace NT_ns {
831        enum value_t {
832            De, Di, None, Nu};
833        const static std::vector<std::string> enum_names = {
834            "De", "Di", "None", "Nu"};
835        const static std::vector<std::string> value_names = {
836            "Decimal", "Digit", "None", "Numeric"};
837        static std::unordered_map<std::string, int> aliases_only_map {{
838            }};
839    }
840
841    namespace SB_ns {
842        enum value_t {
843            AT, CL, CR, EX, FO, LE, LF, LO, NU, SC, SE, SP, ST, UP, XX};
844        const static std::vector<std::string> enum_names = {
845            "AT", "CL", "CR", "EX", "FO", "LE", "LF", "LO", "NU", "SC",
846            "SE", "SP", "ST", "UP", "XX"};
847        const static std::vector<std::string> value_names = {
848            "ATerm", "Close", "CR", "Extend", "Format", "OLetter", "LF",
849            "Lower", "Numeric", "SContinue", "Sep", "Sp", "STerm", "Upper",
850            "Other"};
851        static std::unordered_map<std::string, int> aliases_only_map {{
852            }};
853    }
854
855    namespace WB_ns {
856        enum value_t {
857            CR, DQ, EX, Extend, FO, HL, KA, LE, LF, MB, ML, MN, NL, NU, RI,
858            SQ, XX};
859        const static std::vector<std::string> enum_names = {
860            "CR", "DQ", "EX", "Extend", "FO", "HL", "KA", "LE", "LF", "MB",
861            "ML", "MN", "NL", "NU", "RI", "SQ", "XX"};
862        const static std::vector<std::string> value_names = {
863            "CR", "Double_Quote", "ExtendNumLet", "Extend", "Format",
864            "Hebrew_Letter", "Katakana", "ALetter", "LF", "MidNumLet",
865            "MidLetter", "MidNum", "Newline", "Numeric",
866            "Regional_Indicator", "Single_Quote", "Other"};
867        static std::unordered_map<std::string, int> aliases_only_map {{
868            }};
869    }
870}
871
872#endif
Note: See TracBrowser for help on using the repository browser.