comparison Implab/Automaton/DFATable.cs @ 172:92d5278d1b10 ref20160224

Working on text scanner
author cin
date Mon, 14 Mar 2016 01:19:38 +0300
parents 0f70905b4652
children 0c3c69fe225b
comparison
equal deleted inserted replaced
171:0f70905b4652 172:92d5278d1b10
96 return m_transitions.GetEnumerator(); 96 return m_transitions.GetEnumerator();
97 } 97 }
98 98
99 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { 99 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {
100 return GetEnumerator(); 100 return GetEnumerator();
101 }
102
103 public DFAStateDescriptor[] CreateTransitionTable() {
104 var table = new DFAStateDescriptor[StateCount];
105
106 foreach (var t in this) {
107 if (table[t.s1].transitions == null)
108 table[t.s1] = new DFAStateDescriptor(AlphabetSize, IsFinalState(t.s1));
109 if (table[t.s2].transitions == null)
110 table[t.s2] = new DFAStateDescriptor(AlphabetSize, IsFinalState(t.s2));
111 table[t.s1].transitions[t.edge] = t.s2;
112 }
113
114 return table;
101 } 115 }
102 116
103 /// <summary>Формирует множества конечных состояний перед началом работы алгоритма минимизации.</summary> 117 /// <summary>Формирует множества конечных состояний перед началом работы алгоритма минимизации.</summary>
104 /// <remarks> 118 /// <remarks>
105 /// В процессе построения минимального автомата требуется разделить множество состояний, 119 /// В процессе построения минимального автомата требуется разделить множество состояний,