checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / CharRange.java
index 475a68c..4fd319d 100644 (file)
@@ -8,34 +8,13 @@ import edu.berkeley.sbp.Token.Location;
 import edu.berkeley.sbp.util.*;
 
 public class CharRange extends Atom<Character> {
-    private String esc(char c) { return StringUtil.escapify(c+"", "[]-~\\\"\'"); }
-    private Topology<Character> t;
+
     public CharRange(char a) { this(a,a); }
     public CharRange(char a, char b) { this(new CharTopology(a, b)); }
     public CharRange(Topology<Character> t) { this.t = t; }
-    public Topology<Character> top() { return t; }
-    public String toString() {
-        StringBuffer sb = new StringBuffer();
-        sb.append('[');
-        Range.Set ranges = ((IntegerTopology)top()).getRanges();
-        if (ranges.size() == -1 || ranges.size() > Character.MAX_VALUE/2) {
-            sb.append('~');
-            ranges = ranges.complement();
-        }
-        ranges = ranges.intersect(all);
-        for(Range r : ranges) {
-            if (r.isMinNegInf() || r.isMaxPosInf()) throw new Error("should not happen");
-            if (r.getMin()==r.getMax()) {
-                sb.append(esc((char)r.getMin()));
-            } else{
-                sb.append(esc((char)r.getMin()));
-                sb.append('-');
-                sb.append(esc((char)r.getMax()));
-            }
-        }
-        sb.append(']');
-        return sb.toString();
-    }
+
+    private Topology<Character> t;
+    public  Topology<Character> top() { return t; }
 
     public static final char left       = (char)9998;
     public static final char right      = (char)9999;
@@ -43,7 +22,8 @@ public class CharRange extends Atom<Character> {
     public static final Atom rightBrace = new CharRange(right,right) { public String toString() { return "}"; } };
 
     public static Atom set(Range.Set r) { return new CharRange(new CharTopology(r)); }
-    private static final Range.Set all = new Range.Set(new Range(0, Character.MAX_VALUE));
+
+    public String toString() { return t.toString(); }
 
     /** returns an element which exactly matches the string given */
     public static Element string(String s) {