Beispiel #1
0
        private static Fare.State Convert(State s, IDictionary <State, Fare.State> visited)
        {
            var converted = visited[s];

            if (converted != null)
            {
                return(converted);
            }

            converted = new Fare.State
            {
                Accept = s.IsFinal,
            };

            visited.Add(s, converted);
            var i      = 0;
            var labels = s.TransitionLabels;

            foreach (var target in s.States)
            {
                converted.AddTransition(new Transition(labels[i++], Convert(target, visited)));
            }

            return(converted);
        }
Beispiel #2
0
        private static Fare.State Convert(State s, IDictionary <State, Fare.State> visited)
        {
            Fare.State converted = visited[s];
            if (converted != null)
            {
                return(converted);
            }

            converted        = new Fare.State();
            converted.Accept = s.IsFinal;

            visited.Add(s, converted);
            int i = 0;

            char[] labels = s.TransitionLabels;
            foreach (State target in s.States)
            {
                converted.AddTransition(new Transition(labels[i++], StringUnionOperations.Convert(target, visited)));
            }

            return(converted);
        }