Mercurial > pub > ImplabNet
view Implab/Automaton/EDFADefinition.cs @ 163:419aa51b04fd ref20160224
JSON moved to Formats namespace
Working in RegularDFA
author | cin |
---|---|
date | Wed, 24 Feb 2016 20:12:52 +0300 |
parents | 0526412bbb26 |
children |
line wrap: on
line source
using Implab; using System; namespace Implab.Parsing { public class EDFADefinition<T> : DFADefinition where T : struct, IConvertible { readonly EnumAlphabet<T> m_alphabet; public EnumAlphabet<T> Alphabet { get { return m_alphabet; } } public EDFADefinition(EnumAlphabet<T> alphabet) : base(alphabet.Count) { m_alphabet = alphabet; } public void DefineTransition(int s1, int s2, T input) { DefineTransition(s1, s2, m_alphabet.Translate(input)); } public EDFADefinition<T> Optimize() { return (EDFADefinition<T>)Optimize(alphabet => new EDFADefinition<T>((EnumAlphabet<T>)alphabet), m_alphabet, new EnumAlphabet<T>()); } public void PrintDFA() { PrintDFA(m_alphabet); } } }