Example #1
0
        private void EvaluateWhile(Func <bool> condition)
        {
            try
            {
                while (condition())
                {
                    var operation = (Operator)operatorStack.Pop();

                    var expressions = new NodeOperation[operation.NumberOfOperands];
                    for (var i = operation.NumberOfOperands - 1; i >= 0; i--)
                    {
                        expressions[i] = nodeStack.Pop();
                    }

                    nodeStack.Push(operation.Apply(expressions));
                }
            }
            catch
            {
                throw new DistributionsInvalidOperationException(DistributionsInvalidOperationExceptionType.ExpressionOpreatorsInconsistent);
            }
        }
Example #2
0
 private NodeOperation Apply(NodeOperation left, NodeOperation right)
 {
     return(new NodeOperation(left, right, OperationType));
 }
 public NodeOperation(NodeOperation left, NodeOperation right, NodeOperationType operationType)
 {
     Left          = left;
     Right         = right;
     OperationType = operationType;
 }
Example #4
0
 private NodeOperation Apply(NodeOperation node)
 {
     return(new NodeOperation(node, OperationType));
 }
 public NodeOperation(NodeOperation left, NodeOperationType operationType)
 {
     Left          = left;
     OperationType = operationType;
 }