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