2 instantiations of DerivativeEffect
System.Text.RegularExpressions (2)
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (2)
1574
apply(new
DerivativeEffect
(DerivativeEffectKind.CaptureStart, _lower), arg);
1578
apply(new
DerivativeEffect
(DerivativeEffectKind.CaptureEnd, _lower), arg);
26 references to DerivativeEffect
System.Text.RegularExpressions (26)
System\Text\RegularExpressions\Symbolic\MatchingState.cs (1)
90
internal List<(SymbolicRegexNode<TSet> Node,
DerivativeEffect
[] Effects)> NfaNextWithEffects(SymbolicRegexBuilder<TSet> builder, TSet minterm, uint nextCharKind)
System\Text\RegularExpressions\Symbolic\SymbolicRegexKind.cs (3)
55
/// being created for. This is done by translating effects to <see cref="
DerivativeEffect
"/> structs, which provide
61
/// delaying work until it is known that mapping CaptureStart and CaptureEnd nodes to <see cref="
DerivativeEffect
"/>
64
/// effects. Rather, the right child can be any pattern and when mapping to <see cref="
DerivativeEffect
"/> the function
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Automata.cs (8)
97
private (int,
DerivativeEffect
[])[]?[] _capturingNfaDelta = [];
421
private (int,
DerivativeEffect
[])[] CreateNewCapturingTransition(int nfaStateId, int mintermId, int offset)
427
(int,
DerivativeEffect
[])[]? targets = _capturingNfaDelta[offset];
433
List<(SymbolicRegexNode<TSet> Node,
DerivativeEffect
[] Effects)>? transition = coreState.NfaNextWithEffects(_builder, minterm, nextCharKind);
436
List<(int,
DerivativeEffect
[])> targetsList = [];
437
foreach ((SymbolicRegexNode<TSet> Node,
DerivativeEffect
[] Effects) entry in transition)
440
static (int nfaId, (List<(int,
DerivativeEffect
[])> Targets,
DerivativeEffect
[] Effects) args) =>
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.cs (5)
1039
(int,
DerivativeEffect
[])[] transitions = _capturingNfaDelta[offset] ??
1045
(int targetStateId,
DerivativeEffect
[] effects) = transitions[j];
1117
public void ApplyEffects(
DerivativeEffect
[] effects, int pos)
1119
foreach (
DerivativeEffect
effect in effects)
1130
public void ApplyEffect(
DerivativeEffect
effect, int pos)
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (9)
1054
internal List<(SymbolicRegexNode<TSet>,
DerivativeEffect
[])> CreateNfaDerivativeWithEffects(SymbolicRegexBuilder<TSet> builder, TSet elem, uint context)
1056
List<(SymbolicRegexNode<TSet>,
DerivativeEffect
[])> transitions = [];
1241
/// Ultimately, effects are translated into <see cref="
DerivativeEffect
"/> instances which may be applied at a
1413
/// arrays of <see cref="
DerivativeEffect
"/>. The node is split into a list of pairs (node, effects), where the
1427
internal void StripAndMapEffects(SymbolicRegexBuilder<TSet> builder, uint context, List<(SymbolicRegexNode<TSet>,
DerivativeEffect
[])> alternativesAndEffects,
1428
List<
DerivativeEffect
>? currentEffects = null)
1471
(SymbolicRegexNode<TSet> node,
DerivativeEffect
[] effects) = alternativesAndEffects[i];
1509
(SymbolicRegexNode<TSet> node,
DerivativeEffect
[] effects) = alternativesAndEffects[i];
1531
internal void ApplyEffects<TArg>(Action<
DerivativeEffect
, TArg> apply, uint context, TArg arg)