private bool TryParseCssValue(RequiredAttributeDescriptorBuilder builder)
        {
            int valueStart;
            int valueEnd;

            if (At('\'') || At('"'))
            {
                var quote = Current;

                // Move past the quote
                _index++;

                valueStart = _index;
                valueEnd   = _requiredAttributes.IndexOf(quote, _index);
                if (valueEnd == -1)
                {
                    var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidRequiredAttributeMismatchedQuotes(quote, _requiredAttributes);
                    builder.Diagnostics.Add(diagnostic);

                    return(false);
                }
                _index = valueEnd + 1;
            }
            else
            {
                valueStart = _index;
                var valueEndIndex = _requiredAttributes.IndexOfAny(InvalidCssQuotelessValueCharacters, _index);
                valueEnd = valueEndIndex == -1 ? _requiredAttributes.Length : valueEndIndex;
                _index   = valueEnd;
            }

            var value = _requiredAttributes.Substring(valueStart, valueEnd - valueStart);

            builder.Value = value;

            return(true);
        }