コード例 #1
0
        //seems to work fine
        public static bool evaluateTerm(Term term, List <Assignment> varVals)
        {
            string lhs = composeString(term.getLhs(), varVals);
            string rhs = composeString(term.getRhs(), varVals);
            StringLogicComparator comparator = term.getComparator();
            int left  = lhs.Length;
            int right = rhs.Length;

            switch (comparator)
            {
            case StringLogicComparator.Identical:
                return(lhs.Equals(rhs));

            case StringLogicComparator.NotIdentical:
                return(!lhs.Equals(rhs));

            case StringLogicComparator.Equal:
                return(left == right);

            case StringLogicComparator.Lesser:
                return(left < right);

            case StringLogicComparator.LesserOrEqual:
                return(left <= right);

            case StringLogicComparator.Greater:
                return(left > right);

            case StringLogicComparator.GreaterOrEqual:
                return(left >= right);

            case StringLogicComparator.NotEqual:
                return(left != right);

            default:
                throw (new Exception("Term parsed with nonexistent comparator."));
            }
        }
コード例 #2
0
 public Term(string[] lhs, string[] rhs, StringLogicComparator comparator)
 {
     this.lhs        = lhs;
     this.rhs        = rhs;
     this.comparator = comparator;
 }