code: public UnicodeSet complement(int start, int end) {
          checkFrozen();
          if (start < MIN_VALUE || start > MAX_VALUE) {
              throw new IllegalArgumentException("Invalid code point U+" + Utility.hex(start, 6));
          }
          if (end < MIN_VALUE || end > MAX_VALUE) {
              throw new IllegalArgumentException("Invalid code point U+" + Utility.hex(end, 6));
          }
          if (start <= end) {
              xor(range(start, end), 2, 0);
          }
          pat = null;
          return this;
      }
docs: Complements the specified range in this set.  Any character in
  the range will be removed if it is in this set, or will be
  added if it is not in this set.  If <code>end &gt; start</code>
  then an empty range is complemented, leaving the set unchanged.
  
  @param start first character, inclusive, of range to be removed
  from this set.
  @param end last character, inclusive, of range to be removed
  from this set.