Changeset 10160 in webkit for trunk/JavaScriptCore/pcre/pcre.h
- Timestamp:
- Aug 12, 2005, 3:18:08 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/pcre/pcre.h
r10159 r10160 1 1 /************************************************* 2 2 * Perl-Compatible Regular Expressions * 3 * extended to UTF-16 for use in JavaScriptCore * 3 4 *************************************************/ 4 5 5 /* In its original form, this is the .in file that is transformed by 6 "configure" into pcre.h. 7 8 Copyright (c) 1997-2005 University of Cambridge 9 10 ----------------------------------------------------------------------------- 11 Redistribution and use in source and binary forms, with or without 12 modification, are permitted provided that the following conditions are met: 13 14 * Redistributions of source code must retain the above copyright notice, 15 this list of conditions and the following disclaimer. 16 17 * Redistributions in binary form must reproduce the above copyright 18 notice, this list of conditions and the following disclaimer in the 19 documentation and/or other materials provided with the distribution. 20 21 * Neither the name of the University of Cambridge nor the names of its 22 contributors may be used to endorse or promote products derived from 23 this software without specific prior written permission. 24 25 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 26 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 29 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 30 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 31 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 33 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 34 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 POSSIBILITY OF SUCH DAMAGE. 36 ----------------------------------------------------------------------------- 37 */ 6 /* Copyright (c) 1997-2001 University of Cambridge */ 7 /* Copyright (C) 2004 Apple Computer, Inc. */ 38 8 39 9 #ifndef _PCRE_H 40 10 #define _PCRE_H 41 11 42 /* The file pcre.h is build by "configure". Do not edit it; instead 43 make changes to pcre.in. */ 12 #define pcre_compile kjs_pcre_compile 13 #define pcre_copy_substring kjs_pcre_copy_substring 14 #define pcre_exec kjs_pcre_exec 15 #define pcre_free kjs_pcre_free 16 #define pcre_free_substring kjs_pcre_free_substring 17 #define pcre_free_substring_list kjs_pcre_free_substring_list 18 #define pcre_fullinfo kjs_pcre_fullinfo 19 #define pcre_get_substring kjs_pcre_get_substring 20 #define pcre_get_substring_list kjs_pcre_get_substring_list 21 #define pcre_info kjs_pcre_info 22 #define pcre_maketables kjs_pcre_maketables 23 #define pcre_malloc kjs_pcre_malloc 24 #define pcre_study kjs_pcre_study 25 #define pcre_version kjs_pcre_version 44 26 45 #define PCRE_MAJOR @PCRE_MAJOR@ 46 #define PCRE_MINOR @PCRE_MINOR@ 47 #define PCRE_DATE @PCRE_DATE@ 48 49 /* Win32 uses DLL by default; it needs special stuff for exported functions. */ 50 51 #ifdef _WIN32 52 # ifdef PCRE_DEFINITION 53 # ifdef DLL_EXPORT 54 # define PCRE_DATA_SCOPE __declspec(dllexport) 55 # endif 56 # else 57 # ifndef PCRE_STATIC 58 # define PCRE_DATA_SCOPE extern __declspec(dllimport) 59 # endif 60 # endif 61 #endif 62 63 /* For other operating systems, we use the standard "extern". */ 64 65 #ifndef PCRE_DATA_SCOPE 66 # ifdef __cplusplus 67 # define PCRE_DATA_SCOPE extern "C" 68 # else 69 # define PCRE_DATA_SCOPE extern 70 # endif 71 #endif 27 #define PCRE_MAJOR 3 28 #define PCRE_MINOR 9 29 #define PCRE_DATE 02-Jan-2002 30 #define PCRE_DL_IMPORT 31 #define PCRE_UTF16 1 72 32 73 33 /* Have to include stdlib.h in order to ensure that size_t is defined; … … 84 44 /* Options */ 85 45 86 #define PCRE_CASELESS 0x00000001 87 #define PCRE_MULTILINE 0x00000002 88 #define PCRE_DOTALL 0x00000004 89 #define PCRE_EXTENDED 0x00000008 90 #define PCRE_ANCHORED 0x00000010 91 #define PCRE_DOLLAR_ENDONLY 0x00000020 92 #define PCRE_EXTRA 0x00000040 93 #define PCRE_NOTBOL 0x00000080 94 #define PCRE_NOTEOL 0x00000100 95 #define PCRE_UNGREEDY 0x00000200 96 #define PCRE_NOTEMPTY 0x00000400 97 #define PCRE_UTF8 0x00000800 98 #define PCRE_NO_AUTO_CAPTURE 0x00001000 99 #define PCRE_NO_UTF8_CHECK 0x00002000 100 #define PCRE_AUTO_CALLOUT 0x00004000 101 #define PCRE_PARTIAL 0x00008000 102 #define PCRE_DFA_SHORTEST 0x00010000 103 #define PCRE_DFA_RESTART 0x00020000 104 #define PCRE_FIRSTLINE 0x00040000 46 #define PCRE_CASELESS 0x0001 47 #define PCRE_MULTILINE 0x0002 48 #define PCRE_DOTALL 0x0004 49 #define PCRE_EXTENDED 0x0008 50 #define PCRE_ANCHORED 0x0010 51 #define PCRE_DOLLAR_ENDONLY 0x0020 52 #define PCRE_EXTRA 0x0040 53 #define PCRE_NOTBOL 0x0080 54 #define PCRE_NOTEOL 0x0100 55 #define PCRE_UNGREEDY 0x0200 56 #define PCRE_NOTEMPTY 0x0400 57 #define PCRE_UTF8 0x0800 105 58 106 /* Exec-time and get /set-time error codes */59 /* Exec-time and get-time error codes */ 107 60 108 #define PCRE_ERROR_NOMATCH (-1) 109 #define PCRE_ERROR_NULL (-2) 110 #define PCRE_ERROR_BADOPTION (-3) 111 #define PCRE_ERROR_BADMAGIC (-4) 112 #define PCRE_ERROR_UNKNOWN_NODE (-5) 113 #define PCRE_ERROR_NOMEMORY (-6) 114 #define PCRE_ERROR_NOSUBSTRING (-7) 115 #define PCRE_ERROR_MATCHLIMIT (-8) 116 #define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */ 117 #define PCRE_ERROR_BADUTF8 (-10) 118 #define PCRE_ERROR_BADUTF8_OFFSET (-11) 119 #define PCRE_ERROR_PARTIAL (-12) 120 #define PCRE_ERROR_BADPARTIAL (-13) 121 #define PCRE_ERROR_INTERNAL (-14) 122 #define PCRE_ERROR_BADCOUNT (-15) 123 #define PCRE_ERROR_DFA_UITEM (-16) 124 #define PCRE_ERROR_DFA_UCOND (-17) 125 #define PCRE_ERROR_DFA_UMLIMIT (-18) 126 #define PCRE_ERROR_DFA_WSSIZE (-19) 127 #define PCRE_ERROR_DFA_RECURSE (-20) 61 #define PCRE_ERROR_NOMATCH (-1) 62 #define PCRE_ERROR_NULL (-2) 63 #define PCRE_ERROR_BADOPTION (-3) 64 #define PCRE_ERROR_BADMAGIC (-4) 65 #define PCRE_ERROR_UNKNOWN_NODE (-5) 66 #define PCRE_ERROR_NOMEMORY (-6) 67 #define PCRE_ERROR_NOSUBSTRING (-7) 128 68 129 69 /* Request types for pcre_fullinfo() */ 130 70 131 #define PCRE_INFO_OPTIONS 0 132 #define PCRE_INFO_SIZE 1 133 #define PCRE_INFO_CAPTURECOUNT 2 134 #define PCRE_INFO_BACKREFMAX 3 135 #define PCRE_INFO_FIRSTBYTE 4 136 #define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */ 137 #define PCRE_INFO_FIRSTTABLE 5 138 #define PCRE_INFO_LASTLITERAL 6 139 #define PCRE_INFO_NAMEENTRYSIZE 7 140 #define PCRE_INFO_NAMECOUNT 8 141 #define PCRE_INFO_NAMETABLE 9 142 #define PCRE_INFO_STUDYSIZE 10 143 #define PCRE_INFO_DEFAULT_TABLES 11 144 145 /* Request types for pcre_config() */ 146 147 #define PCRE_CONFIG_UTF8 0 148 #define PCRE_CONFIG_NEWLINE 1 149 #define PCRE_CONFIG_LINK_SIZE 2 150 #define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3 151 #define PCRE_CONFIG_MATCH_LIMIT 4 152 #define PCRE_CONFIG_STACKRECURSE 5 153 #define PCRE_CONFIG_UNICODE_PROPERTIES 6 154 155 /* Bit flags for the pcre_extra structure */ 156 157 #define PCRE_EXTRA_STUDY_DATA 0x0001 158 #define PCRE_EXTRA_MATCH_LIMIT 0x0002 159 #define PCRE_EXTRA_CALLOUT_DATA 0x0004 160 #define PCRE_EXTRA_TABLES 0x0008 71 #define PCRE_INFO_OPTIONS 0 72 #define PCRE_INFO_SIZE 1 73 #define PCRE_INFO_CAPTURECOUNT 2 74 #define PCRE_INFO_BACKREFMAX 3 75 #define PCRE_INFO_FIRSTCHAR 4 76 #define PCRE_INFO_FIRSTTABLE 5 77 #define PCRE_INFO_LASTLITERAL 6 161 78 162 79 /* Types */ 163 80 164 struct real_pcre; /* declaration; the definition is private */ 81 struct real_pcre; /* declaration; the definition is private */ 82 struct real_pcre_extra; /* declaration; the definition is private */ 83 165 84 typedef struct real_pcre pcre; 85 typedef struct real_pcre_extra pcre_extra; 166 86 167 /* The structure for passing additional data to pcre_exec(). This is defined in 168 such as way as to be extensible. Always add new fields at the end, in order to 169 remain compatible. */ 87 #if PCRE_UTF16 88 #include <stdint.h> 89 typedef uint16_t pcre_char; 90 #else 91 typedef char pcre_char; 92 #endif 170 93 171 typedef struct pcre_extra { 172 unsigned long int flags; /* Bits for which fields are set */ 173 void *study_data; /* Opaque data from pcre_study() */ 174 unsigned long int match_limit; /* Maximum number of calls to match() */ 175 void *callout_data; /* Data passed back in callouts */ 176 const unsigned char *tables; /* Pointer to character tables */ 177 } pcre_extra; 94 /* Store get and free functions. These can be set to alternative malloc/free 95 functions if required. Some magic is required for Win32 DLL; it is null on 96 other OS. */ 178 97 179 /* The structure for passing out data via the pcre_callout_function. We use a 180 structure so that new fields can be added on the end in future versions, 181 without changing the API of the function, thereby allowing old clients to work 182 without modification. */ 98 PCRE_DL_IMPORT extern void *(*pcre_malloc)(size_t); 99 PCRE_DL_IMPORT extern void (*pcre_free)(void *); 183 100 184 typedef struct pcre_callout_block { 185 int version; /* Identifies version of block */ 186 /* ------------------------ Version 0 ------------------------------- */ 187 int callout_number; /* Number compiled into pattern */ 188 int *offset_vector; /* The offset vector */ 189 const char *subject; /* The subject being matched */ 190 int subject_length; /* The length of the subject */ 191 int start_match; /* Offset to start of this match attempt */ 192 int current_position; /* Where we currently are in the subject */ 193 int capture_top; /* Max current capture */ 194 int capture_last; /* Most recently closed capture */ 195 void *callout_data; /* Data passed in with the call */ 196 /* ------------------- Added for Version 1 -------------------------- */ 197 int pattern_position; /* Offset to next item in the pattern */ 198 int next_item_length; /* Length of next item in the pattern */ 199 /* ------------------------------------------------------------------ */ 200 } pcre_callout_block; 101 #undef PCRE_DL_IMPORT 201 102 202 /* Indirection for store get and free functions. These can be set to 203 alternative malloc/free functions if required. Special ones are used in the 204 non-recursive case for "frames". There is also an optional callout function 205 that is triggered by the (?) regex item. For Virtual Pascal, these definitions 206 have to take another form. */ 103 /* Functions */ 207 104 208 #ifndef VPCOMPAT 209 PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t); 210 PCRE_DATA_SCOPE void (*pcre_free)(void *); 211 PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t); 212 PCRE_DATA_SCOPE void (*pcre_stack_free)(void *); 213 PCRE_DATA_SCOPE int (*pcre_callout)(pcre_callout_block *); 214 #else /* VPCOMPAT */ 215 PCRE_DATA_SCOPE void *pcre_malloc(size_t); 216 PCRE_DATA_SCOPE void pcre_free(void *); 217 PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t); 218 PCRE_DATA_SCOPE void pcre_stack_free(void *); 219 PCRE_DATA_SCOPE int pcre_callout(pcre_callout_block *); 220 #endif /* VPCOMPAT */ 221 222 /* Exported PCRE functions */ 223 224 PCRE_DATA_SCOPE pcre *pcre_compile(const char *, int, const char **, int *, 225 const unsigned char *); 226 PCRE_DATA_SCOPE pcre *pcre_compile2(const char *, int, int *, const char **, 227 int *, const unsigned char *); 228 PCRE_DATA_SCOPE int pcre_config(int, void *); 229 PCRE_DATA_SCOPE int pcre_copy_named_substring(const pcre *, const char *, 230 int *, int, const char *, char *, int); 231 PCRE_DATA_SCOPE int pcre_copy_substring(const char *, int *, int, int, char *, 232 int); 233 PCRE_DATA_SCOPE int pcre_dfa_exec(const pcre *, const pcre_extra *, 234 const char *, int, int, int, int *, int , int *, int); 235 PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, const char *, 236 int, int, int, int *, int); 237 PCRE_DATA_SCOPE void pcre_free_substring(const char *); 238 PCRE_DATA_SCOPE void pcre_free_substring_list(const char **); 239 PCRE_DATA_SCOPE int pcre_fullinfo(const pcre *, const pcre_extra *, int, 240 void *); 241 PCRE_DATA_SCOPE int pcre_get_named_substring(const pcre *, const char *, 242 int *, int, const char *, const char **); 243 PCRE_DATA_SCOPE int pcre_get_stringnumber(const pcre *, const char *); 244 PCRE_DATA_SCOPE int pcre_get_substring(const char *, int *, int, int, 245 const char **); 246 PCRE_DATA_SCOPE int pcre_get_substring_list(const char *, int *, int, 247 const char ***); 248 PCRE_DATA_SCOPE int pcre_info(const pcre *, int *, int *); 249 PCRE_DATA_SCOPE const unsigned char *pcre_maketables(void); 250 PCRE_DATA_SCOPE int pcre_refcount(pcre *, int); 251 PCRE_DATA_SCOPE pcre_extra *pcre_study(const pcre *, int, const char **); 252 PCRE_DATA_SCOPE const char *pcre_version(void); 105 extern pcre *pcre_compile(const pcre_char *, int, const char **, int *, 106 const unsigned char *); 107 extern int pcre_copy_substring(const pcre_char *, int *, int, int, pcre_char *, int); 108 extern int pcre_exec(const pcre *, const pcre_extra *, const pcre_char *, 109 int, int, int, int *, int); 110 extern void pcre_free_substring(const pcre_char *); 111 extern void pcre_free_substring_list(const pcre_char **); 112 extern int pcre_get_substring(const pcre_char *, int *, int, int, const pcre_char **); 113 extern int pcre_get_substring_list(const pcre_char *, int *, int, const pcre_char ***); 114 extern int pcre_info(const pcre *, int *, int *); 115 extern int pcre_fullinfo(const pcre *, const pcre_extra *, int, void *); 116 extern const unsigned char *pcre_maketables(void); 117 extern pcre_extra *pcre_study(const pcre *, int, const char **); 118 extern const char *pcre_version(void); 253 119 254 120 #ifdef __cplusplus
Note:
See TracChangeset
for help on using the changeset viewer.