/// <summary> /// 4.4.3. Single quoted string state /// </summary> CssToken StringSQ(Char current) { while (true) { switch (current) { case Specification.SQ: case Specification.EOF: return(CssStringToken.Plain(FlushBuffer())); case Specification.FF: case Specification.LF: RaiseErrorOccurred(ErrorCode.LineBreakUnexpected); src.Back(); return(CssStringToken.Plain(FlushBuffer(), true)); case Specification.RSOLIDUS: current = src.Next; if (current.IsLineBreak()) { stringBuffer.AppendLine(); } else if (current != Specification.EOF) { stringBuffer.Append(ConsumeEscape(current)); } else { RaiseErrorOccurred(ErrorCode.EOF); src.Back(); return(CssStringToken.Plain(FlushBuffer(), true)); } break; default: stringBuffer.Append(current); break; } current = src.Next; } }