28 references to ExpressionConditional
System.Text.RegularExpressions.Generator (28)
RegexGenerator.Emitter.cs (10)
2445
Debug.Assert(node.Kind is RegexNodeKind.
ExpressionConditional
, $"Unexpected type: {node.Kind}");
2998
case RegexNodeKind.
ExpressionConditional
:
3028
Debug.Assert(node.Kind is RegexNodeKind.Atomic or RegexNodeKind.PositiveLookaround or RegexNodeKind.NegativeLookaround or RegexNodeKind.
ExpressionConditional
, $"Unexpected type: {node.Kind}");
3029
Debug.Assert(node.Kind is RegexNodeKind.
ExpressionConditional
? node.ChildCount() >= 1 : node.ChildCount() == 1, $"Unexpected number of children: {node.ChildCount()}");
3031
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");
5570
RegexNodeKind.
ExpressionConditional
=> $"Conditionally match one of two expressions depending on whether an initial expression matches.",
5723
RegexNodeKind.Concatenate when node.Parent is not { Kind: RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
} => true,
5739
RegexNodeKind.
ExpressionConditional
when node.Parent.Child(0) == node => "Condition: ",
5740
RegexNodeKind.
ExpressionConditional
when node.Parent.Child(1) == node => "Matched: ",
5741
RegexNodeKind.
ExpressionConditional
when node.Parent.Child(2) == node => "Not Matched: ",
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexNode.cs (11)
314
case RegexNodeKind.
ExpressionConditional
:
498
if ((existingChild.Kind is RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
or RegexNodeKind.Loop or RegexNodeKind.Lazyloop) &&
513
case RegexNodeKind.
ExpressionConditional
:
521
if (node.Kind != RegexNodeKind.
ExpressionConditional
) // ReduceExpressionConditional will have already applied ending backtracking removal
598
RegexNodeKind.
ExpressionConditional
=> ReduceExpressionConditional(),
2138
case RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
:
2149
for (int b = node.Kind == RegexNodeKind.
ExpressionConditional
? 1 : 0; b < alternateBranches; b++)
2301
Debug.Assert(Kind == RegexNodeKind.
ExpressionConditional
);
2403
case RegexNodeKind.
ExpressionConditional
when childCount is 3: // condition, yes, and no branch
2750
case RegexNodeKind.
ExpressionConditional
:
2874
case RegexNodeKind.
ExpressionConditional
:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexParser.cs (5)
1025
nodeType = RegexNodeKind.
ExpressionConditional
;
1051
if (_group!.Kind != RegexNodeKind.
ExpressionConditional
)
2081
if (_group.Kind == RegexNodeKind.
ExpressionConditional
&& _group.ChildCount() == 0)
2106
if (_group!.Kind is RegexNodeKind.
ExpressionConditional
or RegexNodeKind.BackreferenceConditional)
2121
if (_group!.Kind is RegexNodeKind.
ExpressionConditional
or RegexNodeKind.BackreferenceConditional)
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (1)
1103
case RegexNodeKind.
ExpressionConditional
:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (1)
94
RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.
ExpressionConditional
=> true,