Exteor/include/xtr/core/Encoder.h
2024-06-07 20:30:06 +03:00

86 lines
3.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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