1 write to _right
System.Text.RegularExpressions (1)
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (1)
66_right = right;
132 references to _right
System.Text.RegularExpressions (132)
System\Text\RegularExpressions\Symbolic\SymbolicRegexBuilder.cs (2)
323Debug.Assert(node._left is not null && node._right is not null); 326Transform(node._right, builder, setTransformer),
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Automata.cs (3)
210node = node._right!; 224node._right! : // The entire loop is fixed 227node._right!);
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (127)
128Debug.Assert(node._left is not null && node._right is not null); 135node = node._right; 203Debug.Assert(node._left is not null && node._right is not null); 212node = node._right; 263Debug.Assert(_left is not null && _right is not null); 264is_nullable = _left.IsNullableFor(context) && _right.IsNullableFor(context); 268Debug.Assert(_left is not null && _right is not null); 269is_nullable = _left.IsNullableFor(context) || _right.IsNullableFor(context); 432Debug.Assert(node._left is not null && node._right is not null); 433return CreateEffect(builder, node._left, CreateConcat(builder, effectNode, node._right)); 465Debug.Assert(left._left is not null && left._right is not null); 466return CreateEffect(builder, CreateConcat(builder, left._left, right), left._right); 498SymbolicRegexNode<TSet> tail = right._kind == SymbolicRegexNodeKind.Alternate ? right._right! : builder._nothing; 521Debug.Assert(current._left is not null && current._right is not null); 530current = current._right; 653Debug.Assert(left._left is not null && left._right is not null); 661Debug.Assert(right._left is not null && right._right is not null); 669Debug.Assert(left._left is not null && right._left is not null && right._right is not null); 675return tail.Subsumes(builder, right._right, depth); 683Debug.Assert(left._left is not null && left._right is not null); 689return left._right.Subsumes(builder, tail, depth); 696Debug.Assert(left._left is not null && left._right is not null); 699return left._right.Subsumes(builder, right, depth); 715Debug.Assert(prefix._left is not null && prefix._right is not null); 719Debug.Assert(node._left is not null && node._right is not null); 723node = node._right; 724prefix = prefix._right; 731Debug.Assert(node._left is not null && node._right is not null); 734tail = node._right; 791Debug.Assert(left._left is not null && left._right is not null); 805result = CreateEffect(builder, innerResult, left._right); 814Debug.Assert(right._left is not null && right._right is not null); 816rightEffects = CreateConcat(builder, right._right, rightEffects); 823Debug.Assert(right._left is not null && right._right is not null); 844Debug.Assert(suffix._left is not null && suffix._right is not null); 854else if (suffix._right.Subsumes(builder, left)) 858suffix = suffix._right; 929Debug.Assert(_left is not null && _right is not null); 933int rightLength = _right.GetFixedLength(); 948Debug.Assert(_left is not null && _right is not null); 952if (_right.GetFixedLength() == length) 990Debug.Assert(_left is not null && _right is not null); 994_right.AddFixedLengthMarkers(builder, lengthSoFar), deduplicated: true); 997Debug.Assert(_left is not null && _right is not null); 1002return CreateConcat(builder, _left, _right.AddFixedLengthMarkers(builder, lengthSoFar + leftLength)); 1005int rightLength = _right.GetFixedLength(); 1008return CreateConcat(builder, _left.AddFixedLengthMarkers(builder, lengthSoFar), _right); 1103Debug.Assert(_left is not null && _right is not null); 1110CreateAlternate(builder, _left, _right.PruneLowerPriorityThanNullability(builder, context), deduplicated: true); 1114Debug.Assert(_left is not null && _right is not null); 1119SymbolicRegexNodeKind.Concat => CreateConcat(builder, _left._left!, CreateConcat(builder, _left._right!, _right)) 1127CreateConcat(builder, _left._left, _right).PruneLowerPriorityThanNullability(builder, context) : 1128CreateAlternate(builder, CreateConcat(builder, _left._left, _right), 1129CreateConcat(builder, _left._right!, _right).PruneLowerPriorityThanNullability(builder, context), deduplicated: true)), 1131SymbolicRegexNodeKind.Loop => PruneLoop(builder, context, _left, _right), 1134_ => CreateConcat(builder, _left, _right.PruneLowerPriorityThanNullability(builder, context)), 1145Debug.Assert(_left is not null && _right is not null); 1146prunedNode = CreateEffect(builder, _left.PruneLowerPriorityThanNullability(builder, context), _right); 1285Debug.Assert(_left is not null && _right is not null); 1291derivative = builder.CreateConcat(_left.CreateDerivative(builder, elem, context), _right); 1295SymbolicRegexNode<TSet> leftDerivative = builder.CreateConcat(_left.CreateDerivative(builder, elem, context), _right); 1296SymbolicRegexNode<TSet> rightDerivative = builder.CreateEffect(_right.CreateDerivative(builder, elem, context), _left); 1338Debug.Assert(_left is not null && _right is not null); 1339derivative = CreateAlternate(builder, _left.CreateDerivative(builder, elem, context), _right.CreateDerivative(builder, elem, context)); 1388Debug.Assert(_left is not null && _right is not null); 1394Debug.Assert(_left is not null && _right is not null); 1395Debug.Assert(_left._info.ContainsEffect && !_right._info.ContainsEffect); 1396result = builder.CreateConcat(_left.StripEffects(builder), _right); 1400Debug.Assert(_left is not null && _right is not null); 1407SymbolicRegexNode<TSet> strippedRight = _right.StripEffects(builder); 1473Debug.Assert(_left is not null && _right is not null); 1476_right.ApplyEffects((e, s) => s.Add(e), context, currentEffects); 1485Debug.Assert(_left is not null && _right is not null); 1486Debug.Assert(_left._info.ContainsEffect && !_right._info.ContainsEffect); 1494alternativesAndEffects[i] = (builder.CreateConcat(node, _right), effects); 1500Debug.Assert(_left is not null && _right is not null); 1502_right.StripAndMapEffects(builder, context, alternativesAndEffects, currentEffects); 1564Debug.Assert(_left is not null && _right is not null); 1565Debug.Assert(_left.IsNullableFor(context) && _right.IsNullableFor(context)); 1567_right.ApplyEffects(apply, context, arg); 1581Debug.Assert(_left is not null && _right is not null); 1590Debug.Assert(_right.IsNullableFor(context)); 1591_right.ApplyEffects(apply, context, arg); 1671Debug.Assert(_left is not null && _right is not null); 1675_right.ToStringHelper(sb); 1680Debug.Assert(_left is not null && _right is not null); 1687_right.ToStringHelper(sb); 1755Debug.Assert(_left is not null && _right is not null); 1760_right.ToStringHelper(sb); 1886Debug.Assert(_left is not null && _right is not null); 1888_right.CollectSets(builder, sets); 1896Debug.Assert(conc._left is not null && conc._right is not null); 1898conc = conc._right; 1941Debug.Assert(_left is not null && _right is not null); 1943SymbolicRegexNode<TSet> rest = _right; 1946Debug.Assert(rest._left is not null && rest._right is not null); 1949rest = rest._right; 1957Debug.Assert(_left is not null && _right is not null); 1958return CreateAlternate(builder, _left.Reverse(builder), _right.Reverse(builder)); 2013Debug.Assert(_left is not null && _right is not null); 2014return _left.StartsWithLoop(upperBoundLowestValue) || (_left.IsNullable && _right.StartsWithLoop(upperBoundLowestValue)); 2017Debug.Assert(_left is not null && _right is not null); 2018return _left.StartsWithLoop(upperBoundLowestValue) || _right.StartsWithLoop(upperBoundLowestValue); 2147Debug.Assert(_left is not null && _right is not null); 2149SymbolicRegexNode<TSet> right1 = _left.IsNullable ? _right.PruneAnchorsImpl(builder, prevKind, contWithWL, contWithNWL) : _right; 2152return left1 == _left && right1 == _right ? 2159Debug.Assert(_left is not null && _right is not null); 2161SymbolicRegexNode<TSet> right1 = _right.PruneAnchorsImpl(builder, prevKind, contWithWL, contWithNWL); 2164return left1 == _left && right1 == _right ? 2171Debug.Assert(_left is not null && _right is not null); 2175CreateEffect(builder, left1, _right); 2213Debug.Assert(_left is not null && _right is not null); 2222Debug.Assert(_right.IsNullableFor(context)); 2223return _right.ResolveFixedLength(context); 2227Debug.Assert(_left is not null && _right is not null); 2229return leftLength >= 0 ? leftLength : _right.ResolveFixedLength(context); 2259Debug.Assert(current._left is not null && current._right is not null); 2264current = current._right; 2309Debug.Assert(_left is not null && _right is not null); 2311return Sum(_left.CountSingletons(), _right.CountSingletons()); 2314Debug.Assert(_left is not null && _right is null); 2362Debug.Assert(_left is null && _right is null); 2394Debug.Assert(current._left is not null && current._right is not null); 2395stack.Push(current._right);