2026-05-10 22:20:05 -05:00
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| Defines.mqh |
|
|
|
|
|
//| Copyright 2026, Niquel Mendoza. |
|
|
|
|
|
//| https://www.mql5.com/es/users/nique_372 |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#property copyright "Copyright 2026, Niquel Mendoza."
|
|
|
|
|
#property link "https://www.mql5.com/es/users/nique_372"
|
|
|
|
|
#property strict
|
|
|
|
|
|
2026-05-11 10:55:50 -05:00
|
|
|
#ifndef EXPRESSEVALBYLEO_SRC_BOOLEAN_EVAL_DEFINES_MQH
|
|
|
|
|
#define EXPRESSEVALBYLEO_SRC_BOOLEAN_EVAL_DEFINES_MQH
|
2026-05-10 22:20:05 -05:00
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
2026-05-11 10:55:50 -05:00
|
|
|
//| Include |
|
2026-05-10 22:20:05 -05:00
|
|
|
//+------------------------------------------------------------------+
|
2026-05-11 10:55:50 -05:00
|
|
|
#include "..\\Common\\GenericParser.mqh"
|
2026-05-10 22:20:05 -05:00
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
2026-05-11 10:55:50 -05:00
|
|
|
//| Defines \ Enums |
|
2026-05-10 22:20:05 -05:00
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
enum ENUM_AST_BOOLEAN_OPS_TOKEN_TYPE
|
|
|
|
|
{
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_OPERADOR_BOLEANO = 0,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_OPERADOR_LOGICO, // and\xor\etc..
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_PARA_INI = 1,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_PARA_END = 2,
|
2026-05-11 10:55:50 -05:00
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_VALUE_NUMBER = 3,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_VALUE_STRING = 4,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_VALUE_BUILD_IN_FUNCTION_CALL = 5,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_VALUE_VARIABLE = 6,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_VALUE_CUSTOM_FUNCTION_CALL = 7,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_VALUE_MATH_OPERATION = 8,
|
|
|
|
|
BOOLEAN_OPS_TOKEN_TYPE_VALUE_BOOLEAN = 9
|
2026-05-10 22:20:05 -05:00
|
|
|
};
|
|
|
|
|
|
2026-05-11 10:55:50 -05:00
|
|
|
//--- Tipos de operadores
|
2026-05-10 22:20:05 -05:00
|
|
|
#define ENUM_AST_LOGIC_OPERATOR_TOTAL (6)
|
|
|
|
|
enum ENUM_AST_LOGIC_OPERATOR
|
|
|
|
|
{
|
|
|
|
|
AST_LOGIC_OPERATOR_AND, // oAnd
|
|
|
|
|
AST_LOGIC_OPERATOR_OR, // oOr
|
|
|
|
|
AST_LOGIC_OPERATOR_XOR, // oXor
|
|
|
|
|
AST_LOGIC_OPERATOR_NAND, // oNand
|
|
|
|
|
AST_LOGIC_OPERATOR_NOR, // oNor
|
|
|
|
|
AST_LOGIC_OPERATOR_XNOR // oXnor
|
|
|
|
|
};
|
|
|
|
|
|
2026-05-11 10:55:50 -05:00
|
|
|
// Len a saltar
|
2026-05-10 22:20:05 -05:00
|
|
|
const int g_arr_ast_logic_op_len_for_parser[ENUM_AST_LOGIC_OPERATOR_TOTAL]
|
|
|
|
|
{
|
|
|
|
|
2,
|
|
|
|
|
1,
|
|
|
|
|
2,
|
|
|
|
|
3,
|
|
|
|
|
2,
|
|
|
|
|
3
|
|
|
|
|
};
|
|
|
|
|
|
2026-05-11 10:55:50 -05:00
|
|
|
//---Tipos de operaciones
|
2026-05-10 22:20:05 -05:00
|
|
|
enum ENUM_AST_BOOLEAN_OP_TYPE
|
|
|
|
|
{
|
2026-05-11 10:55:50 -05:00
|
|
|
BOOLEAN_OP_TYPE_MAYOR=0,
|
2026-05-10 22:20:05 -05:00
|
|
|
BOOLEAN_OP_TYPE_MENOR,
|
|
|
|
|
BOOLEAN_OP_TYPE_MENOR_IGUAL,
|
|
|
|
|
BOOLEAN_OP_TYPE_MAYOR_IGUAL,
|
|
|
|
|
BOOLEAN_OP_TYPE_NO_IGUAL,
|
|
|
|
|
BOOLEAN_OP_TYPE_IGUAL
|
|
|
|
|
};
|
|
|
|
|
|
2026-05-11 10:55:50 -05:00
|
|
|
//--- Token struct para operacion booleana
|
2026-05-10 22:20:05 -05:00
|
|
|
struct TokenOpsBoolean
|
|
|
|
|
{
|
2026-05-13 16:29:52 -05:00
|
|
|
string vs; // string value
|
|
|
|
|
BitInterpreter v; // valor numerico
|
|
|
|
|
int type; // Tipo
|
2026-05-10 22:20:05 -05:00
|
|
|
};
|
|
|
|
|
|
2026-05-11 10:55:50 -05:00
|
|
|
//--- Codigo de error
|
2026-05-10 22:20:05 -05:00
|
|
|
enum ENUM_OPS_TOKENIZER_BOOLEAN_ERR
|
|
|
|
|
{
|
2026-05-11 10:55:50 -05:00
|
|
|
|
|
|
|
|
OPS_TOKENIZER_BOOLEAN_ERR_OP_IGUAL_MAL_FORMADO=0,
|
2026-05-11 06:59:45 -05:00
|
|
|
OPS_TOKENIZER_BOOLEAN_ERR_OP_LOGICO_X_MAL_FORMADO,
|
|
|
|
|
OPS_TOKENIZER_BOOLEAN_ERR_OP_LOGICO_N_MAL_FORMADO,
|
|
|
|
|
OPS_TOKENIZER_BOOLEAN_ERR_CARACTER_INVALIDO,
|
|
|
|
|
OPS_TOKENIZER_BOOLEAN_ERR_OP_NO_IGUAL_MAL_FORMADO
|
2026-05-10 22:20:05 -05:00
|
|
|
};
|
|
|
|
|
|
2026-05-11 10:55:50 -05:00
|
|
|
|
2026-05-10 22:20:05 -05:00
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
2026-05-11 10:55:50 -05:00
|
|
|
#endif // EXPRESSEVALBYLEO_SRC_BOOLEAN_EVAL_DEFINES_MQH
|