210 references to RegexOpcode
System.Text.RegularExpressions (210)
System\Text\RegularExpressions\RegexInterpreter.cs (108)
33private RegexOpcode _operator; 50SetOperator((RegexOpcode)_code.Codes[_codepos]); 59SetOperator((RegexOpcode)_code.Codes[newpos]); 135int back = (int)RegexOpcode.Backtracking; 139back = (int)RegexOpcode.BacktrackingSecond; 141SetOperator((RegexOpcode)(_code.Codes[newpos] | back)); 150private void SetOperator(RegexOpcode op) 152_operator = op & ~RegexOpcode.RightToLeft; 153_rightToLeft = (op & RegexOpcode.RightToLeft) != 0; 371SetOperator((RegexOpcode)_code.Codes[0]); 387case RegexOpcode.Stop: 390case RegexOpcode.Nothing: 393case RegexOpcode.Goto: 397case RegexOpcode.TestBackreference: 405case RegexOpcode.Lazybranch: 410case RegexOpcode.Lazybranch | RegexOpcode.Backtracking: 416case RegexOpcode.Setmark: 422case RegexOpcode.Nullmark: 428case RegexOpcode.Setmark | RegexOpcode.Backtracking: 429case RegexOpcode.Nullmark | RegexOpcode.Backtracking: 433case RegexOpcode.Getmark: 440case RegexOpcode.Getmark | RegexOpcode.Backtracking: 445case RegexOpcode.Capturemark: 463case RegexOpcode.Capturemark | RegexOpcode.Backtracking: 473case RegexOpcode.Branchmark: 490case RegexOpcode.Branchmark | RegexOpcode.Backtracking: 498case RegexOpcode.Branchmark | RegexOpcode.BacktrackingSecond: 503case RegexOpcode.Lazybranchmark: 533case RegexOpcode.Lazybranchmark | RegexOpcode.Backtracking: 553case RegexOpcode.Lazybranchmark | RegexOpcode.BacktrackingSecond: 569case RegexOpcode.Setcount: 575case RegexOpcode.Nullcount: 581case RegexOpcode.Setcount | RegexOpcode.Backtracking: 582case RegexOpcode.Nullcount | RegexOpcode.Backtracking: 583case RegexOpcode.Setjump | RegexOpcode.Backtracking: 587case RegexOpcode.Branchcount: 612case RegexOpcode.Branchcount | RegexOpcode.Backtracking: 631case RegexOpcode.Branchcount | RegexOpcode.BacktrackingSecond: 639case RegexOpcode.Lazybranchcount: 663case RegexOpcode.Lazybranchcount | RegexOpcode.Backtracking: 689case RegexOpcode.Lazybranchcount | RegexOpcode.BacktrackingSecond: 700case RegexOpcode.Setjump: 707case RegexOpcode.Backjump: 719case RegexOpcode.Forejump: 729case RegexOpcode.Forejump | RegexOpcode.Backtracking: 739case RegexOpcode.Bol: 750case RegexOpcode.Eol: 761case RegexOpcode.Boundary: 769case RegexOpcode.NonBoundary: 777case RegexOpcode.ECMABoundary: 785case RegexOpcode.NonECMABoundary: 793case RegexOpcode.Beginning: 801case RegexOpcode.Start: 809case RegexOpcode.EndZ: 820case RegexOpcode.End: 828case RegexOpcode.One: 836case RegexOpcode.Notone: 844case RegexOpcode.Set: 860case RegexOpcode.Multi: 868case RegexOpcode.Backreference: 869case RegexOpcode.Backreference | RegexOpcode.CaseInsensitive: 874if (!MatchRef(MatchIndex(capnum), MatchLength(capnum), inputSpan, (_operator & RegexOpcode.CaseInsensitive) != 0)) 890case RegexOpcode.Onerep: 910case RegexOpcode.Notonerep: 930case RegexOpcode.Setrep: 953case RegexOpcode.Oneloop: 954case RegexOpcode.Oneloopatomic: 969if (len > i && _operator == RegexOpcode.Oneloop) 977case RegexOpcode.Notoneloop: 978case RegexOpcode.Notoneloopatomic: 1012if (len > i && _operator == RegexOpcode.Notoneloop) 1020case RegexOpcode.Setloop: 1021case RegexOpcode.Setloopatomic: 1038if (len > i && _operator == RegexOpcode.Setloop) 1046case RegexOpcode.Oneloop | RegexOpcode.Backtracking: 1047case RegexOpcode.Notoneloop | RegexOpcode.Backtracking: 1048case RegexOpcode.Setloop | RegexOpcode.Backtracking: 1062case RegexOpcode.Onelazy: 1063case RegexOpcode.Notonelazy: 1064case RegexOpcode.Setlazy: 1075case RegexOpcode.Onelazy | RegexOpcode.Backtracking: 1095case RegexOpcode.Notonelazy | RegexOpcode.Backtracking: 1115case RegexOpcode.Setlazy | RegexOpcode.Backtracking: 1136case RegexOpcode.UpdateBumpalong:
System\Text\RegularExpressions\RegexInterpreterCode.cs (22)
26public static bool OpcodeBacktracks(RegexOpcode opcode) 28opcode &= RegexOpcode.OperatorMask; 30RegexOpcode.Oneloop or 31RegexOpcode.Onelazy or 32RegexOpcode.Notoneloop or 33RegexOpcode.Notonelazy or 34RegexOpcode.Setloop or 35RegexOpcode.Setlazy or 36RegexOpcode.Lazybranch or 37RegexOpcode.Branchmark or 38RegexOpcode.Lazybranchmark or 39RegexOpcode.Nullcount or 40RegexOpcode.Setcount or 41RegexOpcode.Branchcount or 42RegexOpcode.Lazybranchcount or 43RegexOpcode.Setmark or 44RegexOpcode.Capturemark or 45RegexOpcode.Getmark or 46RegexOpcode.Setjump or 47RegexOpcode.Backjump or 48RegexOpcode.Forejump or 49RegexOpcode.Goto;
System\Text\RegularExpressions\RegexNodeKind.cs (26)
17One = RegexOpcode.One, 20Notone = RegexOpcode.Notone, 23Set = RegexOpcode.Set, 27Multi = RegexOpcode.Multi, 34Oneloop = RegexOpcode.Oneloop, 38Notoneloop = RegexOpcode.Notoneloop, 42Setloop = RegexOpcode.Setloop, 47Onelazy = RegexOpcode.Onelazy, 51Notonelazy = RegexOpcode.Notonelazy, 55Setlazy = RegexOpcode.Setlazy, 62Oneloopatomic = RegexOpcode.Oneloopatomic, 68Notoneloopatomic = RegexOpcode.Notoneloopatomic, 74Setloopatomic = RegexOpcode.Setloopatomic, 78Backreference = RegexOpcode.Backreference, 81Bol = RegexOpcode.Bol, 83Eol = RegexOpcode.Eol, 85Boundary = RegexOpcode.Boundary, 87NonBoundary = RegexOpcode.NonBoundary, 89ECMABoundary = RegexOpcode.ECMABoundary, 91NonECMABoundary = RegexOpcode.NonECMABoundary, 93Beginning = RegexOpcode.Beginning, 95Start = RegexOpcode.Start, 97EndZ = RegexOpcode.EndZ, 99End = RegexOpcode.End, 102UpdateBumpalong = RegexOpcode.UpdateBumpalong, 105Nothing = RegexOpcode.Nothing,
System\Text\RegularExpressions\RegexOpcode.cs (1)
10/// each of which is an <see cref="RegexOpcode"/> stored as an int, followed immediately by all of the operands
System\Text\RegularExpressions\RegexWriter.cs (53)
75Emit(RegexOpcode.Lazybranch, 0); 111Emit(RegexOpcode.Stop); 139private void Emit(RegexOpcode op) 150private void Emit(RegexOpcode op, int opd1) 162private void Emit(RegexOpcode op, int opd1, int opd2) 203RegexOpcode bits = 0; 206bits |= RegexOpcode.RightToLeft; 210bits |= RegexOpcode.CaseInsensitive; 224Emit(RegexOpcode.Lazybranch, 0); 234Emit(RegexOpcode.Goto, 0); 251Emit(RegexOpcode.Setjump); 253Emit(RegexOpcode.Lazybranch, 0); 254Emit(RegexOpcode.TestBackreference, RegexParser.MapCaptureNumber(node.M, _tree.CaptureNumberSparseMapping)); 255Emit(RegexOpcode.Forejump); 267Emit(RegexOpcode.Goto, 0); 269Emit(RegexOpcode.Forejump); 282Emit(RegexOpcode.Setjump); 283Emit(RegexOpcode.Setmark); 285Emit(RegexOpcode.Lazybranch, 0); 294Emit(RegexOpcode.Getmark); 295Emit(RegexOpcode.Forejump); 300Emit(RegexOpcode.Goto, 0); 302Emit(RegexOpcode.Getmark); 303Emit(RegexOpcode.Forejump); 315Emit(node.M == 0 ? RegexOpcode.Nullcount : RegexOpcode.Setcount, node.M == 0 ? 0 : 1 - node.M); 317Emit(node.M == 0 ? RegexOpcode.Nullmark : RegexOpcode.Setmark); 322Emit(RegexOpcode.Goto, 0); 334Emit(RegexOpcode.Branchcount + Lazy, _intStack.Pop(), node.N == int.MaxValue ? int.MaxValue : node.N - node.M); 336Emit(RegexOpcode.Branchmark + Lazy, _intStack.Pop()); 344Emit(RegexOpcode.Setmark); 348Emit(RegexOpcode.Capturemark, RegexParser.MapCaptureNumber(node.M, _tree.CaptureNumberSparseMapping), RegexParser.MapCaptureNumber(node.N, _tree.CaptureNumberSparseMapping)); 352Emit(RegexOpcode.Setjump); // causes lookahead/lookbehind to be non-backtracking 353Emit(RegexOpcode.Setmark); 357Emit(RegexOpcode.Getmark); 358Emit(RegexOpcode.Forejump); // causes lookahead/lookbehind to be non-backtracking 362Emit(RegexOpcode.Setjump); 364Emit(RegexOpcode.Lazybranch, 0); 368Emit(RegexOpcode.Backjump); 370Emit(RegexOpcode.Forejump); 374Emit(RegexOpcode.Setjump); 378Emit(RegexOpcode.Forejump); 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); 410Emit(RegexOpcode.Setrep | bits, stringCode, node.M); 414Emit((RegexOpcode)node.Kind | bits, stringCode, (node.N == int.MaxValue) ? int.MaxValue : node.N - node.M); 420Emit((RegexOpcode)node.Kind | bits, StringCode(node.Str!)); 424Emit((RegexOpcode)node.Kind | bits, StringCode(node.Str!)); 428Emit((RegexOpcode)node.Kind | bits, RegexParser.MapCaptureNumber(node.M, _tree.CaptureNumberSparseMapping)); 443Emit((RegexOpcode)node.Kind);