예제 #1
0
        /// <summary>
        /// 4.4.5. Hash-rest state
        /// </summary>
        CssToken HashRest()
        {
            while (true)
            {
                var current = GetNext();

                if (current.IsName())
                {
                    _stringBuffer.Append(current);
                }
                else if (IsValidEscape(current))
                {
                    current = GetNext();
                    _stringBuffer.Append(ConsumeEscape(current));
                }
                else if (current == Symbols.ReverseSolidus)
                {
                    RaiseErrorOccurred(ErrorCode.InvalidCharacter);
                    Back();
                    return(CssKeywordToken.Hash(FlushBuffer()));
                }
                else
                {
                    Back();
                    return(CssKeywordToken.Hash(FlushBuffer()));
                }
            }
        }
예제 #2
0
        /// <summary>
        /// 4.4.5. Hash-rest state
        /// </summary>
        CssToken HashRest(Char current)
        {
            while (true)
            {
                if (current.IsName())
                {
                    _stringBuffer.Append(current);
                }
                else if (IsValidEscape(current))
                {
                    current = _src.Next;
                    _stringBuffer.Append(ConsumeEscape(current));
                }
                else if (current == Specification.ReverseSolidus)
                {
                    RaiseErrorOccurred(ErrorCode.InvalidCharacter);
                    _src.Back();
                    return(CssKeywordToken.Hash(FlushBuffer()));
                }
                else
                {
                    _src.Back();
                    return(CssKeywordToken.Hash(FlushBuffer()));
                }

                current = _src.Next;
            }
        }