private static CharProperty intersection(CharProperty lhs, CharProperty rhs) { return new CharProperty((int ch)=> { return lhs.isSatisfiedBy(ch) && rhs.isSatisfiedBy(ch); }); }
private static CharProperty setDifference(CharProperty lhs, CharProperty rhs) { return new CharProperty((int ch)=> { return ! rhs.isSatisfiedBy(ch) && lhs.isSatisfiedBy(ch); }); }
private static CharProperty union(CharProperty lhs, CharProperty rhs) { return new CharProperty((int ch)=> { return lhs.isSatisfiedBy(ch) || rhs.isSatisfiedBy(ch); }); }