data->longest = &(data->longest_float);
}
}
- else if (OP(scan) == FOLDCHAR) {
- int d = ARG(scan) == LATIN_SMALL_LETTER_SHARP_S ? 1 : 2;
- flags &= ~SCF_DO_STCLASS;
- min += 1;
- delta += d;
- if (flags & SCF_DO_SUBSTR) {
- SCAN_COMMIT(pRExC_state,data,minlenp); /* Cannot expect anything... */
- data->pos_min += 1;
- data->pos_delta += d;
- data->longest = &(data->longest_float);
- }
- }
else if (REGNODE_SIMPLE(OP(scan))) {
int value = 0;
SVfARG((MUTABLE_SV(progi->data->data[ ARG( o ) ]))));
} else if (k == LOGICAL)
Perl_sv_catpvf(aTHX_ sv, "[%d]", o->flags); /* 2: embedded, otherwise 1 */
- else if (k == FOLDCHAR)
- Perl_sv_catpvf(aTHX_ sv, "[0x%"UVXf"]", PTR2UV(ARG(o)) );
else if (k == ANYOF) {
int i, rangestart = -1;
const U8 flags = ANYOF_FLAGS(o);
HORIZWS HORIZWS, none 0 S ; horizontal whitespace (Perl 6)
NHORIZWS NHORIZWS, none 0 S ; not horizontal whitespace (Perl 6)
-FOLDCHAR FOLDCHAR, codepoint 1 ; codepoint with tricky case folding properties.
-
# NEW STUFF SOMEWHERE ABOVE THIS LINE
sayNO;
/* NOTREACHED */
#undef ST
- case FOLDCHAR:
- n = ARG(scan);
- if ( n == (U32)what_len_TRICKYFOLD(locinput,utf8_target,ln) ) {
- locinput += ln;
- } else if ( LATIN_SMALL_LETTER_SHARP_S == n && !utf8_target && !UTF_PATTERN ) {
- sayNO;
- } else {
- U8 folded[UTF8_MAXBYTES_CASE+1];
- STRLEN foldlen;
- const char * const l = locinput;
- char *e = PL_regeol;
- to_uni_fold(n, folded, &foldlen);
-
- if (! foldEQ_utf8((const char*) folded, 0, foldlen, 1,
- l, &e, 0, utf8_target)) {
- sayNO;
- }
- locinput = e;
- }
- nextchr = UCHARAT(locinput);
- break;
case LNBREAK:
if ((n=is_LNBREAK(locinput,utf8_target))) {
locinput += n;
/* Regops and State definitions */
-#define REGNODE_MAX 113
-#define REGMATCH_STATE_MAX 153
+#define REGNODE_MAX 112
+#define REGMATCH_STATE_MAX 152
#define END 0 /* 0000 End of program. */
#define SUCCEED 1 /* 0x01 Return from a subroutine, basically. */
#define NVERTWS 108 /* 0x6c not vertical whitespace (Perl 6) */
#define HORIZWS 109 /* 0x6d horizontal whitespace (Perl 6) */
#define NHORIZWS 110 /* 0x6e not horizontal whitespace (Perl 6) */
-#define FOLDCHAR 111 /* 0x6f codepoint with tricky case folding properties. */
-#define OPTIMIZED 112 /* 0x70 Placeholder for dump. */
-#define PSEUDO 113 /* 0x71 Pseudo opcode for internal use. */
+#define OPTIMIZED 111 /* 0x6f Placeholder for dump. */
+#define PSEUDO 112 /* 0x70 Pseudo opcode for internal use. */
/* ------------ States ------------- */
#define TRIE_next (REGNODE_MAX + 1) /* state for TRIE */
#define TRIE_next_fail (REGNODE_MAX + 2) /* state for TRIE */
NVERTWS, /* NVERTWS */
HORIZWS, /* HORIZWS */
NHORIZWS, /* NHORIZWS */
- FOLDCHAR, /* FOLDCHAR */
NOTHING, /* OPTIMIZED */
PSEUDO, /* PSEUDO */
/* ------------ States ------------- */
0, /* NVERTWS */
0, /* HORIZWS */
0, /* NHORIZWS */
- EXTRA_SIZE(struct regnode_1), /* FOLDCHAR */
0, /* OPTIMIZED */
0, /* PSEUDO */
};
0, /* NVERTWS */
0, /* HORIZWS */
0, /* NHORIZWS */
- 0, /* FOLDCHAR */
0, /* OPTIMIZED */
0, /* PSEUDO */
};
"NVERTWS", /* 0x6c */
"HORIZWS", /* 0x6d */
"NHORIZWS", /* 0x6e */
- "FOLDCHAR", /* 0x6f */
- "OPTIMIZED", /* 0x70 */
- "PSEUDO", /* 0x71 */
+ "OPTIMIZED", /* 0x6f */
+ "PSEUDO", /* 0x70 */
/* ------------ States ------------- */
"TRIE_next", /* REGNODE_MAX +0x01 */
"TRIE_next_fail", /* REGNODE_MAX +0x02 */