DummyAlphabet.cs
46 lines
| 1.2 KiB
| text/x-csharp
|
CSharpLexer
cin
|
r163 | using System; | ||
using System.Collections.Generic; | ||||
using System.Linq; | ||||
namespace Implab.Automaton { | ||||
cin
|
r164 | /// <summary> | ||
/// Dummy alphabet consists of integer numbers which are identical to their classes. | ||||
/// </summary> | ||||
cin
|
r163 | public class DummyAlphabet : IAlphabet<int> { | ||
readonly int m_size; | ||||
cin
|
r164 | |||
/// <summary> | ||||
/// Creates a new dummy alphabet with given size. | ||||
/// </summary> | ||||
/// <param name="size">The size of the alphabet, must be greater then zero.</param> | ||||
cin
|
r163 | public DummyAlphabet(int size) { | ||
Safe.ArgumentAssert(size > 0); | ||||
m_size = 0; | ||||
} | ||||
#region IAlphabet implementation | ||||
public List<int>[] CreateReverseMap() { | ||||
Enumerable.Range(0, m_size).ToArray(); | ||||
} | ||||
cin
|
r171 | public int Translate(int symbol) { | ||
Safe.ArgumentInRange(symbol, 0, m_size, "symbol"); | ||||
return symbol; | ||||
cin
|
r163 | } | ||
cin
|
r171 | public bool Contains(int symbol) { | ||
Safe.ArgumentInRange(symbol, 0, m_size, "symbol"); | ||||
return true; | ||||
cin
|
r163 | } | ||
public int Count { | ||||
get { | ||||
return m_size; | ||||
} | ||||
} | ||||
#endregion | ||||
} | ||||
} | ||||