ExpressEvalByLeo/Src/BoleanEval/Defines.mqh

92 lines
2.9 KiB
MQL5
Raw Permalink Normal View History

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