##// END OF EJS Templates
Refactoring
Refactoring

File last commit:

r55:c0bf853aa04f default
r66:790e8a997d30 default
Show More
IDFADefinition.cs
36 lines | 1.6 KiB | text/x-csharp | CSharpLexer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Implab.Parsing {
/// <summary>
/// Интерфейс для определения ДКА, позволяет добавить состояния и определить переходы.
/// </summary>
public interface IDFADefinition {
/// <summary>
/// Добавляет состояние в автомат.
/// </summary>
/// <returns>Индекс добавленного состояния.</returns>
int AddState();
/// <summary>
/// Добавляет конечное состояние с указанными метками, если метки не заданы, то
/// добавленное состояние не будет конечным.
/// </summary>
/// <param name="tags">Метки состояния.</param>
/// <returns>Индекс добавленного состояния.</returns>
int AddState(int[] tags);
/// <summary>
/// Определяет переход между состояниями.
/// </summary>
/// <param name="s1">Исходное состояние.</param>
/// <param name="s2">Конечное состояние.</param>
/// <param name="input">Входной символ.</param>
void DefineTransition(int s1, int s2, int input);
/// <summary>
/// Размер входного алфавита.
/// </summary>
int AlphabetSize { get; }
}
}