It turns out that it is more convenient for the complement of a node to
have a regkind that is also the complement of a node. This creates
slight inconveniences that are included in this patch, but will help
further patches.
ret = reg_node(pRExC_state, op);
ret = reg_node(pRExC_state, op);
- if (PL_regkind[op] == POSIXD) {
+ if (PL_regkind[op] == POSIXD || PL_regkind[op] == NPOSIXD) {
if (! SIZE_ONLY) {
FLAGS(ret) = arg;
}
if (! SIZE_ONLY) {
FLAGS(ret) = arg;
}
Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
}
Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
}
- else if (k == POSIXD) {
+ else if (k == POSIXD || k == NPOSIXD) {
U8 index = FLAGS(o) * 2;
if (index > (sizeof(anyofs) / sizeof(anyofs[0]))) {
Perl_sv_catpvf(aTHX_ sv, "[illegal type=%d])", index);
U8 index = FLAGS(o) * 2;
if (index > (sizeof(anyofs) / sizeof(anyofs[0]))) {
Perl_sv_catpvf(aTHX_ sv, "[illegal type=%d])", index);
POSIXL POSIXD, none 0 S ; currently unused except as a placeholder
POSIXU POSIXD, none 0 S ; currently unused except as a placeholder
POSIXA POSIXD, none 0 S ; Some [[:class:]] under /a; the FLAGS field gives which one
POSIXL POSIXD, none 0 S ; currently unused except as a placeholder
POSIXU POSIXD, none 0 S ; currently unused except as a placeholder
POSIXA POSIXD, none 0 S ; Some [[:class:]] under /a; the FLAGS field gives which one
-NPOSIXD POSIXD, none 0 S ; currently unused except as a placeholder
-NPOSIXL POSIXD, none 0 S ; currently unused except as a placeholder
-NPOSIXU POSIXD, none 0 S ; currently unused except as a placeholder
-NPOSIXA POSIXD, none 0 S ; complement of POSIXA, [[:^class:]]
+NPOSIXD NPOSIXD, none 0 S ; currently unused except as a placeholder
+NPOSIXL NPOSIXD, none 0 S ; currently unused except as a placeholder
+NPOSIXU NPOSIXD, none 0 S ; currently unused except as a placeholder
+NPOSIXA NPOSIXD, none 0 S ; complement of POSIXA, [[:^class:]]
# End of order is important (within groups)
CLUMP CLUMP, no 0 V ; Match any extended grapheme cluster sequence
# End of order is important (within groups)
CLUMP CLUMP, no 0 V ; Match any extended grapheme cluster sequence
POSIXD, /* POSIXL */
POSIXD, /* POSIXU */
POSIXD, /* POSIXA */
POSIXD, /* POSIXL */
POSIXD, /* POSIXU */
POSIXD, /* POSIXA */
- POSIXD, /* NPOSIXD */
- POSIXD, /* NPOSIXL */
- POSIXD, /* NPOSIXU */
- POSIXD, /* NPOSIXA */
+ NPOSIXD, /* NPOSIXD */
+ NPOSIXD, /* NPOSIXL */
+ NPOSIXD, /* NPOSIXU */
+ NPOSIXD, /* NPOSIXA */
CLUMP, /* CLUMP */
BRANCH, /* BRANCH */
BACK, /* BACK */
CLUMP, /* CLUMP */
BRANCH, /* BRANCH */
BACK, /* BACK */