| 7 |
and semantics are as close as possible to those of the Perl 5 language. |
and semantics are as close as possible to those of the Perl 5 language. |
| 8 |
|
|
| 9 |
Written by Philip Hazel |
Written by Philip Hazel |
| 10 |
Copyright (c) 1997-2007 University of Cambridge |
Copyright (c) 1997-2008 University of Cambridge |
| 11 |
|
|
| 12 |
----------------------------------------------------------------------------- |
----------------------------------------------------------------------------- |
| 13 |
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
| 363 |
support is omitted, we don't even define it. */ |
support is omitted, we don't even define it. */ |
| 364 |
|
|
| 365 |
#ifndef SUPPORT_UTF8 |
#ifndef SUPPORT_UTF8 |
| 366 |
|
#define NEXTCHAR(p) p++; |
| 367 |
#define GETCHAR(c, eptr) c = *eptr; |
#define GETCHAR(c, eptr) c = *eptr; |
| 368 |
#define GETCHARTEST(c, eptr) c = *eptr; |
#define GETCHARTEST(c, eptr) c = *eptr; |
| 369 |
#define GETCHARINC(c, eptr) c = *eptr++; |
#define GETCHARINC(c, eptr) c = *eptr++; |
| 373 |
|
|
| 374 |
#else /* SUPPORT_UTF8 */ |
#else /* SUPPORT_UTF8 */ |
| 375 |
|
|
| 376 |
|
/* Advance a character pointer one byte in non-UTF-8 mode and by one character |
| 377 |
|
in UTF-8 mode. */ |
| 378 |
|
|
| 379 |
|
#define NEXTCHAR(p) \ |
| 380 |
|
p++; \ |
| 381 |
|
if (utf8) { while((*p & 0xc0) == 0x80) p++; } |
| 382 |
|
|
| 383 |
/* Get the next UTF-8 character, not advancing the pointer. This is called when |
/* Get the next UTF-8 character, not advancing the pointer. This is called when |
| 384 |
we know we are in UTF-8 mode. */ |
we know we are in UTF-8 mode. */ |
| 385 |
|
|
| 942 |
uschar *name_table; /* The name/number table */ |
uschar *name_table; /* The name/number table */ |
| 943 |
int names_found; /* Number of entries so far */ |
int names_found; /* Number of entries so far */ |
| 944 |
int name_entry_size; /* Size of each entry */ |
int name_entry_size; /* Size of each entry */ |
| 945 |
int bracount; /* Count of capturing parens */ |
int bracount; /* Count of capturing parens as we compile */ |
| 946 |
|
int final_bracount; /* Saved value after first pass */ |
| 947 |
int top_backref; /* Maximum back reference */ |
int top_backref; /* Maximum back reference */ |
| 948 |
unsigned int backref_map; /* Bitmap of low back refs */ |
unsigned int backref_map; /* Bitmap of low back refs */ |
| 949 |
int external_options; /* External (initial) options */ |
int external_options; /* External (initial) options */ |
| 1045 |
#define ctype_letter 0x02 |
#define ctype_letter 0x02 |
| 1046 |
#define ctype_digit 0x04 |
#define ctype_digit 0x04 |
| 1047 |
#define ctype_xdigit 0x08 |
#define ctype_xdigit 0x08 |
| 1048 |
#define ctype_word 0x10 /* alphameric or '_' */ |
#define ctype_word 0x10 /* alphanumeric or '_' */ |
| 1049 |
#define ctype_meta 0x80 /* regexp meta char or zero (end pattern) */ |
#define ctype_meta 0x80 /* regexp meta char or zero (end pattern) */ |
| 1050 |
|
|
| 1051 |
/* Offsets for the bitmap tables in pcre_cbits. Each table contains a set |
/* Offsets for the bitmap tables in pcre_cbits. Each table contains a set |