7 writes to Options
System.Text.RegularExpressions.Generator (7)
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexNode.cs (7)
54
Options
= options;
60
Options
= options;
67
Options
= options;
74
Options
= options;
81
Options
= options;
581
Options
&= ~RegexOptions.IgnoreCase;
1159
prev.
Options
&= ~RegexOptions.IgnoreCase;
92 references to Options
System.Text.RegularExpressions.Generator (92)
RegexGenerator.cs (1)
373
if (node.Kind is RegexNodeKind.Backreference && (node.
Options
& RegexOptions.IgnoreCase) != 0)
RegexGenerator.Emitter.cs (20)
1826
if ((node.
Options
& RegexOptions.RightToLeft) != 0 ||
1932
new RegexNode(RegexNodeKind.Empty, child.
Options
)); // single, so removing it yields empty
1978
new(RegexNodeKind.One, multi.
Options
, multi.Str[1]) :
1979
new(RegexNodeKind.Multi, multi.
Options
, multi.Str.Substring(1));
2215
if ((node.
Options
& RegexOptions.ECMAScript) != 0)
2243
if ((node.
Options
& RegexOptions.RightToLeft) == 0)
2733
string startingPos = ReserveName((node.
Options
& RegexOptions.RightToLeft) != 0 ? "positivelookbehind_starting_pos" : "positivelookahead_starting_pos");
2776
string variablePrefix = (node.
Options
& RegexOptions.RightToLeft) != 0 ? "negativelookbehind_" : "negativelookahead_";
2877
if ((node.
Options
& RegexOptions.RightToLeft) != 0)
2941
case RegexNodeKind.Multi when (node.
Options
& RegexOptions.RightToLeft) == 0:
3082
if ((node.
Options
& RegexOptions.RightToLeft) == 0 &&
3202
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
3285
Debug.Assert((node.
Options
& RegexOptions.RightToLeft) == 0 || sliceStaticPos == 0);
3352
EmitMultiCharString(node.Str, emitLengthCheck, clauseOnly: false, (node.
Options
& RegexOptions.RightToLeft) != 0);
3425
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
3635
if ((node.
Options
& RegexOptions.RightToLeft) == 0)
4087
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
4223
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
4339
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
5537
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexNode.cs (59)
95
new RegexNode(Kind,
Options
, Str!) :
96
new RegexNode(Kind,
Options
, Ch);
137
if ((
Options
& RegexOptions.RightToLeft) != 0 &&
207
RegexNode loopAsChild = new(RegexNodeKind.Loop,
Options
, M, N);
355
Debug.Assert((node.
Options
& RegexOptions.IgnoreCase) == 0, $"{node.Kind} node should not have RegexOptions.IgnoreCase");
379
if ((rootNode.
Options
& (RegexOptions.RightToLeft | RegexOptions.NonBacktracking)) == 0)
428
parent.InsertChild(1, new RegexNode(RegexNodeKind.UpdateBumpalong, node.
Options
));
454
(
Options
& RegexOptions.NonBacktracking) != 0)
469
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
501
var atomic = new RegexNode(RegexNodeKind.Atomic, existingChild.
Options
);
615
0 => new RegexNode(Kind == RegexNodeKind.Alternate ? RegexNodeKind.Nothing : RegexNodeKind.Empty,
Options
),
652
if ((
Options
& RegexOptions.NonBacktracking) != 0)
696
if ((
Options
& RegexOptions.RightToLeft) == 0)
706
return new RegexNode(RegexNodeKind.Empty, child.
Options
);
896
return new RegexNode(RegexNodeKind.Nothing,
Options
);
935
u = u.M == 0 ? new RegexNode(RegexNodeKind.Empty,
Options
) : child;
1023
return new RegexNode(RegexNodeKind.Nothing,
Options
);
1109
optionsAt = at.
Options
& (RegexOptions.RightToLeft | RegexOptions.IgnoreCase);
1157
if ((prev.
Options
& RegexOptions.IgnoreCase) != 0)
1191
if ((alternation.
Options
& RegexOptions.RightToLeft) != 0)
1228
required.
Options
!= other.
Options
||
1245
var newAlternate = new RegexNode(RegexNodeKind.Alternate, alternation.
Options
);
1256
newAlternate.AddChild(new RegexNode(RegexNodeKind.Empty, children[i].
Options
));
1263
var atomic = new RegexNode(RegexNodeKind.Atomic, alternation.
Options
);
1270
var newConcat = new RegexNode(RegexNodeKind.Concatenate, alternation.
Options
);
1339
if ((alternation.
Options
& RegexOptions.RightToLeft) != 0)
1354
RegexOptions startingNodeOptions = startingNode.
Options
;
1369
if (startingNode is null || startingNode.
Options
!= startingNodeOptions)
1500
Debug.Assert((
Options
& RegexOptions.RightToLeft) == 0);
1515
Debug.Assert((
Options
& RegexOptions.RightToLeft) == 0);
1580
if (node is not null && (node.
Options
& RegexOptions.RightToLeft) == 0)
1690
return new RegexNode(RegexNodeKind.Empty,
Options
);
1744
((at.
Options
& RegexOptions.RightToLeft) == (
Options
& RegexOptions.RightToLeft)))
1765
RegexOptions optionsAt = at.
Options
& (RegexOptions.RightToLeft | RegexOptions.IgnoreCase);
1820
if (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
1992
Debug.Assert((
Options
& RegexOptions.NonBacktracking) == 0, "Atomic groups aren't supported and don't help performance with NonBacktracking");
2027
(node.
Options
& RegexOptions.RightToLeft) != 0)
2219
if (((
Options
& RegexOptions.RightToLeft) == 0 && IsZeroWidthAssertion(child.Kind)) ||
2292
AddChild(new RegexNode(RegexNodeKind.Empty,
Options
));
2310
AddChild(new RegexNode(RegexNodeKind.Empty,
Options
));
2319
if (condition.Kind == RegexNodeKind.PositiveLookaround && (condition.
Options
& RegexOptions.RightToLeft) == 0)
2378
case RegexNodeKind.PositiveLookaround when (subsequent.
Options
& RegexOptions.RightToLeft) == 0:
2388
if (node.
Options
!= subsequent.
Options
)
2656
if ((node.
Options
& RegexOptions.RightToLeft) != 0 ||
3111
return new RegexNode(RegexNodeKind.Empty,
Options
);
3139
var result = new RegexNode(lazy ? RegexNodeKind.Lazyloop : RegexNodeKind.Loop,
Options
, min, max);
3218
if ((
Options
& RegexOptions.NonBacktracking) != 0)
3309
if ((
Options
& RegexOptions.ExplicitCapture) != 0) sb.Append("-C");
3310
if ((
Options
& RegexOptions.IgnoreCase) != 0) sb.Append("-I");
3311
if ((
Options
& RegexOptions.RightToLeft) != 0) sb.Append("-L");
3312
if ((
Options
& RegexOptions.Multiline) != 0) sb.Append("-M");
3313
if ((
Options
& RegexOptions.Singleline) != 0) sb.Append("-S");
3314
if ((
Options
& RegexOptions.IgnorePatternWhitespace) != 0) sb.Append("-X");
3315
if ((
Options
& RegexOptions.ECMAScript) != 0) sb.Append("-E");
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexParser.cs (1)
1189
if (result != null && result.Kind == RegexNodeKind.Backreference && (result.
Options
& RegexOptions.IgnoreCase) != 0)
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexPrefixAnalyzer.cs (9)
65
(node.
Options
& RegexOptions.RightToLeft) != 0 ||
358
bool rtl = (node.
Options
& RegexOptions.RightToLeft) != 0;
593
if ((node.
Options
& RegexOptions.RightToLeft) != 0)
1004
bool firstChar = findFirst == ((node.
Options
& RegexOptions.RightToLeft) == 0);
1129
if ((node.
Options
& RegexOptions.RightToLeft) != 0)
1272
if ((node.
Options
& RegexOptions.RightToLeft) != 0)
1363
case RegexNodeKind.PositiveLookaround when leading && (node.
Options
& RegexOptions.RightToLeft) == 0:
1389
case RegexNodeKind.PositiveLookaround when ((node.
Options
| tmpChild.
Options
) & RegexOptions.RightToLeft) != 0:
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexTreeAnalyzer.cs (2)
27
results._hasIgnoreCase |= (node.
Options
& RegexOptions.IgnoreCase) != 0;
28
results._hasRightToLeft |= (node.
Options
& RegexOptions.RightToLeft) != 0;