comparison Implab/Automaton/IAlphabet.cs @ 171:0f70905b4652 ref20160224

Working on regular DFA
author cin
date Thu, 10 Mar 2016 01:19:33 +0300
parents 0526412bbb26
children
comparison
equal deleted inserted replaced
170:181119ef3b39 171:0f70905b4652
19 /// Количество классов символов в алфавите. 19 /// Количество классов символов в алфавите.
20 /// </summary> 20 /// </summary>
21 int Count { get; } 21 int Count { get; }
22 22
23 /// <summary> 23 /// <summary>
24 /// Создает карту обратного сопоставления класса символов алфавита и сопоставленным
25 /// ему исходным символам.
26 /// </summary>
27 /// <returns></returns>
28 List<TSymbol>[] CreateReverseMap();
29
30 /// <summary>
31 /// Создает новый алфавит на основе текущего, горппируя его сиволы в более
32 /// крупные непересекающиеся классы символов.
33 /// </summary>
34 /// <param name="newAlphabet">Новый, пустой алфавит, в котором быдут определены классы.</param>
35 /// <param name="classes">Множество классов символов текущего алфавита.</param>
36 /// <returns>Карта для перехода классов текущего
37 /// алфавита к классам нового.</returns>
38 /// <remarks>Ползволяет укрупнить алфавит, объединив классы в текущем алфавите. Используется при оптимизации автомата.</remarks>
39 int[] Reclassify(IAlphabetBuilder<TSymbol> newAlphabet, IEnumerable<IEnumerable<int>> classes);
40
41 /// <summary>
42 /// Преобразует входной символ в индекс символа из алфавита. 24 /// Преобразует входной символ в индекс символа из алфавита.
43 /// </summary> 25 /// </summary>
44 /// <param name="symobl">Исходный символ</param> 26 /// <param name="symobl">Исходный символ</param>
45 /// <returns>Индекс в алфавите</returns> 27 /// <returns>Индекс в алфавите</returns>
46 int Translate(TSymbol symobl); 28 int Translate(TSymbol symobl);
29
30 bool Contains(TSymbol symbol);
31
32 IEnumerable<TSymbol> GetSymbols(int cls);
47 } 33 }
48 } 34 }