##// END OF EJS Templates
sync
sync

File last commit:

r157:948c015a9011 v2
r157:948c015a9011 v2
Show More
EDFADefinition.cs
36 lines | 1.0 KiB | text/x-csharp | CSharpLexer
cin
Added initial JSON support...
r55 using Implab;
using System;
namespace Implab.Parsing {
public class EDFADefinition<T> : DFADefinitionBase where T : struct, IConvertible {
cin
Promises: SignalXXX methods merged into SignalHandler method....
r156 readonly EnumAlphabet<T> m_alphabet;
cin
Added initial JSON support...
r55
public EnumAlphabet<T> Alphabet {
get { return m_alphabet; }
}
cin
Promises: SignalXXX methods merged into SignalHandler method....
r156 public EDFADefinition(EnumAlphabet<T> alphabet) {
cin
Added initial JSON support...
r55 Safe.ArgumentNotNull(alphabet, "alphabet");
m_alphabet = alphabet;
}
public override int AlphabetSize {
get { return m_alphabet.Count; }
}
cin
sync
r157 public void DefineTransition(int s1, int s2, T input) {
DefineTransition(s1, s2, m_alphabet.Translate(input));
}
cin
Added initial JSON support...
r55 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);
}
}
}