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