public static Completion Calculate(IValue leftValue, MultiplicativeOperator multiplicativeOperator, IValue rightValue) { var lnumComp = leftValue.ToNumber(); if (lnumComp.IsAbrupt()) { return(lnumComp); } var rnumComp = rightValue.ToNumber(); if (rnumComp.IsAbrupt()) { return(rnumComp); } double lnum = (lnumComp.value as NumberValue) !.number; double rnum = (rnumComp.value as NumberValue) !.number; return(Completion.NormalCompletion(new NumberValue(multiplicativeOperator switch { MultiplicativeOperator.Multiply => lnum * rnum, MultiplicativeOperator.Divide => lnum / rnum, MultiplicativeOperator.Modulus => lnum % rnum, _ => throw new InvalidOperationException($"MultiplicativeExpression.Evaluate: unknown MultiplicativeOperator enum value {(int)multiplicativeOperator}") })));
public MultiplicativeExpression(Expression left) { leftExpression = left; rightExpression = null; multiplicativeOperator = null; }
public MultiplicativeExpression(AbstractMultiplicativeExpression multiplicativeExpression, MultiplicativeOperator multiplicativeOperator, AbstractExponentiationExpression exponentiationExpression, bool isStrictMode) : base(isStrictMode) { this.multiplicativeExpression = multiplicativeExpression; this.multiplicativeOperator = multiplicativeOperator; this.exponentiationExpression = exponentiationExpression; }
public MultiplicativeExpression(Expression left, Expression right, MultiplicativeOperator operatorValue) { leftExpression = left; rightExpression = right; multiplicativeOperator = operatorValue; }