From b320f26b6e2cc13dcfcd810c7d5b507b942e8c70 Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 20 Jul 2006 22:38:40 -0400 Subject: [PATCH 1/1] checkpoint darcs-hash:20060721023840-5007d-a42e5a0db1fddfed163ae08fc6399e1c3163591f.gz --- src/edu/berkeley/sbp/Atom.java | 4 ++-- src/edu/berkeley/sbp/Parser.java | 4 ++-- src/edu/berkeley/sbp/util/TopologicalBag.java | 2 -- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/edu/berkeley/sbp/Atom.java b/src/edu/berkeley/sbp/Atom.java index 0989bc0..306e126 100644 --- a/src/edu/berkeley/sbp/Atom.java +++ b/src/edu/berkeley/sbp/Atom.java @@ -11,8 +11,8 @@ import edu.berkeley.sbp.*; public abstract class Atom extends Element implements Topology> { public abstract Topology underlying(); - public abstract String toString(); - public StringBuffer toString(StringBuffer sb) { sb.append(this); return sb; } + public abstract String toString(); + public StringBuffer toString(StringBuffer sb) { sb.append(this); return sb; } } diff --git a/src/edu/berkeley/sbp/Parser.java b/src/edu/berkeley/sbp/Parser.java index b2445b0..a440628 100644 --- a/src/edu/berkeley/sbp/Parser.java +++ b/src/edu/berkeley/sbp/Parser.java @@ -144,7 +144,7 @@ public abstract class Parser { // if the element following this position is an atom, copy the corresponding // set of rows out of the "master" goto table and into this state's shift table if (p.element() != null && p.element() instanceof Atom) - state.shifts.addAll(state.gotoSetTerminals.subset(((Atom)p.element()))); + state.shifts.addAll(state.gotoSetTerminals.subset(((Atom)p.element()).underlying())); } if (top instanceof IntegerTopology) for(State state : all_states.values()) { @@ -237,7 +237,7 @@ public abstract class Parser { Atom a = (Atom)position.element(); HashSet hp = new HashSet(); reachable(position.next(), hp); - bag0.addAll(a, hp); + bag0.addAll(a.underlying(), hp); } // Step 1b: for each _minimal, contiguous_ set of characters having an identical next-position diff --git a/src/edu/berkeley/sbp/util/TopologicalBag.java b/src/edu/berkeley/sbp/util/TopologicalBag.java index 1b2711d..2595602 100644 --- a/src/edu/berkeley/sbp/util/TopologicalBag.java +++ b/src/edu/berkeley/sbp/util/TopologicalBag.java @@ -29,8 +29,6 @@ public class TopologicalBag implements MapBag,V>, VisitableMap< public void putAll(Topology k, Iterable vi) { if (vi!=null) for(V v : vi) put(k, v); } public void put(Topology t, V v) { - // XXX hack - if (t instanceof Atom) t = ((Atom)t).underlying(); for(Topology ht : h.keySet()) { if (t.disjoint(ht)) continue; if (t.containsAll(ht) && ht.containsAll(t)) { -- 1.7.10.4