private static void FillGraph <TValue>(Graph graph, IFSA <TValue> fsa) { foreach (var look in fsa.Transitions.ToLookup(x => x.BeginState, x => x)) { int i = 1; foreach (var t in look) { Edge edge = graph.AddEdge("q" + t.BeginState, string.Format("[{0}]{1}", i++, t.Condition), "q" + t.EndState); if (fsa.IsFinal(t.EndState)) { edge.TargetNode.Attr.Fillcolor = Color.Gray; edge.TargetNode.Attr.Shape = Shape.DoubleCircle; } } } }
public bool IsFinal(int state) { return(CmdFsa.IsFinal(state)); }