public override CharClass Union(CharClass other)
        {
            var that = other as CharRangeCharClass;

            if (that == null)
            {
                return(base.Union(other));
            }
            return(new CharRangeCharClass(CharRangeUtility.TryMerge(_charRanges.Concat(that._charRanges))));
        }
 public override CharClass Plus(char ch)
 {
     return(new CharRangeCharClass(CharRangeUtility.TryMerge(_charRanges.Concat(new[] { CharRange.Exactly(ch) }))));
 }