diff options
author | Karl Williamson <public@khwilliamson.com> | 2013-08-01 14:49:29 -0600 |
---|---|---|
committer | Karl Williamson <public@khwilliamson.com> | 2013-09-24 11:36:12 -0600 |
commit | b8f7bb16f63b8e72236f34002e68da18767fe62c (patch) | |
tree | 84cc35a7420bede3975683d8daa32b64e631e686 /proto.h | |
parent | de92f5e66ec16fd0d9068f362c5ffccd9a5b6135 (diff) | |
download | perl-b8f7bb16f63b8e72236f34002e68da18767fe62c.tar.gz |
Add regnode struct for synthetic start class
As part of extending the regular expression optimizer to properly handle
above Latin1 code points, I need an inversion list to contain which code
points the synthetic start class (ssc) matches.
The ssc currently is the same as a locale-aware ANYOF node, which uses
the struct of a regular ANYOF node, plus some extra fields at the end.
This commit creates a new typedef for ssc use, which is the locale-aware
ANYOF node, plus an extra SV* at the end to hold the inversion list.
Diffstat (limited to 'proto.h')
-rw-r--r-- | proto.h | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -6513,6 +6513,7 @@ STATIC SV * S_space_join_names_mortal(pTHX_ char *const *array) #endif #if defined(PERL_IN_REGCOMP_C) +PERL_CALLCONV int is_inf (pTHX); STATIC void S__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \ @@ -6547,31 +6548,31 @@ PERL_STATIC_INLINE void S_alloc_maybe_populate_EXACT(pTHX_ struct RExC_state_t * #define PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT \ assert(pRExC_state); assert(node); assert(flagp) -STATIC void S_cl_and(struct regnode_charclass_class *cl, const struct regnode_charclass_class *and_with) +STATIC void S_cl_and(regnode_ssc *cl, const regnode_ssc *and_with) __attribute__nonnull__(1) __attribute__nonnull__(2); #define PERL_ARGS_ASSERT_CL_AND \ assert(cl); assert(and_with) -STATIC void S_cl_anything(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl) +STATIC void S_cl_anything(const struct RExC_state_t *pRExC_state, regnode_ssc *cl) __attribute__nonnull__(1) __attribute__nonnull__(2); #define PERL_ARGS_ASSERT_CL_ANYTHING \ assert(pRExC_state); assert(cl) -STATIC void S_cl_init(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl) +STATIC void S_cl_init(const struct RExC_state_t *pRExC_state, regnode_ssc *cl) __attribute__nonnull__(1) __attribute__nonnull__(2); #define PERL_ARGS_ASSERT_CL_INIT \ assert(pRExC_state); assert(cl) -STATIC int S_cl_is_anything(const struct regnode_charclass_class *cl) +STATIC int S_cl_is_anything(const regnode_ssc *cl) __attribute__warn_unused_result__ __attribute__nonnull__(1); #define PERL_ARGS_ASSERT_CL_IS_ANYTHING \ assert(cl) -STATIC void S_cl_or(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl, const struct regnode_charclass_class *or_with) +STATIC void S_cl_or(const struct RExC_state_t *pRExC_state, regnode_ssc *cl, const regnode_ssc *or_with) __attribute__nonnull__(1) __attribute__nonnull__(2) __attribute__nonnull__(3); @@ -6834,7 +6835,7 @@ STATIC void S_scan_commit(pTHX_ const struct RExC_state_t *pRExC_state, struct s #define PERL_ARGS_ASSERT_SCAN_COMMIT \ assert(pRExC_state); assert(data); assert(minlenp) -STATIC SSize_t S_study_chunk(pTHX_ struct RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U8* recursed, struct regnode_charclass_class *and_withp, U32 flags, U32 depth) +STATIC SSize_t S_study_chunk(pTHX_ struct RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U8* recursed, regnode_ssc *and_withp, U32 flags, U32 depth) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) __attribute__nonnull__(pTHX_3) |