checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / CharToken.java
index eafe882..580e851 100644 (file)
@@ -8,10 +8,14 @@ import edu.berkeley.sbp.Token.Location;
 import edu.berkeley.sbp.util.*;
 
 /** an implementation of Token for streams of Java <tt>char</tt> values */
-public class CharToken implements IntegerMappable {
+public class CharToken {
 
-    public static final Atom leftBrace  = new CharRange(new IntegerTopology<CharToken>(null, 9998)) { public String toString() { return "{"; } };
-    public static final Atom rightBrace = new CharRange(new IntegerTopology<CharToken>(null, 9999)) { public String toString() { return "}"; } };
+    public static final Functor<CharToken,Integer> c2i = new Functor<CharToken,Integer>() {
+        public Integer invoke(CharToken c) { return new Integer(c.c); }
+    };
+
+    public static final Atom leftBrace  = new CharRange(new IntegerTopology<CharToken>(c2i, 9998)) { public String toString() { return "{"; } };
+    public static final Atom rightBrace = new CharRange(new IntegerTopology<CharToken>(c2i, 9999)) { public String toString() { return "}"; } };
     public static final CharToken left       = new CharToken((char)9998);
     public static final CharToken right      = new CharToken((char)9999);