annotate Implab/Automaton/RegularExpressions/CatToken.cs @ 170:181119ef3b39 ref20160224

DFA refactoring, rx based dfa.
author cin
date Fri, 04 Mar 2016 01:56:31 +0300
parents 0526412bbb26
children a0ff6a0e9c44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
162
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
1 using System;
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
2
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
3 namespace Implab.Automaton.RegularExpressions {
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
4 public class CatToken<TTag> : BinaryToken<TTag> {
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
5 public CatToken(Token<TTag> left, Token<TTag> right)
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
6 : base(left, right) {
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
7 }
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
8
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
9 public override void Accept(IVisitor<TTag> visitor) {
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
10 Safe.ArgumentNotNull(visitor, "visitor");
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
11 visitor.Visit(this);
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
12 }
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
13
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
14 public override string ToString() {
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
15 return String.Format("{0}{1}", FormatToken(Left), FormatToken(Right));
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
16 }
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
17
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
18 static string FormatToken(Token<TTag> token) {
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
19 return String.Format(token is AltToken<TTag> ? "({0})" : "{0}", token);
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
20 }
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
21 }
0526412bbb26 DFA refactoring
cin
parents:
diff changeset
22 }