Mercurial > pub > ImplabNet
diff Implab/Automaton/RegularExpressions/CatToken.cs @ 162:0526412bbb26 ref20160224
DFA refactoring
author | cin |
---|---|
date | Wed, 24 Feb 2016 08:39:53 +0300 |
parents | |
children | a0ff6a0e9c44 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab/Automaton/RegularExpressions/CatToken.cs Wed Feb 24 08:39:53 2016 +0300 @@ -0,0 +1,22 @@ +using System; + +namespace Implab.Automaton.RegularExpressions { + public class CatToken<TTag> : BinaryToken<TTag> { + public CatToken(Token<TTag> left, Token<TTag> right) + : base(left, right) { + } + + public override void Accept(IVisitor<TTag> visitor) { + Safe.ArgumentNotNull(visitor, "visitor"); + visitor.Visit(this); + } + + public override string ToString() { + return String.Format("{0}{1}", FormatToken(Left), FormatToken(Right)); + } + + static string FormatToken(Token<TTag> token) { + return String.Format(token is AltToken<TTag> ? "({0})" : "{0}", token); + } + } +}