add support for << and >> to CharTopology.toString()
[sbp.git] / src / edu / berkeley / sbp / chr / CharTopology.java
index d812855..4f1bb31 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
+
 package edu.berkeley.sbp.chr;
 import edu.berkeley.sbp.*;
 import edu.berkeley.sbp.misc.*;
@@ -7,6 +9,7 @@ public class CharTopology extends IntegerTopology<Character> implements Functor<
 
     public CharTopology()               { super(null); }
     public CharTopology(Range.Set r)    { super(null, r); }
+    public CharTopology(Topology<Character> it)  { this(((IntegerTopology<Character>)it.unwrap()).getRanges()); }
     public CharTopology(char a, char b) { super(null, a, b); }
 
     public Integer invoke(Character c) { return (int)c.charValue(); }
@@ -34,6 +37,10 @@ public class CharTopology extends IntegerTopology<Character> implements Functor<
         return sb.toString();
     }
 
-    private String esc(char c) { return StringUtil.escapify(c+"", "[]-~\\\"\'\n\r"); }
+    private String esc(char c) {
+        if (c==CharAtom.left) return ">>";
+        if (c==CharAtom.right) return "<<";
+        return StringUtil.escapify(c+"", "[]-~\\\"\'\n\r");
+    }
 
 }