1dcf0509f472ab82256c8e6c59fd327350423e9a
[sbp.git] / src / edu / berkeley / sbp / Node.java
1 // Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
2
3 package edu.berkeley.sbp;
4 import edu.berkeley.sbp.*;
5 import edu.berkeley.sbp.util.*;
6 import edu.berkeley.sbp.Parser.Table.*;
7 import edu.berkeley.sbp.Sequence.Pos;
8 import edu.berkeley.sbp.Sequence.Pos;
9 import java.io.*;
10 import java.util.*;
11 import java.lang.reflect.*;
12
13 class Node
14     implements IntegerMappable,
15                GraphViz.ToGraphViz {
16
17     // GraphViz //////////////////////////////////////////////////////////////////////////////
18
19     public GraphViz.StateNode toGraphViz(GraphViz gv) {
20         if (gv.hasNode(this)) return gv.createNode(this);
21         GraphViz.StateNode n = gv.createNode(this);
22         /*
23         n.label = ""+f;
24         n.shape = "rectangle";
25         //if (pred()!=null) n.edge(pred, "");
26         n.color = "blue";
27         if (phase() != null)
28             ((GraphViz.Group)phase().toGraphViz(gv)).add(n);
29         n.label = "state["+state.toInt()+"]";
30         n.shape = "rectangle";
31         boolean haspreds = false;
32         for(ResultNode r : results) n.edge(r, "");
33         n.color = state.doomed ? "red" : "green";
34         ((GraphViz.Group)phase().toGraphViz(gv)).add(n);
35         */
36         return n;
37     }
38     public boolean isTransparent() { return false; }
39     public boolean isHidden() { return false; }
40
41     // IntegerMappable ////////////////////////////////////////////////////////////
42
43     private static int node_idx = 0;
44     private final int idx = node_idx++;
45     public int toInt() { return idx; }
46
47 }