This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Adjust the skip count for t/io/dup.t for the -Uuseperlio case, in a way
[perl5.git] / regcomp.sym
index 4365eb5..b0b9faf 100644 (file)
@@ -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,  s     Match this string (preceded by length).
-EXACTF         EXACT,  s     Match this string, folded (prec. by length).
-EXACTFL                EXACT,  s     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