X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fchr%2FCharRange.java;h=6728012dd78e6f12edb78093faf0e4696ac030a8;hb=c8a17fdd2e149fe5feecd96c71b7f2cab286ab96;hp=cac3bbb009c52dbc3a15ee4c3be614098231cb4c;hpb=6a2ea790f843e058c7e67d3c7d1deebadcfe1fd5;p=sbp.git diff --git a/src/edu/berkeley/sbp/chr/CharRange.java b/src/edu/berkeley/sbp/chr/CharRange.java index cac3bbb..6728012 100644 --- a/src/edu/berkeley/sbp/chr/CharRange.java +++ b/src/edu/berkeley/sbp/chr/CharRange.java @@ -12,26 +12,28 @@ public class CharRange extends Atom { public CharRange(char a) { this(a,a); } public CharRange(char a, char b) { this(new CharTopology(a, b)); } - public CharRange(Topology t) { this.t = t; } + public CharRange(CharTopology t) { this.t = t; } - private Topology t; + private CharTopology t; public Topology top() { return t; } public static final char left = (char)9998; public static final char right = (char)9999; - public static final Atom leftBrace = new CharRange(left,left) { public String toString() { return "{"; } }; - public static final Atom rightBrace = new CharRange(right,right) { public String toString() { return "}"; } }; + public static final Atom leftBrace = new CharRange(left,left) { public String toString() { return "[{]"; } }; + public static final Atom rightBrace = new CharRange(right,right) { public String toString() { return "[}]"; } }; + public static final Atom braces = new CharRange(left,right) { public String toString() { return "[{}]"; } }; public static Atom set(Range.Set r) { return new CharRange(new CharTopology(r)); } public String toString() { return t.toString(); } /** returns an element which exactly matches the string given */ - public static Element string(String s) { - if (s.length() == 0) return Union.epsilon; + public static Element string(String s) { return string(s, true); } + public static Element string(String s, boolean share) { + if (share && s.length() == 0) return Union.epsilon; final String escapified = "\""+StringUtil.escapify(s, "\"\r\n\\")+"\""; Element ret; - if (s.length() == 1) { + if (share && s.length() == 1) { ret = new CharRange(s.charAt(0)) { public String toString() { return escapified; } }; @@ -40,7 +42,7 @@ public class CharRange extends Atom { public String toString() { return escapified; } }; Element[] refs = new Element[s.length()]; for(int i=0; i