9 writes to Ch
System.Text.RegularExpressions (9)
System\Text\RegularExpressions\RegexNode.cs (9)
61Ch = ch; 191Ch = '\0'; 199Ch = '\0'; 968Ch = RegexCharClass.SingletonChar(Str); 978Ch = RegexCharClass.SingletonChar(Str); 1440node.Ch = '\0'; 1454node.Ch = node.Str[node.Str.Length - 1]; 1924nextNode.Ch = nextNode.Str[nextNode.Str.Length - 1]; 3168Ch = '\0';
114 references to Ch
System.Text.RegularExpressions (114)
System\Text\RegularExpressions\RegexCompiler.cs (18)
3258Ldc(node.Ch); 3859(literal.Range.LowInclusive <= node.Ch && node.Ch <= literal.Range.HighInclusive))) // for ranges, only allow when the range overlaps with the target, since there's no accelerated way to search for the union 3872overlap = literal.String[0] == node.Ch; 3876Ldc(node.Ch); 3882Ldc(node.Ch); 3889overlap = literal.SetChars.Contains(node.Ch); 3914Ldc(node.Ch); 3922EmitIndexOfAnyWithSearchValuesOrLiteral($"{node.Ch}{literal.SetChars}"); 3928overlap = literal.Range.LowInclusive == node.Ch; 3932Ldc(node.Ch); 3938Ldc(node.Ch); 3980Ldc(node.Ch); 4480EmitMultiCharString(new string(node.Ch, iterations), emitLengthChecksIfRequired, rtl); 4670Ldc(node.Ch); 4785Ldc(node.Ch); 4907Ldc(node.Ch); 5434Ldc(node.Ch);
System\Text\RegularExpressions\RegexNode.cs (70)
96new RegexNode(Kind, Options, Ch); 198Str = new string(Ch, N); 1138prevCharClass.AddChar(prev.Ch); 1147prevCharClass.AddChar(at.Ch); 1231required.Ch != other.Ch || 1358scratchChar[0] = startingNode.Ch; 1378if (startingSpan[0] != startingNode.Ch) 1438Debug.Assert(startingSpan[0] == node.Ch); 1501return IsOneFamily ? Ch : Str![0]; 1620return new StartingLiteralData(range: (node.Ch, node.Ch), negated: false); 1623return new StartingLiteralData(range: (node.Ch, node.Ch), negated: true); 1779prev.Str = prev.Ch.ToString(); 1783((at.Kind == RegexNodeKind.One) ? $"{prev.Str}{at.Ch}" : prev.Str + at.Str) : 1784((at.Kind == RegexNodeKind.One) ? $"{at.Ch}{prev.Str}" : at.Str + prev.Str); 1847case RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic or RegexNodeKind.Onelazy or RegexNodeKind.Notoneloop or RegexNodeKind.Notoneloopatomic or RegexNodeKind.Notonelazy when nextNode.Kind == currentNode.Kind && currentNode.Ch == nextNode.Ch: 1873case RegexNodeKind.Oneloop or RegexNodeKind.Onelazy when nextNode.Kind == RegexNodeKind.One && currentNode.Ch == nextNode.Ch: 1874case RegexNodeKind.Notoneloop or RegexNodeKind.Notonelazy when nextNode.Kind == RegexNodeKind.Notone && currentNode.Ch == nextNode.Ch: 1892currentNode.Ch == nextNode.Str![0]: 1897while (matchingCharsInMulti < nextNode.Str.Length && currentNode.Ch == nextNode.Str[matchingCharsInMulti]) 1941case RegexNodeKind.One when (nextNode.Kind is RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic or RegexNodeKind.Onelazy) && currentNode.Ch == nextNode.Ch: 1942case RegexNodeKind.Notone when (nextNode.Kind is RegexNodeKind.Notoneloop or RegexNodeKind.Notoneloopatomic or RegexNodeKind.Notonelazy) && currentNode.Ch == nextNode.Ch: 1956case RegexNodeKind.Notone when nextNode.Kind == currentNode.Kind && currentNode.Ch == nextNode.Ch: 2422case RegexNodeKind.One when node.Ch != subsequent.Ch: 2423case RegexNodeKind.Notone when node.Ch == subsequent.Ch: 2424case RegexNodeKind.Set when !RegexCharClass.CharInClass(node.Ch, subsequent.Str!): 2425case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M > 0 && node.Ch != subsequent.Ch: 2426case RegexNodeKind.Notonelazy or RegexNodeKind.Notoneloop or RegexNodeKind.Notoneloopatomic when subsequent.M > 0 && node.Ch == subsequent.Ch: 2427case RegexNodeKind.Setlazy or RegexNodeKind.Setloop or RegexNodeKind.Setloopatomic when subsequent.M > 0 && !RegexCharClass.CharInClass(node.Ch, subsequent.Str!): 2428case RegexNodeKind.Multi when node.Ch != subsequent.Str![0]: 2430case RegexNodeKind.EndZ or RegexNodeKind.Eol when node.Ch != '\n': 2431case RegexNodeKind.Boundary when node.M > 0 && RegexCharClass.IsBoundaryWordChar(node.Ch): 2432case RegexNodeKind.NonBoundary when node.M > 0 && !RegexCharClass.IsBoundaryWordChar(node.Ch): 2433case RegexNodeKind.ECMABoundary when node.M > 0 && RegexCharClass.IsECMAWordChar(node.Ch): 2434case RegexNodeKind.NonECMABoundary when node.M > 0 && !RegexCharClass.IsECMAWordChar(node.Ch): 2437case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M == 0 && node.Ch != subsequent.Ch: 2438case RegexNodeKind.Notonelazy or RegexNodeKind.Notoneloop or RegexNodeKind.Notoneloopatomic when subsequent.M == 0 && node.Ch == subsequent.Ch: 2439case RegexNodeKind.Setlazy or RegexNodeKind.Setloop or RegexNodeKind.Setloopatomic when subsequent.M == 0 && !RegexCharClass.CharInClass(node.Ch, subsequent.Str!): 2452case RegexNodeKind.One when node.Ch == subsequent.Ch: 2453case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M > 0 && node.Ch == subsequent.Ch: 2454case RegexNodeKind.Multi when node.Ch == subsequent.Str![0]: 2458case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M == 0 && node.Ch == subsequent.Ch: 2471case RegexNodeKind.One when !RegexCharClass.CharInClass(subsequent.Ch, node.Str!): 2473case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M > 0 && !RegexCharClass.CharInClass(subsequent.Ch, node.Str!): 2484case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M == 0 && !RegexCharClass.CharInClass(subsequent.Ch, node.Str!): 2518case RegexNodeKind.One when !CharInStartingOrEndingSet(subsequent.Ch): 2520case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M > 0 && !CharInStartingOrEndingSet(subsequent.Ch): 2531case RegexNodeKind.Onelazy or RegexNodeKind.Oneloop or RegexNodeKind.Oneloopatomic when subsequent.M == 0 && !CharInStartingOrEndingSet(subsequent.Ch): 3001if (child.Ch >= 128 || 3002RegexCharClass.ParticipatesInCaseConversion(child.Ch)) 3007vsb.Append(child.Ch); 3167Str = new string(Ch, max); 3370sb.Append(" '").Append(RegexCharClass.DescribeChar(Ch)).Append('\'');
System\Text\RegularExpressions\RegexNodeKind.cs (8)
16/// <remarks>The character is specified in <see cref="RegexNode.Ch"/>.</remarks> 19/// <remarks>The character is specified in <see cref="RegexNode.Ch"/>.</remarks> 31/// The character is specified in <see cref="RegexNode.Ch"/>, the minimum number of iterations in <see cref="RegexNode.M"/>, and the maximum number of iterations in <see cref="RegexNode.N"/>. 36/// <remarks>The character is specified in <see cref="RegexNode.Ch"/>, the minimum number of iterations in <see cref="RegexNode.M"/>, and the maximum number of iterations in <see cref="RegexNode.N"/>.</remarks> 45/// <remarks>The character is specified in <see cref="RegexNode.Ch"/>, the minimum number of iterations in <see cref="RegexNode.M"/>, and the maximum number of iterations in <see cref="RegexNode.N"/>.</remarks> 49/// <remarks>The character is specified in <see cref="RegexNode.Ch"/>, the minimum number of iterations in <see cref="RegexNode.M"/>, and the maximum number of iterations in <see cref="RegexNode.N"/>.</remarks> 59/// The character is specified in <see cref="RegexNode.Ch"/>, the minimum number of iterations in <see cref="RegexNode.M"/>, and the maximum number of iterations in <see cref="RegexNode.N"/>. 65/// The character is specified in <see cref="RegexNode.Ch"/>, the minimum number of iterations in <see cref="RegexNode.M"/>, and the maximum number of iterations in <see cref="RegexNode.N"/>.
System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (11)
112case RegexNodeKind.One or RegexNodeKind.Oneloop or RegexNodeKind.Onelazy or RegexNodeKind.Oneloopatomic when !ignoreCase || !RegexCharClass.ParticipatesInCaseConversion(node.Ch): 117sb.Append(node.Ch, reps); 423vsb.Append(node.Ch); 435vsb.Append(node.Ch, count); 603string setString = RegexCharClass.OneToStringClass(node.Ch); 611string setString = RegexCharClass.OneToStringClass(node.Ch); 958cc.AddChar(node.Ch); 967if (node.Ch > 0) 970cc.AddRange((char)0, (char)(node.Ch - 1)); 972if (node.Ch < char.MaxValue) 975cc.AddRange((char)(node.Ch + 1), char.MaxValue);
System\Text\RegularExpressions\RegexReplacement.cs (1)
55vsb.Append(child.Ch);
System\Text\RegularExpressions\RegexWriter.cs (3)
383Emit((RegexOpcode)node.Kind | bits, node.Ch); 395RegexOpcode.Onerep : RegexOpcode.Notonerep) | bits, node.Ch, node.M); 399Emit((RegexOpcode)node.Kind | bits, node.Ch, node.N == int.MaxValue ? int.MaxValue : node.N - node.M);
System\Text\RegularExpressions\Symbolic\RegexNodeConverter.cs (3)
58result.AddLast(_builder.CreateSingleton(_builder._charSetSolver.CreateBDDFromChar(node.Ch))); 62result.AddLast(_builder.CreateSingleton(_builder._solver.Not(_builder._charSetSolver.CreateBDDFromChar(node.Ch)))); 112BDD bdd = _builder._charSetSolver.CreateBDDFromChar(node.Ch);