1 instantiation of SymbolicRegexMatcher
System.Text.RegularExpressions (1)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.cs (1)
165return new SymbolicRegexMatcher<TSet>(builder, rootNode, captureCount, findOptimizations, matchTimeout);
50 references to SymbolicRegexMatcher
System.Text.RegularExpressions (50)
System\Text\RegularExpressions\Symbolic\MatchingState.cs (2)
24/// The kind of the previous character in the input. The <see cref="SymbolicRegexMatcher{TSet}"/> is responsible 43/// A unique identifier for this state, which is used in <see cref="SymbolicRegexMatcher{TSet}"/> to index into
System\Text\RegularExpressions\Symbolic\StateFlags.cs (2)
8/// conditions in the inner matching loops of <see cref="SymbolicRegexMatcher{TSet}"/>. The matcher caches one of these 10/// In DFA mode the cached flags are used directly, while in NFA mode the <see cref="SymbolicRegexMatcher{TSet}.NfaStateHandler"/>
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.cs (27)
141/// <summary>Creates a new <see cref="SymbolicRegexMatcher{TSetType}"/>.</summary> 148public static SymbolicRegexMatcher<TSet> Create( 1218public void InitializeFrom(SymbolicRegexMatcher<TSet> matcher, MatchingState<TSet> dfaMatchingState) 1256public static abstract bool IsNullableFor(SymbolicRegexMatcher<TSet> matcher, in CurrentState state, uint nextCharKind); 1257public static abstract StateFlags GetStateFlags(SymbolicRegexMatcher<TSet> matcher, in CurrentState state); 1264public static bool IsNullableFor(SymbolicRegexMatcher<TSet> matcher, in CurrentState state, uint nextCharKind) => 1270public static bool TryTakeTransition(SymbolicRegexMatcher<TSet> matcher, ref int dfaStateId, int mintermId, long timeoutOccursAt = 0) 1306public static StateFlags GetStateFlags(SymbolicRegexMatcher<TSet> matcher, in CurrentState state) => 1314public static bool StartsWithLineAnchor(SymbolicRegexMatcher<TSet> matcher, in CurrentState state) 1328public static bool IsNullableFor(SymbolicRegexMatcher<TSet> matcher, in CurrentState state, uint nextCharKind) 1342public static bool TryTakeTransition(SymbolicRegexMatcher<TSet> matcher, ref CurrentState state, int mintermId) 1397static int[] GetNextStates(int sourceState, int mintermId, SymbolicRegexMatcher<TSet> matcher) 1422public static StateFlags GetStateFlags(SymbolicRegexMatcher<TSet> matcher, in CurrentState state) 1472public static abstract int GetPositionId(SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, int pos); 1482public static int GetPositionId(SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, int pos) 1501public static int GetPositionId(SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, int pos) => 1521SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, ref int currentStateId, ref int pos, byte[]? lookup); 1532SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, ref int currentStateId, ref int pos, byte[]? lookup) => 1546SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, ref int currentStateId, ref int pos, byte[]? lookup) 1577SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, ref int currentStateId, ref int pos, byte[]? lookup) 1608SymbolicRegexMatcher<TSet> matcher, ReadOnlySpan<char> input, ref int currentStateId, ref int pos, byte[]? lookup) 1632SymbolicRegexMatcher<TSet> matcher, in CurrentState state, int positionId) 1641public static bool IsNullableAt<TStateHandler>(SymbolicRegexMatcher<TSet> matcher, in CurrentState state, int positionId) 1656public static bool IsNullableAt<TStateHandler>(SymbolicRegexMatcher<TSet> matcher, in CurrentState state, int positionId) 1668public static abstract bool IsNullable(SymbolicRegexMatcher<TSet> matcher, byte stateNullability, char c, byte[] lookup); 1676public static bool IsNullable(SymbolicRegexMatcher<TSet> matcher, byte stateNullability, char c, byte[] lookup) => 1686public static bool IsNullable(SymbolicRegexMatcher<TSet> matcher, byte stateNullability, char c, byte[] lookup)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Dgml.cs (3)
144static Dictionary<(int Source, int Target), (TSet Rule, List<int> NfaTargets)> GatherTransitions(SymbolicRegexMatcher<TSet> matcher) 182static string FormatInfo(SymbolicRegexMatcher<TSet> matcher, int transitionCount) 203static IEnumerable<MatchingState<TSet>> GetInitialStates(SymbolicRegexMatcher<TSet> matcher)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Explore.cs (1)
71static (int nfaId, (SymbolicRegexMatcher<TSet> Matcher, HashSet<MatchingState<TSet>> Seen, Queue<MatchingState<TSet>> ToExplore) args) =>
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Sample.cs (7)
86StateFlags flags = SymbolicRegexMatcher<TSet>.NfaStateHandler.GetStateFlags(this, in statesWrapper); 90if (flags.IsNullable() || SymbolicRegexMatcher<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.BeginningEnd)) 96if (SymbolicRegexMatcher<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.Newline)) 102if (SymbolicRegexMatcher<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.WordLetter)) 108if (SymbolicRegexMatcher<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.General)) 132int[] mintermIds = SymbolicRegexMatcher<TSet>.NfaStateHandler.StartsWithLineAnchor(this, in statesWrapper) ? 137bool success = SymbolicRegexMatcher<TSet>.NfaStateHandler.TryTakeTransition(this, ref statesWrapper, mintermId);
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (1)
1242/// specific input position to <see cref="SymbolicRegexMatcher{TSet}.Registers"/> instances, which track concrete
System\Text\RegularExpressions\Symbolic\SymbolicRegexRunnerFactory.cs (7)
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); 48protected internal override RegexRunner CreateInstance() => _matcher is SymbolicRegexMatcher<ulong> srmUInt64 ? 50new Runner<BitVector>((SymbolicRegexMatcher<BitVector>)_matcher); 62private readonly SymbolicRegexMatcher<TSet> _matcher; 65private readonly SymbolicRegexMatcher<TSet>.PerThreadData _perThreadData; 67internal Runner(SymbolicRegexMatcher<TSet> matcher)