Mercurial > pub > ImplabNet
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 /// В процессе построения минимального автомата требуется разделить множество состояний, |