import java.util.*;
import java.lang.reflect.*;
-class Node {
+class Node
+ implements GraphViz.ToGraphViz {
+ // GraphViz //////////////////////////////////////////////////////////////////////////////
+
+ public GraphViz.StateNode toGraphViz(GraphViz gv) {
+ if (gv.hasNode(this)) return gv.createNode(this);
+ GraphViz.StateNode n = gv.createNode(this);
+ /*
+ n.label = ""+f;
+ n.shape = "rectangle";
+ //if (pred()!=null) n.edge(pred, "");
+ n.color = "blue";
+ if (phase() != null)
+ ((GraphViz.Group)phase().toGraphViz(gv)).add(n);
+ n.label = "state["+state.toInt()+"]";
+ n.shape = "rectangle";
+ boolean haspreds = false;
+ for(ResultNode r : results) n.edge(r, "");
+ n.color = state.doomed ? "red" : "green";
+ ((GraphViz.Group)phase().toGraphViz(gv)).add(n);
+ */
+ return n;
+ }
+ public boolean isTransparent() { return false; }
+ public boolean isHidden() { return false; }
}
\ No newline at end of file
import edu.berkeley.sbp.Sequence.Pos;
import java.util.*;
-final class ResultNode
- extends Node
- implements GraphViz.ToGraphViz {
+final class ResultNode extends Node {
private Forest.Many f = new Forest.Many();
//private HashSet<StateNode> predecessors = new HashSet<StateNode>();
if (pred != null) addPred(pred);
}
- // GraphViz //////////////////////////////////////////////////////////////////////////////
-
- public GraphViz.StateNode toGraphViz(GraphViz gv) {
- if (gv.hasNode(this)) return gv.createNode(this);
- GraphViz.StateNode n = gv.createNode(this);
- n.label = ""+f;
- n.shape = "rectangle";
- //if (pred()!=null) n.edge(pred, "");
- n.color = "blue";
- if (phase() != null)
- ((GraphViz.Group)phase().toGraphViz(gv)).add(n);
- return n;
- }
- public boolean isTransparent() { return false; }
- public boolean isHidden() { return false; }
}
\ No newline at end of file
extends Node
implements Invokable<Pos, ResultNode, Object>,
IntegerMappable,
- GraphViz.ToGraphViz,
Iterable<ResultNode> {
/** which GSS.Phase this StateNode belongs to */
result.addSucc(this);
if (!this.fromEmptyReduction) state.invokeReductions(phase().getToken(), this, result);
}
-
- // GraphViz //////////////////////////////////////////////////////////////////////////////
-
- public GraphViz.StateNode toGraphViz(GraphViz gv) {
- if (results.size()==0) return null;
- if (gv.hasNode(this)) return gv.createNode(this);
- GraphViz.StateNode n = gv.createNode(this);
- n.label = "state["+state.toInt()+"]";
- n.shape = "rectangle";
- boolean haspreds = false;
- for(ResultNode r : results) n.edge(r, "");
- n.color = state.doomed ? "red" : "green";
- ((GraphViz.Group)phase().toGraphViz(gv)).add(n);
- return n;
- }
- public boolean isTransparent() { return false; }
- public boolean isHidden() { return false; }
-
}