summaryrefslogtreecommitdiff
path: root/proto.h
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2013-08-01 14:49:29 -0600
committerKarl Williamson <public@khwilliamson.com>2013-09-24 11:36:12 -0600
commitb8f7bb16f63b8e72236f34002e68da18767fe62c (patch)
tree84cc35a7420bede3975683d8daa32b64e631e686 /proto.h
parentde92f5e66ec16fd0d9068f362c5ffccd9a5b6135 (diff)
downloadperl-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.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/proto.h b/proto.h
index 93b16012c6..951951898b 100644
--- a/proto.h
+++ b/proto.h
@@ -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)