//------------------------------------------------------------------------------------------------------- // Copyright (C) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. //------------------------------------------------------------------------------------------------------- // These byte codes _cannot_ appear in the regexOpCode field of a Node. RegOp(GreedyStar ,Rev,Lng, 0 , 0 ) // 00/00 * label, cchMinRem RegOp(RevBranch ,Rev,Lng,Lng, 0 ) // 01/01 label, cchMinRem, pnode->cchMinTot RegOp(GreedyLoop ,Rev,Lng,Lng,Lng) // 02/02 label, min, max, cchMinRem RegOp(LoopInit ,Fwd,Int,Lng, 0 ) // 03/03 label, #, min RegOp(GreedyLoopTest ,Rev,Int,Lng,Lng) // 04/04 label, #, max-min, cchMinRem RegOp(NonGreedyStar ,Rev,Lng, 0 , 0 ) // 05 * label, cchMinRem RegOp(NonGreedyLoop ,Rev,Lng,Lng,Lng) // 06 label, min, max, cchMinRem RegOp(NonGreedyLoopTest,Rev,Int,Lng,Lng) // 07 label, #, max-min, cchMinRem RegOp(Open ,Int, 0 , 0 , 0 ) // 05/08 ( # RegOp(Close ,Int, 0 , 0 , 0 ) // 06/09 ) # RegOp(MatchOne ,Chr, 0 , 0 , 0 ) // 07/0A character RegOp(Need ,Lng, 0 , 0 , 0 ) // 08/0B cchMinRem RegOp(Fail , 0 , 0 , 0 , 0 ) // 09/0C no way to match this RegOp(Jump ,Fwd, 0 , 0 , 0 ) // 0A/0D label RegOp(PosLookahead ,Fwd, 0 , 0 , 0 ) // 0E label RegOp(NegLookahead ,Fwd, 0 , 0 , 0 ) // 0F label RegOp(LookaheadEnd , 0 , 0 , 0 , 0 ) // 10 RegOp(End , 0 , 0 , 0 , 0 ) // 0B/11 // These byte codes _can_ appear in the regexOpCode field of a Node. RegOp(Branch ,Fwd, 0 , 0 , 0 ) // 0C/12 label RegOp(Match ,Cch, 0 , 0 , 0 ) // 0D/13 cch, characters RegOp(MatchGroup ,Int, 0 , 0 , 0 ) // 0E/14 \1 # RegOp(Head , 0 , 0 , 0 , 0 ) // 0F/15 ^ RegOp(Tail , 0 , 0 , 0 , 0 ) // 10/16 $ RegOp(WordBound , 0 , 0 , 0 , 0 ) // 11/17 \b RegOp(NotWordBound , 0 , 0 , 0 , 0 ) // 12/18 \B RegOp(Any , 0 , 0 , 0 , 0 ) // 13/19 No longer used RegOp(AnyOf ,Cch, 0 , 0 , 0 ) // 14/1A [] cch, transition characters RegOp(AnyBut ,Cch, 0 , 0 , 0 ) // 15/1B [^] cch, transition characters RegOp(Digit , 0 , 0 , 0 , 0 ) // 16/1C \d RegOp(NotDigit , 0 , 0 , 0 , 0 ) // 17/1D \D RegOp(Space , 0 , 0 , 0 , 0 ) // 18/1E \s RegOp(NotSpace , 0 , 0 , 0 , 0 ) // 19/1F \S RegOp(Letter , 0 , 0 , 0 , 0 ) // 1A/20 \w RegOp(NotLetter , 0 , 0 , 0 , 0 ) // 1B/21 \W RegOp(NotLF , 0 , 0 , 0 , 0 ) // 1C/22 . RegOp(Dummy , 0 , 0 , 0 , 0 ) // 1D/23 Dummy. Default opcode to check for absence of opcode #undef RegOp