Mercurial > pub > ImplabNet
view Implab/Parsing/EDFADefinition.cs @ 156:97fbbf816844 v2
Promises: SignalXXX methods merged into SignalHandler method.
Components: RunnableComponent In progress
author | cin |
---|---|
date | Mon, 15 Feb 2016 04:22:15 +0300 |
parents | c0bf853aa04f |
children | 948c015a9011 |
line wrap: on
line source
using Implab; using System; namespace Implab.Parsing { public class EDFADefinition<T> : DFADefinitionBase where T : struct, IConvertible { readonly EnumAlphabet<T> m_alphabet; public EnumAlphabet<T> Alphabet { get { return m_alphabet; } } public EDFADefinition(EnumAlphabet<T> alphabet) { 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); } } }