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

Last change on this file since 5656 was 5656, checked in by cameron, 22 months ago

UCD_Config.h, add Indic and CompositionExclusion? properties

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