Exemplo n.º 1
0
        private void NextToken()
        {
            _previousToken = _token;
            bool result;

            while (_tokensPreviewStart < _tokensPreview.Count)
            {
                _token = _tokensPreview[_tokensPreviewStart];
                _tokensPreviewStart++;

                // We can reset the tokens if we hit the upper limit of the preview
                if (_tokensPreviewStart == _tokensPreview.Count)
                {
                    _tokensPreviewStart = 0;
                    _tokensPreview.Clear();
                }

                if (IsHidden(_token.Type))
                {
                    if (_isKeepTrivia)
                    {
                        PushTrivia(_token);
                    }
                }
                else
                {
                    return;
                }
            }

            // Skip Comments
            while ((result = _tokenIt.MoveNext()))
            {
                if (IsHidden(_tokenIt.Current.Type))
                {
                    if (_isKeepTrivia)
                    {
                        PushTrivia(_tokenIt.Current);
                    }
                }
                else
                {
                    break;
                }
            }

            _token = result ? _tokenIt.Current : Token.Eof;
        }
Exemplo n.º 2
0
        private void NextToken()
        {
            _previousToken = _token;
            bool result;

            if (_tokensPreview.Count > 0)
            {
                _token = _tokensPreview.First.Value;
                _tokensPreview.RemoveFirst();
                return;
            }

            // Skip Comments
            while ((result = _tokenIt.MoveNext()) && IsHidden(_tokenIt.Current.Type))
            {
            }

            _token = result ? _tokenIt.Current : Token.Eof;
        }