X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/6bda09f9db748451f9bb2b0d8c798ce595a6609c..683d9ad15a8b09b17249f2efd39d10a9a251cd95:/regcomp.sym diff --git a/regcomp.sym b/regcomp.sym index 4365eb5..b0b9faf 100644 --- a/regcomp.sym +++ b/regcomp.sym @@ -12,6 +12,7 @@ # NAME \t TYPE, arg-description [num-args] [longjump-len] \t DESCRIPTION # # +# run perl regen.pl after editing this file @@ -76,9 +77,9 @@ BACK BACK, no Match "", "next" ptr points backward. #*Literals (33..35) -EXACT EXACT, sv Match this string (preceded by length). -EXACTF EXACT, sv Match this string, folded (prec. by length). -EXACTFL EXACT, sv Match this string, folded in locale (w/len). +EXACT EXACT, str Match this string (preceded by length). +EXACTF EXACT, str Match this string, folded (prec. by length). +EXACTFL EXACT, str Match this string, folded in locale (w/len). #*Do nothing types (36..37) @@ -97,9 +98,8 @@ STAR STAR, node Match this (simple) thing 0 or more times. PLUS PLUS, node Match this (simple) thing 1 or more times. CURLY CURLY, sv 2 Match this simple thing {n,m} times. -CURLYN CURLY, no 2 Match next-after-this simple thing -# {n,m} times, set parenths. -CURLYM CURLY, no 2 Match this medium-complex thing {n,m} times. +CURLYN CURLY, no 2 Capture next-after-this simple thing +CURLYM CURLY, no 2 Capture this medium-complex thing {n,m} times. CURLYX CURLY, sv 2 Match this complex thing {n,m} times. # This terminator creates a loop structure for CURLYX @@ -146,22 +146,59 @@ RENUM BRANCHJ,off 1 1 Group with independently numbered parens. # inline charclass data (ascii only), the 'C' store it in the structure. # NOTE: the relative order of the TRIE-like regops is signifigant -TRIE TRIE, trie 1 Match many EXACT(FL?)? at once. flags==type -TRIEC TRIE, trie charclass Same as TRIE, but with embedded charclass data +TRIE TRIE, trie 1 Match many EXACT(FL?)? at once. flags==type +TRIEC TRIE,trie charclass Same as TRIE, but with embedded charclass data # For start classes, contains an added fail table. -AHOCORASICK TRIE, trie 1 Aho Corasick stclass. flags==type -AHOCORASICKC TRIE, trie charclass Same as AHOCORASICK, but with embedded charclass data +AHOCORASICK TRIE, trie 1 Aho Corasick stclass. flags==type +AHOCORASICKC TRIE,trie charclass Same as AHOCORASICK, but with embedded charclass data -#*Recursion (65) -RECURSE RECURSE, num/ofs 2L recurse to paren arg1 at (signed) ofs arg2 -SRECURSE RECURSE, no recurse to start of pattern +#*Regex Subroutines (65..66) +GOSUB GOSUB, num/ofs 2L recurse to paren arg1 at (signed) ofs arg2 +GOSTART GOSTART, no recurse to start of pattern -# NEW STUFF ABOVE THIS LINE -- Please update counts below. +#*Named references (67..69) +NREF REF, no-sv 1 Match some already matched string +NREFF REF, no-sv 1 Match already matched string, folded +NREFFL REF, no-sv 1 Match already matched string, folded in loc. + + +#*Special conditionals (70..72) +NGROUPP NGROUPP, no-sv 1 Whether the group matched. +INSUBP INSUBP, num 1 Whether we are in a specific recurse. +DEFINEP DEFINEP, none 1 Never execute directly. + +#*Bactracking Verbs +ENDLIKE ENDLIKE, none Used only for the type field of verbs +OPFAIL ENDLIKE, none Same as (?!) +ACCEPT ENDLIKE, parno 1 Accepts the current matched string. + + +#*Verbs With Arguments +VERB VERB, no-sv 1 Used only for the type field of verbs +PRUNE VERB, no-sv 1 Pattern fails at this startpoint if no-backtracking through this +MARKPOINT VERB, no-sv 1 Push the current location for rollback by cut. +SKIP VERB, no-sv 1 On failure skip forward (to the mark) before retrying +COMMIT VERB, no-sv 1 Pattern fails outright if backtracking through this +CUTGROUP VERB, no-sv 1 On failure go to the next alternation in the group + +#*Control what to keep in $&. +KEEPS KEEPS, no $& begins here. + +#*New charclass like patterns +LNBREAK LNBREAK, none generic newline pattern +VERTWS VERTWS, none vertical whitespace (Perl 6) +NVERTWS NVERTWS, none not vertical whitespace (Perl 6) +HORIZWS HORIZWS, none horizontal whitespace (Perl 6) +NHORIZWS NHORIZWS, none not horizontal whitespace (Perl 6) + +FOLDCHAR FOLDCHAR, codepoint 1 codepoint with tricky case folding properties. + +# NEW STUFF ABOVE THIS LINE ################################################################################ -#*SPECIAL REGOPS (65, 66) +#*SPECIAL REGOPS # This is not really a node, but an optimized away piece of a "long" node. # To simplify debugging output, we mark it as if it were a node @@ -186,10 +223,14 @@ PSEUDO PSEUDO,off Pseudo opcode for internal use. # TRIE next:FAIL EVAL AB:FAIL -CURLYX resume -WHILEM resume:6 +CURLYX end:FAIL +WHILEM A_pre,A_min,A_max,B_min,B_max:FAIL BRANCH next:FAIL CURLYM A,B:FAIL IFMATCH A:FAIL CURLY B_min_known,B_min,B_max:FAIL - +COMMIT next:FAIL +MARKPOINT next:FAIL +SKIP next:FAIL +CUTGROUP next:FAIL +KEEPS next:FAIL