#define CALLREGCOMP(exp, xend, pm) Perl_pregcomp(aTHX_ exp,xend,pm)
+#define CALLREGCOMP_ENG(prog, exp, xend, pm) \
+ CALL_FPTR(((prog)->comp))(aTHX_ exp, xend, pm)
#define CALLREGEXEC(prog,stringarg,strend,strbeg,minend,screamer,data,flags) \
- CALL_FPTR((prog)->engine->regexec)(aTHX_ (prog),(stringarg),(strend), \
+ CALL_FPTR((prog)->engine->exec)(aTHX_ (prog),(stringarg),(strend), \
(strbeg),(minend),(screamer),(data),(flags))
#define CALLREG_INTUIT_START(prog,sv,strpos,strend,flags,data) \
- CALL_FPTR((prog)->engine->re_intuit_start)(aTHX_ (prog), (sv), (strpos), \
+ CALL_FPTR((prog)->engine->intuit)(aTHX_ (prog), (sv), (strpos), \
(strend),(flags),(data))
#define CALLREG_INTUIT_STRING(prog) \
- CALL_FPTR((prog)->engine->re_intuit_string)(aTHX_ (prog))
+ CALL_FPTR((prog)->engine->checkstr)(aTHX_ (prog))
#define CALLREGFREE(prog) \
- if(prog) CALL_FPTR((prog)->engine->regfree)(aTHX_ (prog))
+ if(prog) CALL_FPTR((prog)->engine->free)(aTHX_ (prog))
#if defined(USE_ITHREADS)
#define CALLREGDUPE(prog,param) \
- (prog ? CALL_FPTR((prog)->engine->regdupe)(aTHX_ (prog),(param)) \
+ (prog ? CALL_FPTR((prog)->engine->dupe)(aTHX_ (prog),(param)) \
: (REGEXP *)NULL)
#endif
} re_scream_pos_data;
typedef struct regexp_engine {
- regexp* (*regcomp) (pTHX_ char* exp, char* xend, PMOP* pm);
- I32 (*regexec) (pTHX_ regexp* prog, char* stringarg, char* strend,
+ regexp* (*comp) (pTHX_ char* exp, char* xend, PMOP* pm);
+ I32 (*exec) (pTHX_ regexp* prog, char* stringarg, char* strend,
char* strbeg, I32 minend, SV* screamer,
void* data, U32 flags);
- char* (*re_intuit_start) (pTHX_ regexp *prog, SV *sv, char *strpos,
- char *strend, U32 flags,
- struct re_scream_pos_data_s *data);
- SV* (*re_intuit_string) (pTHX_ regexp *prog);
- void (*regfree) (pTHX_ struct regexp* r);
-#if defined(USE_ITHREADS)
- regexp* (*regdupe) (pTHX_ const regexp *r, CLONE_PARAMS *param);
+ char* (*intuit) (pTHX_ regexp *prog, SV *sv, char *strpos,
+ char *strend, U32 flags,
+ struct re_scream_pos_data_s *data);
+ SV* (*checkstr) (pTHX_ regexp *prog);
+ void (*free) (pTHX_ struct regexp* r);
+#ifdef USE_ITHREADS
+ regexp* (*dupe) (pTHX_ const regexp *r, CLONE_PARAMS *param);
#endif
} regexp_engine;