object IScriptCustomType.EvaluateBinaryExpression(ScriptBinaryExpression expression, object left, object right)
{
if (left is ScriptTimeSpan && right is ScriptTimeSpan)
{
return EvaluateBinaryExpression(expression, (ScriptTimeSpan) left, (ScriptTimeSpan) right);
}
if (left is ScriptTimeSpan && right is ScriptDate)
{
return EvaluateBinaryExpression(expression, (ScriptTimeSpan)left, (ScriptDate)right);
}
throw new ScriptRuntimeException(expression.Span, $"Operator [{expression.Operator}] is not supported for between [{left?.GetType()}] and [{right?.GetType()}]");
}