more refactoring into Node
[sbp.git] / src / edu / berkeley / sbp / StateNode.java
index 6401a1e..2a438e5 100644 (file)
@@ -13,8 +13,7 @@ import java.lang.reflect.*;
 /** a node in the GSS */
 final class StateNode
     extends Node<ResultNode>
-    implements Invokable<Pos, ResultNode, Object>,
-               Iterable<ResultNode> {
+    implements Invokable<Pos, ResultNode, Object> {
 
     /** which GSS.Phase this StateNode belongs to */
     public GSS.Phase phase() { return phase; }
@@ -61,10 +60,6 @@ final class StateNode
     private final GSS.Phase predPhase;
     private final Parser.Table.State state;
     private  boolean fromEmptyReduction;
-    private       FastSet<ResultNode> predecessors = new FastSet<ResultNode>();
-    private       FastSet<ResultNode> successors = new FastSet<ResultNode>();
-    //private       HashSet<ResultNode> predecessors = new HashSet<ResultNode>();
-    //private       HashSet<ResultNode> successors = new HashSet<ResultNode>();
 
     public final void invoke(Pos r, ResultNode only, Object o) {
         boolean emptyProductions = only==null;
@@ -79,7 +74,7 @@ final class StateNode
     private void reduce(Pos r, int pos, GSS.Phase target, ResultNode only) {
         for(ResultNode res : predecessors)
             if (only == null || res == only)
-                for(StateNode pred : res.getPreds())
+                for(StateNode pred : res)
                     reduce2(r, pos, target, pred, res.getForest());
     }