| 255 |
|
|
| 256 |
#define PCRE_STUDY_JIT_COMPILE 0x0001 |
#define PCRE_STUDY_JIT_COMPILE 0x0001 |
| 257 |
|
|
| 258 |
/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine |
/* Bit flags for the pcre[16]_extra structure. Do not re-arrange or redefine |
| 259 |
these bits, just add new ones on the end, in order to remain compatible. */ |
these bits, just add new ones on the end, in order to remain compatible. */ |
| 260 |
|
|
| 261 |
#define PCRE_EXTRA_STUDY_DATA 0x0001 |
#define PCRE_EXTRA_STUDY_DATA 0x0001 |
| 308 |
void *executable_jit; /* Contains a pointer to a compiled jit code */ |
void *executable_jit; /* Contains a pointer to a compiled jit code */ |
| 309 |
} pcre_extra; |
} pcre_extra; |
| 310 |
|
|
| 311 |
|
/* Same structure as above, but with 16 bit char pointers. */ |
| 312 |
|
|
| 313 |
|
typedef struct pcre16_extra { |
| 314 |
|
unsigned long int flags; /* Bits for which fields are set */ |
| 315 |
|
void *study_data; /* Opaque data from pcre_study() */ |
| 316 |
|
unsigned long int match_limit; /* Maximum number of calls to match() */ |
| 317 |
|
void *callout_data; /* Data passed back in callouts */ |
| 318 |
|
const unsigned char *tables; /* Pointer to character tables */ |
| 319 |
|
unsigned long int match_limit_recursion; /* Max recursive calls to match() */ |
| 320 |
|
PCRE_SCHAR16 **mark; /* For passing back a mark pointer */ |
| 321 |
|
void *executable_jit; /* Contains a pointer to a compiled jit code */ |
| 322 |
|
} pcre16_extra; |
| 323 |
|
|
| 324 |
/* The structure for passing out data via the pcre_callout_function. We use a |
/* The structure for passing out data via the pcre_callout_function. We use a |
| 325 |
structure so that new fields can be added on the end in future versions, |
structure so that new fields can be added on the end in future versions, |
| 326 |
without changing the API of the function, thereby allowing old clients to work |
without changing the API of the function, thereby allowing old clients to work |
| 342 |
int pattern_position; /* Offset to next item in the pattern */ |
int pattern_position; /* Offset to next item in the pattern */ |
| 343 |
int next_item_length; /* Length of next item in the pattern */ |
int next_item_length; /* Length of next item in the pattern */ |
| 344 |
/* ------------------- Added for Version 2 -------------------------- */ |
/* ------------------- Added for Version 2 -------------------------- */ |
| 345 |
const void *mark; /* Pointer to current mark or NULL */ |
const unsigned char *mark; /* Pointer to current mark or NULL */ |
| 346 |
/* ------------------------------------------------------------------ */ |
/* ------------------------------------------------------------------ */ |
| 347 |
} pcre_callout_block; |
} pcre_callout_block; |
| 348 |
|
|
| 349 |
|
/* Same structure as above, but with 16 bit char pointers. */ |
| 350 |
|
|
| 351 |
|
typedef struct pcre16_callout_block { |
| 352 |
|
int version; /* Identifies version of block */ |
| 353 |
|
/* ------------------------ Version 0 ------------------------------- */ |
| 354 |
|
int callout_number; /* Number compiled into pattern */ |
| 355 |
|
int *offset_vector; /* The offset vector */ |
| 356 |
|
PCRE_SPTR subject; /* The subject being matched */ |
| 357 |
|
int subject_length; /* The length of the subject */ |
| 358 |
|
int start_match; /* Offset to start of this match attempt */ |
| 359 |
|
int current_position; /* Where we currently are in the subject */ |
| 360 |
|
int capture_top; /* Max current capture */ |
| 361 |
|
int capture_last; /* Most recently closed capture */ |
| 362 |
|
void *callout_data; /* Data passed in with the call */ |
| 363 |
|
/* ------------------- Added for Version 1 -------------------------- */ |
| 364 |
|
int pattern_position; /* Offset to next item in the pattern */ |
| 365 |
|
int next_item_length; /* Length of next item in the pattern */ |
| 366 |
|
/* ------------------- Added for Version 2 -------------------------- */ |
| 367 |
|
const PCRE_SCHAR16 *mark; /* Pointer to current mark or NULL */ |
| 368 |
|
/* ------------------------------------------------------------------ */ |
| 369 |
|
} pcre16_callout_block; |
| 370 |
|
|
| 371 |
/* Indirection for store get and free functions. These can be set to |
/* Indirection for store get and free functions. These can be set to |
| 372 |
alternative malloc/free functions if required. Special ones are used in the |
alternative malloc/free functions if required. Special ones are used in the |
| 373 |
non-recursive case for "frames". There is also an optional callout function |
non-recursive case for "frames". There is also an optional callout function |
| 385 |
PCRE_EXP_DECL void (*pcre16_free)(void *); |
PCRE_EXP_DECL void (*pcre16_free)(void *); |
| 386 |
PCRE_EXP_DECL void *(*pcre16_stack_malloc)(size_t); |
PCRE_EXP_DECL void *(*pcre16_stack_malloc)(size_t); |
| 387 |
PCRE_EXP_DECL void (*pcre16_stack_free)(void *); |
PCRE_EXP_DECL void (*pcre16_stack_free)(void *); |
| 388 |
PCRE_EXP_DECL int (*pcre16_callout)(pcre_callout_block *); |
PCRE_EXP_DECL int (*pcre16_callout)(pcre16_callout_block *); |
| 389 |
#else /* VPCOMPAT */ |
#else /* VPCOMPAT */ |
| 390 |
PCRE_EXP_DECL void *pcre_malloc(size_t); |
PCRE_EXP_DECL void *pcre_malloc(size_t); |
| 391 |
PCRE_EXP_DECL void pcre_free(void *); |
PCRE_EXP_DECL void pcre_free(void *); |
| 397 |
PCRE_EXP_DECL void pcre16_free(void *); |
PCRE_EXP_DECL void pcre16_free(void *); |
| 398 |
PCRE_EXP_DECL void *pcre16_stack_malloc(size_t); |
PCRE_EXP_DECL void *pcre16_stack_malloc(size_t); |
| 399 |
PCRE_EXP_DECL void pcre16_stack_free(void *); |
PCRE_EXP_DECL void pcre16_stack_free(void *); |
| 400 |
PCRE_EXP_DECL int pcre16_callout(pcre_callout_block *); |
PCRE_EXP_DECL int pcre16_callout(pcre16_callout_block *); |
| 401 |
#endif /* VPCOMPAT */ |
#endif /* VPCOMPAT */ |
| 402 |
|
|
| 403 |
/* User defined callback which provides a stack just before the match starts. */ |
/* User defined callback which provides a stack just before the match starts. */ |
| 426 |
PCRE_SCHAR16 *, int); |
PCRE_SCHAR16 *, int); |
| 427 |
PCRE_EXP_DECL int pcre_dfa_exec(const pcre *, const pcre_extra *, |
PCRE_EXP_DECL int pcre_dfa_exec(const pcre *, const pcre_extra *, |
| 428 |
const char *, int, int, int, int *, int , int *, int); |
const char *, int, int, int, int *, int , int *, int); |
| 429 |
PCRE_EXP_DECL int pcre16_dfa_exec(const pcre *, const pcre_extra *, |
PCRE_EXP_DECL int pcre16_dfa_exec(const pcre *, const pcre16_extra *, |
| 430 |
PCRE_SPTR16, int, int, int, int *, int , int *, int); |
PCRE_SPTR16, int, int, int, int *, int , int *, int); |
| 431 |
PCRE_EXP_DECL int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR, |
PCRE_EXP_DECL int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR, |
| 432 |
int, int, int, int *, int); |
int, int, int, int *, int); |
| 433 |
PCRE_EXP_DECL int pcre16_exec(const pcre *, const pcre_extra *, PCRE_SPTR16, |
PCRE_EXP_DECL int pcre16_exec(const pcre *, const pcre16_extra *, PCRE_SPTR16, |
| 434 |
int, int, int, int *, int); |
int, int, int, int *, int); |
| 435 |
PCRE_EXP_DECL void pcre_free_substring(const char *); |
PCRE_EXP_DECL void pcre_free_substring(const char *); |
| 436 |
PCRE_EXP_DECL void pcre16_free_substring(PCRE_SPTR16); |
PCRE_EXP_DECL void pcre16_free_substring(PCRE_SPTR16); |
| 438 |
PCRE_EXP_DECL void pcre16_free_substring_list(PCRE_SPTR16 *); |
PCRE_EXP_DECL void pcre16_free_substring_list(PCRE_SPTR16 *); |
| 439 |
PCRE_EXP_DECL int pcre_fullinfo(const pcre *, const pcre_extra *, int, |
PCRE_EXP_DECL int pcre_fullinfo(const pcre *, const pcre_extra *, int, |
| 440 |
void *); |
void *); |
| 441 |
PCRE_EXP_DECL int pcre16_fullinfo(const pcre *, const pcre_extra *, int, |
PCRE_EXP_DECL int pcre16_fullinfo(const pcre *, const pcre16_extra *, int, |
| 442 |
void *); |
void *); |
| 443 |
PCRE_EXP_DECL int pcre_get_named_substring(const pcre *, const char *, |
PCRE_EXP_DECL int pcre_get_named_substring(const pcre *, const char *, |
| 444 |
int *, int, const char *, const char **); |
int *, int, const char *, const char **); |
| 463 |
PCRE_EXP_DECL int pcre_refcount(pcre *, int); |
PCRE_EXP_DECL int pcre_refcount(pcre *, int); |
| 464 |
PCRE_EXP_DECL int pcre16_refcount(pcre *, int); |
PCRE_EXP_DECL int pcre16_refcount(pcre *, int); |
| 465 |
PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **); |
PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **); |
| 466 |
PCRE_EXP_DECL pcre_extra *pcre16_study(const pcre *, int, const char **); |
PCRE_EXP_DECL pcre16_extra *pcre16_study(const pcre *, int, const char **); |
| 467 |
PCRE_EXP_DECL void pcre_free_study(pcre_extra *); |
PCRE_EXP_DECL void pcre_free_study(pcre_extra *); |
| 468 |
PCRE_EXP_DECL void pcre16_free_study(pcre_extra *); |
PCRE_EXP_DECL void pcre16_free_study(pcre16_extra *); |
| 469 |
PCRE_EXP_DECL const char *pcre_version(void); |
PCRE_EXP_DECL const char *pcre_version(void); |
| 470 |
PCRE_EXP_DECL const char *pcre16_version(void); |
PCRE_EXP_DECL const char *pcre16_version(void); |
| 471 |
|
|
| 472 |
/* Utility functions for byte order swaps. */ |
/* Utility functions for byte order swaps. */ |
| 473 |
PCRE_EXP_DECL int pcre_pattern_to_host_byte_order(pcre *, pcre_extra *, |
PCRE_EXP_DECL int pcre_pattern_to_host_byte_order(pcre *, pcre_extra *, |
| 474 |
const unsigned char *); |
const unsigned char *); |
| 475 |
PCRE_EXP_DECL int pcre16_pattern_to_host_byte_order(pcre *, pcre_extra *, |
PCRE_EXP_DECL int pcre16_pattern_to_host_byte_order(pcre *, pcre16_extra *, |
| 476 |
const unsigned char *); |
const unsigned char *); |
| 477 |
PCRE_EXP_DECL int pcre16_utf16_to_host_byte_order(PCRE_SCHAR16 *, |
PCRE_EXP_DECL int pcre16_utf16_to_host_byte_order(PCRE_SCHAR16 *, |
| 478 |
PCRE_SPTR16, int, int *, int); |
PCRE_SPTR16, int, int *, int); |
| 485 |
PCRE_EXP_DECL void pcre16_jit_stack_free(pcre_jit_stack *); |
PCRE_EXP_DECL void pcre16_jit_stack_free(pcre_jit_stack *); |
| 486 |
PCRE_EXP_DECL void pcre_assign_jit_stack(pcre_extra *, |
PCRE_EXP_DECL void pcre_assign_jit_stack(pcre_extra *, |
| 487 |
pcre_jit_callback, void *); |
pcre_jit_callback, void *); |
| 488 |
PCRE_EXP_DECL void pcre16_assign_jit_stack(pcre_extra *, |
PCRE_EXP_DECL void pcre16_assign_jit_stack(pcre16_extra *, |
| 489 |
pcre_jit_callback, void *); |
pcre_jit_callback, void *); |
| 490 |
|
|
| 491 |
#ifdef __cplusplus |
#ifdef __cplusplus |