ShaderTools.Hlsl.Parser.HlslLexer.ReadString C# (CSharp) Method

ReadString() private method

private ReadString ( ) : void
return void
        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();
        }