Пример #1
0
        public static List <Item> Eval(BoolExpr expr)
        {
            if (expr.IsLeaf())
            {
                return(expr.Lit);
            }

            if (expr.Op == BoolExpr.BOP.OR)
            {
                return(Eval(expr.Left).Union(Eval(expr.Right)).ToList());
            }

            if (expr.Op == BoolExpr.BOP.AND)
            {
                return(Eval(expr.Left).Intersect(Eval(expr.Right)).ToList());
            }
            throw new ArgumentException();
        }
 public Boolean IsAtomic()
 {
     return(IsLeaf() || _left.IsLeaf());
 }