Mercurial > pub > ImplabNet
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab/Parsing/EDFADefinition.cs Sun Jun 15 19:39:11 2014 +0400 @@ -0,0 +1,37 @@ +using Implab; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Implab.Parsing { + public class EDFADefinition<T> : DFADefinitionBase where T : struct, IConvertible { + EnumAlphabet<T> m_alphabet; + + public EnumAlphabet<T> Alphabet { + get { return m_alphabet; } + } + + public EDFADefinition(EnumAlphabet<T> alphabet) + : base() { + Safe.ArgumentNotNull(alphabet, "alphabet"); + m_alphabet = alphabet; + } + + public override int AlphabetSize { + get { return m_alphabet.Count; } + } + + public EDFADefinition<T> Optimize() { + var optimized = new EDFADefinition<T>(new EnumAlphabet<T>()); + Optimize(optimized, m_alphabet, optimized.Alphabet); + + return optimized; + } + + public void PrintDFA() { + PrintDFA(m_alphabet); + } + } +}