26 references to DerivativeEffect
System.Text.RegularExpressions (26)
System\Text\RegularExpressions\Symbolic\MatchingState.cs (1)
90internal 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)
97private (int, DerivativeEffect[])[]?[] _capturingNfaDelta = []; 421private (int, DerivativeEffect[])[] CreateNewCapturingTransition(int nfaStateId, int mintermId, int offset) 427(int, DerivativeEffect[])[]? targets = _capturingNfaDelta[offset]; 433List<(SymbolicRegexNode<TSet> Node, DerivativeEffect[] Effects)>? transition = coreState.NfaNextWithEffects(_builder, minterm, nextCharKind); 436List<(int, DerivativeEffect[])> targetsList = []; 437foreach ((SymbolicRegexNode<TSet> Node, DerivativeEffect[] Effects) entry in transition) 440static (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]; 1117public void ApplyEffects(DerivativeEffect[] effects, int pos) 1119foreach (DerivativeEffect effect in effects) 1130public void ApplyEffect(DerivativeEffect effect, int pos)
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (9)
1054internal List<(SymbolicRegexNode<TSet>, DerivativeEffect[])> CreateNfaDerivativeWithEffects(SymbolicRegexBuilder<TSet> builder, TSet elem, uint context) 1056List<(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 1427internal void StripAndMapEffects(SymbolicRegexBuilder<TSet> builder, uint context, List<(SymbolicRegexNode<TSet>, DerivativeEffect[])> alternativesAndEffects, 1428List<DerivativeEffect>? currentEffects = null) 1471(SymbolicRegexNode<TSet> node, DerivativeEffect[] effects) = alternativesAndEffects[i]; 1509(SymbolicRegexNode<TSet> node, DerivativeEffect[] effects) = alternativesAndEffects[i]; 1531internal void ApplyEffects<TArg>(Action<DerivativeEffect, TArg> apply, uint context, TArg arg)