43 references to Multi
System.Text.RegularExpressions.Generator (43)
parent\src\System\Text\RegularExpressions\RegexNode.cs (24)
197Kind = RegexNodeKind.Multi; 728case RegexNodeKind.Multi: 1448Debug.Assert(startingNode.Kind == RegexNodeKind.Multi); 1480new RegexNode(RegexNodeKind.Multi, startingNodeOptions, startingSpan.ToString()); 1502Debug.Assert(node.Kind == RegexNodeKind.Multi); 1551return branch.Kind is RegexNodeKind.One or RegexNodeKind.Multi ? branch : null; 1557Debug.Assert(Kind is RegexNodeKind.One or RegexNodeKind.Multi || (IsOneFamily && M > 0)); 1596if (startingLiteralNode.IsOneFamily || startingLiteralNode.Kind is RegexNodeKind.Multi) 1648case RegexNodeKind.Multi: 1699case RegexNodeKind.Multi: 1820else if (at.Kind is RegexNodeKind.Multi or RegexNodeKind.One) 1836prev.Kind = RegexNodeKind.Multi; 1948nextNode.Kind == RegexNodeKind.Multi && 2158RegexNodeKind.Multi or 2426case RegexNodeKind.Multi when CharInLoopSet(loopNode, literal.Str![0]) && !CharInLoopSet(loopNode, literal.Str[1]): 2544case RegexNodeKind.Multi when node.Ch != subsequent.Str![0]: 2570case RegexNodeKind.Multi when node.Ch == subsequent.Str![0]: 2591case RegexNodeKind.Multi when !RegexCharClass.CharInClass(subsequent.Str![0], node.Str!): 2638case RegexNodeKind.Multi when !CharInStartingOrEndingSet(subsequent.Str![0]): 2849case RegexNodeKind.Multi: 2962case RegexNodeKind.Multi: 3146else if (child.Kind is RegexNodeKind.Multi) 3246RegexNodeKind.Multi => true, 3303Kind = RegexNodeKind.Multi;
parent\src\System\Text\RegularExpressions\RegexParser.cs (1)
2198_concatenation!.AddChild(new RegexNode(RegexNodeKind.Multi, _options & ~RegexOptions.IgnoreCase, _pattern.Substring(pos, cch)));
parent\src\System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (4)
124case RegexNodeKind.Multi: 427case RegexNodeKind.Multi: 621case RegexNodeKind.Multi: 1000case RegexNodeKind.Multi:
RegexGenerator.Emitter.cs (14)
775else if (root.Kind is RegexNodeKind.Multi or RegexNodeKind.One or RegexNodeKind.Notone or RegexNodeKind.Set) 784writer.WriteLine($"int end = base.runtextpos = start {(!rtl ? "+" : "-")} {(root.Kind == RegexNodeKind.Multi ? root.Str!.Length : 1)};"); 1915case RegexNodeKind.Multi: 1922case RegexNodeKind.Concatenate when child.Child(0) == startingLiteralNode && (startingLiteralNode.Kind is RegexNodeKind.One or RegexNodeKind.Set or RegexNodeKind.Multi): 1932child.Child(0).Kind is RegexNodeKind.Multi ? 1978Debug.Assert(multi.Kind is RegexNodeKind.Multi, $"Expected a Multi node, got {multi.Kind}"); 1981new(RegexNodeKind.Multi, multi.Options, multi.Str.Substring(1)); 2943case RegexNodeKind.Multi when (node.Options & RegexOptions.RightToLeft) == 0: 2958case RegexNodeKind.Multi: 3120else if (child.Kind is RegexNodeKind.Multi) 3352Debug.Assert(node.Kind is RegexNodeKind.Multi, $"Unexpected type: {node.Kind}"); 3504RegexNodeKind.Multi => 5064if (node.Kind == RegexNodeKind.Multi) 5604RegexNodeKind.Multi => $"Match the string {Literal(node.Str!)}{direction}.",