Mercurial > pub > ImplabNet
diff Implab/Parsing/IDFADefinition.cs @ 55:c0bf853aa04f
Added initial JSON support
+JSONParser
+JSONWriter
author | cin |
---|---|
date | Sun, 15 Jun 2014 19:39:11 +0400 |
parents | |
children | 130781364799 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab/Parsing/IDFADefinition.cs Sun Jun 15 19:39:11 2014 +0400 @@ -0,0 +1,36 @@ +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; } + } +}