7 writes to Options
System.Text.RegularExpressions.Generator (7)
parent\src\System\Text\RegularExpressions\RegexNode.cs (7)
54Options = options; 60Options = options; 67Options = options; 74Options = options; 81Options = options; 628Options &= ~RegexOptions.IgnoreCase; 1214prev.Options &= ~RegexOptions.IgnoreCase;
85 references to Options
System.Text.RegularExpressions.Generator (85)
parent\src\System\Text\RegularExpressions\RegexNode.cs (52)
95new RegexNode(Kind, Options, Str!) : 96new RegexNode(Kind, Options, Ch); 137if ((Options & RegexOptions.RightToLeft) != 0 && 207RegexNode loopAsChild = new(RegexNodeKind.Loop, Options, M, N); 379if ((rootNode.Options & (RegexOptions.RightToLeft | RegexOptions.NonBacktracking)) == 0) 400if ((rootNode.Options & RegexOptions.Compiled) != 0) 442parent.InsertChild(1, new RegexNode(RegexNodeKind.UpdateBumpalong, node.Options)); 501(Options & RegexOptions.NonBacktracking) != 0) 516bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 548var atomic = new RegexNode(RegexNodeKind.Atomic, existingChild.Options); 6620 => new RegexNode(Kind == RegexNodeKind.Alternate ? RegexNodeKind.Nothing : RegexNodeKind.Empty, Options), 699if ((Options & RegexOptions.NonBacktracking) != 0) 751if ((Options & RegexOptions.RightToLeft) == 0) 761return new RegexNode(RegexNodeKind.Empty, child.Options); 951return new RegexNode(RegexNodeKind.Nothing, Options); 990u = u.M == 0 ? new RegexNode(RegexNodeKind.Empty, Options) : child; 1078return new RegexNode(RegexNodeKind.Nothing, Options); 1164optionsAt = at.Options & (RegexOptions.RightToLeft | RegexOptions.IgnoreCase); 1212if ((prev.Options & RegexOptions.IgnoreCase) != 0) 1246if ((alternation.Options & RegexOptions.RightToLeft) != 0) 1283required.Options != other.Options || 1300var newAlternate = new RegexNode(RegexNodeKind.Alternate, alternation.Options); 1311newAlternate.AddChild(new RegexNode(RegexNodeKind.Empty, children[i].Options)); 1318var atomic = new RegexNode(RegexNodeKind.Atomic, alternation.Options); 1325var newConcat = new RegexNode(RegexNodeKind.Concatenate, alternation.Options); 1396if ((alternation.Options & RegexOptions.RightToLeft) != 0) 1412RegexOptions startingNodeOptions = startingNode.Options; 1427if (startingNode is null || startingNode.Options != startingNodeOptions) 1558Debug.Assert((Options & RegexOptions.RightToLeft) == 0); 1573Debug.Assert((Options & RegexOptions.RightToLeft) == 0); 1638if (node is not null && (node.Options & RegexOptions.RightToLeft) == 0) 1748return new RegexNode(RegexNodeKind.Empty, Options); 1802((at.Options & RegexOptions.RightToLeft) == (Options & RegexOptions.RightToLeft))) 1823RegexOptions optionsAt = at.Options & (RegexOptions.RightToLeft | RegexOptions.IgnoreCase); 1878if (currentNode.Options == nextNode.Options) 1949(nextNode.Options & RegexOptions.RightToLeft) == 0 && // RTL multi nodes don't have their text reversed, and it's not worth the code to optimize further 2050Debug.Assert((Options & RegexOptions.NonBacktracking) == 0, "Atomic groups aren't supported and don't help performance with NonBacktracking"); 2085(node.Options & RegexOptions.RightToLeft) != 0) 2277if (((Options & RegexOptions.RightToLeft) == 0 && IsZeroWidthAssertion(child.Kind)) || 2350AddChild(new RegexNode(RegexNodeKind.Empty, Options)); 2368AddChild(new RegexNode(RegexNodeKind.Empty, Options)); 2377if (condition.Kind == RegexNodeKind.PositiveLookaround && (condition.Options & RegexOptions.RightToLeft) == 0) 2494case RegexNodeKind.PositiveLookaround when (subsequent.Options & RegexOptions.RightToLeft) == 0: 2504if (node.Options != subsequent.Options) 2793if ((node.Options & RegexOptions.RightToLeft) != 0 || 3291return new RegexNode(RegexNodeKind.Empty, Options); 3319var result = new RegexNode(lazy ? RegexNodeKind.Lazyloop : RegexNodeKind.Loop, Options, min, max); 3406if ((Options & RegexOptions.NonBacktracking) != 0)
parent\src\System\Text\RegularExpressions\RegexParser.cs (1)
1217if (result != null && result.Kind == RegexNodeKind.Backreference && (result.Options & RegexOptions.IgnoreCase) != 0)
parent\src\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:
parent\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (2)
27results._hasIgnoreCase |= (node.Options & RegexOptions.IgnoreCase) != 0; 28results._hasRightToLeft |= (node.Options & RegexOptions.RightToLeft) != 0;
RegexGenerator.cs (1)
373if (node.Kind is RegexNodeKind.Backreference && (node.Options & RegexOptions.IgnoreCase) != 0)
RegexGenerator.Emitter.cs (20)
1828if ((node.Options & RegexOptions.RightToLeft) != 0 || 1934new RegexNode(RegexNodeKind.Empty, child.Options)); // single, so removing it yields empty 1980new(RegexNodeKind.One, multi.Options, multi.Str[1]) : 1981new(RegexNodeKind.Multi, multi.Options, multi.Str.Substring(1)); 2217if ((node.Options & RegexOptions.ECMAScript) != 0) 2245if ((node.Options & RegexOptions.RightToLeft) == 0) 2735string startingPos = ReserveName((node.Options & RegexOptions.RightToLeft) != 0 ? "positivelookbehind_starting_pos" : "positivelookahead_starting_pos"); 2778string variablePrefix = (node.Options & RegexOptions.RightToLeft) != 0 ? "negativelookbehind_" : "negativelookahead_"; 2879if ((node.Options & RegexOptions.RightToLeft) != 0) 2943case RegexNodeKind.Multi when (node.Options & RegexOptions.RightToLeft) == 0: 3084if ((node.Options & RegexOptions.RightToLeft) == 0 && 3204bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 3287Debug.Assert((node.Options & RegexOptions.RightToLeft) == 0 || sliceStaticPos == 0); 3354EmitMultiCharString(node.Str, emitLengthCheck, clauseOnly: false, (node.Options & RegexOptions.RightToLeft) != 0); 3427bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 3677if ((node.Options & RegexOptions.RightToLeft) == 0) 4135bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 4271bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 4387bool rtl = (node.Options & RegexOptions.RightToLeft) != 0; 5585bool rtl = (node.Options & RegexOptions.RightToLeft) != 0;