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 */