This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
(retracted by #14307)
[perl5.git] / regcomp.h
index 7948853..9053242 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -286,6 +286,14 @@ struct regnode_charclass_class {   /* has [[:blah:]] classes */
 #define ANYOF_BITMAP_CLEAR(p,c)        (ANYOF_BITMAP_BYTE(p, c) &= ~ANYOF_BIT(c))
 #define ANYOF_BITMAP_TEST(p, c)        (ANYOF_BITMAP_BYTE(p, c) &   ANYOF_BIT(c))
 
+#define ANYOF_BITMAP_SETALL(p)         \
+       memset (ANYOF_BITMAP(p), 255, ANYOF_BITMAP_SIZE)
+#define ANYOF_BITMAP_CLEARALL(p)       \
+       Zero (ANYOF_BITMAP(p), ANYOF_BITMAP_SIZE)
+/* Check that all 256 bits are all set.  Used in S_cl_is_anything()  */
+#define ANYOF_BITMAP_TESTALLSET(p)     \
+       memEQ (ANYOF_BITMAP(p), "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377", ANYOF_BITMAP_SIZE)
+
 #define ANYOF_SKIP             ((ANYOF_SIZE - 1)/sizeof(regnode))
 #define ANYOF_CLASS_SKIP       ((ANYOF_CLASS_SIZE - 1)/sizeof(regnode))
 #define ANYOF_CLASS_ADD_SKIP   (ANYOF_CLASS_SKIP - ANYOF_SKIP)
@@ -311,7 +319,6 @@ struct regnode_charclass_class {    /* has [[:blah:]] classes */
 #define REG_SEEN_EVAL           8
 #define REG_SEEN_CANY          16
 #define REG_SEEN_SANY          REG_SEEN_CANY /* src bckwrd cmpt */
-#define REG_SEEN_SEOL          32
 
 START_EXTERN_C
 
@@ -358,7 +365,9 @@ typedef struct re_scream_pos_data_s
  *   n - Root of op tree for (?{EVAL}) item
  *   o - Start op for (?{EVAL}) item
  *   p - Pad for (?{EVAL} item
- *   s - swash for unicode-style character class
+ *   s - swash for unicode-style character class, and the multicharacter
+ *       strings resulting from casefolding the single-character entries
+ *       in the character class
  * 20010712 mjd@plover.com
  * (Remember to update re_dup() and pregfree() if you add any items.)
  */