##// END OF EJS Templates
minor fixes and optimizations
minor fixes and optimizations

File last commit:

r55:c0bf853aa04f default
r107:f5220e5472ef v2
Show More
EDFADefinition.cs
37 lines | 1008 B | text/x-csharp | CSharpLexer
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);
}
}
}