private CreoleRichTextElementProcessor(CreoleParserContext context, TokenRange <CreoleTokenCode> tokens, ICreoleRichTextElementDataIterator elementIterator) { _tokens = tokens; Context = context; _element = elementIterator; if (_element != null && _element.MoveNext()) { _token = _tokens.SubRange(_startIndex, (_element.Current.StartIndex - _startIndex)).GetEnumerator(); _startIndex = _element.Current.EndIndex; } else { _element?.Dispose(); _element = null; _token = _tokens.GetEnumerator(); _startIndex = _tokens.Count; } }
private void _MoveToNextElement() { if (_element.MoveNext()) { if (_startIndex < _element.Current.StartIndex) { _token = _tokens.SubRange(_startIndex, (_element.Current.StartIndex - _startIndex)).GetEnumerator(); } _index = _startIndex; _startIndex = _element.Current.EndIndex; } else { _element.Dispose(); _element = null; _token = _tokens.SubRange(_startIndex, (_tokens.Count - _startIndex)).GetEnumerator(); _index = _startIndex; _startIndex = _tokens.Count; } }