1 instantiation of MatchingState
System.Text.RegularExpressions (1)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Automata.cs (1)
256
state = new
MatchingState
<TSet>(key.Node, key.PrevCharKind);
59 references to MatchingState
System.Text.RegularExpressions (59)
System\Text\RegularExpressions\Symbolic\MatchingState.cs (1)
172
obj is
MatchingState
<TSet> s && PrevCharKind == s.PrevCharKind && Node.Equals(s.Node);
System\Text\RegularExpressions\Symbolic\MatchReversal.cs (2)
12
internal MatchReversalInfo(MatchReversalKind kind, int fixedLength,
MatchingState
<TSet>? adjustedStartState = null)
37
internal
MatchingState
<TSet>? AdjustedStartState { get; }
System\Text\RegularExpressions\Symbolic\StateFlags.cs (1)
9
/// for every state, for which they are created by <see cref="
MatchingState
{TSet}.BuildStateFlags(bool)"/>.
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Automata.cs (18)
29
private readonly Dictionary<(SymbolicRegexNode<TSet> Node, uint PrevCharKind),
MatchingState
<TSet>> _stateCache = [];
36
private
MatchingState
<TSet>?[] _stateArray;
46
/// _nullabilityArray[stateId] == the <see cref="
MatchingState
{TSet}.NullabilityInfo"/> for that state.
127
private Span<int> GetDeltasFor(
MatchingState
<TSet> state)
141
private Span<int[]?> GetNfaDeltasFor(
MatchingState
<TSet> state)
165
private
MatchingState
<TSet> GetOrCreateState(SymbolicRegexNode<TSet> node, uint prevCharKind)
250
private
MatchingState
<TSet> GetOrCreateState_NoLock(SymbolicRegexNode<TSet> node, uint prevCharKind, bool isInitialState = false)
254
if (!_stateCache.TryGetValue(key, out
MatchingState
<TSet>? state))
281
/// <see cref="
MatchingState
{TSet}"/> allocated with <see cref="GetOrCreateState(SymbolicRegexNode{TSet}, uint)"/>,
299
MatchingState
<TSet> coreState = GetOrCreateState(node, prevCharKind);
339
/// <summary>Gets the <see cref="
MatchingState
{TSet}"/> corresponding to the given state ID.</summary>
340
private
MatchingState
<TSet> GetState(int stateId)
343
MatchingState
<TSet>? state = _stateArray[stateId];
358
private bool TryCreateNewTransition(
MatchingState
<TSet> sourceState, int mintermId, int offset, bool checkThreshold, long timeoutOccursAt, [NotNullWhen(true)] out
MatchingState
<TSet>? nextState)
364
MatchingState
<TSet>? targetState = _stateArray[_dfaDelta[offset]];
401
MatchingState
<TSet> coreState = GetState(coreId);
430
MatchingState
<TSet> coreState = GetState(GetCoreStateId(nfaStateId));
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.cs (12)
100
private readonly
MatchingState
<TSet>[] _initialStates;
104
private readonly
MatchingState
<TSet>[] _dotstarredInitialStates;
108
private readonly
MatchingState
<TSet>[] _reverseInitialStates;
190
_stateArray = new
MatchingState
<TSet>[InitialDfaStateCapacity];
228
var initialStates = new
MatchingState
<TSet>[statesCount];
238
var dotstarredInitialStates = new
MatchingState
<TSet>[statesCount];
258
var reverseInitialStates = new
MatchingState
<TSet>[statesCount];
1008
MatchingState
<TSet> initialState = _initialStates[GetCharKind(input, i - 1)];
1083
MatchingState
<TSet> endState = GetState(GetCoreStateId(endStateId));
1216
public void InitializeFrom(SymbolicRegexMatcher<TSet> matcher,
MatchingState
<TSet> dfaMatchingState)
1232
public CurrentState(
MatchingState
<TSet> dfaState)
1285
if (matcher.TryCreateNewTransition(matcher.GetState(dfaStateId), mintermId, dfaOffset, checkThreshold: true, timeoutOccursAt, out
MatchingState
<TSet>? nextState))
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Dgml.cs (8)
31
foreach (
MatchingState
<TSet> state in _stateCache.Values)
51
foreach (
MatchingState
<TSet> initialState in GetInitialStates(this))
76
foreach (
MatchingState
<TSet> state in _stateCache.Values)
147
foreach (
MatchingState
<TSet> source in matcher._stateCache.Values)
203
static IEnumerable<
MatchingState
<TSet>> GetInitialStates(SymbolicRegexMatcher<TSet> matcher)
205
foreach (
MatchingState
<TSet> state in matcher._dotstarredInitialStates)
207
foreach (
MatchingState
<TSet> state in matcher._initialStates)
209
foreach (
MatchingState
<TSet> state in matcher._reverseInitialStates)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Explore.cs (17)
19
HashSet<
MatchingState
<TSet>> seen = new();
22
Queue<
MatchingState
<TSet>> toExplore = new();
37
MatchingState
<TSet> state = toExplore.Peek();
46
if (!TryCreateNewTransition(state, mintermId, offset, true, 0, out
MatchingState
<TSet>? nextState))
63
MatchingState
<TSet>[] toBreakUp = toExplore.ToArray();
65
foreach (
MatchingState
<TSet> dfaState in toBreakUp)
71
static (int nfaId, (SymbolicRegexMatcher<TSet> Matcher, HashSet<
MatchingState
<TSet>> Seen, Queue<
MatchingState
<TSet>> ToExplore) args) =>
73
MatchingState
<TSet>? coreState = args.Matcher.GetState(args.Matcher.GetCoreStateId(nfaId));
81
MatchingState
<TSet> state = toExplore.Dequeue();
98
static void EnqueueAll(
MatchingState
<TSet>[] states, HashSet<
MatchingState
<TSet>> seen, Queue<
MatchingState
<TSet>> toExplore)
100
foreach (
MatchingState
<TSet> state in states)
106
static void EnqueueIfUnseen(
MatchingState
<TSet> state, HashSet<
MatchingState
<TSet>> seen, Queue<
MatchingState
<TSet>> queue)