/// <summary> /// Evalúa una expresión /// </summary> public VariableModel EvaluateExpression(ContextStackModel context, string code, out string error) { ExpressionsCollection expressions = new Parser().Parse(code, out error); if (string.IsNullOrEmpty(error)) { return(new ExpressionCompute().Evaluate(context.Actual, expressions, out error)); } else { return(null); } }
/// <summary> /// Evalúa una condición /// </summary> public bool EvaluateCondition(ContextStackModel context, string code, out string error) { bool result = false; VariableModel variable = EvaluateExpression(context, code, out error); // Obtiene el valor lógico de la condición if (string.IsNullOrEmpty(error)) { if (variable.Type != VariableModel.VariableType.Boolean) { error = "Result isn't a logical value"; } else { result = (bool)variable.Value; } } // Devuelve el resultado return(result); }