86 lines
3.4 KiB
C
86 lines
3.4 KiB
C
![]() |
#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
|