From ea0706a58c215e42dfa908988bb25275974fc486 Mon Sep 17 00:00:00 2001 From: Pavel Djundik Date: Tue, 14 Nov 2023 20:48:49 +0200 Subject: [PATCH] Use generated regex --- .../Parser/LanguageParser.cs | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/Resources/SteamLanguageParser/Parser/LanguageParser.cs b/Resources/SteamLanguageParser/Parser/LanguageParser.cs index 85af00cd3d..731b74117f 100644 --- a/Resources/SteamLanguageParser/Parser/LanguageParser.cs +++ b/Resources/SteamLanguageParser/Parser/LanguageParser.cs @@ -28,26 +28,27 @@ readonly struct TokenSourceInfo(string fileName, int startLineNumber, int startC public int EndColumnNumber { get; } = endColumnNumber; } - class LanguageParser + partial class LanguageParser { - public static string pattern = - @"(?\s+)|" + - @"(?[;])|" + + [GeneratedRegex( + @"(?\s+)|" + + @"(?[;])|" + - "[\"](?.+?)[\"]|" + + "[\"](?.+?)[\"]|" + - @"\/\/(?.*)$|" + + @"\/\/(?.*)$|" + - @"(?-?[a-zA-Z_0-9][a-zA-Z0-9_:.]*)|" + - @"[#](?[a-zA-Z]*)|" + + @"(?-?[a-zA-Z_0-9][a-zA-Z0-9_:.]*)|" + + @"[#](?[a-zA-Z]*)|" + - @"(?[{}<>\]=|])|" + - @"(?[^\s]+)"; - - private static readonly Regex regexPattern = new(pattern, RegexOptions.Multiline | RegexOptions.Compiled); + @"(?[{}<>\]=|])|" + + @"(?[^\s]+)", + RegexOptions.Multiline)] + private static partial Regex RegexPattern(); public static Queue TokenizeString(string buffer, string fileName = "") { + var regexPattern = RegexPattern(); var bufferLines = buffer.Split(new[] { Environment.NewLine }, StringSplitOptions.None); MatchCollection matches = regexPattern.Matches(buffer);