X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fre-engine-Hooks.git;a=blobdiff_plain;f=re_defs.h;h=1df3739f4371ec1748d587a2f407ec0b2648ab83;hp=23c83a11116344f0dfd154e2e54ad805c0e549ac;hb=HEAD;hpb=7b88eb9cbb0c1342a6480820450644708aed019c diff --git a/re_defs.h b/re_defs.h index 23c83a1..1df3739 100644 --- a/re_defs.h +++ b/re_defs.h @@ -1,6 +1,28 @@ -EXTERN_C void reh_call_comp_hook(pTHX_ regexp *, regnode *); -EXTERN_C void reh_call_exec_hook(pTHX_ regexp *, regnode *, regmatch_info *, regmatch_state *); +#include "xsh/caps.h" /* XSH_HAS_PERL() */ -#define REH_CALL_REGCOMP_HOOK(a, b) reh_call_comp_hook(aTHX_ (a), (b)) -#define REH_CALL_REGEXEC_HOOK(a, b, c, d) reh_call_exec_hook(aTHX_ (a), (b), (c), (d)) +EXTERN_C void reh_save_re_context(pTHX); +EXTERN_C regnode *reh_regnext(pTHX_ register regnode *); +#if XSH_HAS_PERL(5, 11, 0) +EXTERN_C REGEXP *reh_pregcomp(pTHX_ SV * const, const U32); +#else +EXTERN_C REGEXP *reh_pregcomp(pTHX_ const SV * const, const U32); +#endif +#if XSH_HAS_PERL(5, 11, 2) +EXTERN_C REGEXP *reh_reg_temp_copy(pTHX_ REGEXP *, REGEXP *); +#else +EXTERN_C REGEXP *reh_reg_temp_copy(pTHX_ REGEXP *); +#endif +#if XSH_HAS_PERL(5, 15, 7) +EXTERN_C SV *reh__invlist_contents(pTHX_ SV* const); +#endif + +EXTERN_C const struct regexp_engine reh_regexp_engine; + +EXTERN_C void reh_call_comp_begin_hook(pTHX_ regexp *); +EXTERN_C void reh_call_comp_node_hook(pTHX_ regexp *, regnode *); +EXTERN_C void reh_call_exec_node_hook(pTHX_ regexp *, regnode *, regmatch_info *, regmatch_state *); + +#define REH_CALL_COMP_BEGIN_HOOK(a) reh_call_comp_begin_hook(aTHX_ (a)) +#define REH_CALL_COMP_NODE_HOOK(a, b) reh_call_comp_node_hook(aTHX_ (a), (b)) +#define REH_CALL_EXEC_NODE_HOOK(a, b, c, d) reh_call_exec_node_hook(aTHX_ (a), (b), (c), (d))