1 write to _right
System.Text.RegularExpressions (1)
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (1)
66
_right
= right;
129 references to _right
System.Text.RegularExpressions (129)
System\Text\RegularExpressions\Symbolic\SymbolicRegexBuilder.cs (2)
332
Debug.Assert(node._left is not null && node.
_right
is not null);
335
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 (124)
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));
1379
Debug.Assert(_left is not null &&
_right
is not null);
1384
Debug.Assert(_left is not null &&
_right
is not null);
1385
Debug.Assert(_left._info.ContainsEffect && !
_right
._info.ContainsEffect);
1386
return builder.CreateConcat(_left.StripEffects(builder),
_right
);
1389
Debug.Assert(_left is not null &&
_right
is not null);
1451
Debug.Assert(_left is not null &&
_right
is not null);
1454
_right
.ApplyEffects((e, s) => s.Add(e), context, currentEffects);
1463
Debug.Assert(_left is not null &&
_right
is not null);
1464
Debug.Assert(_left._info.ContainsEffect && !
_right
._info.ContainsEffect);
1472
alternativesAndEffects[i] = (builder.CreateConcat(node,
_right
), effects);
1478
Debug.Assert(_left is not null &&
_right
is not null);
1480
_right
.StripAndMapEffects(builder, context, alternativesAndEffects, currentEffects);
1542
Debug.Assert(_left is not null &&
_right
is not null);
1543
Debug.Assert(_left.IsNullableFor(context) &&
_right
.IsNullableFor(context));
1545
_right
.ApplyEffects(apply, context, arg);
1559
Debug.Assert(_left is not null &&
_right
is not null);
1568
Debug.Assert(
_right
.IsNullableFor(context));
1569
_right
.ApplyEffects(apply, context, arg);
1649
Debug.Assert(_left is not null &&
_right
is not null);
1653
_right
.ToStringHelper(sb);
1658
Debug.Assert(_left is not null &&
_right
is not null);
1665
_right
.ToStringHelper(sb);
1733
Debug.Assert(_left is not null &&
_right
is not null);
1738
_right
.ToStringHelper(sb);
1864
Debug.Assert(_left is not null &&
_right
is not null);
1866
_right
.CollectSets(builder, sets);
1874
Debug.Assert(conc._left is not null && conc.
_right
is not null);
1876
conc = conc.
_right
;
1919
Debug.Assert(_left is not null &&
_right
is not null);
1921
SymbolicRegexNode<TSet> rest =
_right
;
1924
Debug.Assert(rest._left is not null && rest.
_right
is not null);
1927
rest = rest.
_right
;
1935
Debug.Assert(_left is not null &&
_right
is not null);
1936
return CreateAlternate(builder, _left.Reverse(builder),
_right
.Reverse(builder));
1991
Debug.Assert(_left is not null &&
_right
is not null);
1992
return _left.StartsWithLoop(upperBoundLowestValue) || (_left.IsNullable &&
_right
.StartsWithLoop(upperBoundLowestValue));
1995
Debug.Assert(_left is not null &&
_right
is not null);
1996
return _left.StartsWithLoop(upperBoundLowestValue) ||
_right
.StartsWithLoop(upperBoundLowestValue);
2125
Debug.Assert(_left is not null &&
_right
is not null);
2127
SymbolicRegexNode<TSet> right1 = _left.IsNullable ?
_right
.PruneAnchorsImpl(builder, prevKind, contWithWL, contWithNWL) :
_right
;
2130
return left1 == _left && right1 ==
_right
?
2137
Debug.Assert(_left is not null &&
_right
is not null);
2139
SymbolicRegexNode<TSet> right1 =
_right
.PruneAnchorsImpl(builder, prevKind, contWithWL, contWithNWL);
2142
return left1 == _left && right1 ==
_right
?
2149
Debug.Assert(_left is not null &&
_right
is not null);
2153
CreateEffect(builder, left1,
_right
);
2191
Debug.Assert(_left is not null &&
_right
is not null);
2200
Debug.Assert(
_right
.IsNullableFor(context));
2201
return
_right
.ResolveFixedLength(context);
2205
Debug.Assert(_left is not null &&
_right
is not null);
2207
return leftLength >= 0 ? leftLength :
_right
.ResolveFixedLength(context);
2237
Debug.Assert(current._left is not null && current.
_right
is not null);
2242
current = current.
_right
;
2287
Debug.Assert(_left is not null &&
_right
is not null);
2289
return Sum(_left.CountSingletons(),
_right
.CountSingletons());
2292
Debug.Assert(_left is not null &&
_right
is null);
2322
Debug.Assert(_left is null &&
_right
is null);