Mercurial > pub > ImplabNet
comparison Implab/Automaton/DummyAlphabet.cs @ 171:0f70905b4652 ref20160224
Working on regular DFA
| author | cin |
|---|---|
| date | Thu, 10 Mar 2016 01:19:33 +0300 |
| parents | ec35731ae299 |
| children |
comparison
equal
deleted
inserted
replaced
| 170:181119ef3b39 | 171:0f70905b4652 |
|---|---|
| 22 | 22 |
| 23 public List<int>[] CreateReverseMap() { | 23 public List<int>[] CreateReverseMap() { |
| 24 Enumerable.Range(0, m_size).ToArray(); | 24 Enumerable.Range(0, m_size).ToArray(); |
| 25 } | 25 } |
| 26 | 26 |
| 27 public int[] Reclassify(IAlphabetBuilder<int> newAlphabet, IEnumerable<IEnumerable<int>> classes) { | 27 public int Translate(int symbol) { |
| 28 Safe.ArgumentNotNull(newAlphabet, "newAlphabet"); | 28 Safe.ArgumentInRange(symbol, 0, m_size, "symbol"); |
| 29 Safe.ArgumentNotNull(classes, "classes"); | 29 return symbol; |
| 30 var map = new int[m_size]; | |
| 31 foreach (var cls in classes) { | |
| 32 if (cls.Contains(DFAConst.UNCLASSIFIED_INPUT)) | |
| 33 continue; | |
| 34 var newid = newAlphabet.DefineClass(cls); | |
| 35 foreach (var id in cls) | |
| 36 map[id] = newid; | |
| 37 } | |
| 38 | |
| 39 return map; | |
| 40 } | 30 } |
| 41 | 31 |
| 42 public int Translate(int symobl) { | 32 public bool Contains(int symbol) { |
| 43 Safe.ArgumentInRange(symobl, 0, m_size, "symbol"); | 33 Safe.ArgumentInRange(symbol, 0, m_size, "symbol"); |
| 44 return symobl; | 34 return true; |
| 45 } | 35 } |
| 46 | 36 |
| 47 public int Count { | 37 public int Count { |
| 48 get { | 38 get { |
| 49 return m_size; | 39 return m_size; |
