1 instantiation of SymbolicRegexMatcher
System.Text.RegularExpressions (1)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.cs (1)
148
return new
SymbolicRegexMatcher
<TSet>(builder, rootNode, captureCount, findOptimizations, matchTimeout);
54 references to SymbolicRegexMatcher
System.Text.RegularExpressions (54)
System\Text\RegularExpressions\Symbolic\MatchingState.cs (2)
23
/// The kind of the previous character in the input. The <see cref="
SymbolicRegexMatcher
{TSet}"/> is responsible
42
/// 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 (31)
124
/// <summary>Creates a new <see cref="
SymbolicRegexMatcher
{TSetType}"/>.</summary>
131
public static
SymbolicRegexMatcher
<TSet> Create(
899
public void InitializeFrom(
SymbolicRegexMatcher
<TSet> matcher, MatchingState<TSet> dfaMatchingState)
937
public static abstract bool StartsWithLineAnchor(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state);
938
public static abstract bool IsNullableFor(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, uint nextCharKind);
939
public static abstract int ExtractNullableCoreStateId(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, ReadOnlySpan<char> input, int pos);
940
public static abstract int FixedLength(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, uint nextCharKind);
941
public static abstract bool TryTakeTransition(
SymbolicRegexMatcher
<TSet> matcher, ref CurrentState state, int mintermId);
942
public static abstract StateFlags GetStateFlags(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state);
949
public static bool StartsWithLineAnchor(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state) => matcher.GetState(state.DfaStateId).StartsWithLineAnchor;
952
public static bool IsNullableFor(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, uint nextCharKind) => matcher.GetState(state.DfaStateId).IsNullableFor(nextCharKind);
956
public static int ExtractNullableCoreStateId(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, ReadOnlySpan<char> input, int pos) => state.DfaStateId;
960
public static int FixedLength(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, uint nextCharKind) => matcher.GetState(state.DfaStateId).FixedLength(nextCharKind);
964
public static bool TryTakeTransition(
SymbolicRegexMatcher
<TSet> matcher, ref CurrentState state, int mintermId)
1001
public static StateFlags GetStateFlags(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state)
1009
public static bool StartsWithLineAnchor(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state)
1023
public static bool IsNullableFor(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, uint nextCharKind)
1037
public static int ExtractNullableCoreStateId(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, ReadOnlySpan<char> input, int pos)
1054
public static int FixedLength(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, uint nextCharKind)
1070
public static bool TryTakeTransition(
SymbolicRegexMatcher
<TSet> matcher, ref CurrentState state, int mintermId)
1125
static int[] GetNextStates(int sourceState, int mintermId,
SymbolicRegexMatcher
<TSet> matcher)
1150
public static StateFlags GetStateFlags(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state)
1203
public static abstract int GetPositionId(
SymbolicRegexMatcher
<TSet> matcher, ReadOnlySpan<char> input, int pos);
1209
public static int GetPositionId(
SymbolicRegexMatcher
<TSet> matcher, ReadOnlySpan<char> input, int pos) =>
1216
public static int GetPositionId(
SymbolicRegexMatcher
<TSet> matcher, ReadOnlySpan<char> input, int pos)
1235
public static abstract bool TryFindNextStartingPosition<TInputReader>(
SymbolicRegexMatcher
<TSet> matcher, ReadOnlySpan<char> input, ref CurrentState state, ref int pos)
1245
public static bool TryFindNextStartingPosition<TInputReader>(
SymbolicRegexMatcher
<TSet> matcher, ReadOnlySpan<char> input, ref CurrentState state, ref int pos)
1259
public static bool TryFindNextStartingPosition<TInputReader>(
SymbolicRegexMatcher
<TSet> matcher, ReadOnlySpan<char> input, ref CurrentState state, ref int pos)
1281
public static abstract bool IsNullableAt<TStateHandler>(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, int positionId, StateFlags flags)
1291
public static bool IsNullableAt<TStateHandler>(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, int positionId, StateFlags flags)
1305
public static bool IsNullableAt<TStateHandler>(
SymbolicRegexMatcher
<TSet> matcher, in CurrentState state, int positionId, StateFlags flags)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Dgml.cs (3)
144
static Dictionary<(int Source, int Target), (TSet Rule, List<int> NfaTargets)> GatherTransitions(
SymbolicRegexMatcher
<TSet> matcher)
182
static string FormatInfo(
SymbolicRegexMatcher
<TSet> matcher, int transitionCount)
203
static IEnumerable<MatchingState<TSet>> GetInitialStates(
SymbolicRegexMatcher
<TSet> matcher)
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Explore.cs (1)
65
static (int nfaId, (
SymbolicRegexMatcher
<TSet> Matcher, HashSet<MatchingState<TSet>> Seen, Queue<MatchingState<TSet>> ToExplore) args) =>
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Sample.cs (7)
86
StateFlags flags =
SymbolicRegexMatcher
<TSet>.NfaStateHandler.GetStateFlags(this, in statesWrapper);
90
if (flags.IsNullable() ||
SymbolicRegexMatcher
<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.BeginningEnd))
96
if (
SymbolicRegexMatcher
<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.Newline))
102
if (
SymbolicRegexMatcher
<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.WordLetter))
108
if (
SymbolicRegexMatcher
<TSet>.NfaStateHandler.IsNullableFor(this, in statesWrapper, CharKind.General))
132
int[] mintermIds =
SymbolicRegexMatcher
<TSet>.NfaStateHandler.StartsWithLineAnchor(this, in statesWrapper) ?
137
bool success =
SymbolicRegexMatcher
<TSet>.NfaStateHandler.TryTakeTransition(this, ref statesWrapper, mintermId);
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (1)
1241
/// specific input position to <see cref="
SymbolicRegexMatcher
{TSet}.Registers"/> instances, which track concrete
System\Text\RegularExpressions\Symbolic\SymbolicRegexRunnerFactory.cs (7)
43
SymbolicRegexMatcher
<BitVector>.Create(regexTree.CaptureCount, regexTree.FindOptimizations, bddBuilder, rootNode, new BitVectorSolver(minterms, charSetSolver), matchTimeout) :
44
SymbolicRegexMatcher
<ulong>.Create(regexTree.CaptureCount, regexTree.FindOptimizations, bddBuilder, rootNode, new UInt64Solver(minterms, charSetSolver), matchTimeout);
48
protected internal override RegexRunner CreateInstance() => _matcher is
SymbolicRegexMatcher
<ulong> srmUInt64 ?
50
new Runner<BitVector>((
SymbolicRegexMatcher
<BitVector>)_matcher);
62
private readonly
SymbolicRegexMatcher
<TSet> _matcher;
65
private readonly
SymbolicRegexMatcher
<TSet>.PerThreadData _perThreadData;
67
internal Runner(
SymbolicRegexMatcher
<TSet> matcher)