annotate Implab/Parsing/IDFADefinition.cs @ 89:ce0171cacec4 v2

improved performance of a chained map operation
author cin
date Wed, 08 Oct 2014 02:19:45 +0400
parents c0bf853aa04f
children 130781364799
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
55
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
1 using System;
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
2 using System.Collections.Generic;
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
3 using System.Linq;
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
4 using System.Text;
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
5 using System.Threading.Tasks;
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
6
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
7 namespace Implab.Parsing {
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
8 /// <summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
9 /// Интерфейс для определения ДКА, позволяет добавить состояния и определить переходы.
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
10 /// </summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
11 public interface IDFADefinition {
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
12 /// <summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
13 /// Добавляет состояние в автомат.
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
14 /// </summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
15 /// <returns>Индекс добавленного состояния.</returns>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
16 int AddState();
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
17 /// <summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
18 /// Добавляет конечное состояние с указанными метками, если метки не заданы, то
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
19 /// добавленное состояние не будет конечным.
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
20 /// </summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
21 /// <param name="tags">Метки состояния.</param>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
22 /// <returns>Индекс добавленного состояния.</returns>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
23 int AddState(int[] tags);
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
24 /// <summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
25 /// Определяет переход между состояниями.
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
26 /// </summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
27 /// <param name="s1">Исходное состояние.</param>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
28 /// <param name="s2">Конечное состояние.</param>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
29 /// <param name="input">Входной символ.</param>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
30 void DefineTransition(int s1, int s2, int input);
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
31 /// <summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
32 /// Размер входного алфавита.
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
33 /// </summary>
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
34 int AlphabetSize { get; }
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
35 }
c0bf853aa04f Added initial JSON support
cin
parents:
diff changeset
36 }