private void ReadString()
{
_kind = SyntaxKind.StringLiteralToken;
// Skip first double quote
NextChar();
var sb = new StringBuilder();
while (true)
{
switch (_charReader.Current)
{
case '\0':
_diagnostics.ReportUnterminatedString(CurrentSpanStart);
goto ExitLoop;
case '\\':
sb.Append(_charReader.Current);
NextChar();
sb.Append(_charReader.Current);
NextChar();
break;
case '"':
NextChar();
if (_charReader.Current != '"')
goto ExitLoop;
sb.Append(_charReader.Current);
NextChar();
break;
default:
sb.Append(_charReader.Current);
NextChar();
break;
}
}
ExitLoop:
_value = sb.ToString();
}