16 references to RegexPrefixAnalyzer
System.Text.RegularExpressions (16)
System\Text\RegularExpressions\RegexCompiler.cs (1)
513if (RegexPrefixAnalyzer.FindTrailingAnchor(_regexTree.Root) == RegexNodeKind.End &&
System\Text\RegularExpressions\RegexFindOptimizations.cs (12)
24RegexPrefixAnalyzer.FindLeadingPositiveLookahead(root) is RegexNode positiveLookahead) 55LeadingAnchor = RegexPrefixAnalyzer.FindLeadingAnchor(root); 82TrailingAnchor = RegexPrefixAnalyzer.FindTrailingAnchor(root); 99string? prefix = RegexPrefixAnalyzer.FindPrefix(root); 125if (RegexPrefixAnalyzer.FindFirstCharClass(root) is string charClass) 163prefix = RegexPrefixAnalyzer.FindPrefixOrdinalCaseInsensitive(root); 175RegexPrefixAnalyzer.FindPrefixes(root, ignoreCase: true) is { Length: > 1 } caseInsensitivePrefixes) 186List<FixedDistanceSet>? fixedDistanceSets = RegexPrefixAnalyzer.FindFixedDistanceSets(root, thorough: !interpreter); 202(RegexNode LoopNode, (char Char, string? String, StringComparison StringComparison, char[]? Chars) Literal)? literalAfterLoop = RegexPrefixAnalyzer.FindLiteralFollowingLeadingLoop(root); 213RegexPrefixAnalyzer.SortFixedDistanceSetsByQuality(fixedDistanceSets); 220RegexPrefixAnalyzer.FindPrefixes(root, ignoreCase: false) is { Length: > 1 } caseSensitivePrefixes) 893ReadOnlySpan<float> frequency = RegexPrefixAnalyzer.Frequency;
System\Text\RegularExpressions\RegexNode.cs (3)
2503if (RegexPrefixAnalyzer.FindFirstCharClass(loopChild) is not string loopStartingSet || 2504RegexPrefixAnalyzer.FindLastCharClass(loopChild) is not string loopEndingSet || 2678RegexPrefixAnalyzer.FindFirstOrLastCharClass(peers[index], findFirst: succeeded) is string set &&