comparison Implab/Parsing/EDFADefinition.cs @ 55:c0bf853aa04f

Added initial JSON support +JSONParser +JSONWriter
author cin
date Sun, 15 Jun 2014 19:39:11 +0400
parents
children 97fbbf816844
comparison
equal deleted inserted replaced
51:2c332a9c64c0 55:c0bf853aa04f
1 using Implab;
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Text;
6 using System.Threading.Tasks;
7
8 namespace Implab.Parsing {
9 public class EDFADefinition<T> : DFADefinitionBase where T : struct, IConvertible {
10 EnumAlphabet<T> m_alphabet;
11
12 public EnumAlphabet<T> Alphabet {
13 get { return m_alphabet; }
14 }
15
16 public EDFADefinition(EnumAlphabet<T> alphabet)
17 : base() {
18 Safe.ArgumentNotNull(alphabet, "alphabet");
19 m_alphabet = alphabet;
20 }
21
22 public override int AlphabetSize {
23 get { return m_alphabet.Count; }
24 }
25
26 public EDFADefinition<T> Optimize() {
27 var optimized = new EDFADefinition<T>(new EnumAlphabet<T>());
28 Optimize(optimized, m_alphabet, optimized.Alphabet);
29
30 return optimized;
31 }
32
33 public void PrintDFA() {
34 PrintDFA(m_alphabet);
35 }
36 }
37 }