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
|