Example #1
0
        public AutomataTable(AutomataTable table) : this()
        {
            this._idCounter = table._idCounter;
            var map = new Dictionary <Node, Node>();

            foreach (var node in table.Nodes)
            {
                var copy = new Node(node);
                map[node] = copy;
                this._nodes.Add(copy);
            }
            this.StartState = map[table.StartState];
            foreach (var transition in table.Transitions)
            {
                var source      = map[transition.Source];
                var destination = map[transition.Destination];
                if (transition.Symbol == null)
                {
                    this._transitions.Add(Transition.New(source, destination));
                }
                else
                {
                    this._transitions.Add(Transition.New(source, destination, transition.Symbol));
                }
            }
        }