internal bool MoveNext()
        {
            if (_isCompleted)
            {
                _result = null;
                return(false);
            }

            if (_tokenHasValue)
            {
                _result = null;
                while (_result == null && _tokenHasValue)
                {
                    Process();
                    _isOnNewLine   = (Token.Code == NewLine || Token.Code == BlankLine || (_index == 0 && Token.Code == WhiteSpace));
                    _tokenHasValue = _token.MoveNext();
                    _index++;
                }
                if (_result == null && !_tokenHasValue)
                {
                    Complete();
                    _isCompleted = true;
                }
            }
            else if (_result != null)
            {
                _result = null;
                Complete();
                _isCompleted = true;
            }

            return(_result != null);
        }
 protected void SetResult(Element creoleElement)
 {
     if (creoleElement != null)
     {
         _result            = new CreoleElementInfo(_elementStartIndex, _elementEndIndex, creoleElement);
         _elementStartIndex = _elementEndIndex;
     }
 }