27 references to ExpressionConditional
System.Text.RegularExpressions.Generator (27)
parent\src\System\Text\RegularExpressions\RegexNode.cs (10)
545
if ((existingChild.Kind is RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
or RegexNodeKind.Loop or RegexNodeKind.Lazyloop) &&
560
case RegexNodeKind.
ExpressionConditional
:
568
if (node.Kind != RegexNodeKind.
ExpressionConditional
) // ReduceExpressionConditional will have already applied ending backtracking removal
645
RegexNodeKind.
ExpressionConditional
=> ReduceExpressionConditional(),
2196
case RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
:
2207
for (int b = node.Kind == RegexNodeKind.
ExpressionConditional
? 1 : 0; b < alternateBranches; b++)
2359
Debug.Assert(Kind == RegexNodeKind.
ExpressionConditional
);
2519
case RegexNodeKind.
ExpressionConditional
when childCount is 3: // condition, yes, and no branch
2887
case RegexNodeKind.
ExpressionConditional
:
3011
case RegexNodeKind.
ExpressionConditional
:
parent\src\System\Text\RegularExpressions\RegexParser.cs (5)
1048
nodeType = RegexNodeKind.
ExpressionConditional
;
1075
if (_group!.Kind != RegexNodeKind.
ExpressionConditional
|| _group.ChildCount() > 0)
2228
if (_group.Kind == RegexNodeKind.
ExpressionConditional
&& _group.ChildCount() == 0)
2253
if (_group!.Kind is RegexNodeKind.
ExpressionConditional
or RegexNodeKind.BackreferenceConditional)
2268
if (_group!.Kind is RegexNodeKind.
ExpressionConditional
or RegexNodeKind.BackreferenceConditional)
parent\src\System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (1)
1103
case RegexNodeKind.
ExpressionConditional
:
parent\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (1)
94
RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
=> true,
RegexGenerator.Emitter.cs (10)
2447
Debug.Assert(node.Kind is RegexNodeKind.
ExpressionConditional
, $"Unexpected type: {node.Kind}");
3000
case RegexNodeKind.
ExpressionConditional
:
3030
Debug.Assert(node.Kind is RegexNodeKind.Atomic or RegexNodeKind.PositiveLookaround or RegexNodeKind.NegativeLookaround or RegexNodeKind.
ExpressionConditional
, $"Unexpected type: {node.Kind}");
3031
Debug.Assert(node.Kind is RegexNodeKind.
ExpressionConditional
? node.ChildCount() >= 1 : node.ChildCount() == 1, $"Unexpected number of children: {node.ChildCount()}");
3033
Debug.Assert(node.Kind is RegexNodeKind.PositiveLookaround or RegexNodeKind.NegativeLookaround or RegexNodeKind.
ExpressionConditional
|| rm.Analysis.MayBacktrack(node.Child(0)), "Expected lookaround/conditional or a child that may backtrack");
5618
RegexNodeKind.
ExpressionConditional
=> $"Conditionally match one of two expressions depending on whether an initial expression matches.",
5771
RegexNodeKind.Concatenate when node.Parent is not { Kind: RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
} => true,
5787
RegexNodeKind.
ExpressionConditional
when node.Parent.Child(0) == node => "Condition: ",
5788
RegexNodeKind.
ExpressionConditional
when node.Parent.Child(1) == node => "Matched: ",
5789
RegexNodeKind.
ExpressionConditional
when node.Parent.Child(2) == node => "Not Matched: ",