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

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

Multicolumn parsing support for UCD files - adding bpt property

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