From db03d8cceab6127c1e6e882361c99c63e81ca7cc Mon Sep 17 00:00:00 2001 From: GGG KILLER Date: Fri, 9 Apr 2021 01:12:06 -0300 Subject: [PATCH] Make short string parsing use Lexer's shared builder. --- .../Lua/Portable/Parser/Lexer.ShortString.cs | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Compilers/Lua/Portable/Parser/Lexer.ShortString.cs b/src/Compilers/Lua/Portable/Parser/Lexer.ShortString.cs index 8729e15d..02d8985b 100644 --- a/src/Compilers/Lua/Portable/Parser/Lexer.ShortString.cs +++ b/src/Compilers/Lua/Portable/Parser/Lexer.ShortString.cs @@ -8,7 +8,7 @@ internal sealed partial class Lexer { private string ParseShortString() { - var parsed = new StringBuilder(); + _builder.Clear(); var delim = _reader.Read()!.Value; RoslynDebug.Assert(delim is '"' or '\''); @@ -30,68 +30,68 @@ private string ParseShortString() if (_reader.IsAt('\n', 1)) { _reader.Advance(2); - parsed.Append("\r\n"); + _builder.Append("\r\n"); } else { _reader.Advance(1); - parsed.Append('\r'); + _builder.Append('\r'); } break; case 'a': _reader.Advance(1); - parsed.Append('\a'); + _builder.Append('\a'); break; case 'b': _reader.Advance(1); - parsed.Append('\b'); + _builder.Append('\b'); break; case 'f': _reader.Advance(1); - parsed.Append('\f'); + _builder.Append('\f'); break; case 'n': _reader.Advance(1); - parsed.Append('\n'); + _builder.Append('\n'); break; case 'r': _reader.Advance(1); - parsed.Append('\r'); + _builder.Append('\r'); break; case 't': _reader.Advance(1); - parsed.Append('\t'); + _builder.Append('\t'); break; case 'v': _reader.Advance(1); - parsed.Append('\v'); + _builder.Append('\v'); break; case '\\': _reader.Advance(1); - parsed.Append('\\'); + _builder.Append('\\'); break; case '\n': _reader.Advance(1); - parsed.Append('\n'); + _builder.Append('\n'); break; case '\'': _reader.Advance(1); - parsed.Append('\''); + _builder.Append('\''); break; case '"': _reader.Advance(1); - parsed.Append('"'); + _builder.Append('"'); break; case '0': @@ -107,7 +107,7 @@ private string ParseShortString() { var parsedCharInteger = parseDecimalInteger(escapeStart); if (parsedCharInteger != char.MaxValue) - parsed.Append(parsedCharInteger); + _builder.Append(parsedCharInteger); break; } @@ -116,7 +116,7 @@ private string ParseShortString() _reader.Advance(1); var parsedCharInteger = parseHexadecimalInteger(escapeStart); if (parsedCharInteger != char.MaxValue) - parsed.Append(parsedCharInteger); + _builder.Append(parsedCharInteger); if (!Options.SyntaxOptions.AcceptHexEscapesInStrings) AddError(escapeStart, _reader.Position - escapeStart, ErrorCode.ERR_HexStringEscapesNotSupportedInVersion); @@ -141,12 +141,12 @@ private string ParseShortString() if (_reader.IsAt('\n', 1)) { _reader.Advance(2); - parsed.Append("\r\n"); + _builder.Append("\r\n"); } else { _reader.Advance(1); - parsed.Append('\r'); + _builder.Append('\r'); } AddError(charStart, _reader.Position - charStart, ErrorCode.ERR_UnescapedLineBreakInString); @@ -156,7 +156,7 @@ private string ParseShortString() case '\n': { _reader.Advance(1); - parsed.Append('\n'); + _builder.Append('\n'); AddError(charStart, _reader.Position - charStart, ErrorCode.ERR_UnescapedLineBreakInString); } @@ -164,7 +164,7 @@ private string ParseShortString() default: _reader.Advance(1); - parsed.Append(peek); + _builder.Append(peek); break; } } @@ -178,7 +178,7 @@ private string ParseShortString() AddError(ErrorCode.ERR_UnfinishedString); } - return parsed.ToString(); + return _builder.ToString(); char parseDecimalInteger(int start) {