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; |