using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Implab.Parsing {
///
/// Интерфейс для определения ДКА, позволяет добавить состояния и определить переходы.
///
public interface IDFADefinition {
///
/// Добавляет состояние в автомат.
///
/// Индекс добавленного состояния.
int AddState();
///
/// Добавляет конечное состояние с указанными метками, если метки не заданы, то
/// добавленное состояние не будет конечным.
///
/// Метки состояния.
/// Индекс добавленного состояния.
int AddState(int[] tags);
///
/// Определяет переход между состояниями.
///
/// Исходное состояние.
/// Конечное состояние.
/// Входной символ.
void DefineTransition(int s1, int s2, int input);
///
/// Размер входного алфавита.
///
///
/// Размер входного алфавита определяет количество возможных выходов из одного состояния.
///
int AlphabetSize { get; }
}
}