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

Diff of /code/trunk/pcre.h.in

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

revision 392 by ph10, Tue Mar 17 21:30:30 2009 UTC revision 780 by ph10, Fri Dec 2 11:39:21 2011 UTC
# Line 5  Line 5 
5  /* This is the public header file for the PCRE library, to be #included by  /* This is the public header file for the PCRE library, to be #included by
6  applications that call the PCRE functions.  applications that call the PCRE functions.
7    
8             Copyright (c) 1997-2009 University of Cambridge             Copyright (c) 1997-2011 University of Cambridge
9    
10  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
11  Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
# Line 96  extern "C" { Line 96  extern "C" {
96  #endif  #endif
97    
98  /* Options. Some are compile-time only, some are run-time only, and some are  /* Options. Some are compile-time only, some are run-time only, and some are
99  both, so we keep them all distinct. */  both, so we keep them all distinct. However, almost all the bits in the options
100    word are now used. In the long run, we may have to re-use some of the
101  #define PCRE_CASELESS           0x00000001  compile-time only bits for runtime options, or vice versa. In the comments
102  #define PCRE_MULTILINE          0x00000002  below, "compile", "exec", and "DFA exec" mean that the option is permitted to
103  #define PCRE_DOTALL             0x00000004  be set for those functions; "used in" means that an option may be set only for
104  #define PCRE_EXTENDED           0x00000008  compile, but is subsequently referenced in exec and/or DFA exec. Any of the
105  #define PCRE_ANCHORED           0x00000010  compile-time options may be inspected during studying (and therefore JIT
106  #define PCRE_DOLLAR_ENDONLY     0x00000020  compiling). */
107  #define PCRE_EXTRA              0x00000040  
108  #define PCRE_NOTBOL             0x00000080  #define PCRE_CASELESS           0x00000001  /* Compile */
109  #define PCRE_NOTEOL             0x00000100  #define PCRE_MULTILINE          0x00000002  /* Compile */
110  #define PCRE_UNGREEDY           0x00000200  #define PCRE_DOTALL             0x00000004  /* Compile */
111  #define PCRE_NOTEMPTY           0x00000400  #define PCRE_EXTENDED           0x00000008  /* Compile */
112  #define PCRE_UTF8               0x00000800  #define PCRE_ANCHORED           0x00000010  /* Compile, exec, DFA exec */
113  #define PCRE_NO_AUTO_CAPTURE    0x00001000  #define PCRE_DOLLAR_ENDONLY     0x00000020  /* Compile, used in exec, DFA exec */
114  #define PCRE_NO_UTF8_CHECK      0x00002000  #define PCRE_EXTRA              0x00000040  /* Compile */
115  #define PCRE_AUTO_CALLOUT       0x00004000  #define PCRE_NOTBOL             0x00000080  /* Exec, DFA exec */
116  #define PCRE_PARTIAL            0x00008000  #define PCRE_NOTEOL             0x00000100  /* Exec, DFA exec */
117  #define PCRE_DFA_SHORTEST       0x00010000  #define PCRE_UNGREEDY           0x00000200  /* Compile */
118  #define PCRE_DFA_RESTART        0x00020000  #define PCRE_NOTEMPTY           0x00000400  /* Exec, DFA exec */
119  #define PCRE_FIRSTLINE          0x00040000  #define PCRE_UTF8               0x00000800  /* Compile, used in exec, DFA exec */
120  #define PCRE_DUPNAMES           0x00080000  #define PCRE_NO_AUTO_CAPTURE    0x00001000  /* Compile */
121  #define PCRE_NEWLINE_CR         0x00100000  #define PCRE_NO_UTF8_CHECK      0x00002000  /* Compile, exec, DFA exec */
122  #define PCRE_NEWLINE_LF         0x00200000  #define PCRE_AUTO_CALLOUT       0x00004000  /* Compile */
123  #define PCRE_NEWLINE_CRLF       0x00300000  #define PCRE_PARTIAL_SOFT       0x00008000  /* Exec, DFA exec */
124  #define PCRE_NEWLINE_ANY        0x00400000  #define PCRE_PARTIAL            0x00008000  /* Backwards compatible synonym */
125  #define PCRE_NEWLINE_ANYCRLF    0x00500000  #define PCRE_DFA_SHORTEST       0x00010000  /* DFA exec */
126  #define PCRE_BSR_ANYCRLF        0x00800000  #define PCRE_DFA_RESTART        0x00020000  /* DFA exec */
127  #define PCRE_BSR_UNICODE        0x01000000  #define PCRE_FIRSTLINE          0x00040000  /* Compile, used in exec, DFA exec */
128  #define PCRE_JAVASCRIPT_COMPAT  0x02000000  #define PCRE_DUPNAMES           0x00080000  /* Compile */
129  #define PCRE_NO_START_OPTIMIZE  0x04000000  #define PCRE_NEWLINE_CR         0x00100000  /* Compile, exec, DFA exec */
130  #define PCRE_NO_START_OPTIMISE  0x04000000  #define PCRE_NEWLINE_LF         0x00200000  /* Compile, exec, DFA exec */
131    #define PCRE_NEWLINE_CRLF       0x00300000  /* Compile, exec, DFA exec */
132    #define PCRE_NEWLINE_ANY        0x00400000  /* Compile, exec, DFA exec */
133    #define PCRE_NEWLINE_ANYCRLF    0x00500000  /* Compile, exec, DFA exec */
134    #define PCRE_BSR_ANYCRLF        0x00800000  /* Compile, exec, DFA exec */
135    #define PCRE_BSR_UNICODE        0x01000000  /* Compile, exec, DFA exec */
136    #define PCRE_JAVASCRIPT_COMPAT  0x02000000  /* Compile, used in exec */
137    #define PCRE_NO_START_OPTIMIZE  0x04000000  /* Compile, exec, DFA exec */
138    #define PCRE_NO_START_OPTIMISE  0x04000000  /* Synonym */
139    #define PCRE_PARTIAL_HARD       0x08000000  /* Exec, DFA exec */
140    #define PCRE_NOTEMPTY_ATSTART   0x10000000  /* Exec, DFA exec */
141    #define PCRE_UCP                0x20000000  /* Compile, used in exec, DFA exec */
142    
143  /* Exec-time and get/set-time error codes */  /* Exec-time and get/set-time error codes */
144    
# Line 155  both, so we keep them all distinct. */ Line 166  both, so we keep them all distinct. */
166  #define PCRE_ERROR_RECURSIONLIMIT (-21)  #define PCRE_ERROR_RECURSIONLIMIT (-21)
167  #define PCRE_ERROR_NULLWSLIMIT    (-22)  /* No longer actually used */  #define PCRE_ERROR_NULLWSLIMIT    (-22)  /* No longer actually used */
168  #define PCRE_ERROR_BADNEWLINE     (-23)  #define PCRE_ERROR_BADNEWLINE     (-23)
169    #define PCRE_ERROR_BADOFFSET      (-24)
170    #define PCRE_ERROR_SHORTUTF8      (-25)
171    #define PCRE_ERROR_RECURSELOOP    (-26)
172    #define PCRE_ERROR_JIT_STACKLIMIT (-27)
173    
174    /* Specific error codes for UTF-8 validity checks */
175    
176    #define PCRE_UTF8_ERR0               0
177    #define PCRE_UTF8_ERR1               1
178    #define PCRE_UTF8_ERR2               2
179    #define PCRE_UTF8_ERR3               3
180    #define PCRE_UTF8_ERR4               4
181    #define PCRE_UTF8_ERR5               5
182    #define PCRE_UTF8_ERR6               6
183    #define PCRE_UTF8_ERR7               7
184    #define PCRE_UTF8_ERR8               8
185    #define PCRE_UTF8_ERR9               9
186    #define PCRE_UTF8_ERR10             10
187    #define PCRE_UTF8_ERR11             11
188    #define PCRE_UTF8_ERR12             12
189    #define PCRE_UTF8_ERR13             13
190    #define PCRE_UTF8_ERR14             14
191    #define PCRE_UTF8_ERR15             15
192    #define PCRE_UTF8_ERR16             16
193    #define PCRE_UTF8_ERR17             17
194    #define PCRE_UTF8_ERR18             18
195    #define PCRE_UTF8_ERR19             19
196    #define PCRE_UTF8_ERR20             20
197    #define PCRE_UTF8_ERR21             21
198    
199  /* Request types for pcre_fullinfo() */  /* Request types for pcre_fullinfo() */
200    
# Line 174  both, so we keep them all distinct. */ Line 214  both, so we keep them all distinct. */
214  #define PCRE_INFO_OKPARTIAL         12  #define PCRE_INFO_OKPARTIAL         12
215  #define PCRE_INFO_JCHANGED          13  #define PCRE_INFO_JCHANGED          13
216  #define PCRE_INFO_HASCRORLF         14  #define PCRE_INFO_HASCRORLF         14
217    #define PCRE_INFO_MINLENGTH         15
218    #define PCRE_INFO_JIT               16
219    #define PCRE_INFO_JITSIZE           17
220    
221  /* Request types for pcre_config(). Do not re-arrange, in order to remain  /* Request types for pcre_config(). Do not re-arrange, in order to remain
222  compatible. */  compatible. */
# Line 187  compatible. */ Line 230  compatible. */
230  #define PCRE_CONFIG_UNICODE_PROPERTIES      6  #define PCRE_CONFIG_UNICODE_PROPERTIES      6
231  #define PCRE_CONFIG_MATCH_LIMIT_RECURSION   7  #define PCRE_CONFIG_MATCH_LIMIT_RECURSION   7
232  #define PCRE_CONFIG_BSR                     8  #define PCRE_CONFIG_BSR                     8
233    #define PCRE_CONFIG_JIT                     9
234    
235    /* Request types for pcre_study(). Do not re-arrange, in order to remain
236    compatible. */
237    
238    #define PCRE_STUDY_JIT_COMPILE            0x0001
239    
240  /* Bit flags for the pcre_extra structure. Do not re-arrange or redefine  /* Bit flags for the pcre_extra structure. Do not re-arrange or redefine
241  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. */
# Line 196  these bits, just add new ones on the end Line 245  these bits, just add new ones on the end
245  #define PCRE_EXTRA_CALLOUT_DATA           0x0004  #define PCRE_EXTRA_CALLOUT_DATA           0x0004
246  #define PCRE_EXTRA_TABLES                 0x0008  #define PCRE_EXTRA_TABLES                 0x0008
247  #define PCRE_EXTRA_MATCH_LIMIT_RECURSION  0x0010  #define PCRE_EXTRA_MATCH_LIMIT_RECURSION  0x0010
248    #define PCRE_EXTRA_MARK                   0x0020
249    #define PCRE_EXTRA_EXECUTABLE_JIT         0x0040
250    
251  /* Types */  /* Types */
252    
253  struct real_pcre;                 /* declaration; the definition is private  */  struct real_pcre;                 /* declaration; the definition is private  */
254  typedef struct real_pcre pcre;  typedef struct real_pcre pcre;
255    
256    struct real_pcre_jit_stack;       /* declaration; the definition is private  */
257    typedef struct real_pcre_jit_stack pcre_jit_stack;
258    
259  /* When PCRE is compiled as a C++ library, the subject pointer type can be  /* When PCRE is compiled as a C++ library, the subject pointer type can be
260  replaced with a custom type. For conventional use, the public interface is a  replaced with a custom type. For conventional use, the public interface is a
261  const char *. */  const char *. */
# Line 221  typedef struct pcre_extra { Line 275  typedef struct pcre_extra {
275    void *callout_data;             /* Data passed back in callouts */    void *callout_data;             /* Data passed back in callouts */
276    const unsigned char *tables;    /* Pointer to character tables */    const unsigned char *tables;    /* Pointer to character tables */
277    unsigned long int match_limit_recursion; /* Max recursive calls to match() */    unsigned long int match_limit_recursion; /* Max recursive calls to match() */
278      unsigned char **mark;           /* For passing back a mark pointer */
279      void *executable_jit;           /* Contains a pointer to a compiled jit code */
280  } pcre_extra;  } pcre_extra;
281    
282  /* 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
# Line 243  typedef struct pcre_callout_block { Line 299  typedef struct pcre_callout_block {
299    /* ------------------- Added for Version 1 -------------------------- */    /* ------------------- Added for Version 1 -------------------------- */
300    int          pattern_position;  /* Offset to next item in the pattern */    int          pattern_position;  /* Offset to next item in the pattern */
301    int          next_item_length;  /* Length of next item in the pattern */    int          next_item_length;  /* Length of next item in the pattern */
302      /* ------------------- Added for Version 2 -------------------------- */
303      const unsigned char *mark;      /* Pointer to current mark or NULL    */
304    /* ------------------------------------------------------------------ */    /* ------------------------------------------------------------------ */
305  } pcre_callout_block;  } pcre_callout_block;
306    
# Line 266  PCRE_EXP_DECL void  pcre_stack_free(void Line 324  PCRE_EXP_DECL void  pcre_stack_free(void
324  PCRE_EXP_DECL int   pcre_callout(pcre_callout_block *);  PCRE_EXP_DECL int   pcre_callout(pcre_callout_block *);
325  #endif  /* VPCOMPAT */  #endif  /* VPCOMPAT */
326    
327    /* User defined callback which provides a stack just before the match starts. */
328    
329    typedef pcre_jit_stack *(*pcre_jit_callback)(void *);
330    
331  /* Exported PCRE functions */  /* Exported PCRE functions */
332    
333  PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *,  PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *,
# Line 298  PCRE_EXP_DECL int  pcre_info(const pcre Line 360  PCRE_EXP_DECL int  pcre_info(const pcre
360  PCRE_EXP_DECL const unsigned char *pcre_maketables(void);  PCRE_EXP_DECL const unsigned char *pcre_maketables(void);
361  PCRE_EXP_DECL int  pcre_refcount(pcre *, int);  PCRE_EXP_DECL int  pcre_refcount(pcre *, int);
362  PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **);  PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **);
363    PCRE_EXP_DECL void pcre_free_study(pcre_extra *);
364  PCRE_EXP_DECL const char *pcre_version(void);  PCRE_EXP_DECL const char *pcre_version(void);
365    
366    /* JIT compiler related functions. */
367    
368    PCRE_EXP_DECL pcre_jit_stack *pcre_jit_stack_alloc(int, int);
369    PCRE_EXP_DECL void pcre_jit_stack_free(pcre_jit_stack *);
370    PCRE_EXP_DECL void pcre_assign_jit_stack(pcre_extra *, pcre_jit_callback, void *);
371    
372  #ifdef __cplusplus  #ifdef __cplusplus
373  }  /* extern "C" */  }  /* extern "C" */
374  #endif  #endif

Legend:
Removed from v.392  
changed lines
  Added in v.780

  ViewVC Help
Powered by ViewVC 1.1.5