2026-10-05 17:54:12 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Def.mqh |
|
| | | //| Copyright 2026, Niquel Mendoza. |
|
| | | //| https://www.mql5.com |
|
| | | //+------------------------------------------------------------------+
|
| | | #property copyright "Copyright 2026, Niquel Mendoza."
|
| | | #property link "https://www.mql5.com"
|
| | | #property strict
|
| | |
|
| | | #ifndef BASESPARSERSLAN_UE_DEF_MQH
|
| | | #define BASESPARSERSLAN_UE_DEF_MQH
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | namespace TSN
|
| | | {
|
| | | //+------------------------------------------------------------------+
|
| | | //| Unescape general |
|
| | | //+------------------------------------------------------------------+
|
| | | // como BE
|
| | | #define DOMBASEULTIS_U_UNICODE_MAKESTRING_CODE(VAL, IX) \
|
| | | ushort VAL = (ushort)g_arr_valid_hex_chars[(uchar)in[++IX]] << 12 \
|
| | | | (ushort)g_arr_valid_hex_chars[(uchar)in[++IX]] << 8 \
|
| | | | (ushort)g_arr_valid_hex_chars[(uchar)in[++IX]] << 4 \
|
| | | | (ushort)g_arr_valid_hex_chars[(uchar)in[++IX]];
|
| | |
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | #define DOMBASEULTIS_U_U32_MAKESTRING_CODE(VAL, IX) \
|
| | | uint VAL = (uint)g_arr_valid_hex_chars[(uchar)in[++IX]] << 28 \
|
| | | | (uint)g_arr_valid_hex_chars[(uchar)in[++IX]] << 24 \
|
| | | | (uint)g_arr_valid_hex_chars[(uchar)in[++IX]] << 20 \
|
| | | | (uint)g_arr_valid_hex_chars[(uchar)in[++IX]] << 16 \
|
| | | | (uint)g_arr_valid_hex_chars[(uchar)in[++IX]] << 12 \
|
| | | | (uint)g_arr_valid_hex_chars[(uchar)in[++IX]] << 8 \
|
| | | | (uint)g_arr_valid_hex_chars[(uchar)in[++IX]] << 4 \
|
| | | | (uint)g_arr_valid_hex_chars[(uchar)in[++IX]];
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | #define DOMBASEULTIS_U_MKH_ITER(CH) \
|
| | | hash ^= CH; \
|
| | | hash *= 1099511628211ULL;
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
2026-10-05 21:57:35 -05:00 | | | #define BSFL_WRITE_ASCCI(V) \
|
| | | if(V < 0x80) \
|
| | | { \
|
| | | res[pos++] = uchar(V); \
|
| | | continue; \
|
| | | } \
|
| | | else \
|
| | | if(V < 0x800) \
|
| | | { \
|
| | | res[pos++] = uchar(0xC0 | (V >> 6)); \
|
| | | res[pos++] = uchar(0x80 | (V & 0x3F)); \
|
| | | continue; \
|
2026-10-05 17:54:12 -05:00 | | | }
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | #define BSFL_UTF8_WRITE_3(V) \
|
| | | res[pos++] = uchar(0xE0 | (V >> 12)); \
|
| | | res[pos++] = uchar(0x80 | ((V >> 6) & 0x3f)); \
|
| | | res[pos++] = uchar(0x80 | (V & 0x3f));
|
| | |
|
| | | //+------------------------------------------------------------------+
|
2026-10-18 18:01:20 -05:00 | | | #define BSFL_UTF8_WRITE_4(V) \
|
| | | res[pos++] = uchar(0xF0 | (V >> 18)); \
|
| | | res[pos++] = uchar(0x80 | ((V >> 12) & 0x3F)); \
|
| | | res[pos++] = uchar(0x80 | ((V >> 6) & 0x3F)); \
|
| | | res[pos++] = uchar(0x80 | (V & 0x3F));
|
2026-10-05 17:54:12 -05:00 | | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | #define BSFL_UE_SURROGATES ushort
|
2026-10-05 21:57:35 -05:00 | | | #define BSFL_UE_NO_SURRO uchar
|
2026-10-05 17:54:12 -05:00 | | |
|
| | |
|
| | | }
|
| | | #endif // BASESPARSERSLAN_UE_DEF_MQH
|
| | | //+------------------------------------------------------------------+
|