code: public void add(CharRange cond)
      {
          if (set.isEmpty())
          {
              set.add(cond);
          }
          else
          {
              List<CharRange> remlist = new ArrayList<CharRange>();
              List<CharRange> addlist = new ArrayList<CharRange>();
              boolean is = false;
              for (CharRange r : set)
              {
                  if (r.intersect(cond))
                  {
                      remlist.add(r);
                      addlist.addAll(CharRange.removeOverlap(cond, r));
                      is = true;
                  }
              }
              if (!is)
              {
                  set.add(cond);
              }
              set.removeAll(remlist);
              set.addAll(addlist);
          }
      }
docs: Adds a CharRange
  @param cond