7 writes to Options
System.Text.RegularExpressions (7)
System\Text\RegularExpressions\RegexNode.cs (7)
54Options = options; 60Options = options; 67Options = options; 74Options = options; 81Options = options; 581Options &= ~RegexOptions.IgnoreCase; 1159prev.Options &= ~RegexOptions.IgnoreCase;
92 references to Options
System.Text.RegularExpressions (92)
System\Text\RegularExpressions\RegexCompiler.cs (19)
1474if ((node.Options & RegexOptions.RightToLeft) != 0) 1694if ((node.Options & RegexOptions.RightToLeft) == 0 && 2057new RegexNode(RegexNodeKind.Empty, child.Options)); 2097new(RegexNodeKind.One, multi.Options, multi.Str[1]) : 2098new(RegexNodeKind.Multi, multi.Options, multi.Str.Substring(1)); 2108bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 2118BrfalseFar((node.Options & RegexOptions.ECMAScript) == 0 ? doneLabel : backreferenceEnd); 2142if ((node.Options & RegexOptions.IgnoreCase) != 0) 2961if ((node.Options & RegexOptions.RightToLeft) != 0) 3150if ((node.Options & RegexOptions.RightToLeft) == 0 && 3213bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 3288if ((node.Options & RegexOptions.RightToLeft) != 0) 3347Debug.Assert((node.Options & RegexOptions.RightToLeft) == 0 || sliceStaticPos == 0); 3485EmitMultiCharString(node.Str!, emitLengthCheck, (node.Options & RegexOptions.RightToLeft) != 0); 3562bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 3770bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 4464bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 4629bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 4860bool rtl = (node.Options & RegexOptions.RightToLeft) != 0;
System\Text\RegularExpressions\RegexNode.cs (59)
95new RegexNode(Kind, Options, Str!) : 96new RegexNode(Kind, Options, Ch); 137if ((Options & RegexOptions.RightToLeft) != 0 && 207RegexNode loopAsChild = new(RegexNodeKind.Loop, Options, M, N); 355Debug.Assert((node.Options & RegexOptions.IgnoreCase) == 0, $"{node.Kind} node should not have RegexOptions.IgnoreCase"); 379if ((rootNode.Options & (RegexOptions.RightToLeft | RegexOptions.NonBacktracking)) == 0) 428parent.InsertChild(1, new RegexNode(RegexNodeKind.UpdateBumpalong, node.Options)); 454(Options & RegexOptions.NonBacktracking) != 0) 469bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 501var atomic = new RegexNode(RegexNodeKind.Atomic, existingChild.Options); 6150 => new RegexNode(Kind == RegexNodeKind.Alternate ? RegexNodeKind.Nothing : RegexNodeKind.Empty, Options), 652if ((Options & RegexOptions.NonBacktracking) != 0) 696if ((Options & RegexOptions.RightToLeft) == 0) 706return new RegexNode(RegexNodeKind.Empty, child.Options); 896return new RegexNode(RegexNodeKind.Nothing, Options); 935u = u.M == 0 ? new RegexNode(RegexNodeKind.Empty, Options) : child; 1023return new RegexNode(RegexNodeKind.Nothing, Options); 1109optionsAt = at.Options & (RegexOptions.RightToLeft | RegexOptions.IgnoreCase); 1157if ((prev.Options & RegexOptions.IgnoreCase) != 0) 1191if ((alternation.Options & RegexOptions.RightToLeft) != 0) 1228required.Options != other.Options || 1245var newAlternate = new RegexNode(RegexNodeKind.Alternate, alternation.Options); 1256newAlternate.AddChild(new RegexNode(RegexNodeKind.Empty, children[i].Options)); 1263var atomic = new RegexNode(RegexNodeKind.Atomic, alternation.Options); 1270var newConcat = new RegexNode(RegexNodeKind.Concatenate, alternation.Options); 1339if ((alternation.Options & RegexOptions.RightToLeft) != 0) 1354RegexOptions startingNodeOptions = startingNode.Options; 1369if (startingNode is null || startingNode.Options != startingNodeOptions) 1500Debug.Assert((Options & RegexOptions.RightToLeft) == 0); 1515Debug.Assert((Options & RegexOptions.RightToLeft) == 0); 1580if (node is not null && (node.Options & RegexOptions.RightToLeft) == 0) 1690return new RegexNode(RegexNodeKind.Empty, Options); 1744((at.Options & RegexOptions.RightToLeft) == (Options & RegexOptions.RightToLeft))) 1765RegexOptions optionsAt = at.Options & (RegexOptions.RightToLeft | RegexOptions.IgnoreCase); 1820if (currentNode.Options == nextNode.Options) 1891(nextNode.Options & RegexOptions.RightToLeft) == 0 && // RTL multi nodes don't have their text reversed, and it's not worth the code to optimize further 1992Debug.Assert((Options & RegexOptions.NonBacktracking) == 0, "Atomic groups aren't supported and don't help performance with NonBacktracking"); 2027(node.Options & RegexOptions.RightToLeft) != 0) 2219if (((Options & RegexOptions.RightToLeft) == 0 && IsZeroWidthAssertion(child.Kind)) || 2292AddChild(new RegexNode(RegexNodeKind.Empty, Options)); 2310AddChild(new RegexNode(RegexNodeKind.Empty, Options)); 2319if (condition.Kind == RegexNodeKind.PositiveLookaround && (condition.Options & RegexOptions.RightToLeft) == 0) 2378case RegexNodeKind.PositiveLookaround when (subsequent.Options & RegexOptions.RightToLeft) == 0: 2388if (node.Options != subsequent.Options) 2656if ((node.Options & RegexOptions.RightToLeft) != 0 || 3154return new RegexNode(RegexNodeKind.Empty, Options); 3182var result = new RegexNode(lazy ? RegexNodeKind.Lazyloop : RegexNodeKind.Loop, Options, min, max); 3261if ((Options & RegexOptions.NonBacktracking) != 0) 3352if ((Options & RegexOptions.ExplicitCapture) != 0) sb.Append("-C"); 3353if ((Options & RegexOptions.IgnoreCase) != 0) sb.Append("-I"); 3354if ((Options & RegexOptions.RightToLeft) != 0) sb.Append("-L"); 3355if ((Options & RegexOptions.Multiline) != 0) sb.Append("-M"); 3356if ((Options & RegexOptions.Singleline) != 0) sb.Append("-S"); 3357if ((Options & RegexOptions.IgnorePatternWhitespace) != 0) sb.Append("-X"); 3358if ((Options & RegexOptions.ECMAScript) != 0) sb.Append("-E");
System\Text\RegularExpressions\RegexParser.cs (1)
1216if (result != null && result.Kind == RegexNodeKind.Backreference && (result.Options & RegexOptions.IgnoreCase) != 0)
System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (9)
65(node.Options & RegexOptions.RightToLeft) != 0 || 358bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 593if ((node.Options & RegexOptions.RightToLeft) != 0) 1004bool firstChar = findFirst == ((node.Options & RegexOptions.RightToLeft) == 0); 1129if ((node.Options & RegexOptions.RightToLeft) != 0) 1272if ((node.Options & RegexOptions.RightToLeft) != 0) 1363case RegexNodeKind.PositiveLookaround when leading && (node.Options & RegexOptions.RightToLeft) == 0: 1389case RegexNodeKind.PositiveLookaround when ((node.Options | tmpChild.Options) & RegexOptions.RightToLeft) != 0:
System\Text\RegularExpressions\RegexTreeAnalyzer.cs (2)
27results._hasIgnoreCase |= (node.Options & RegexOptions.IgnoreCase) != 0; 28results._hasRightToLeft |= (node.Options & RegexOptions.RightToLeft) != 0;
System\Text\RegularExpressions\RegexWriter.cs (2)
204if ((node.Options & RegexOptions.RightToLeft) != 0) 208if ((node.Options & RegexOptions.IgnoreCase) != 0)