Mercurial > pub > ImplabNet
view Implab/Parsing/IDFADefinition.cs @ 158:130781364799 v2
refactoring, code cleanup
author | cin |
---|---|
date | Thu, 18 Feb 2016 14:34:02 +0300 |
parents | c0bf853aa04f |
children | 2a8466f0cb8a |
line wrap: on
line source
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> /// <remarks> /// Размер входного алфавита определяет количество возможных выходов из одного состояния. <see cref="IAlphabet{TSymbol}.Count"/> /// </remarks> int AlphabetSize { get; } } }