public Graphviz ToGraph() { Graphviz graph = new Graphviz(); IEnumerable <State> states = States; Dictionary <State, string> labels = new Dictionary <State, string>(); foreach (State state in states) { labels[state] = (labels.Count + 1).ToString(); graph.AddShape(labels[state], state.IsFinal ? "doublecircle" : "circle"); } if (Start != null) { graph.AddShape("", "none"); graph.AddTransition("", labels[Start]); } foreach (State fromState in states) { foreach (CharRange input in fromState.Alphabet) { graph.AddTransition(labels[fromState], labels[fromState[input]], input.ToString()); } } return(graph); }
public Graphviz ToGraph() { Graphviz graph = new Graphviz(); IEnumerable<State> states = States; Dictionary<State, string> labels = new Dictionary<State, string>(); foreach (State state in states) { labels[state] = (labels.Count + 1).ToString(); graph.AddShape(labels[state], state.IsFinal ? "doublecircle" : "circle"); } if (Start != null) { graph.AddShape("", "none"); graph.AddTransition("", labels[Start]); } foreach (State fromState in states) foreach (CharRange input in fromState.Alphabet) graph.AddTransition(labels[fromState], labels[fromState[input]], input.ToString()); return graph; }