Example #1
0
        public static EqualExpression Equal(FunctorInfo functor, object value, object[] tuple)
        {
            int length = tuple.Length;

            ConstantExpression[] expressions = new ConstantExpression[length];
            for (int i = 0; i < length; ++i)
            {
                object tuple_i = tuple[i];
                expressions[i] = Constant((tuple_i is Variable x1) ? x1.Value : tuple_i);
            }
            ConstantExpression _value   = Constant((value is Variable x2) ? x2.Value : value);
            CompoundExpression compound = Compound(functor, expressions);

            return(Equal(compound, _value));
        }
Example #2
0
        public static EqualExpression Equal(FunctorInfo functor, object[] data)
        {
            int length = data.Length;

            ConstantExpression[] expressions = new ConstantExpression[length - 1];
            for (int i = 1; i < length; ++i)
            {
                object data_i = data[i];
                expressions[i - 1] = Constant((data_i is Variable x) ? x.Value : data_i);
            }
            ConstantExpression value    = Constant(data[0]);
            CompoundExpression compound = Compound(functor, expressions);

            return(Equal(compound, value));
        }
Example #3
0
 public static EqualExpression Equal(CompoundExpression compound, ConstantExpression value)
 {
     return(new EqualExpression(compound, value));
 }
Example #4
0
 internal EqualExpression(CompoundExpression left, TermExpression right)
 {
     m_left  = left;
     m_right = right;
 }