177
|
1 using Implab;
|
|
2
|
|
3 namespace Implab.Automaton.RegularExpressions {
|
|
4 /// <summary>
|
|
5 /// Конечный символ расширенного регулярного выражения, при построении ДКА
|
|
6 /// используется для определения конечных состояний.
|
|
7 /// </summary>
|
|
8 public class EndToken<TTag>: Token {
|
|
9
|
|
10 TTag m_tag;
|
|
11
|
|
12 public EndToken(TTag tag) {
|
|
13 m_tag = tag;
|
|
14 }
|
|
15
|
|
16 public EndToken()
|
|
17 : this(default(TTag)) {
|
|
18 }
|
|
19
|
|
20 public TTag Tag {
|
|
21 get { return m_tag; }
|
|
22 }
|
|
23
|
|
24 public override void Accept(IVisitor visitor) {
|
|
25 Safe.ArgumentOfType(visitor, typeof(IVisitor<TTag>), "visitor");
|
|
26 Safe.ArgumentNotNull(visitor, "visitor");
|
|
27 ((IVisitor<TTag>)visitor).Visit(this);
|
|
28 }
|
|
29 public override string ToString() {
|
|
30 return "#";
|
|
31 }
|
|
32 }
|
|
33 }
|