/// <summary> /// 4.4.3. Single quoted string state /// </summary> CssToken StringSQ() { while (true) { var current = GetNext(); switch (current) { case Symbols.SingleQuote: case Symbols.EndOfFile: return(CssStringToken.Plain(FlushBuffer())); case Symbols.FormFeed: case Symbols.LineFeed: RaiseErrorOccurred(ErrorCode.LineBreakUnexpected); Back(); return(CssStringToken.Plain(FlushBuffer(), true)); case Symbols.ReverseSolidus: current = GetNext(); if (current.IsLineBreak()) { _stringBuffer.AppendLine(); } else if (current != Symbols.EndOfFile) { _stringBuffer.Append(ConsumeEscape(current)); } else { RaiseErrorOccurred(ErrorCode.EOF); Back(); return(CssStringToken.Plain(FlushBuffer(), true)); } break; default: _stringBuffer.Append(current); break; } } }
/// <summary> /// 4.4.3. Single quoted string state /// </summary> CssToken StringSQ(Char current) { while (true) { switch (current) { case Specification.SingleQuote: case Specification.EndOfFile: return(CssStringToken.Plain(FlushBuffer())); case Specification.FormFeed: case Specification.LineFeed: RaiseErrorOccurred(ErrorCode.LineBreakUnexpected); _src.Back(); return(CssStringToken.Plain(FlushBuffer(), true)); case Specification.ReverseSolidus: current = _src.Next; if (current.IsLineBreak()) { _stringBuffer.AppendLine(); } else if (current != Specification.EndOfFile) { _stringBuffer.Append(ConsumeEscape(current)); } else { RaiseErrorOccurred(ErrorCode.EOF); _src.Back(); return(CssStringToken.Plain(FlushBuffer(), true)); } break; default: _stringBuffer.Append(current); break; } current = _src.Next; } }