Ejemplo n.º 1
0
 public NumberNode Operate(List <NumberNode> constants)
 {
     if (constants.Count > 0)
     {
         NumberNode result = constants[0];
         for (int i = 1; i < constants.Count; i++)
         {
             result = Operate(result, constants[i]);
         }
         return(result);
     }
     throw new Exception("Can not operate on an empty list");
 }
Ejemplo n.º 2
0
        private NumberNode Operate(NumberNode lhs, NumberNode rhs)
        {
            switch (Operator)
            {
            case Operator.Addition:
                return(new NumberNode(lhs.Value + rhs.Value));

            case Operator.Subtraction:
                return(new NumberNode(lhs.Value - rhs.Value));

            case Operator.Multiplication:
                return(new NumberNode(lhs.Value * rhs.Value));

            case Operator.Division:
                return(new NumberNode(lhs.Value / rhs.Value));

            case Operator.Exponentiation:
                return(new NumberNode(Math.Pow(lhs.Value, rhs.Value)));

            default:
                throw new Exception("Can not operate on unrecognized operator");
            }
        }