27 references to ExpressionConditional
System.Text.RegularExpressions.Generator (27)
RegexGenerator.Emitter.cs (9)
2358Debug.Assert(node.Kind is RegexNodeKind.ExpressionConditional, $"Unexpected type: {node.Kind}"); 2931case RegexNodeKind.ExpressionConditional: 2961Debug.Assert(node.Kind is RegexNodeKind.Atomic or RegexNodeKind.PositiveLookaround or RegexNodeKind.NegativeLookaround or RegexNodeKind.ExpressionConditional, $"Unexpected type: {node.Kind}"); 2962Debug.Assert(node.Kind is RegexNodeKind.ExpressionConditional ? node.ChildCount() >= 1 : node.ChildCount() == 1, $"Unexpected number of children: {node.ChildCount()}"); 5493RegexNodeKind.ExpressionConditional => $"Conditionally match one of two expressions depending on whether an initial expression matches.", 5565RegexNodeKind.Concatenate when node.Parent is not { Kind: RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.ExpressionConditional } => true, 5581RegexNodeKind.ExpressionConditional when node.Parent.Child(0) == node => "Condition: ", 5582RegexNodeKind.ExpressionConditional when node.Parent.Child(1) == node => "Matched: ", 5583RegexNodeKind.ExpressionConditional when node.Parent.Child(2) == node => "Not Matched: ",
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexNode.cs (11)
274case RegexNodeKind.ExpressionConditional: 453if ((existingChild.Kind is RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.ExpressionConditional or RegexNodeKind.Loop or RegexNodeKind.Lazyloop) && 468case RegexNodeKind.ExpressionConditional: 476if (node.Kind != RegexNodeKind.ExpressionConditional) // ReduceExpressionConditional will have already applied ending backtracking removal 546RegexNodeKind.ExpressionConditional => ReduceExpressionConditional(), 1908case RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.ExpressionConditional: 1919for (int b = node.Kind == RegexNodeKind.ExpressionConditional ? 1 : 0; b < alternateBranches; b++) 2019Debug.Assert(Kind == RegexNodeKind.ExpressionConditional); 2104case RegexNodeKind.ExpressionConditional when childCount == 3: // condition, yes, and no branch 2310case RegexNodeKind.ExpressionConditional: 2434case RegexNodeKind.ExpressionConditional:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexParser.cs (5)
978nodeType = RegexNodeKind.ExpressionConditional; 1004if (_group!.Kind != RegexNodeKind.ExpressionConditional) 2052if (_group.Kind == RegexNodeKind.ExpressionConditional && _group.ChildCount() == 0) 2077if (_group!.Kind is RegexNodeKind.ExpressionConditional or RegexNodeKind.BackreferenceConditional) 2092if (_group!.Kind is RegexNodeKind.ExpressionConditional or RegexNodeKind.BackreferenceConditional)
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (1)
1079case RegexNodeKind.ExpressionConditional:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (1)
98RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.ExpressionConditional => true,