38 references to Atomic
System.Text.RegularExpressions.Generator (38)
RegexGenerator.Emitter.cs (5)
2834case RegexNodeKind.Atomic when !rm.Analysis.MayBacktrack(node.Child(0)): 2935case RegexNodeKind.Atomic: 2961Debug.Assert(node.Kind is RegexNodeKind.Atomic or RegexNodeKind.PositiveLookaround or RegexNodeKind.NegativeLookaround or RegexNodeKind.ExpressionConditional, $"Unexpected type: {node.Kind}"); 5465RegexNodeKind.Atomic => $"Atomic group.", 5568RegexNodeKind.Atomic when node.Child(0).Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop or RegexNodeKind.Alternate => true,
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexNode.cs (17)
261case RegexNodeKind.Atomic: 375case RegexNodeKind.Atomic: 438case RegexNodeKind.Atomic: 454(node.Parent is null || node.Parent.Kind != RegexNodeKind.Atomic)) // validate grandparent isn't atomic 456var atomic = new RegexNode(RegexNodeKind.Atomic, existingChild.Options); 540RegexNodeKind.Atomic => ReduceAtomic(), 605Debug.Assert(Kind == RegexNodeKind.Atomic); 610while (child.Kind == RegexNodeKind.Atomic) 1151if (alternation.Parent is RegexNode { Kind: RegexNodeKind.Atomic }) 1153var atomic = new RegexNode(RegexNodeKind.Atomic, alternation.Options); 1355if (alternation.Parent is RegexNode parent && parent.Kind == RegexNodeKind.Atomic) 1357var atomic = new RegexNode(RegexNodeKind.Atomic, startingNodeOptions); 1413case RegexNodeKind.Atomic: 2078case RegexNodeKind.Atomic: 2215case RegexNodeKind.Atomic: 2326case RegexNodeKind.Atomic: 2465case RegexNodeKind.Atomic:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexNodeKind.cs (3)
60/// This is purely a representational optimization, equivalent to a <see cref="Atomic"/> wrapped around a <see cref="Oneloop"/>. 66/// This is purely a representational optimization, equivalent to a <see cref="Atomic"/> wrapped around a <see cref="Notoneloop"/>. 72/// This is purely a representational optimization, equivalent to a <see cref="Atomic"/> wrapped around a <see cref="Setloop"/>.
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexParser.cs (1)
800nodeType = RegexNodeKind.Atomic;
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (10)
84case RegexNodeKind.Atomic: 454case RegexNodeKind.Atomic: 491case RegexNodeKind.Atomic: 681case RegexNodeKind.Atomic: 1020case RegexNodeKind.Atomic: 1114while (node.Kind is RegexNodeKind.Atomic or RegexNodeKind.Capture) 1131while (firstChild.Kind is RegexNodeKind.Atomic or RegexNodeKind.Capture) 1200while ((nextChild.Kind is RegexNodeKind.Atomic or RegexNodeKind.Capture or RegexNodeKind.Concatenate) || 1273case RegexNodeKind.Atomic: 1338case RegexNodeKind.Atomic:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (2)
63case RegexNodeKind.Atomic: 94RegexNodeKind.Atomic or RegexNodeKind.NegativeLookaround or RegexNodeKind.PositiveLookaround => true,