Mercurial > pub > ImplabNet
comparison Implab/Automaton/RegularExpressions/RegularDFADefinition.cs @ 169:54270c2f29f2 ref20160224
DFA refactoring
| author | cin |
|---|---|
| date | Thu, 03 Mar 2016 08:41:02 +0300 |
| parents | e227e78d72e4 |
| children | 181119ef3b39 |
comparison
equal
deleted
inserted
replaced
| 168:8fb9c9507a26 | 169:54270c2f29f2 |
|---|---|
| 1 using System; | 1 using System; |
| 2 | 2 |
| 3 namespace Implab.Automaton.RegularExpressions { | 3 namespace Implab.Automaton.RegularExpressions { |
| 4 public class RegularDFADefinition<TInput, TTag> : DFATransitionTable<TTag>, IDFATransitionTable<TTag> { | 4 public class RegularDFADefinition<TInput, TTag> : DFATable { |
| 5 | 5 |
| 6 readonly IAlphabet<TInput> m_alphabet; | 6 readonly IAlphabet<TInput> m_alphabet; |
| 7 | 7 |
| 8 public RegularDFADefinition(IAlphabet<TInput> alphabet) { | 8 public RegularDFADefinition(IAlphabet<TInput> alphabet) { |
| 9 Safe.ArgumentNotNull(alphabet, "aplhabet"); | 9 Safe.ArgumentNotNull(alphabet, "aplhabet"); |
| 16 get { | 16 get { |
| 17 return m_alphabet; | 17 return m_alphabet; |
| 18 } | 18 } |
| 19 } | 19 } |
| 20 | 20 |
| 21 protected override DFAStateDescriptior<TTag>[] ConstructTransitionTable() { | 21 protected override DFAStateDescriptior[] ConstructTransitionTable() { |
| 22 if (InputAlphabet.Count != m_alphabet.Count) | 22 if (InputAlphabet.Count != m_alphabet.Count) |
| 23 throw new InvalidOperationException("The alphabet doesn't match the transition table"); | 23 throw new InvalidOperationException("The alphabet doesn't match the transition table"); |
| 24 | 24 |
| 25 return base.ConstructTransitionTable(); | 25 return base.ConstructTransitionTable(); |
| 26 } | 26 } |
