1 write to FindOptimizations
System.Text.RegularExpressions (1)
System\Text\RegularExpressions\RegexTree.cs (1)
80FindOptimizations = RegexFindOptimizations.Create(root, options);
27 references to FindOptimizations
System.Text.RegularExpressions (27)
System\Text\RegularExpressions\RegexCompiler.cs (24)
412int minRequiredLength = _regexTree.FindOptimizations.MinRequiredLength; 463switch (_regexTree.FindOptimizations.FindMode) 491Debug.Fail($"Unexpected mode: {_regexTree.FindOptimizations.FindMode}"); 508switch (_regexTree.FindOptimizations.FindMode) 514_regexTree.Root.ComputeMaxLength() == _regexTree.FindOptimizations.MinRequiredLength) 523Ldc(_regexTree.FindOptimizations.MinRequiredLength); 643int extraNewlineBump = _regexTree.FindOptimizations.FindMode == FindNextStartingPositionMode.TrailingAnchor_FixedLength_LeftToRight_EndZ ? 1 : 0; 648Ldc(_regexTree.FindOptimizations.MinRequiredLength + extraNewlineBump); 654Ldc(_regexTree.FindOptimizations.MinRequiredLength + extraNewlineBump); 667switch (_regexTree.FindOptimizations.LeadingAnchor) 751switch (_regexTree.FindOptimizations.TrailingAnchor) 753case RegexNodeKind.End or RegexNodeKind.EndZ when _regexTree.FindOptimizations.MaxPossibleLength is int maxLength: 756int extraNewlineBump = _regexTree.FindOptimizations.FindMode == FindNextStartingPositionMode.TrailingAnchor_FixedLength_LeftToRight_EndZ ? 1 : 0; 781RegexFindOptimizations opts = _regexTree.FindOptimizations; 836string prefix = _regexTree.FindOptimizations.LeadingPrefix; 869Debug.Assert(_regexTree.FindOptimizations.FixedDistanceSets is { Count: > 0 }); 871List<RegexFindOptimizations.FixedDistanceSet>? sets = _regexTree.FindOptimizations.FixedDistanceSets; 1200Debug.Assert(_regexTree.FindOptimizations.FixedDistanceSets is { Count: > 0 }); 1202RegexFindOptimizations.FixedDistanceSet set = _regexTree.FindOptimizations.FixedDistanceSets![0]; 1271Debug.Assert(_regexTree.FindOptimizations.LiteralAfterLoop is not null); 1272(RegexNode LoopNode, (char Char, string? String, StringComparison StringComparison, char[]? Chars) Literal) target = _regexTree.FindOptimizations.LiteralAfterLoop.Value; 2935if (_regexTree!.FindOptimizations.FindMode == FindNextStartingPositionMode.LiteralAfterLoop_LeftToRight && 2936_regexTree!.FindOptimizations.LiteralAfterLoop?.LoopNode == node) 5640else if (_regexTree.FindOptimizations.FindMode is
System\Text\RegularExpressions\RegexWriter.cs (1)
122return new RegexInterpreterCode(_tree.FindOptimizations, _tree.Options, emitted, strings, _trackCount);
System\Text\RegularExpressions\Symbolic\SymbolicRegexRunnerFactory.cs (2)
43SymbolicRegexMatcher<BitVector>.Create(regexTree.CaptureCount, regexTree.FindOptimizations, bddBuilder, rootNode, new BitVectorSolver(minterms), matchTimeout) : 44SymbolicRegexMatcher<ulong>.Create(regexTree.CaptureCount, regexTree.FindOptimizations, bddBuilder, rootNode, new UInt64Solver(minterms), matchTimeout);