#pragma once namespace xtr::encode { //! Unicode math symbols enumerations enum UTF8Codes : wchar_t { US_LOGIC_NOT = 0xAC, //отрицание US_CARTH = 0xD7, //декартово произведение US_BOOL = 0x212C, //булеан US_A = 0x03B1, //альфа US_B = 0x03B2, //бэта US_G = 0x03B3, //гамма US_D = 0x03B4, //дельта US_E = 0x03B5, //экпсилон US_Z = 0x03B6, //зетта US_H = 0x03B7, //эта US_V = 0x03B8, //тэта US_L = 0x03BB, //лямбда US_M = 0x03BC, //мю US_N = 0x03BD, //ню US_X = 0x03BE, //кси US_O = 0x03BF, //о US_P = 0x03C0, //пи US_R = 0x03C1, //ро US_S = 0x03C3, //сигма US_T = 0x03C4, //тау US_Q = 0x03C5, //ипсилон US_F = 0x03C6, //фи US_C = 0x03C7, //хи US_J = 0x03C8, //пси US_W = 0x03C9, //омега US_DIGIT_SUB0 = 0x2080, // 0 US_DIGIT_SUB1 = 0x2081, // 1 US_DIGIT_SUB2 = 0x2082, // 2 US_DIGIT_SUB3 = 0x2083, // 3 US_DIGIT_SUB4 = 0x2084, // 4 US_DIGIT_SUB5 = 0x2085, // 5 US_DIGIT_SUB6 = 0x2086, // 6 US_DIGIT_SUB7 = 0x2087, // 7 US_DIGIT_SUB8 = 0x2088, // 8 US_DIGIT_SUB9 = 0x2089, // 9 US_INTEGERS = 0x2102, //множество целых чисел US_NATURALS = 0x2115, //множество натуральных чисел US_REALS = 0x211D, //множество действительных чисел US_IMPLICATION = 0x21D2, //импликация US_LOGIC_EQUAL = 0x21D4, //тогда и только тогда US_LOGIC_FORALL = 0x2200, //для любого US_LOGIC_EXISTS = 0x2203, //существует US_EMPTYSET = 0x2205, //пустое множество US_ELEMENT = 0x2208, //принадлежность US_NOTELEMENT = 0x2209, //не принадлежность US_MINUS = 0x2212, //минус US_INFINITY = 0x221E, //бесконечность US_SET_UNION = 0x222A, //объединение US_SET_SYMMINUS = 0x2206, //симметрическая разность US_LOGIC_OR = 0x2228, //или US_SET_INTERSECTION = 0x2229, //пересечение US_NOTEQUAL = 0x2260, //не равно US_GREATER_OR_EQ = 0x2265, //больше или равно US_LESSER_OR_EQ = 0x2264, //меньше или равно US_IDENTITY = 0x2261, //тождественно равно US_SUBSET = 0x2282, //включение US_NOTSUBSET = 0x2284, //не включение US_SUBSET_OR_EQ = 0x2286 //нестрогое включение }; constexpr bool IsGreek(const wchar_t uc) noexcept { return uc >= US_A && uc <= US_W; } constexpr bool IsIndex(const wchar_t uc) noexcept { return (uc >= US_DIGIT_SUB0 && uc <= US_DIGIT_SUB9) || (uc >= '0' && uc <= '9'); } bool IsCstName(wchar_t uc) noexcept; bool IsAlphaNumber(wchar_t uc) noexcept; wchar_t Bulean2ToUnicodeChar(wchar_t ac); void EncodeToUnicode(CString& str); uint8_t Encode1251To866(uint8_t c) noexcept; } // namespace xtr::encode