internal override bool Evaluate(string filename)
        {
            bool result = Left.Evaluate(filename);

            switch (Conjunction)
            {
            case LogicalConjunction.AND:
                if (result)
                {
                    result = Right.Evaluate(filename);
                }
                break;

            case LogicalConjunction.OR:
                if (!result)
                {
                    result = Right.Evaluate(filename);
                }
                break;

            case LogicalConjunction.XOR:
                result ^= Right.Evaluate(filename);
                break;

            default:
                throw new ArgumentException("Conjunction");
            }
            return(result);
        }
        private bool Evaluate(string filename)
        {
            bool result = _Criterion.Evaluate(filename);

            return(result);
        }