Scriban.Runtime.ScriptBinaryExpression.Calculate C# (CSharp) Method

Calculate() private method

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");
        }

Same methods

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, Type leftType, object rightValue, Type rightType ) : object