//+------------------------------------------------------------------+ //| 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; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #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; \ } //+------------------------------------------------------------------+ #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)); //+------------------------------------------------------------------+ #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)); //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #define BSFL_UE_SURROGATES ushort #define BSFL_UE_NO_SURRO uchar } #endif // BASESPARSERSLAN_UE_DEF_MQH //+------------------------------------------------------------------+