/// <summary>
        /// Creates an iterator for the LexerDescription node
        /// </summary>
        /// <param name="iteratorFactory"></param>
        /// <returns></returns>
        public override CAbstractIterator <CASTElement> AcceptIterator(CASTAbstractConcreteIteratorFactory iteratorFactory)
        {
            IASTAbstractConcreteIteratorFactory typedFactory = iteratorFactory as IASTAbstractConcreteIteratorFactory;

            if (typedFactory != null)
            {
                return(iteratorFactory.CreateLexerDescriptionIterator(this));
            }
            return(iteratorFactory.CreateIteratorASTElementDescentantsFlatten(this));
        }
        public override CAbstractIterator <CASTElement> AcceptEventIterator(CASTAbstractConcreteIteratorFactory iteratorFactory,
                                                                            CASTGenericIteratorEvents events, object info = null)
        {
            IASTAbstractConcreteIteratorFactory typedFactory = iteratorFactory as IASTAbstractConcreteIteratorFactory;

            if (typedFactory != null)
            {
                return(iteratorFactory.CreateLexerDescriptionIteratorEvents(this, events, info));
            }
            return(iteratorFactory.CreateIteratorASTElementDescentantsFlattenEvents(this, events, info));
        }