136 references to Child
System.Text.RegularExpressions (136)
System\Text\RegularExpressions\RegexCompiler.cs (18)
1455node = node.Child(0); 1754EmitNode(node.Child(i)); 2060RegexNode yesBranch = node.Child(0); 2061RegexNode? noBranch = node.Child(1) is { Kind: not RegexNodeKind.Empty } childNo ? childNo : null; 2217RegexNode condition = node.Child(0); 2221RegexNode yesBranch = node.Child(1); 2222RegexNode? noBranch = node.Child(2) is { Kind: not RegexNodeKind.Empty } childNo ? childNo : null; 2416RegexNode child = node.Child(0); 2599RegexNode child = node.Child(0); 2831RegexNode child = node.Child(0); 2933EmitNode(node.Child(i), GetSubsequent(i, node, subsequent), emitLengthChecksIfRequired: false); 2940EmitNode(node.Child(i), GetSubsequent(i, node, subsequent)); 2949RegexNode next = node.Child(i); 3856RegexNode child = node.Child(0); 4702Debug.Assert(!analysis.MayBacktrack(node.Child(0)), $"Expected non-backtracking node {node.Kind}"); 4718EmitNode(node.Child(0)); 4740RegexNode child = node.Child(0); 5357RegexNode root = _regexTree!.Root.Child(0);
System\Text\RegularExpressions\RegexFindOptimizations.cs (1)
26RegexFindOptimizations positiveLookaheadOpts = new(positiveLookahead.Child(0), options, isLeadingPartial: true);
System\Text\RegularExpressions\RegexNode.cs (76)
210loopAsChild.AddChild(Child(0)); 255RegexNode child = node.Child(i); 409RegexNode node = rootNode.Child(0); // skip implicit root capture node 416node = node.Child(0); 421node = node.Child(0); 486node = node.Child(0); 497RegexNode existingChild = node.Child(node.ChildCount() - 1); 518node.Child(i).EliminateEndingBacktracking(); 523node = node.Child(0); 546node = node.Child(0); 552if (node.N == 1 || CanBeMadeAtomic(node.Child(0), node.Child(0), iterateNullableSubsequent: false, allowLazy: false)) 559node = node.Child(0); 6161 => Child(0), 635u = u.Child(0); 661RegexNode child = Child(0); 665child = atomic.Child(0); 796(child.Child(0).Kind is RegexNodeKind.Empty || child.Child(1).Kind is RegexNodeKind.Empty); // can be transformed into a ? or ?? 803child = atomic.Child(0); 836RegexNode child = u.Child(0); 904RegexNode child = u.Child(0); 1026return Child(0); 1047if (node.Child(1).Kind is RegexNodeKind.Empty) 1049node = node.Child(0).MakeQuantifier(lazy: false, min: 0, max: 1); 1051else if (node.Child(0).Kind is RegexNodeKind.Empty) 1053node = node.Child(1).MakeQuantifier(lazy: true, min: 0, max: 1); 1222RegexNode required = children[startingIndex].Child(0); 1242RegexNode other = children[endingIndex].Child(0); 1435ProcessOneOrMulti(branch.Kind == RegexNodeKind.Concatenate ? branch.Child(0) : branch, startingSpan); 1487return alternation.ChildCount() == 1 ? alternation.Child(0) : alternation; 1500RegexNode branch = Kind == RegexNodeKind.Concatenate ? Child(0) : this; 1537node = node.Child(0); 1630return Child(0); 1637RegexNode child = Child(i); 1944Child(i).FindAndMakeLoopsAtomic(); 1975node = node.Child(node.ChildCount() - 1); 2024RegexNode loopChild = node.Child(0); 2027loopChild = loopChild.Child(loopChild.ChildCount() - 1); 2052RegexNode child = node.Child(0); 2062RegexNode child = node.Child(0); 2083ProcessNode(node.Child(b), subsequent); 2103if (Kind is RegexNodeKind.NegativeLookaround && ContainsKind(Child(0), [RegexNodeKind.Backreference, RegexNodeKind.BackreferenceConditional]) is false) 2109ReplaceChild(0, Child(0)); 2114RegexNode node = parent.Child(nodeIndex); 2120parent.ReplaceChild(nodeIndex, node.Child(0)); 2144RegexNode child = Child(0); 2203if (ContainsKind(node.Child(i), kinds) is true) 2250RegexNode condition = Child(0); 2253ReplaceChild(0, condition.Child(0)); 2258condition = Child(0); 2280node = node.Child(node.ChildCount() - 1); 2311subsequent = subsequent.Child(0); 2338if (!CanBeMadeAtomic(node, subsequent.Child(i), iterateNullableSubsequent, allowLazy: false)) 2434RegexNode loopChild = node.Child(0); 2617return (int)Math.Min(int.MaxValue - 1, (long)M * Child(0).ComputeMinLength()); 2624int min = Child(0).ComputeMinLength(); 2627min = Math.Min(min, Child(i).ComputeMinLength()); 2634return Math.Min(Child(0).ComputeMinLength(), Child(1).ComputeMinLength()); 2638return Math.Min(Child(1).ComputeMinLength(), Child(2).ComputeMinLength()); 2647sum += Child(i).ComputeMinLength(); 2657return Child(0).ComputeMinLength(); 2725if (Child(0).ComputeMaxLength() is int childMaxLength) 2741if (Child(0).ComputeMaxLength() is not int maxLength) 2748if (Child(i).ComputeMaxLength() is not int next) 2764return Child(i).ComputeMaxLength() is int yes && Child(i + 1).ComputeMaxLength() is int no ? 2776if (Child(i).ComputeMaxLength() is not int length) 2795return Child(0).ComputeMaxLength(); 2857RegexNode child = Child(i); 2960RegexNode child = Child(childIndex); 2968child = Child(exclusiveEnd); 3136if (ExceedsMaxDepthAllowedDepth(node.Child(i), allowedDepth - 1)) 3169curNode = curNode.Child(curChild);
System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (36)
86node = node.Child(0); 217if (!FindPrefixesCore(node.Child(i), results, ignoreCase)) 231if (!FindPrefixesCore(node.Child(0), results, ignoreCase)) 258_ = FindPrefixesCore(node.Child(i), alternateBranchResults, ignoreCase); 368if (!Process(node.Child(i), ref vsb)) 385Process(node.Child(0), ref vsb); 401Process(node.Child(i), ref alternateSb); 445if (!Process(node.Child(0), ref vsb)) 456return Process(node.Child(0), ref vsb); 494node = node.Child(0); 684return TryFindRawFixedSets(node.Child(0), results, ref distance, thorough); 693TryFindRawFixedSets(node.Child(0), results, ref distance, thorough); 701if (!TryFindRawFixedSets(node.Child(i), results, ref distance, thorough)) 721allSameSize &= TryFindRawFixedSets(node.Child(i), localResults, ref localDistance, thorough); 1032return TryFindFirstOrLastCharClass(node.Child(0), findFirst, ref cc); 1039return TryFindFirstOrLastCharClass(node.Child(0), findFirst, ref cc) switch 1057bool? childResult = TryFindFirstOrLastCharClass(node.Child(i), findFirst, ref cc); 1068bool? childResult = TryFindFirstOrLastCharClass(node.Child(i), findFirst, ref cc); 1087bool? childResult = TryFindFirstOrLastCharClass(node.Child(i), findFirst, ref cc); 1105return (TryFindFirstOrLastCharClass(node.Child(branchStart), findFirst, ref cc), TryFindFirstOrLastCharClass(node.Child(branchStart + 1), findFirst, ref cc)) switch 1140node = node.Child(0); 1154RegexNode firstChild = node.Child(0); 1157firstChild = firstChild.Child(0); 1166RegexNode nextChild = node.Child(1); 1174nextChild = node.Child(2); 1227nextChild = nextChild.Child(0); 1300node = node.Child(0); 1306FindLeadingPositiveLookahead(node.Child(0), ref positiveLookahead); 1314if (!FindLeadingPositiveLookahead(node.Child(i), ref positiveLookahead)) 1370node = node.Child(0); 1385RegexNode tmpChild = node.Child(i); 1416if (node.Child(i).Kind is not (RegexNodeKind.Empty or RegexNodeKind.PositiveLookaround or RegexNodeKind.NegativeLookaround)) 1418child = node.Child(i); 1481RegexNodeKind anchor = FindLeadingOrTrailingAnchor(node.Child(0), leading); 1492if (FindLeadingOrTrailingAnchor(node.Child(i), leading) != anchor)
System\Text\RegularExpressions\RegexReplacement.cs (1)
46RegexNode child = concat.Child(i);
System\Text\RegularExpressions\RegexTreeAnalyzer.cs (1)
85RegexNode child = node.Child(i);
System\Text\RegularExpressions\RegexWriter.cs (1)
91curNode = curNode.Child(curChild);
System\Text\RegularExpressions\Symbolic\RegexNodeConverter.cs (2)
99stack.Push((node.Child(i), childResults[i], CreateChildResultArray(node.Child(i).ChildCount())));