Пример #1
0
        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;
                    }
                }
            }
        }
Пример #2
0
 public bool IsFinal(int state)
 {
     return(CmdFsa.IsFinal(state));
 }