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