BasesParserSLan/Src/Query/Table/T.mqh

197 lines
6 KiB
MQL5
Raw Permalink Normal View History

2026-07-23 11:13:47 -05:00
//+-------------------------------------------------------------------+
//| Include generado por la herramienta PerfectHash SimPHash |
//| Esta heramienta forma parte del ecositema TSN |
//| Repositorio: https://forge.mql5.io/nique_372/SimPHash |
//+-------------------------------------------------------------------+
#property copyright "Copyright 2026, Niquel Mendoza"
#property link "https://www.mql5.com/"
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#include <TSN/Tables/AllHashes.mqh>
#ifndef BASESPARSERSLAN_SRC_QUERY_TABLE_T_MQH
#define BASESPARSERSLAN_SRC_QUERY_TABLE_T_MQH
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-07-24 22:33:42 -05:00
#define BASESPARSERSLAN_DOMPATH_ASMINS_FTABLE_SIZE (41ULL)
#define BASESPARSERSLAN_DOMPATH_ASMINS_BUCKETS_SIZE (8ULL)
2026-07-23 11:13:47 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
namespace TSN
{
const ulong g_dompath_bsplf_ins_seeds[BASESPARSERSLAN_DOMPATH_ASMINS_BUCKETS_SIZE] =
{
2026-07-24 22:33:42 -05:00
1ULL,
13ULL,
73ULL,
2ULL,
27ULL,
2026-07-23 11:13:47 -05:00
0ULL,
2026-07-24 22:33:42 -05:00
6ULL,
0ULL
2026-07-23 11:13:47 -05:00
};
const ulong g_dompath_bsplf_ins_hashes[BASESPARSERSLAN_DOMPATH_ASMINS_FTABLE_SIZE] =
{
2026-07-24 22:33:42 -05:00
16669826521637673764ULL, // INS_JUMP
3566059518513560209ULL, // INS_M_UNARY_NOT
15196081024477955610ULL, // INS_ACCESO_IDX
2026-07-24 22:33:42 -05:00
16723409585714899617ULL, // INS_M_BIT_XOR
929790873407168254ULL, // INS_M_RES
2026-07-23 11:13:47 -05:00
0ULL, // invalid
2026-07-24 22:33:42 -05:00
17145026178470747254ULL, // INS_INICIAR_ITERACION
2026-07-23 11:13:47 -05:00
0ULL, // invalid
2026-07-24 22:33:42 -05:00
11367582633176548621ULL, // INS_SLICING
1544553113344653707ULL, // INS_M_SUM
9877242875776894995ULL, // INS_M_BIT_DEZ_DRC
12892904500534247848ULL, // INS_SALIDA
9660030022021964721ULL, // jsonpb
13956305797695255026ULL, // INS_ACCESO_KEY
9922828245035254137ULL, // INS_SAVE_NO_RESET
13014568533281766000ULL, // INS_RESERVE
2026-07-23 11:13:47 -05:00
0ULL, // invalid
2026-07-24 22:33:42 -05:00
14813308009111128418ULL, // INS_COMPARE_EQ
12502527800581014336ULL, // INS_APPEND
2026-07-23 11:13:47 -05:00
0ULL, // invalid
2026-07-24 22:33:42 -05:00
0ULL, // invalid
2420732293469154808ULL, // INS_CALL
3107240819906201454ULL, // INS_M_BIT_DEZ_IZQ
17663658560961614708ULL, // INS_M_MOD
18266067870342221787ULL, // INS_EXIST
2026-07-24 22:33:42 -05:00
5318296392847528401ULL, // INS_M_BIT_OR
607664033161113844ULL, // jsonpasm
2026-07-23 11:13:47 -05:00
0ULL, // invalid
0ULL, // invalid
2026-07-24 22:33:42 -05:00
14160026704502597608ULL, // INS_COMPARE_MENOR_EQ
8418542857013072539ULL, // INS_ACCESO_IDX_F
5499915945293442029ULL, // INS_M_BIT_NOT
14886692180082204693ULL, // INS_SAVE
5861794546094138563ULL, // INS_ACCESO_KEY_F
2026-07-24 22:33:42 -05:00
9761424973485312109ULL, // INS_COMPARE_MENOR
1577945465427876909ULL, // INS_COPY_ALL
17673224312125158158ULL, // INS_M_MUL
14801826908691619856ULL, // INS_COMPARE_IS
12364759675171626733ULL, // INS_M_BIT_AND
3048882993403562588ULL, // INS_ITER_ASSING
2026-07-24 22:33:42 -05:00
12160966801573422299ULL
2026-07-23 11:13:47 -05:00
};
const long g_dompath_bsplf_ins_values[BASESPARSERSLAN_DOMPATH_ASMINS_FTABLE_SIZE] =
{
2026-07-24 22:33:42 -05:00
28, // INS_JUMP
20, // INS_M_UNARY_NOT
2, // INS_ACCESO_IDX
2026-07-24 22:33:42 -05:00
16, // INS_M_BIT_XOR
10, // INS_M_RES
2026-07-23 11:13:47 -05:00
-1,
2026-07-24 22:33:42 -05:00
4, // INS_INICIAR_ITERACION
-1,
27, // INS_SLICING
12, // INS_M_SUM
18, // INS_M_BIT_DEZ_DRC
31, // INS_SALIDA
0, // jsonpb
0, // INS_ACCESO_KEY
8, // INS_SAVE_NO_RESET
26, // INS_RESERVE
2026-07-23 11:13:47 -05:00
-1,
2026-07-24 22:33:42 -05:00
21, // INS_COMPARE_EQ
30, // INS_APPEND
2026-07-23 11:13:47 -05:00
-1,
-1,
2026-07-24 22:33:42 -05:00
25, // INS_CALL
17, // INS_M_BIT_DEZ_IZQ
13, // INS_M_MOD
6, // INS_EXIST
2026-07-24 22:33:42 -05:00
14, // INS_M_BIT_OR
1, // jsonpasm
2026-07-23 11:13:47 -05:00
-1,
-1,
2026-07-24 22:33:42 -05:00
23, // INS_COMPARE_MENOR_EQ
3, // INS_ACCESO_IDX_F
19, // INS_M_BIT_NOT
7, // INS_SAVE
1, // INS_ACCESO_KEY_F
2026-07-24 22:33:42 -05:00
22, // INS_COMPARE_MENOR
29, // INS_COPY_ALL
9, // INS_M_MUL
24, // INS_COMPARE_IS
15, // INS_M_BIT_AND
5, // INS_ITER_ASSING
2026-07-24 22:33:42 -05:00
11 // INS_M_DIV
2026-07-23 11:13:47 -05:00
};
long DomPathExtBSPLF(const string& key)
{
//---
const int len = StringLen(key);
ulong key_hash = 14695981039346656037ULL;
FNV1a_64_AsM_Str(key, len, key_hash, 1099511628211ULL)
const int seed_index = int(key_hash % BASESPARSERSLAN_DOMPATH_ASMINS_BUCKETS_SIZE);
//---
ulong h = key_hash + g_dompath_bsplf_ins_seeds[seed_index] * 0x9e3779b97f4a7c15;
h = (h ^ (h >> 30)) * 0xbf58476d1ce4e5b9;
h = (h ^ (h >> 27)) * 0x94d049bb133111eb;
h ^= (h >> 31);
const int fi = int(h % BASESPARSERSLAN_DOMPATH_ASMINS_FTABLE_SIZE);
return g_dompath_bsplf_ins_hashes[fi] == key_hash ? g_dompath_bsplf_ins_values[fi] : -1;
}
2026-07-24 22:33:42 -05:00
//---
2026-07-23 11:13:47 -05:00
long DomPathExtBSPLF(const ulong key_hash)
{
const int seed_index = int(key_hash % BASESPARSERSLAN_DOMPATH_ASMINS_BUCKETS_SIZE);
//---
ulong h = key_hash + g_dompath_bsplf_ins_seeds[seed_index] * 0x9e3779b97f4a7c15;
h = (h ^ (h >> 30)) * 0xbf58476d1ce4e5b9;
h = (h ^ (h >> 27)) * 0x94d049bb133111eb;
h ^= (h >> 31);
const int fi = int(h % BASESPARSERSLAN_DOMPATH_ASMINS_FTABLE_SIZE);
return g_dompath_bsplf_ins_hashes[fi] == key_hash ? g_dompath_bsplf_ins_values[fi] : -1;
}
2026-07-24 22:33:42 -05:00
//---
long DomPathExtBSPLF_File(const string& key)
{
//---
const int len = StringLen(key);
ulong key_hash = 14695981039346656037ULL;
// Custom para extension files...
bool is = false;
for(int i = 0; i < len; i++)
{
if(is)
{
key_hash ^= (uchar)key[i];
key_hash *= 1099511628211ULL;
continue;
}
if(key[i] == '.')
is = true;
}
//---
const int seed_index = int(key_hash % BASESPARSERSLAN_DOMPATH_ASMINS_BUCKETS_SIZE);
//---
ulong h = key_hash + g_dompath_bsplf_ins_seeds[seed_index] * 0x9e3779b97f4a7c15;
h = (h ^ (h >> 30)) * 0xbf58476d1ce4e5b9;
h = (h ^ (h >> 27)) * 0x94d049bb133111eb;
h ^= (h >> 31);
const int fi = int(h % BASESPARSERSLAN_DOMPATH_ASMINS_FTABLE_SIZE);
return g_dompath_bsplf_ins_hashes[fi] == key_hash ? g_dompath_bsplf_ins_values[fi] : -1;
}
2026-07-23 11:13:47 -05:00
}
#endif // BASESPARSERSLAN_SRC_QUERY_TABLE_T_MQH