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);
+        }
+    }
+}