private void ReadBracketedString()
{
_kind = SyntaxKind.BracketedStringLiteralToken;
// Skip open angle bracket.
NextChar();
var sb = new StringBuilder();
while (true)
{
switch (_charReader.Current)
{
case '\0':
_diagnostics.ReportUnterminatedString(CurrentSpanStart);
goto ExitLoop;
case '>':
NextChar();
goto ExitLoop;
default:
if (Path.GetInvalidPathChars().Contains(_charReader.Current))
{
_diagnostics.ReportUnterminatedString(CurrentSpanStart);
goto ExitLoop;
}
sb.Append(_charReader.Current);
NextChar();
break;
}
}
ExitLoop:
_value = sb.ToString();
}