| @@ -1,6 +1,6 | |||||
| 1 |
|
1 | |||
| 2 | namespace Implab.Automaton { |
|
2 | namespace Implab.Automaton { | |
| 3 |
public static class |
|
3 | public static class AutomatonConst { | |
| 4 | public const int UNREACHABLE_STATE = -1; |
|
4 | public const int UNREACHABLE_STATE = -1; | |
| 5 |
|
5 | |||
| 6 | public const int UNCLASSIFIED_INPUT = 0; |
|
6 | public const int UNCLASSIFIED_INPUT = 0; | |
| @@ -2,12 +2,12 | |||||
| 2 | using System.Linq; |
|
2 | using System.Linq; | |
| 3 |
|
3 | |||
| 4 | namespace Implab.Automaton.RegularExpressions { |
|
4 | namespace Implab.Automaton.RegularExpressions { | |
| 5 |
public class |
|
5 | public class RegularDFA<TInput, TTag> : DFATable, ITaggedDFABuilder<TTag> { | |
| 6 |
|
6 | |||
| 7 | readonly Dictionary<int,TTag[]> m_tags = new Dictionary<int, TTag[]>(); |
|
7 | readonly Dictionary<int,TTag[]> m_tags = new Dictionary<int, TTag[]>(); | |
| 8 | readonly IAlphabet<TInput> m_alphabet; |
|
8 | readonly IAlphabet<TInput> m_alphabet; | |
| 9 |
|
9 | |||
| 10 |
public |
|
10 | public RegularDFA(IAlphabet<TInput> alphabet) { | |
| 11 | Safe.ArgumentNotNull(alphabet, "aplhabet"); |
|
11 | Safe.ArgumentNotNull(alphabet, "aplhabet"); | |
| 12 |
|
12 | |||
| 13 | m_alphabet = alphabet; |
|
13 | m_alphabet = alphabet; | |
| @@ -48,10 +48,10 namespace Implab.Automaton.RegularExpres | |||||
| 48 | /// Optimize the specified alphabet. |
|
48 | /// Optimize the specified alphabet. | |
| 49 | /// </summary> |
|
49 | /// </summary> | |
| 50 | /// <param name="alphabet">Пустой алфавит, который будет зполнен в процессе оптимизации.</param> |
|
50 | /// <param name="alphabet">Пустой алфавит, который будет зполнен в процессе оптимизации.</param> | |
| 51 |
public |
|
51 | public RegularDFA<TInput,TTag> Optimize(IAlphabetBuilder<TInput> alphabet) { | |
| 52 | Safe.ArgumentNotNull(alphabet, "alphabet"); |
|
52 | Safe.ArgumentNotNull(alphabet, "alphabet"); | |
| 53 |
|
53 | |||
| 54 |
var dfa = new |
|
54 | var dfa = new RegularDFA<TInput, TTag>(alphabet); | |
| 55 |
|
55 | |||
| 56 | var states = new DummyAlphabet(StateCount); |
|
56 | var states = new DummyAlphabet(StateCount); | |
| 57 | var alphaMap = new Dictionary<int,int>(); |
|
57 | var alphaMap = new Dictionary<int,int>(); | |
| @@ -12,8 +12,8 namespace Implab.Formats.JSON { | |||||
| 12 | public class JSONScanner : Disposable { |
|
12 | public class JSONScanner : Disposable { | |
| 13 | readonly StringBuilder m_builder = new StringBuilder(); |
|
13 | readonly StringBuilder m_builder = new StringBuilder(); | |
| 14 |
|
14 | |||
| 15 |
readonly ScannerContext<JSONGrammar.TokenType> m_jsonContext = JSONGrammar.Instance.Json |
|
15 | readonly ScannerContext<JSONGrammar.TokenType> m_jsonContext = JSONGrammar.Instance.JsonExpression; | |
| 16 |
readonly ScannerContext<JSONGrammar.TokenType> m_stringContext = JSONGrammar.Instance.JsonString |
|
16 | readonly ScannerContext<JSONGrammar.TokenType> m_stringContext = JSONGrammar.Instance.JsonStringExpression; | |
| 17 |
|
17 | |||
| 18 |
|
18 | |||
| 19 | readonly TextScanner m_scanner; |
|
19 | readonly TextScanner m_scanner; | |
General Comments 0
You need to be logged in to leave comments.
Login now
