//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.")); } }
public Term(string[] lhs, string[] rhs, StringLogicComparator comparator) { this.lhs = lhs; this.rhs = rhs; this.comparator = comparator; }