| 162 | 1 using System; | 
|  | 2 | 
|  | 3 namespace Implab.Automaton.RegularExpressions { | 
|  | 4     public class CatToken<TTag> : BinaryToken<TTag> { | 
|  | 5         public CatToken(Token<TTag> left, Token<TTag> right) | 
|  | 6             : base(left, right) { | 
|  | 7         } | 
|  | 8 | 
|  | 9         public override void Accept(IVisitor<TTag> visitor) { | 
|  | 10             Safe.ArgumentNotNull(visitor, "visitor"); | 
|  | 11             visitor.Visit(this); | 
|  | 12         } | 
|  | 13 | 
|  | 14         public override string ToString() { | 
|  | 15             return String.Format("{0}{1}", FormatToken(Left), FormatToken(Right)); | 
|  | 16         } | 
|  | 17 | 
|  | 18         static string FormatToken(Token<TTag> token) { | 
|  | 19             return String.Format(token is AltToken<TTag> ? "({0})" : "{0}", token); | 
|  | 20         } | 
|  | 21     } | 
|  | 22 } |