1 instantiation of RegexCode
System (1)
regex\system\text\regularexpressions\RegexWriter.cs (1)
301return new RegexCode(_emitted, _stringtable, _trackcount, _caps, capsize, bmPrefix, fcPrefix, anchors, rtl);
442 references to RegexCode
System (442)
regex\system\text\regularexpressions\Regex.cs (4)
182internal RegexCode code; // if interpreted, this is the code for RegexIntepreter 445internal RegexRunnerFactory Compile(RegexCode code, RegexOptions roptions) { 1432internal RegexCode _code; 1449internal CachedCodeEntry(string key, Hashtable capnames, String[] capslist, RegexCode code, Hashtable caps, int capsize, ExclusiveReference runner, SharedReference repl)
regex\system\text\regularexpressions\RegexCompiler.cs (273)
93internal RegexCode _code; // the RegexCode object (used for debugging only) 193internal static RegexRunnerFactory Compile(RegexCode code, RegexOptions options) { 233RegexCode code = RegexWriter.Write(tree); 289return AddTrack(RegexCode.Back); 317return AddUniqueTrack(i, RegexCode.Back); 357return(_regexopcode & RegexCode.Rtl) != 0; 364return(_regexopcode & RegexCode.Ci) != 0; 387return _regexopcode & RegexCode.Mask; 785Ldc(AddUniqueTrack(i, RegexCode.Back2)); 958return _codepos + RegexCode.OpcodeSize(_codes[_codepos]); 999for (codepos = 0; codepos < _codes.Length; codepos += RegexCode.OpcodeSize(_codes[codepos])) { 1022for (codepos = 0; codepos < _codes.Length; codepos += RegexCode.OpcodeSize(_codes[codepos])) { 1646case RegexCode.Stop: 1652case RegexCode.Nothing: 1657case RegexCode.Goto: 1662case RegexCode.Testref: 1671case RegexCode.Lazybranch: 1677case RegexCode.Lazybranch | RegexCode.Back: 1686case RegexCode.Nullmark: 1695case RegexCode.Setmark: 1702case RegexCode.Nullmark | RegexCode.Back: 1703case RegexCode.Setmark | RegexCode.Back: 1710case RegexCode.Getmark: 1723case RegexCode.Getmark | RegexCode.Back: 1733case RegexCode.Capturemark: 1783case RegexCode.Capturemark | RegexCode.Back: 1802case RegexCode.Branchmark: 1842case RegexCode.Branchmark | RegexCode.Back: 1857case RegexCode.Branchmark | RegexCode.Back2: 1868case RegexCode.Lazybranchmark: 1924case RegexCode.Lazybranchmark | RegexCode.Back: 1938case RegexCode.Lazybranchmark | RegexCode.Back2: 1949case RegexCode.Nullcount: 1961case RegexCode.Setcount: 1972case RegexCode.Nullcount | RegexCode.Back: 1973case RegexCode.Setcount | RegexCode.Back: 1981case RegexCode.Branchcount: 2039case RegexCode.Branchcount | RegexCode.Back: 2080case RegexCode.Branchcount | RegexCode.Back2: 2094case RegexCode.Lazybranchcount: 2145case RegexCode.Lazybranchcount | RegexCode.Back: 2195case RegexCode.Lazybranchcount | RegexCode.Back2: 2214case RegexCode.Setjump: 2230case RegexCode.Setjump | RegexCode.Back: 2237case RegexCode.Backjump: 2272case RegexCode.Forejump: 2287case RegexCode.Forejump | RegexCode.Back: 2317case RegexCode.Bol: 2331case RegexCode.Eol: 2345case RegexCode.Boundary: 2346case RegexCode.Nonboundary: 2354if (Code() == RegexCode.Boundary) 2360case RegexCode.ECMABoundary: 2361case RegexCode.NonECMABoundary: 2369if (Code() == RegexCode.ECMABoundary) 2375case RegexCode.Beginning: 2383case RegexCode.Start: 2391case RegexCode.EndZ: 2407case RegexCode.End: 2415case RegexCode.One: 2416case RegexCode.Notone: 2417case RegexCode.Set: 2418case RegexCode.One | RegexCode.Rtl: 2419case RegexCode.Notone | RegexCode.Rtl: 2420case RegexCode.Set | RegexCode.Rtl: 2421case RegexCode.One | RegexCode.Ci: 2422case RegexCode.Notone | RegexCode.Ci: 2423case RegexCode.Set | RegexCode.Ci: 2424case RegexCode.One | RegexCode.Ci | RegexCode.Rtl: 2425case RegexCode.Notone | RegexCode.Ci | RegexCode.Rtl: 2426case RegexCode.Set | RegexCode.Ci | RegexCode.Rtl: 2446if (Code() == RegexCode.Set) { 2455if (Code() == RegexCode.One) 2462case RegexCode.Multi: 2463case RegexCode.Multi | RegexCode.Ci: 2515case RegexCode.Multi | RegexCode.Rtl: 2516case RegexCode.Multi | RegexCode.Ci | RegexCode.Rtl: 2560case RegexCode.Ref: 2561case RegexCode.Ref | RegexCode.Rtl: 2562case RegexCode.Ref | RegexCode.Ci: 2563case RegexCode.Ref | RegexCode.Ci | RegexCode.Rtl: 2657case RegexCode.Onerep: 2658case RegexCode.Notonerep: 2659case RegexCode.Setrep: 2660case RegexCode.Onerep | RegexCode.Rtl: 2661case RegexCode.Notonerep | RegexCode.Rtl: 2662case RegexCode.Setrep | RegexCode.Rtl: 2663case RegexCode.Onerep | RegexCode.Ci: 2664case RegexCode.Notonerep | RegexCode.Ci: 2665case RegexCode.Setrep | RegexCode.Ci: 2666case RegexCode.Onerep | RegexCode.Ci | RegexCode.Rtl: 2667case RegexCode.Notonerep | RegexCode.Ci | RegexCode.Rtl: 2668case RegexCode.Setrep | RegexCode.Ci | RegexCode.Rtl: 2727if (Code() == RegexCode.Setrep) { 2739if (Code() == RegexCode.Onerep) 2746if (Code() == RegexCode.Setrep) 2754case RegexCode.Oneloop: 2755case RegexCode.Notoneloop: 2756case RegexCode.Setloop: 2757case RegexCode.Oneloop | RegexCode.Rtl: 2758case RegexCode.Notoneloop | RegexCode.Rtl: 2759case RegexCode.Setloop | RegexCode.Rtl: 2760case RegexCode.Oneloop | RegexCode.Ci: 2761case RegexCode.Notoneloop | RegexCode.Ci: 2762case RegexCode.Setloop | RegexCode.Ci: 2763case RegexCode.Oneloop | RegexCode.Ci | RegexCode.Rtl: 2764case RegexCode.Notoneloop | RegexCode.Ci | RegexCode.Rtl: 2765case RegexCode.Setloop | RegexCode.Ci | RegexCode.Rtl: 2823if (Code() == RegexCode.Setloop) 2835if (Code() == RegexCode.Setloop) { 2846if (Code() == RegexCode.Oneloop) 2880case RegexCode.Oneloop | RegexCode.Back: 2881case RegexCode.Notoneloop | RegexCode.Back: 2882case RegexCode.Setloop | RegexCode.Back: 2883case RegexCode.Oneloop | RegexCode.Rtl | RegexCode.Back: 2884case RegexCode.Notoneloop | RegexCode.Rtl | RegexCode.Back: 2885case RegexCode.Setloop | RegexCode.Rtl | RegexCode.Back: 2886case RegexCode.Oneloop | RegexCode.Ci | RegexCode.Back: 2887case RegexCode.Notoneloop | RegexCode.Ci | RegexCode.Back: 2888case RegexCode.Setloop | RegexCode.Ci | RegexCode.Back: 2889case RegexCode.Oneloop | RegexCode.Ci | RegexCode.Rtl | RegexCode.Back: 2890case RegexCode.Notoneloop | RegexCode.Ci | RegexCode.Rtl | RegexCode.Back: 2891case RegexCode.Setloop | RegexCode.Ci | RegexCode.Rtl | RegexCode.Back: 2920case RegexCode.Onelazy: 2921case RegexCode.Notonelazy: 2922case RegexCode.Setlazy: 2923case RegexCode.Onelazy | RegexCode.Rtl: 2924case RegexCode.Notonelazy | RegexCode.Rtl: 2925case RegexCode.Setlazy | RegexCode.Rtl: 2926case RegexCode.Onelazy | RegexCode.Ci: 2927case RegexCode.Notonelazy | RegexCode.Ci: 2928case RegexCode.Setlazy | RegexCode.Ci: 2929case RegexCode.Onelazy | RegexCode.Ci | RegexCode.Rtl: 2930case RegexCode.Notonelazy | RegexCode.Ci | RegexCode.Rtl: 2931case RegexCode.Setlazy | RegexCode.Ci | RegexCode.Rtl: 2977case RegexCode.Onelazy | RegexCode.Back: 2978case RegexCode.Notonelazy | RegexCode.Back: 2979case RegexCode.Setlazy | RegexCode.Back: 2980case RegexCode.Onelazy | RegexCode.Rtl | RegexCode.Back: 2981case RegexCode.Notonelazy | RegexCode.Rtl | RegexCode.Back: 2982case RegexCode.Setlazy | RegexCode.Rtl | RegexCode.Back: 2983case RegexCode.Onelazy | RegexCode.Ci | RegexCode.Back: 2984case RegexCode.Notonelazy | RegexCode.Ci | RegexCode.Back: 2985case RegexCode.Setlazy | RegexCode.Ci | RegexCode.Back: 2986case RegexCode.Onelazy | RegexCode.Ci | RegexCode.Rtl | RegexCode.Back: 2987case RegexCode.Notonelazy | RegexCode.Ci | RegexCode.Rtl | RegexCode.Back: 2988case RegexCode.Setlazy | RegexCode.Ci | RegexCode.Rtl | RegexCode.Back: 3011if (Code() == RegexCode.Setlazy) { 3019if (Code() == RegexCode.Onelazy) 3123internal Type FactoryTypeFromCode(RegexCode code, RegexOptions options, String typeprefix) { 3186internal void GenerateRegexType(String pattern, RegexOptions opts, String name, bool ispublic, RegexCode code, RegexTree tree, Type factory, TimeSpan matchTimeout) { 3415internal RegexRunnerFactory FactoryInstanceFromCode(RegexCode code, RegexOptions options) {
regex\system\text\regularexpressions\RegexInterpreter.cs (96)
24internal RegexCode runcode; 36internal RegexInterpreter(RegexCode code, CultureInfo culture) { 135SetOperator(runcodes[newpos] | RegexCode.Back2); 138SetOperator(runcodes[newpos] | RegexCode.Back); 149runci = (0 != (op & RegexCode.Ci)); 150runrtl = (0 != (op & RegexCode.Rtl)); 151runoperator = op & ~(RegexCode.Rtl | RegexCode.Ci); 417case RegexCode.Stop: 420case RegexCode.Nothing: 423case RegexCode.Goto: 427case RegexCode.Testref: 433case RegexCode.Lazybranch: 438case RegexCode.Lazybranch | RegexCode.Back: 444case RegexCode.Setmark: 450case RegexCode.Nullmark: 456case RegexCode.Setmark | RegexCode.Back: 457case RegexCode.Nullmark | RegexCode.Back: 461case RegexCode.Getmark: 468case RegexCode.Getmark | RegexCode.Back: 473case RegexCode.Capturemark: 487case RegexCode.Capturemark | RegexCode.Back: 496case RegexCode.Branchmark: 515case RegexCode.Branchmark | RegexCode.Back: 523case RegexCode.Branchmark | RegexCode.Back2: 528case RegexCode.Lazybranchmark: 556case RegexCode.Lazybranchmark | RegexCode.Back: 574case RegexCode.Lazybranchmark | RegexCode.Back2: 582case RegexCode.Setcount: 588case RegexCode.Nullcount: 594case RegexCode.Setcount | RegexCode.Back: 598case RegexCode.Nullcount | RegexCode.Back: 602case RegexCode.Branchcount: 624case RegexCode.Branchcount | RegexCode.Back: 641case RegexCode.Branchcount | RegexCode.Back2: 650case RegexCode.Lazybranchcount: 671case RegexCode.Lazybranchcount | RegexCode.Back: 694case RegexCode.Lazybranchcount | RegexCode.Back2: 705case RegexCode.Setjump: 711case RegexCode.Setjump | RegexCode.Back: 715case RegexCode.Backjump: 727case RegexCode.Forejump: 737case RegexCode.Forejump | RegexCode.Back: 747case RegexCode.Bol: 753case RegexCode.Eol: 759case RegexCode.Boundary: 765case RegexCode.Nonboundary: 771case RegexCode.ECMABoundary: 777case RegexCode.NonECMABoundary: 783case RegexCode.Beginning: 789case RegexCode.Start: 795case RegexCode.EndZ: 801case RegexCode.End: 807case RegexCode.One: 814case RegexCode.Notone: 821case RegexCode.Set: 828case RegexCode.Multi: 837case RegexCode.Ref: 853case RegexCode.Onerep: 870case RegexCode.Notonerep: 887case RegexCode.Setrep: 915case RegexCode.Oneloop: 939case RegexCode.Notoneloop: 963case RegexCode.Setloop: 996case RegexCode.Oneloop | RegexCode.Back: 997case RegexCode.Notoneloop | RegexCode.Back: 1012case RegexCode.Setloop | RegexCode.Back: 1027case RegexCode.Onelazy: 1028case RegexCode.Notonelazy: 1042case RegexCode.Setlazy: 1056case RegexCode.Onelazy | RegexCode.Back: 1074case RegexCode.Notonelazy | RegexCode.Back: 1092case RegexCode.Setlazy | RegexCode.Back:
regex\system\text\regularexpressions\RegexNode.cs (21)
63internal const int Oneloop = RegexCode.Oneloop; // c,n a* 64internal const int Notoneloop = RegexCode.Notoneloop; // c,n .* 65internal const int Setloop = RegexCode.Setloop; // set,n \d* 67internal const int Onelazy = RegexCode.Onelazy; // c,n a*? 68internal const int Notonelazy = RegexCode.Notonelazy; // c,n .*? 69internal const int Setlazy = RegexCode.Setlazy; // set,n \d*? 71internal const int One = RegexCode.One; // char a 72internal const int Notone = RegexCode.Notone; // char . [^a] 73internal const int Set = RegexCode.Set; // set [a-z] \w \s \d 75internal const int Multi = RegexCode.Multi; // string abcdef 76internal const int Ref = RegexCode.Ref; // index \1 78internal const int Bol = RegexCode.Bol; // ^ 79internal const int Eol = RegexCode.Eol; // $ 80internal const int Boundary = RegexCode.Boundary; // \b 81internal const int Nonboundary= RegexCode.Nonboundary;// \B 82internal const int ECMABoundary = RegexCode.ECMABoundary; // \b 83internal const int NonECMABoundary= RegexCode.NonECMABoundary; // \B 84internal const int Beginning = RegexCode.Beginning; // \A 85internal const int Start = RegexCode.Start; // \G 86internal const int EndZ = RegexCode.EndZ; // \Z 87internal const int End = RegexCode.End; // \z
regex\system\text\regularexpressions\RegexWriter.cs (48)
48internal static RegexCode Write(RegexTree t) { 50RegexCode retval = w.RegexCodeFromRegexTree(t); 123if (RegexCode.OpcodeBacktracks(op)) 136if (RegexCode.OpcodeBacktracks(op)) 150if (RegexCode.OpcodeBacktracks(op)) 222internal RegexCode RegexCodeFromRegexTree(RegexTree tree) { 254Emit(RegexCode.Lazybranch, 0); 280Emit(RegexCode.Stop); 314bits |= RegexCode.Rtl; 316bits |= RegexCode.Ci; 328Emit(RegexCode.Lazybranch, 0); 337Emit(RegexCode.Goto, 0); 352Emit(RegexCode.Setjump); 354Emit(RegexCode.Lazybranch, 0); 355Emit(RegexCode.Testref, MapCapnum(node._m)); 356Emit(RegexCode.Forejump); 366Emit(RegexCode.Goto, 0); 368Emit(RegexCode.Forejump); 383Emit(RegexCode.Setjump); 384Emit(RegexCode.Setmark); 386Emit(RegexCode.Lazybranch, 0); 394Emit(RegexCode.Getmark); 395Emit(RegexCode.Forejump); 400Emit(RegexCode.Goto, 0); 402Emit(RegexCode.Getmark); 403Emit(RegexCode.Forejump); 419Emit(node._m == 0 ? RegexCode.Nullcount : RegexCode.Setcount, node._m == 0 ? 0 : 1 - node._m); 421Emit(node._m == 0 ? RegexCode.Nullmark : RegexCode.Setmark); 425Emit(RegexCode.Goto, 0); 436Emit(RegexCode.Branchcount + Lazy, PopInt(), node._n == Int32.MaxValue ? Int32.MaxValue : node._n - node._m); 438Emit(RegexCode.Branchmark + Lazy, PopInt()); 450Emit(RegexCode.Setmark); 454Emit(RegexCode.Capturemark, MapCapnum(node._m), MapCapnum(node._n)); 460Emit(RegexCode.Setjump); 463Emit(RegexCode.Setmark); 467Emit(RegexCode.Getmark); 471Emit(RegexCode.Forejump); 476Emit(RegexCode.Setjump); 478Emit(RegexCode.Lazybranch, 0); 482Emit(RegexCode.Backjump); 484Emit(RegexCode.Forejump); 488Emit(RegexCode.Setjump); 492Emit(RegexCode.Forejump); 506RegexCode.Onerep : RegexCode.Notonerep) | bits, (int)node._ch, node._m); 515Emit(RegexCode.Setrep | bits, StringCode(node._str), node._m);