private Calculate ( ScriptBinaryOperator op, double left, double right ) : object | ||
op | ScriptBinaryOperator | |
left | double | |
right | double | |
return | object |
private object Calculate(ScriptBinaryOperator op, double left, double right)
{
switch (op)
{
case ScriptBinaryOperator.Add:
return left + right;
case ScriptBinaryOperator.Substract:
return left - right;
case ScriptBinaryOperator.Multiply:
return left * right;
case ScriptBinaryOperator.Divide:
return (float)left / right;
case ScriptBinaryOperator.DivideRound:
return (double)(int)(left / right);
case ScriptBinaryOperator.Modulus:
return left % right;
case ScriptBinaryOperator.CompareEqual:
return left == right;
case ScriptBinaryOperator.CompareNotEqual:
return left != right;
case ScriptBinaryOperator.CompareGreater:
return left > right;
case ScriptBinaryOperator.CompareLess:
return left < right;
case ScriptBinaryOperator.CompareGreaterOrEqual:
return left >= right;
case ScriptBinaryOperator.CompareLessOrEqual:
return left <= right;
}
throw new ScriptRuntimeException(Span, $"The operator [{op.ToText()}] is not implemented for double<->double");
}
ScriptBinaryExpression::Calculate ( ScriptBinaryOperator op, float left, float right ) : object | |
ScriptBinaryExpression::Calculate ( ScriptBinaryOperator op, int left, int right ) : object | |
ScriptBinaryExpression::Calculate ( ScriptBinaryOperator op, long left, long right ) : object | |
ScriptBinaryExpression::Calculate ( ScriptBinaryOperator op, object leftValue, |