39 references to Loop
System.Text.RegularExpressions.Generator (39)
parent\src\System\Text\RegularExpressions\RegexNode.cs (22)
204case RegexNodeKind.Loop: 207RegexNode loopAsChild = new(RegexNodeKind.Loop, Options, M, N); 225goto case RegexNodeKind.Loop; 545if ((existingChild.Kind is RegexNodeKind.Alternate or RegexNodeKind.BackreferenceConditional or RegexNodeKind.ExpressionConditional or RegexNodeKind.Loop or RegexNodeKind.Lazyloop) && 584case RegexNodeKind.Loop: 589Debug.Assert(node.Kind is RegexNodeKind.Atomic or RegexNodeKind.Empty or RegexNodeKind.Loop or RegexNodeKind.Lazyloop); 594Debug.Assert(node.Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop); 597if (node.Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop) 642RegexNodeKind.Loop or RegexNodeKind.Lazyloop => ReduceLoops(), 881Debug.Assert(Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop); 897if (kind == RegexNodeKind.Loop) 1655case RegexNodeKind.Loop or RegexNodeKind.Lazyloop when node.M > 0: 2130case RegexNodeKind.Loop when CanBeMadeAtomic(node, subsequent, iterateNullableSubsequent: true, allowLazy: false): 2164else if (node.Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop) 2168goto case RegexNodeKind.Loop; 2176case RegexNodeKind.Loop: 2486case RegexNodeKind.Loop or RegexNodeKind.Lazyloop when subsequent.M > 0: 2610case RegexNodeKind.Loop: 2741RegexNodeKind.Loop or RegexNodeKind.Lazyloop when M != N => true, 2866case RegexNodeKind.Loop: 2972case RegexNodeKind.Loop or RegexNodeKind.Lazyloop: 3319var result = new RegexNode(lazy ? RegexNodeKind.Lazyloop : RegexNodeKind.Loop, Options, min, max);
parent\src\System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (8)
226case RegexNodeKind.Loop or RegexNodeKind.Lazyloop when node.M > 0: 439case RegexNodeKind.Loop or RegexNodeKind.Lazyloop when node.M > 0: 493case RegexNodeKind.Loop or RegexNodeKind.Lazyloop when node.M > 0: 686case RegexNodeKind.Lazyloop or RegexNodeKind.Loop when node.M > 0: 1037case RegexNodeKind.Loop: 1225(nextChild.Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop && nextChild.M >= 1)) 1303case RegexNodeKind.Loop or RegexNodeKind.Lazyloop when node.M >= 1: 1362case RegexNodeKind.Loop or RegexNodeKind.Lazyloop when leading && node.M >= 1:
parent\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (2)
71case RegexNodeKind.Loop: 107RegexNodeKind.Loop or RegexNodeKind.Lazyloop when node.N == 1 => true,
RegexGenerator.Emitter.cs (7)
2980case RegexNodeKind.Loop: 4422Debug.Assert(node.Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop, $"Unexpected type: {node.Kind}"); 4442Debug.Assert(node.Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop, $"Unexpected type: {node.Kind}"); 5603RegexNodeKind.Loop or RegexNodeKind.Lazyloop => node.M == 0 && node.N == 1 ? $"Optional ({(node.Kind is RegexNodeKind.Loop ? "greedy" : "lazy")})." : $"Loop {DescribeLoop(node, rm)}{direction}.", 5774RegexNodeKind.Atomic when node.Child(0).Kind is RegexNodeKind.Loop or RegexNodeKind.Lazyloop or RegexNodeKind.Alternate => true, 5834RegexNodeKind.Loop => rm.Analysis.IsAtomicByAncestor(node) ? "atomically" : "greedily",