/[pcre]/code/trunk/internal.h
ViewVC logotype

Diff of /code/trunk/internal.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 52 by nigel, Sat Feb 24 21:39:37 2007 UTC revision 53 by nigel, Sat Feb 24 21:39:42 2007 UTC
# Line 9  the file Tech.Notes for some information Line 9  the file Tech.Notes for some information
9    
10  Written by: Philip Hazel <ph10@cam.ac.uk>  Written by: Philip Hazel <ph10@cam.ac.uk>
11    
12             Copyright (c) 1997-2000 University of Cambridge             Copyright (c) 1997-2001 University of Cambridge
13    
14  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
15  Permission is granted to anyone to use this software for any purpose on any  Permission is granted to anyone to use this software for any purpose on any
# Line 123  typedef int BOOL; Line 123  typedef int BOOL;
123  #define FALSE   0  #define FALSE   0
124  #define TRUE    1  #define TRUE    1
125    
126    /* Escape items that are just an encoding of a particular data value. Note that
127    ESC_N is defined as yet another macro, which is set in config.h to either \n
128    (the default) or \r (which some people want). */
129    
130    #ifndef ESC_E
131    #define ESC_E 27
132    #endif
133    
134    #ifndef ESC_F
135    #define ESC_F '\f'
136    #endif
137    
138    #ifndef ESC_N
139    #define ESC_N NEWLINE
140    #endif
141    
142    #ifndef ESC_R
143    #define ESC_R '\r'
144    #endif
145    
146    #ifndef ESC_T
147    #define ESC_T '\t'
148    #endif
149    
150  /* These are escaped items that aren't just an encoding of a particular data  /* These are escaped items that aren't just an encoding of a particular data
151  value such as \n. They must have non-zero values, as check_escape() returns  value such as \n. They must have non-zero values, as check_escape() returns
152  their negation. Also, they must appear in the same order as in the opcode  their negation. Also, they must appear in the same order as in the opcode
153  definitions below, up to ESC_z. The final one must be ESC_REF as subsequent  definitions below, up to ESC_z. The final one must be ESC_REF as subsequent
154  values are used for \1, \2, \3, etc. There is a test in the code for an escape  values are used for \1, \2, \3, etc. There is a test in the code for an escape
155  greater than ESC_b and less than ESC_X to detect the types that may be  greater than ESC_b and less than ESC_Z to detect the types that may be
156  repeated. If any new escapes are put in-between that don't consume a character,  repeated. If any new escapes are put in-between that don't consume a character,
157  that code will have to change. */  that code will have to change. */
158    
# Line 224  enum { Line 248  enum {
248    
249    OP_ONCE,           /* Once matched, don't back up into the subpattern */    OP_ONCE,           /* Once matched, don't back up into the subpattern */
250    OP_COND,           /* Conditional group */    OP_COND,           /* Conditional group */
251    OP_CREF,           /* Used to hold an extraction string number */    OP_CREF,           /* Used to hold an extraction string number (cond ref) */
252    
253    OP_BRAZERO,        /* These two must remain together and in this */    OP_BRAZERO,        /* These two must remain together and in this */
254    OP_BRAMINZERO,     /* order. */    OP_BRAMINZERO,     /* order. */
255    
256      OP_BRANUMBER,      /* Used for extracting brackets whose number is greater
257                            than can fit into an opcode. */
258    
259    OP_BRA             /* This and greater values are used for brackets that    OP_BRA             /* This and greater values are used for brackets that
260                          extract substrings. */                          extract substrings up to a basic limit. After that,
261                            use is made of OP_BRANUMBER. */
262  };  };
263    
264  /* The highest extraction number. This is limited by the number of opcodes  /* The highest extraction number before we have to start using additional
265  left after OP_BRA, i.e. 255 - OP_BRA. We actually set it somewhat lower. */  bytes. (Originally PCRE didn't have support for extraction counts highter than
266    this number.) The value is limited by the number of opcodes left after OP_BRA,
267    i.e. 255 - OP_BRA. We actually set it a bit lower to leave room for additional
268    opcodes. */
269    
270  #define EXTRACT_MAX  99  #define EXTRACT_BASIC_MAX  150
271    
272  /* The texts of compile-time error messages are defined as macros here so that  /* The texts of compile-time error messages are defined as macros here so that
273  they can be accessed by the POSIX wrapper and converted into error codes.  Yes,  they can be accessed by the POSIX wrapper and converted into error codes.  Yes,
# Line 255  just to accommodate the POSIX wrapper. * Line 286  just to accommodate the POSIX wrapper. *
286  #define ERR10 "operand of unlimited repeat could match the empty string"  #define ERR10 "operand of unlimited repeat could match the empty string"
287  #define ERR11 "internal error: unexpected repeat"  #define ERR11 "internal error: unexpected repeat"
288  #define ERR12 "unrecognized character after (?"  #define ERR12 "unrecognized character after (?"
289  #define ERR13 "too many capturing parenthesized sub-patterns"  #define ERR13 "unused error"
290  #define ERR14 "missing )"  #define ERR14 "missing )"
291  #define ERR15 "back reference to non-existent subpattern"  #define ERR15 "back reference to non-existent subpattern"
292  #define ERR16 "erroffset passed as NULL"  #define ERR16 "erroffset passed as NULL"
293  #define ERR17 "unknown option bit(s) set"  #define ERR17 "unknown option bit(s) set"
294  #define ERR18 "missing ) after comment"  #define ERR18 "missing ) after comment"
295  #define ERR19 "too many sets of parentheses"  #define ERR19 "parentheses nested too deeply"
296  #define ERR20 "regular expression too large"  #define ERR20 "regular expression too large"
297  #define ERR21 "failed to get memory"  #define ERR21 "failed to get memory"
298  #define ERR22 "unmatched parentheses"  #define ERR22 "unmatched parentheses"
# Line 296  typedef struct real_pcre { Line 327  typedef struct real_pcre {
327    size_t size;    size_t size;
328    const unsigned char *tables;    const unsigned char *tables;
329    unsigned long int options;    unsigned long int options;
330    uschar top_bracket;    unsigned short int top_bracket;
331    uschar top_backref;    unsigned short int top_backref;
332    uschar first_char;    uschar first_char;
333    uschar req_char;    uschar req_char;
334    uschar code[1];    uschar code[1];

Legend:
Removed from v.52  
changed lines
  Added in v.53

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12