checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / StringToken.java
index fac11ab..b21e458 100644 (file)
@@ -8,19 +8,22 @@ import edu.berkeley.sbp.*;
 import edu.berkeley.sbp.util.*;
 import edu.berkeley.sbp.*;
 
-/** an implementation of Token for streams of Java <tt>char</tt> values */
-public class StringToken implements Token {
+/** an implementation of Input for streams of Java <tt>char</tt> values */
+public class StringToken implements Input {
 
     public static final StringToken left = new StringToken(null, null) { public boolean equals(Object o) { return this==o; } };
     public static final StringToken right = new StringToken(null, null) { public boolean equals(Object o) { return this==o; } };
 
-    public static final Atom leftBrace  = new Atom(new DiscreteTopology<StringToken>(left)) { public String toString() { return "{"; } };
-    public static final Atom rightBrace = new Atom(new DiscreteTopology<StringToken>(right)) { public String toString() { return "}"; } };
+    public static final Atom leftBrace  = new StringAtom(new DiscreteTopology<StringToken>(left)) { public String toString() { return "{"; } };
+    public static final Atom rightBrace = new StringAtom(new DiscreteTopology<StringToken>(right)) { public String toString() { return "}"; } };
 
     private static class StringAtom extends Atom {
         private String s;
-        public StringAtom(String s) { super(new DiscreteTopology<StringToken>(new StringToken(s, null))); this.s = s; }
+        private Topology t;
+        public StringAtom(String s) { this.t = new DiscreteTopology<StringToken>(new StringToken(s, null)); this.s = s; }
+        public StringAtom(Topology<StringToken> t) { this.t = t; }
         public String toString() { return "[atom \""+s+"\"]"; }
+        public Topology top() { return t; }
     }
 
     /** returns an element which exactly matches the string given */