Files
kjol/tools/tsgo/internal/scanner/unicodeproperties.go
2026-07-09 16:50:43 -04:00

163 lines
7.2 KiB
Go

package scanner
import "github.com/microsoft/typescript-go/internal/collections"
// Table 66: Non-binary Unicode property aliases and their canonical property names
// https://tc39.es/ecma262/#table-nonbinary-unicode-properties
var nonBinaryUnicodeProperties = map[string]string{
"General_Category": "General_Category",
"gc": "General_Category",
"Script": "Script",
"sc": "Script",
"Script_Extensions": "Script_Extensions",
"scx": "Script_Extensions",
}
// Table 67: Binary Unicode property aliases and their canonical property names
// https://tc39.es/ecma262/#table-binary-unicode-properties
var binaryUnicodeProperties = collections.NewSetFromItems(
"ASCII", "ASCII_Hex_Digit", "AHex", "Alphabetic", "Alpha", "Any", "Assigned",
"Bidi_Control", "Bidi_C", "Bidi_Mirrored", "Bidi_M",
"Case_Ignorable", "CI", "Cased",
"Changes_When_Casefolded", "CWCF", "Changes_When_Casemapped", "CWCM",
"Changes_When_Lowercased", "CWL", "Changes_When_NFKC_Casefolded", "CWKCF",
"Changes_When_Titlecased", "CWT", "Changes_When_Uppercased", "CWU",
"Dash", "Default_Ignorable_Code_Point", "DI", "Deprecated", "Dep",
"Diacritic", "Dia",
"Emoji", "Emoji_Component", "EComp", "Emoji_Modifier", "EMod",
"Emoji_Modifier_Base", "EBase", "Emoji_Presentation", "EPres",
"Extended_Pictographic", "ExtPict", "Extender", "Ext",
"Grapheme_Base", "Gr_Base", "Grapheme_Extend", "Gr_Ext",
"Hex_Digit", "Hex",
"IDS_Binary_Operator", "IDSB", "IDS_Trinary_Operator", "IDST",
"ID_Continue", "IDC", "ID_Start", "IDS",
"Ideographic", "Ideo",
"Join_Control", "Join_C",
"Logical_Order_Exception", "LOE",
"Lowercase", "Lower", "Math",
"Noncharacter_Code_Point", "NChar",
"Pattern_Syntax", "Pat_Syn", "Pattern_White_Space", "Pat_WS",
"Quotation_Mark", "QMark",
"Radical",
"Regional_Indicator", "RI",
"Sentence_Terminal", "STerm",
"Soft_Dotted", "SD",
"Terminal_Punctuation", "Term",
"Unified_Ideograph", "UIdeo",
"Uppercase", "Upper",
"Variation_Selector", "VS",
"White_Space", "space",
"XID_Continue", "XIDC", "XID_Start", "XIDS",
)
// Table 68: Binary Unicode properties of strings
// https://tc39.es/ecma262/#table-binary-unicode-properties-of-strings
var binaryUnicodePropertiesOfStrings = collections.NewSetFromItems(
"Basic_Emoji", "Emoji_Keycap_Sequence", "RGI_Emoji_Modifier_Sequence",
"RGI_Emoji_Flag_Sequence", "RGI_Emoji_Tag_Sequence",
"RGI_Emoji_ZWJ_Sequence", "RGI_Emoji",
)
// Unicode 15.1
var scriptValues = collections.NewSetFromItems(
"Adlm", "Adlam", "Aghb", "Caucasian_Albanian", "Ahom", "Arab", "Arabic",
"Armi", "Imperial_Aramaic", "Armn", "Armenian", "Avst", "Avestan",
"Bali", "Balinese", "Bamu", "Bamum", "Bass", "Bassa_Vah", "Batk", "Batak",
"Beng", "Bengali", "Bhks", "Bhaiksuki", "Bopo", "Bopomofo", "Brah", "Brahmi",
"Brai", "Braille", "Bugi", "Buginese", "Buhd", "Buhid",
"Cakm", "Chakma", "Cans", "Canadian_Aboriginal", "Cari", "Carian",
"Cham", "Cher", "Cherokee", "Chrs", "Chorasmian",
"Copt", "Coptic", "Qaac", "Cpmn", "Cypro_Minoan", "Cprt", "Cypriot",
"Cyrl", "Cyrillic",
"Deva", "Devanagari", "Diak", "Dives_Akuru", "Dogr", "Dogra",
"Dsrt", "Deseret", "Dupl", "Duployan",
"Egyp", "Egyptian_Hieroglyphs", "Elba", "Elbasan", "Elym", "Elymaic",
"Ethi", "Ethiopic",
"Geor", "Georgian", "Glag", "Glagolitic",
"Gong", "Gunjala_Gondi", "Gonm", "Masaram_Gondi",
"Goth", "Gothic", "Gran", "Grantha", "Grek", "Greek",
"Gujr", "Gujarati", "Guru", "Gurmukhi",
"Hang", "Hangul", "Hani", "Han", "Hano", "Hanunoo",
"Hatr", "Hatran", "Hebr", "Hebrew",
"Hira", "Hiragana", "Hluw", "Anatolian_Hieroglyphs",
"Hmng", "Pahawh_Hmong", "Hmnp", "Nyiakeng_Puachue_Hmong",
"Hrkt", "Katakana_Or_Hiragana",
"Hung", "Old_Hungarian",
"Ital", "Old_Italic",
"Java", "Javanese",
"Kali", "Kayah_Li", "Kana", "Katakana", "Kawi",
"Khar", "Kharoshthi", "Khmr", "Khmer", "Khoj", "Khojki",
"Kits", "Khitan_Small_Script", "Knda", "Kannada", "Kthi", "Kaithi",
"Lana", "Tai_Tham", "Laoo", "Lao", "Latn", "Latin",
"Lepc", "Lepcha", "Limb", "Limbu",
"Lina", "Linear_A", "Linb", "Linear_B", "Lisu",
"Lyci", "Lycian", "Lydi", "Lydian",
"Mahj", "Mahajani", "Maka", "Makasar",
"Mand", "Mandaic", "Mani", "Manichaean", "Marc", "Marchen",
"Medf", "Medefaidrin", "Mend", "Mende_Kikakui",
"Merc", "Meroitic_Cursive", "Mero", "Meroitic_Hieroglyphs",
"Mlym", "Malayalam", "Modi", "Mong", "Mongolian",
"Mroo", "Mro", "Mtei", "Meetei_Mayek", "Mult", "Multani",
"Mymr", "Myanmar",
"Nagm", "Nag_Mundari", "Nand", "Nandinagari",
"Narb", "Old_North_Arabian", "Nbat", "Nabataean",
"Newa", "Nkoo", "Nko", "Nshu", "Nushu",
"Ogam", "Ogham", "Olck", "Ol_Chiki",
"Orkh", "Old_Turkic", "Orya", "Oriya",
"Osge", "Osage", "Osma", "Osmanya", "Ougr", "Old_Uyghur",
"Palm", "Palmyrene", "Pauc", "Pau_Cin_Hau",
"Perm", "Old_Permic", "Phag", "Phags_Pa",
"Phli", "Inscriptional_Pahlavi", "Phlp", "Psalter_Pahlavi",
"Phnx", "Phoenician", "Plrd", "Miao",
"Prti", "Inscriptional_Parthian",
"Rjng", "Rejang", "Rohg", "Hanifi_Rohingya",
"Runr", "Runic",
"Samr", "Samaritan", "Sarb", "Old_South_Arabian",
"Saur", "Saurashtra", "Sgnw", "SignWriting",
"Shaw", "Shavian", "Shrd", "Sharada",
"Sidd", "Siddham", "Sind", "Khudawadi", "Sinh", "Sinhala",
"Sogd", "Sogdian", "Sogo", "Old_Sogdian",
"Sora", "Sora_Sompeng", "Soyo", "Soyombo",
"Sund", "Sundanese", "Sylo", "Syloti_Nagri", "Syrc", "Syriac",
"Tagb", "Tagbanwa", "Takr", "Takri",
"Tale", "Tai_Le", "Talu", "New_Tai_Lue",
"Taml", "Tamil", "Tang", "Tangut", "Tavt", "Tai_Viet",
"Telu", "Telugu", "Tfng", "Tifinagh",
"Tglg", "Tagalog", "Thaa", "Thaana", "Thai", "Tibt", "Tibetan",
"Tirh", "Tirhuta", "Tnsa", "Tangsa", "Toto",
"Ugar", "Ugaritic",
"Vaii", "Vai", "Vith", "Vithkuqi",
"Wara", "Warang_Citi", "Wcho", "Wancho",
"Xpeo", "Old_Persian", "Xsux", "Cuneiform",
"Yezi", "Yezidi", "Yiii", "Yi",
"Zanb", "Zanabazar_Square",
"Zinh", "Inherited", "Qaai",
"Zyyy", "Common",
"Zzzz", "Unknown",
)
var valuesOfNonBinaryUnicodeProperties = map[string]*collections.Set[string]{
"General_Category": collections.NewSetFromItems(
"C", "Other", "Cc", "Control", "cntrl", "Cf", "Format", "Cn", "Unassigned",
"Co", "Private_Use", "Cs", "Surrogate",
"L", "Letter", "LC", "Cased_Letter", "Ll", "Lowercase_Letter", "Lm", "Modifier_Letter",
"Lo", "Other_Letter", "Lt", "Titlecase_Letter", "Lu", "Uppercase_Letter",
"M", "Mark", "Combining_Mark", "Mc", "Spacing_Mark", "Me", "Enclosing_Mark",
"Mn", "Nonspacing_Mark",
"N", "Number", "Nd", "Decimal_Number", "digit", "Nl", "Letter_Number", "No", "Other_Number",
"P", "Punctuation", "punct", "Pc", "Connector_Punctuation", "Pd", "Dash_Punctuation",
"Pe", "Close_Punctuation", "Pf", "Final_Punctuation", "Pi", "Initial_Punctuation",
"Po", "Other_Punctuation", "Ps", "Open_Punctuation",
"S", "Symbol", "Sc", "Currency_Symbol", "Sk", "Modifier_Symbol",
"Sm", "Math_Symbol", "So", "Other_Symbol",
"Z", "Separator", "Zl", "Line_Separator", "Zp", "Paragraph_Separator",
"Zs", "Space_Separator",
),
"Script": scriptValues,
// The Script_Extensions property of a character contains one or more Script values.
// See https://www.unicode.org/reports/tr24/#Script_Extensions
// Here, since each Unicode property value expression only allows a single value,
// its values can be considered the same as those of the Script property.
"Script_Extensions": scriptValues,
}