X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fre-engine-Hooks.git;a=blobdiff_plain;f=re_defs.h;h=6e749d3f97735a7d03af64a8fdcaa80be1003327;hp=23c83a11116344f0dfd154e2e54ad805c0e549ac;hb=4a9aed6a870d6a954c42bac71334dd440780b226;hpb=7b88eb9cbb0c1342a6480820450644708aed019c diff --git a/re_defs.h b/re_defs.h index 23c83a1..6e749d3 100644 --- a/re_defs.h +++ b/re_defs.h @@ -1,6 +1,30 @@ -EXTERN_C void reh_call_comp_hook(pTHX_ regexp *, regnode *); -EXTERN_C void reh_call_exec_hook(pTHX_ regexp *, regnode *, regmatch_info *, regmatch_state *); +#ifndef REH_HAS_PERL +# define REH_HAS_PERL(R, V, S) (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S)))))) +#endif -#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 REH_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 REH_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 REH_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))