view Implab/Automaton/RegularExpressions/EndTokenT.cs @ 177:a0ff6a0e9c44 ref20160224

refactoring
author cin
date Wed, 23 Mar 2016 01:42:00 +0300
parents
children d5c5db0335ee
line wrap: on
line source

using Implab;

namespace Implab.Automaton.RegularExpressions {
    /// <summary>
    /// Конечный символ расширенного регулярного выражения, при построении ДКА
    /// используется для определения конечных состояний.
    /// </summary>
    public class EndToken<TTag>: Token {

        TTag m_tag;

        public EndToken(TTag tag) {
            m_tag = tag;
        }

        public EndToken()
            : this(default(TTag)) {
        }

        public TTag Tag {
            get { return m_tag; }
        }
        
        public override void Accept(IVisitor visitor) {
            Safe.ArgumentOfType(visitor, typeof(IVisitor<TTag>), "visitor");
            Safe.ArgumentNotNull(visitor, "visitor");
            ((IVisitor<TTag>)visitor).Visit(this);
        }
        public override string ToString() {
            return "#";
        }
    }
}