package promql import ( "errors" "strconv" ) // validateUnicodeEscape checks that the provided escape sequence is a // valid Unicode escape sequence. func validateUnicodeEscape(escape, errMsg string) (interface{}, error) { r, _, _, err := strconv.UnquoteChar("\\"+escape, '"') if err != nil { return nil, errors.New(errMsg) } if 0xD800 <= r && r <= 0xDFFF { return nil, errors.New(errMsg) } return nil, nil } var unicodeClasses = map[string]bool{ "ASCII_Hex_Digit": true, "Arabic": true, "Armenian": true, "Avestan": true, "Balinese": true, "Bamum": true, "Bassa_Vah": true, "Batak": true, "Bengali": true, "Bidi_Control": true, "Bopomofo": true, "Brahmi": true, "Braille": true, "Buginese": true, "Buhid": true, "C": true, "Canadian_Aboriginal": true, "Carian": true, "Caucasian_Albanian": true, "Cc": true, "Cf": true, "Chakma": true, "Cham": true, "Cherokee": true, "Co": true, "Common": true, "Coptic": true, "Cs": true, "Cuneiform": true, "Cypriot": true, "Cyrillic": true, "Dash": true, "Deprecated": true, "Deseret": true, "Devanagari": true, "Diacritic": true, "Duployan": true, "Egyptian_Hieroglyphs": true, "Elbasan": true, "Ethiopic": true, "Extender": true, "Georgian": true, "Glagolitic": true, "Gothic": true, "Grantha": true, "Greek": true, "Gujarati": true, "Gurmukhi": true, "Han": true, "Hangul": true, "Hanunoo": true, "Hebrew": true, "Hex_Digit": true, "Hiragana": true, "Hyphen": true, "IDS_Binary_Operator": true, "IDS_Trinary_Operator": true, "Ideographic": true, "Imperial_Aramaic": true, "Inherited": true, "Inscriptional_Pahlavi": true, "Inscriptional_Parthian": true, "Javanese": true, "Join_Control": true, "Kaithi": true, "Kannada": true, "Katakana": true, "Kayah_Li": true, "Kharoshthi": true, "Khmer": true, "Khojki": true, "Khudawadi": true, "L": true, "Lao": true, "Latin": true, "Lepcha": true, "Limbu": true, "Linear_A": true, "Linear_B": true, "Lisu": true, "Ll": true, "Lm": true, "Lo": true, "Logical_Order_Exception": true, "Lt": true, "Lu": true, "Lycian": true, "Lydian": true, "M": true, "Mahajani": true, "Malayalam": true, "Mandaic": true, "Manichaean": true, "Mc": true, "Me": true, "Meetei_Mayek": true, "Mende_Kikakui": true, "Meroitic_Cursive": true, "Meroitic_Hieroglyphs": true, "Miao": true, "Mn": true, "Modi": true, "Mongolian": true, "Mro": true, "Myanmar": true, "N": true, "Nabataean": true, "Nd": true, "New_Tai_Lue": true, "Nko": true, "Nl": true, "No": true, "Noncharacter_Code_Point": true, "Ogham": true, "Ol_Chiki": true, "Old_Italic": true, "Old_North_Arabian": true, "Old_Permic": true, "Old_Persian": true, "Old_South_Arabian": true, "Old_Turkic": true, "Oriya": true, "Osmanya": true, "Other_Alphabetic": true, "Other_Default_Ignorable_Code_Point": true, "Other_Grapheme_Extend": true, "Other_ID_Continue": true, "Other_ID_Start": true, "Other_Lowercase": true, "Other_Math": true, "Other_Uppercase": true, "P": true, "Pahawh_Hmong": true, "Palmyrene": true, "Pattern_Syntax": true, "Pattern_White_Space": true, "Pau_Cin_Hau": true, "Pc": true, "Pd": true, "Pe": true, "Pf": true, "Phags_Pa": true, "Phoenician": true, "Pi": true, "Po": true, "Ps": true, "Psalter_Pahlavi": true, "Quotation_Mark": true, "Radical": true, "Rejang": true, "Runic": true, "S": true, "STerm": true, "Samaritan": true, "Saurashtra": true, "Sc": true, "Sharada": true, "Shavian": true, "Siddham": true, "Sinhala": true, "Sk": true, "Sm": true, "So": true, "Soft_Dotted": true, "Sora_Sompeng": true, "Sundanese": true, "Syloti_Nagri": true, "Syriac": true, "Tagalog": true, "Tagbanwa": true, "Tai_Le": true, "Tai_Tham": true, "Tai_Viet": true, "Takri": true, "Tamil": true, "Telugu": true, "Terminal_Punctuation": true, "Thaana": true, "Thai": true, "Tibetan": true, "Tifinagh": true, "Tirhuta": true, "Ugaritic": true, "Unified_Ideograph": true, "Vai": true, "Variation_Selector": true, "Warang_Citi": true, "White_Space": true, "Yi": true, "Z": true, "Zl": true, "Zp": true, "Zs": true, }