This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: regpiece(): More comments; white-space
authorKarl Williamson <khw@cpan.org>
Fri, 24 Apr 2020 18:03:44 +0000 (12:03 -0600)
committerKarl Williamson <khw@cpan.org>
Mon, 12 Oct 2020 15:45:47 +0000 (09:45 -0600)
regcomp.c

index d983428..bb4bbd0 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -12653,6 +12653,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
     else {  /* is '{' */
         const char* endptr;
 
+            /* Here is a quantifier, parse for min and max values */
         maxpos = NULL;
         next = RExC_parse + 1;
         while (isDIGIT(*next) || *next == ',') {
@@ -12755,6 +12756,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
             RExC_seen |= REG_UNBOUNDED_QUANTIFIER_SEEN;
     }
 
+    /* 'SIMPLE' operands don't require full generality */
     if ((flags&SIMPLE)) {
         if (max == REG_INFTY) {
             if (min == 1) {
@@ -12786,12 +12788,15 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
                 goto done_main_op;
             }
         }
+
+        /* Here, SIMPLE, but not the '*' and '+' special cases */
+
         MARK_NAUGHTY_EXP(2, 2);
         reginsert(pRExC_state, CURLY, ret, depth+1);
         Set_Node_Offset(REGNODE_p(ret), parse_start+1); /* MJD */
         Set_Node_Cur_Length(REGNODE_p(ret), parse_start);
     }
-    else {
+    else {  /* not SIMPLE */
         const regnode_offset w = reg_node(pRExC_state, WHILEM);
 
         FLAGS(REGNODE_p(w)) = 0;
@@ -12821,6 +12826,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
         MARK_NAUGHTY_EXP(1, 4);     /* compound interest */
     }
 
+    /* Finish up the CURLY/CURLYX case */
     FLAGS(REGNODE_p(ret)) = 0;
 
     ARG1_SET(REGNODE_p(ret), (U16)min);
@@ -12828,6 +12834,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
 
   done_main_op:
 
+    /* Process any greediness modifiers */
     if (*RExC_parse == '?') {
         nextchar(pRExC_state);
         reginsert(pRExC_state, MINMOD, ret, depth+1);
@@ -12849,6 +12856,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
         }
     }
 
+    /* Forbid extra quantifiers */
     if (ISMULT2(RExC_parse)) {
         RExC_parse++;
         vFAIL("Nested quantifiers");