43 references to Atomic
System.Text.RegularExpressions.Generator (43)
RegexGenerator.Emitter.cs (5)
2901case RegexNodeKind.Atomic when !rm.Analysis.MayBacktrack(node.Child(0)): 3002case RegexNodeKind.Atomic: 3028Debug.Assert(node.Kind is RegexNodeKind.Atomic or RegexNodeKind.PositiveLookaround or RegexNodeKind.NegativeLookaround or RegexNodeKind.ExpressionConditional, $"Unexpected type: {node.Kind}"); 5542RegexNodeKind.Atomic => $"Atomic group.", 5726RegexNodeKind.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 (22)
205if (Parent is not { Kind: RegexNodeKind.Atomic }) 208Kind = RegexNodeKind.Atomic; 301case RegexNodeKind.Atomic: 415case RegexNodeKind.Atomic: 483case RegexNodeKind.Atomic: 499node.Parent is not { Kind: RegexNodeKind.Atomic }) // validate grandparent isn't atomic 501var atomic = new RegexNode(RegexNodeKind.Atomic, existingChild.Options); 542Debug.Assert(node.Kind is RegexNodeKind.Atomic or RegexNodeKind.Empty or RegexNodeKind.Loop or RegexNodeKind.Lazyloop); 544if (node.Kind is RegexNodeKind.Atomic) 592RegexNodeKind.Atomic => ReduceAtomic(), 657Debug.Assert(Kind == RegexNodeKind.Atomic); 662while (child.Kind == RegexNodeKind.Atomic) 1261if (alternation.Parent is RegexNode { Kind: RegexNodeKind.Atomic }) 1263var atomic = new RegexNode(RegexNodeKind.Atomic, alternation.Options); 1465if (alternation.Parent is RegexNode parent && parent.Kind == RegexNodeKind.Atomic) 1467var atomic = new RegexNode(RegexNodeKind.Atomic, startingNodeOptions); 1593case RegexNodeKind.Atomic: 2366case RegexNodeKind.Atomic: 2560case RegexNodeKind.Atomic: 2664case RegexNodeKind.Atomic: 2766case RegexNodeKind.Atomic: 2905case 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)
847nodeType = 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: 1030case RegexNodeKind.Atomic: 1138while (node.Kind is RegexNodeKind.Atomic or RegexNodeKind.Capture) 1155while (firstChild.Kind is RegexNodeKind.Atomic or RegexNodeKind.Capture) 1224while ((nextChild.Kind is RegexNodeKind.Atomic or RegexNodeKind.Capture or RegexNodeKind.Concatenate) || 1297case RegexNodeKind.Atomic: 1360case RegexNodeKind.Atomic:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (2)
59case RegexNodeKind.Atomic: 90RegexNodeKind.Atomic or RegexNodeKind.NegativeLookaround or RegexNodeKind.PositiveLookaround => true,