dropped Atom.top()
authoradam <adam@megacz.com>
Mon, 2 Jan 2006 02:32:14 +0000 (21:32 -0500)
committeradam <adam@megacz.com>
Mon, 2 Jan 2006 02:32:14 +0000 (21:32 -0500)
darcs-hash:20060102023214-5007d-aa1057910e3d5e198a4fb7bdea5d344ef11a2ced.gz

src/edu/berkeley/sbp/Atom.java
src/edu/berkeley/sbp/Parser.java
src/edu/berkeley/sbp/Walk.java

index 8c702a1..1b9c254 100644 (file)
@@ -14,8 +14,6 @@ public abstract class Atom<T extends Token> extends Element implements Topology<
 
     public Atom(Topology<T> rt) { this.rt = rt; }
 
 
     public Atom(Topology<T> rt) { this.rt = rt; }
 
-    Topology<T> top() { return rt; }
-
     void reachable(HashSet<Sequence.Position> h) { /* do-nothing */ }
 
     /** equality is based on the underlying <tt>Topology</tt> */
     void reachable(HashSet<Sequence.Position> h) { /* do-nothing */ }
 
     /** equality is based on the underlying <tt>Topology</tt> */
index 046e725..6986a4b 100644 (file)
@@ -153,7 +153,7 @@ public class Parser<T extends Token, R> {
                     // 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)
                     // 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()).top()));
+                        state.shifts.addAll(state.gotoSetTerminals.subset(((Atom)p.element()).dup()));
                 }
         }
 
                 }
         }
 
@@ -224,7 +224,7 @@ public class Parser<T extends Token, R> {
                     Atom a = (Atom)position.element();
                     HashSet<Position> hp = new HashSet<Position>();
                     position.next().reachable(hp);
                     Atom a = (Atom)position.element();
                     HashSet<Position> hp = new HashSet<Position>();
                     position.next().reachable(hp);
-                    bag0.addAll(a.top(), /*clo.walk()*/hp);
+                    bag0.addAll(a.dup(), /*clo.walk()*/hp);
                 }
 
                 // Step 1b: for each _minimal, contiguous_ set of characters having an identical next-position
                 }
 
                 // Step 1b: for each _minimal, contiguous_ set of characters having an identical next-position
index 5754726..abbffd7 100644 (file)
@@ -52,7 +52,7 @@ abstract class Walk<T> {
         public HashSet<Element> bottom(Element e)     { return acc; }
         public HashSet<Element> sequence(Sequence seq) { return bottom(seq); }
         public HashSet<Element> walkAtom(Atom r) {
         public HashSet<Element> bottom(Element e)     { return acc; }
         public HashSet<Element> sequence(Sequence seq) { return bottom(seq); }
         public HashSet<Element> walkAtom(Atom r) {
-            c.atoms.put(e, c.atoms.get(e)==null ? r.top() : c.atoms.get(e).union(r.top()));
+            c.atoms.put(e, c.atoms.get(e)==null ? r.dup() : c.atoms.get(e).union(r.dup()));
             return super.walkAtom(r);
         }
     }
             return super.walkAtom(r);
         }
     }
@@ -83,7 +83,7 @@ abstract class Walk<T> {
         public WalkTokenSet(Topology<Tok> cs)          { this.cs = cs; }
         public WalkTokenSet(Topology<Tok> cs, Cache c) { super(c); this.cs = cs; }
         public Topology<Tok> bottom(Element e)         { return cs; }
         public WalkTokenSet(Topology<Tok> cs)          { this.cs = cs; }
         public WalkTokenSet(Topology<Tok> cs, Cache c) { super(c); this.cs = cs; }
         public Topology<Tok> bottom(Element e)         { return cs; }
-        public Topology<Tok> walkAtom(Atom r)          { cs.add(r.top()); return cs; }
+        public Topology<Tok> walkAtom(Atom r)          { cs.add(r.dup()); return cs; }
     }
 
     class First<Tok extends Token> extends WalkTokenSet<Tok> {
     }
 
     class First<Tok extends Token> extends WalkTokenSet<Tok> {
@@ -152,7 +152,7 @@ abstract class Walk<T> {
                     if (e instanceof Atom) {
                         Topology top = c.atoms.get(pos.element());
                         if (top==null) continue;
                     if (e instanceof Atom) {
                         Topology top = c.atoms.get(pos.element());
                         if (top==null) continue;
-                        if (!(top.containsAll(((Atom)e).top()))) continue;
+                        if (!(top.containsAll(((Atom)e).dup()))) continue;
                     } else {
                         if (c.ys.get(pos.element()).contains(e)) good = true;
                     }
                     } else {
                         if (c.ys.get(pos.element()).contains(e)) good = true;
                     }