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; }
+    }
+}