137 references to Child
System.Text.RegularExpressions (137)
System\Text\RegularExpressions\RegexCompiler.cs (19)
1436node = node.Child(0); 1735EmitNode(node.Child(i)); 2041RegexNode yesBranch = node.Child(0); 2042RegexNode? noBranch = node.Child(1) is { Kind: not RegexNodeKind.Empty } childNo ? childNo : null; 2198RegexNode condition = node.Child(0); 2202RegexNode yesBranch = node.Child(1); 2203RegexNode? noBranch = node.Child(2) is { Kind: not RegexNodeKind.Empty } childNo ? childNo : null; 2404RegexNode child = node.Child(0); 2539RegexNode child = node.Child(0); 2594RegexNode child = node.Child(0); 2832RegexNode child = node.Child(0); 2932EmitNode(node.Child(i), GetSubsequent(i, node, subsequent), emitLengthChecksIfRequired: false); 2939EmitNode(node.Child(i), GetSubsequent(i, node, subsequent)); 2948RegexNode next = node.Child(i); 3855RegexNode child = node.Child(0); 4701Debug.Assert(!analysis.MayBacktrack(node.Child(0)), $"Expected non-backtracking node {node.Kind}"); 4717EmitNode(node.Child(0)); 4739RegexNode child = node.Child(0); 5356RegexNode 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); 2101if (Kind is RegexNodeKind.NegativeLookaround && ContainsKind(Child(0), [RegexNodeKind.Backreference, RegexNodeKind.BackreferenceConditional]) is false) 2107ReplaceChild(0, Child(0)); 2112RegexNode node = parent.Child(nodeIndex); 2116parent.ReplaceChild(nodeIndex, node.Child(0)); 2140RegexNode child = Child(0); 2199if (ContainsKind(node.Child(i), kinds) is true) 2246RegexNode condition = Child(0); 2249ReplaceChild(0, condition.Child(0)); 2254condition = Child(0); 2276node = node.Child(node.ChildCount() - 1); 2307subsequent = subsequent.Child(0); 2334if (!CanBeMadeAtomic(node, subsequent.Child(i), iterateNullableSubsequent, allowLazy: false)) 2430RegexNode loopChild = node.Child(0); 2613return (int)Math.Min(int.MaxValue - 1, (long)M * Child(0).ComputeMinLength()); 2620int min = Child(0).ComputeMinLength(); 2623min = Math.Min(min, Child(i).ComputeMinLength()); 2630return Math.Min(Child(0).ComputeMinLength(), Child(1).ComputeMinLength()); 2634return Math.Min(Child(1).ComputeMinLength(), Child(2).ComputeMinLength()); 2643sum += Child(i).ComputeMinLength(); 2653return Child(0).ComputeMinLength(); 2721if (Child(0).ComputeMaxLength() is int childMaxLength) 2737if (Child(0).ComputeMaxLength() is not int maxLength) 2744if (Child(i).ComputeMaxLength() is not int next) 2760return Child(i).ComputeMaxLength() is int yes && Child(i + 1).ComputeMaxLength() is int no ? 2772if (Child(i).ComputeMaxLength() is not int length) 2791return Child(0).ComputeMaxLength(); 2853RegexNode child = Child(i); 2956RegexNode child = Child(childIndex); 2964child = Child(exclusiveEnd); 3132if (ExceedsMaxDepthAllowedDepth(node.Child(i), allowedDepth - 1)) 3165curNode = 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())));