302 references to SymbolicRegexNodeKind
System.Text.RegularExpressions (302)
System\Text\RegularExpressions\Symbolic\MatchingState.cs (1)
147
if (Node.Kind !=
SymbolicRegexNodeKind
.DisableBacktrackingSimulation)
System\Text\RegularExpressions\Symbolic\SymbolicRegexBuilder.cs (29)
28
internal SymbolicRegexNode<TSet> BeginningAnchor => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.BeginningAnchor);
29
internal SymbolicRegexNode<TSet> EndAnchor => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.EndAnchor);
30
internal SymbolicRegexNode<TSet> EndAnchorZ => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.EndAnchorZ);
31
internal SymbolicRegexNode<TSet> EndAnchorZReverse => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.EndAnchorZReverse);
32
internal SymbolicRegexNode<TSet> BolAnchor => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.BOLAnchor);
33
internal SymbolicRegexNode<TSet> EolAnchor => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.EOLAnchor);
34
internal SymbolicRegexNode<TSet> BoundaryAnchor => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.BoundaryAnchor);
35
internal SymbolicRegexNode<TSet> NonBoundaryAnchor => field ??= SymbolicRegexNode<TSet>.CreateAnchor(this,
SymbolicRegexNodeKind
.NonBoundaryAnchor);
55
SymbolicRegexNodeKind
kind, SymbolicRegexNode<TSet>? left, SymbolicRegexNode<TSet>? right,
59
public readonly
SymbolicRegexNodeKind
Kind = kind;
223
if (!isLazy && lower == 0 && upper == int.MaxValue && node._kind ==
SymbolicRegexNodeKind
.Singleton)
233
if (node.Kind ==
SymbolicRegexNodeKind
.Loop && node._lower == 0 && node._upper == 1 && lower == 0 && upper == 1)
284
case
SymbolicRegexNodeKind
.BeginningAnchor:
287
case
SymbolicRegexNodeKind
.EndAnchor:
290
case
SymbolicRegexNodeKind
.EndAnchorZ:
293
case
SymbolicRegexNodeKind
.EndAnchorZReverse:
296
case
SymbolicRegexNodeKind
.BOLAnchor:
299
case
SymbolicRegexNodeKind
.EOLAnchor:
302
case
SymbolicRegexNodeKind
.BoundaryAnchor:
305
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
308
case
SymbolicRegexNodeKind
.FixedLengthMarker:
311
case
SymbolicRegexNodeKind
.Epsilon:
314
case
SymbolicRegexNodeKind
.Singleton:
318
case
SymbolicRegexNodeKind
.Loop:
322
case
SymbolicRegexNodeKind
.Alternate:
329
case
SymbolicRegexNodeKind
.CaptureStart:
332
case
SymbolicRegexNodeKind
.CaptureEnd:
335
case
SymbolicRegexNodeKind
.Concat:
346
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
System\Text\RegularExpressions\Symbolic\SymbolicRegexMatcher.Automata.cs (9)
196
if (node._kind is not
SymbolicRegexNodeKind
.Concat)
198
if (node._kind is
SymbolicRegexNodeKind
.CaptureStart)
208
if (left._kind is
SymbolicRegexNodeKind
.CaptureEnd or
SymbolicRegexNodeKind
.BoundaryAnchor or
SymbolicRegexNodeKind
.Singleton)
211
if (left._kind is
SymbolicRegexNodeKind
.Singleton)
216
else if (left._kind is
SymbolicRegexNodeKind
.Loop)
218
if (left._lower <= 0 || left._left!.Kind is not
SymbolicRegexNodeKind
.Singleton)
296
Debug.Assert(node.Kind !=
SymbolicRegexNodeKind
.Alternate);
System\Text\RegularExpressions\Symbolic\SymbolicRegexNode.cs (263)
35
internal readonly
SymbolicRegexNodeKind
_kind;
62
private SymbolicRegexNode(SymbolicRegexBuilder<TSet> builder,
SymbolicRegexNodeKind
kind, SymbolicRegexNode<TSet>? left, SymbolicRegexNode<TSet>? right, int lower, int upper, TSet set, SymbolicRegexInfo info)
78
private static SymbolicRegexNode<TSet> Create(SymbolicRegexBuilder<TSet> builder,
SymbolicRegexNodeKind
kind, SymbolicRegexNode<TSet>? left, SymbolicRegexNode<TSet>? right, int lower, int upper, TSet? set, SymbolicRegexInfo info)
80
Debug.Assert(kind !=
SymbolicRegexNodeKind
.Singleton || set is not null);
81
TSet setOrStartSet = kind ==
SymbolicRegexNodeKind
.Singleton ? set! : ComputeStartSet(builder, kind, left, right);
123
case
SymbolicRegexNodeKind
.Loop:
127
case
SymbolicRegexNodeKind
.Concat:
138
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
139
case
SymbolicRegexNodeKind
.Effect:
140
case
SymbolicRegexNodeKind
.Alternate:
153
Debug.Assert(node._kind is
SymbolicRegexNodeKind
.BeginningAnchor or
154
SymbolicRegexNodeKind
.EndAnchor or
155
SymbolicRegexNodeKind
.BOLAnchor or
156
SymbolicRegexNodeKind
.EOLAnchor or
157
SymbolicRegexNodeKind
.BoundaryAnchor or
158
SymbolicRegexNodeKind
.NonBoundaryAnchor or
159
SymbolicRegexNodeKind
.EndAnchorZ or
160
SymbolicRegexNodeKind
.EndAnchorZReverse);
185
public List<SymbolicRegexNode<TSet>> ToList(List<SymbolicRegexNode<TSet>>? list = null,
SymbolicRegexNodeKind
listKind =
SymbolicRegexNodeKind
.Concat)
187
Debug.Assert(listKind is
SymbolicRegexNodeKind
.Concat or
SymbolicRegexNodeKind
.Alternate);
192
static void AppendToList(SymbolicRegexNode<TSet> concat, List<SymbolicRegexNode<TSet>> list,
SymbolicRegexNodeKind
listKind)
257
case
SymbolicRegexNodeKind
.Loop:
262
case
SymbolicRegexNodeKind
.Concat:
267
case
SymbolicRegexNodeKind
.Alternate:
272
case
SymbolicRegexNodeKind
.BeginningAnchor:
276
case
SymbolicRegexNodeKind
.EndAnchor:
280
case
SymbolicRegexNodeKind
.BOLAnchor:
286
case
SymbolicRegexNodeKind
.EOLAnchor:
292
case
SymbolicRegexNodeKind
.BoundaryAnchor:
297
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
302
case
SymbolicRegexNodeKind
.EndAnchorZ:
308
case
SymbolicRegexNodeKind
.CaptureStart:
309
case
SymbolicRegexNodeKind
.CaptureEnd:
313
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
314
case
SymbolicRegexNodeKind
.Effect:
323
Debug.Assert(_kind ==
SymbolicRegexNodeKind
.EndAnchorZReverse);
340
if (_left._kind ==
SymbolicRegexNodeKind
.Singleton)
353
if (_kind ==
SymbolicRegexNodeKind
.Singleton)
366
public bool IsEpsilon => _kind ==
SymbolicRegexNodeKind
.Epsilon;
369
internal
SymbolicRegexNodeKind
Kind => _kind;
379
Create(builder,
SymbolicRegexNodeKind
.Singleton, null, null, -1, -1, builder._solver.Empty, default);
382
Create(builder,
SymbolicRegexNodeKind
.Singleton, null, null, -1, -1, builder._solver.Full, default);
385
Create(builder,
SymbolicRegexNodeKind
.FixedLengthMarker, null, null, length, -1, default, SymbolicRegexInfo.Epsilon());
388
Create(builder,
SymbolicRegexNodeKind
.Epsilon, null, null, -1, -1, default, SymbolicRegexInfo.Epsilon());
390
internal static SymbolicRegexNode<TSet> CreateAnchor(SymbolicRegexBuilder<TSet> builder,
SymbolicRegexNodeKind
kind)
393
SymbolicRegexNodeKind
.BoundaryAnchor or
SymbolicRegexNodeKind
.NonBoundaryAnchor or
394
SymbolicRegexNodeKind
.BeginningAnchor or
SymbolicRegexNodeKind
.EndAnchor or
395
SymbolicRegexNodeKind
.EndAnchorZ or
SymbolicRegexNodeKind
.EndAnchorZReverse or
396
SymbolicRegexNodeKind
.EOLAnchor or
SymbolicRegexNodeKind
.BOLAnchor);
400
isLineAnchor: kind is
SymbolicRegexNodeKind
.EndAnchorZ or
SymbolicRegexNodeKind
.EndAnchorZReverse or
SymbolicRegexNodeKind
.EOLAnchor or
SymbolicRegexNodeKind
.BOLAnchor,
401
isEndZAnchor: kind is
SymbolicRegexNodeKind
.EndAnchorZ));
407
Create(builder,
SymbolicRegexNodeKind
.Singleton, null, null, -1, -1, set, default);
414
if (lower == 0 && upper == 1 && body._kind ==
SymbolicRegexNodeKind
.Loop && body._lower == 0 && body._upper == 1)
419
return Create(builder,
SymbolicRegexNodeKind
.Loop, body, null, lower, upper, default, SymbolicRegexInfo.Loop(body._info, lower, isLazy));
430
if (node._kind ==
SymbolicRegexNodeKind
.Effect)
436
return Create(builder,
SymbolicRegexNodeKind
.Effect, node, effectNode, -1, -1, default, SymbolicRegexInfo.Effect(node._info));
440
Create(builder,
SymbolicRegexNodeKind
.CaptureStart, null, null, captureNum, -1, default, SymbolicRegexInfo.Epsilon());
443
Create(builder,
SymbolicRegexNodeKind
.CaptureEnd, null, null, captureNum, -1, default, SymbolicRegexInfo.Epsilon());
446
Create(builder,
SymbolicRegexNodeKind
.DisableBacktrackingSimulation, child, null, -1, -1, default, child._info);
462
Debug.Assert(right._kind is not
SymbolicRegexNodeKind
.Effect);
463
if (left._kind ==
SymbolicRegexNodeKind
.Effect)
469
return Create(builder,
SymbolicRegexNodeKind
.Concat, left, right, -1, -1, default, SymbolicRegexInfo.Concat(left._info, right._info));
497
SymbolicRegexNode<TSet> head = right._kind ==
SymbolicRegexNodeKind
.Alternate ? right._left! : right;
498
SymbolicRegexNode<TSet> tail = right._kind ==
SymbolicRegexNodeKind
.Alternate ? right._right! : builder._nothing;
514
if (!deduplicated && left._kind !=
SymbolicRegexNodeKind
.Alternate)
519
while (current._kind ==
SymbolicRegexNodeKind
.Alternate)
523
Debug.Assert(current._left._kind !=
SymbolicRegexNodeKind
.Alternate);
537
if (!deduplicated || left._kind ==
SymbolicRegexNodeKind
.Alternate)
540
List<SymbolicRegexNode<TSet>> elems = left.ToList(listKind:
SymbolicRegexNodeKind
.Alternate);
542
right.ToList(elems, listKind:
SymbolicRegexNodeKind
.Alternate);
583
Debug.Assert(left._kind !=
SymbolicRegexNodeKind
.Alternate);
586
return Create(builder,
SymbolicRegexNodeKind
.Alternate, left, right, -1, -1, default, SymbolicRegexInfo.Alternate(left._info, right._info));
651
if (left._kind ==
SymbolicRegexNodeKind
.Effect)
659
if (right._kind ==
SymbolicRegexNodeKind
.Effect)
667
if (left._kind ==
SymbolicRegexNodeKind
.Concat && right._kind ==
SymbolicRegexNodeKind
.Concat)
671
if (left._left.IsNullable && rl._kind ==
SymbolicRegexNodeKind
.Loop && rl._lower == 0 && rl._upper == 1 && rl.IsLazy)
681
if (left._kind ==
SymbolicRegexNodeKind
.Concat && right._kind ==
SymbolicRegexNodeKind
.Concat)
685
if (ll._kind ==
SymbolicRegexNodeKind
.Loop && ll._lower == 0 && ll._upper == 1 && ll.IsLazy)
694
if (left._kind ==
SymbolicRegexNodeKind
.Concat)
713
while (prefix._kind ==
SymbolicRegexNodeKind
.Concat)
716
if (node._kind !=
SymbolicRegexNodeKind
.Concat)
728
if (node._kind !=
SymbolicRegexNodeKind
.Concat)
750
while (current._kind ==
SymbolicRegexNodeKind
.Effect)
789
if (left._kind ==
SymbolicRegexNodeKind
.Effect)
812
if (right._kind ==
SymbolicRegexNodeKind
.Effect)
821
if (right._kind ==
SymbolicRegexNodeKind
.Concat)
842
while (suffix._kind ==
SymbolicRegexNodeKind
.Concat)
892
case
SymbolicRegexNodeKind
.FixedLengthMarker:
893
case
SymbolicRegexNodeKind
.Epsilon:
894
case
SymbolicRegexNodeKind
.BOLAnchor:
895
case
SymbolicRegexNodeKind
.EOLAnchor:
896
case
SymbolicRegexNodeKind
.EndAnchor:
897
case
SymbolicRegexNodeKind
.BeginningAnchor:
898
case
SymbolicRegexNodeKind
.EndAnchorZ:
899
case
SymbolicRegexNodeKind
.EndAnchorZReverse:
900
case
SymbolicRegexNodeKind
.BoundaryAnchor:
901
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
902
case
SymbolicRegexNodeKind
.CaptureStart:
903
case
SymbolicRegexNodeKind
.CaptureEnd:
906
case
SymbolicRegexNodeKind
.Singleton:
909
case
SymbolicRegexNodeKind
.Loop:
927
case
SymbolicRegexNodeKind
.Concat:
946
case
SymbolicRegexNodeKind
.Alternate:
960
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
961
case
SymbolicRegexNodeKind
.Effect:
970
/// Insert <see cref="
SymbolicRegexNodeKind
.FixedLengthMarker"/> nodes to mark paths in the regex that correspond
989
case
SymbolicRegexNodeKind
.Alternate:
996
case
SymbolicRegexNodeKind
.Concat:
1012
case
SymbolicRegexNodeKind
.FixedLengthMarker:
1066
if (_kind ==
SymbolicRegexNodeKind
.DisableBacktrackingSimulation)
1102
case
SymbolicRegexNodeKind
.Alternate:
1113
case
SymbolicRegexNodeKind
.Concat:
1119
SymbolicRegexNodeKind
.Concat => CreateConcat(builder, _left._left!, CreateConcat(builder, _left._right!, _right))
1126
SymbolicRegexNodeKind
.Alternate => (_left._left!.IsNullableFor(context) ?
1131
SymbolicRegexNodeKind
.Loop => PruneLoop(builder, context, _left, _right),
1138
case
SymbolicRegexNodeKind
.Loop:
1143
case
SymbolicRegexNodeKind
.Effect:
1160
Debug.Assert(loop.Kind ==
SymbolicRegexNodeKind
.Loop && loop._left is not null);
1214
Debug.Assert(_kind ==
SymbolicRegexNodeKind
.Loop && _left is not null);
1236
/// -Some nodes, namely <see cref="
SymbolicRegexNodeKind
.CaptureStart"/> and <see cref="
SymbolicRegexNodeKind
.CaptureEnd"/>,
1237
/// will produce <see cref="
SymbolicRegexNodeKind
.Effect"/> nodes, which indicate effects to be applied on
1265
case
SymbolicRegexNodeKind
.Singleton:
1283
case
SymbolicRegexNodeKind
.Concat:
1315
case
SymbolicRegexNodeKind
.Loop:
1336
case
SymbolicRegexNodeKind
.Alternate:
1343
case
SymbolicRegexNodeKind
.Effect:
1387
case
SymbolicRegexNodeKind
.Effect:
1393
case
SymbolicRegexNodeKind
.Concat:
1399
case
SymbolicRegexNodeKind
.Alternate:
1408
List<SymbolicRegexNode<TSet>> elems = strippedLeft.ToList(listKind:
SymbolicRegexNodeKind
.Alternate);
1409
strippedRight.ToList(elems, listKind:
SymbolicRegexNodeKind
.Alternate);
1414
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
1419
case
SymbolicRegexNodeKind
.Loop:
1434
/// This function maps <see cref="
SymbolicRegexNodeKind
.Effect"/> nodes present in the tree and maps them into
1472
case
SymbolicRegexNodeKind
.Effect:
1483
case
SymbolicRegexNodeKind
.Concat:
1499
case
SymbolicRegexNodeKind
.Alternate:
1505
case
SymbolicRegexNodeKind
.Loop when _lower == 0 && _upper == 1:
1524
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
1563
case
SymbolicRegexNodeKind
.Concat:
1570
case
SymbolicRegexNodeKind
.Loop:
1580
case
SymbolicRegexNodeKind
.Alternate:
1595
case
SymbolicRegexNodeKind
.CaptureStart:
1599
case
SymbolicRegexNodeKind
.CaptureEnd:
1603
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
1629
case
SymbolicRegexNodeKind
.EndAnchor:
1633
case
SymbolicRegexNodeKind
.BeginningAnchor:
1637
case
SymbolicRegexNodeKind
.BOLAnchor:
1641
case
SymbolicRegexNodeKind
.EOLAnchor:
1645
case
SymbolicRegexNodeKind
.Epsilon:
1649
case
SymbolicRegexNodeKind
.FixedLengthMarker:
1654
case
SymbolicRegexNodeKind
.BoundaryAnchor:
1658
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
1662
case
SymbolicRegexNodeKind
.EndAnchorZ:
1666
case
SymbolicRegexNodeKind
.EndAnchorZReverse:
1670
case
SymbolicRegexNodeKind
.Alternate:
1679
case
SymbolicRegexNodeKind
.Concat:
1682
if (_left.Kind ==
SymbolicRegexNodeKind
.Concat)
1685
if (_left.Kind ==
SymbolicRegexNodeKind
.Concat)
1690
case
SymbolicRegexNodeKind
.Singleton:
1695
case
SymbolicRegexNodeKind
.Loop:
1754
case
SymbolicRegexNodeKind
.Effect:
1766
case
SymbolicRegexNodeKind
.CaptureStart:
1773
case
SymbolicRegexNodeKind
.CaptureEnd:
1780
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
1794
case
SymbolicRegexNodeKind
.Singleton:
1860
case
SymbolicRegexNodeKind
.BOLAnchor:
1861
case
SymbolicRegexNodeKind
.EOLAnchor:
1862
case
SymbolicRegexNodeKind
.EndAnchorZ:
1863
case
SymbolicRegexNodeKind
.EndAnchorZReverse:
1867
case
SymbolicRegexNodeKind
.BeginningAnchor:
1868
case
SymbolicRegexNodeKind
.EndAnchor:
1869
case
SymbolicRegexNodeKind
.Epsilon:
1870
case
SymbolicRegexNodeKind
.FixedLengthMarker:
1871
case
SymbolicRegexNodeKind
.CaptureStart:
1872
case
SymbolicRegexNodeKind
.CaptureEnd:
1875
case
SymbolicRegexNodeKind
.Singleton:
1880
case
SymbolicRegexNodeKind
.Loop:
1885
case
SymbolicRegexNodeKind
.Alternate:
1891
case
SymbolicRegexNodeKind
.Concat:
1894
while (conc._kind ==
SymbolicRegexNodeKind
.Concat)
1903
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
1908
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
1909
case
SymbolicRegexNodeKind
.BoundaryAnchor:
1935
case
SymbolicRegexNodeKind
.Loop:
1939
case
SymbolicRegexNodeKind
.Concat:
1944
while (rest._kind ==
SymbolicRegexNodeKind
.Concat)
1956
case
SymbolicRegexNodeKind
.Alternate:
1960
case
SymbolicRegexNodeKind
.FixedLengthMarker:
1964
case
SymbolicRegexNodeKind
.BeginningAnchor:
1968
case
SymbolicRegexNodeKind
.EndAnchor:
1971
case
SymbolicRegexNodeKind
.BOLAnchor:
1975
case
SymbolicRegexNodeKind
.EOLAnchor:
1978
case
SymbolicRegexNodeKind
.EndAnchorZ:
1982
case
SymbolicRegexNodeKind
.EndAnchorZReverse:
1986
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
1991
case
SymbolicRegexNodeKind
.Epsilon:
1992
case
SymbolicRegexNodeKind
.Singleton:
1993
case
SymbolicRegexNodeKind
.BoundaryAnchor:
1994
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
2009
case
SymbolicRegexNodeKind
.Loop:
2012
case
SymbolicRegexNodeKind
.Concat:
2016
case
SymbolicRegexNodeKind
.Alternate:
2020
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
2030
private static TSet ComputeStartSet(SymbolicRegexBuilder<TSet> builder,
SymbolicRegexNodeKind
kind, SymbolicRegexNode<TSet>? left, SymbolicRegexNode<TSet>? right)
2034
Debug.Assert(kind !=
SymbolicRegexNodeKind
.Singleton);
2039
case
SymbolicRegexNodeKind
.Epsilon:
2040
case
SymbolicRegexNodeKind
.FixedLengthMarker:
2041
case
SymbolicRegexNodeKind
.EndAnchor:
2042
case
SymbolicRegexNodeKind
.BeginningAnchor:
2043
case
SymbolicRegexNodeKind
.BoundaryAnchor:
2044
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
2045
case
SymbolicRegexNodeKind
.EOLAnchor:
2046
case
SymbolicRegexNodeKind
.EndAnchorZ:
2047
case
SymbolicRegexNodeKind
.EndAnchorZReverse:
2048
case
SymbolicRegexNodeKind
.BOLAnchor:
2049
case
SymbolicRegexNodeKind
.CaptureStart:
2050
case
SymbolicRegexNodeKind
.CaptureEnd:
2053
case
SymbolicRegexNodeKind
.Loop:
2057
case
SymbolicRegexNodeKind
.Concat:
2061
case
SymbolicRegexNodeKind
.Alternate:
2065
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
2066
case
SymbolicRegexNodeKind
.Effect:
2114
case
SymbolicRegexNodeKind
.BeginningAnchor:
2119
case
SymbolicRegexNodeKind
.EndAnchorZReverse:
2124
case
SymbolicRegexNodeKind
.BoundaryAnchor:
2131
case
SymbolicRegexNodeKind
.NonBoundaryAnchor:
2138
case
SymbolicRegexNodeKind
.Loop:
2145
case
SymbolicRegexNodeKind
.Concat:
2157
case
SymbolicRegexNodeKind
.Alternate:
2169
case
SymbolicRegexNodeKind
.Effect:
2178
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
2209
case
SymbolicRegexNodeKind
.FixedLengthMarker:
2212
case
SymbolicRegexNodeKind
.Alternate:
2226
case
SymbolicRegexNodeKind
.Concat:
2236
/// A <see cref="
SymbolicRegexNodeKind
.DisableBacktrackingSimulation"/> node on the top level will be unwrapped
2244
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
2247
Debug.Assert(_left._kind is not
SymbolicRegexNodeKind
.DisableBacktrackingSimulation);
2254
case
SymbolicRegexNodeKind
.Alternate:
2257
while (current._kind is
SymbolicRegexNodeKind
.Alternate)
2260
Debug.Assert(current._left._kind is not
SymbolicRegexNodeKind
.Alternate);
2304
case
SymbolicRegexNodeKind
.Singleton:
2307
case
SymbolicRegexNodeKind
.Concat:
2308
case
SymbolicRegexNodeKind
.Alternate:
2313
case
SymbolicRegexNodeKind
.Loop:
2356
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation:
2357
case
SymbolicRegexNodeKind
.Effect:
2386
case
SymbolicRegexNodeKind
.Loop:
2393
case
SymbolicRegexNodeKind
.Concat:
2399
case
SymbolicRegexNodeKind
.Effect:
2400
case
SymbolicRegexNodeKind
.DisableBacktrackingSimulation: