view Implab/Automaton/RegularExpressions/CatToken.cs @ 173:ecfece82ca11 ref20160224

Working on text scanner
author cin
date Tue, 15 Mar 2016 02:11:06 +0300
parents 0526412bbb26
children a0ff6a0e9c44
line wrap: on
line source

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