Changeset 10160 in webkit for trunk/JavaScriptCore/pcre/pcre.h


Ignore:
Timestamp:
Aug 12, 2005, 3:18:08 PM (20 years ago)
Author:
darin
Message:

oops; roll back, this was supposed to be on a branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/pcre/pcre.h

    r10159 r10160  
    11/*************************************************
    22*       Perl-Compatible Regular Expressions      *
     3*  extended to UTF-16 for use in JavaScriptCore  *
    34*************************************************/
    45
    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. */
    388
    399#ifndef _PCRE_H
    4010#define _PCRE_H
    4111
    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
    4426
    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
    7232
    7333/* Have to include stdlib.h in order to ensure that size_t is defined;
     
    8444/* Options */
    8545
    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
    10558
    106 /* Exec-time and get/set-time error codes */
     59/* Exec-time and get-time error codes */
    10760
    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)
    12868
    12969/* Request types for pcre_fullinfo() */
    13070
    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
    16178
    16279/* Types */
    16380
    164 struct real_pcre;                 /* declaration; the definition is private  */
     81struct real_pcre;        /* declaration; the definition is private  */
     82struct real_pcre_extra;  /* declaration; the definition is private */
     83
    16584typedef struct real_pcre pcre;
     85typedef struct real_pcre_extra pcre_extra;
    16686
    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>
     89typedef uint16_t pcre_char;
     90#else
     91typedef char pcre_char;
     92#endif
    17093
    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
     95functions if required. Some magic is required for Win32 DLL; it is null on
     96other OS. */
    17897
    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. */
     98PCRE_DL_IMPORT extern void *(*pcre_malloc)(size_t);
     99PCRE_DL_IMPORT extern void  (*pcre_free)(void *);
    183100
    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
    201102
    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 */
    207104
    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);
     105extern pcre *pcre_compile(const pcre_char *, int, const char **, int *,
     106              const unsigned char *);
     107extern int  pcre_copy_substring(const pcre_char *, int *, int, int, pcre_char *, int);
     108extern int  pcre_exec(const pcre *, const pcre_extra *, const pcre_char *,
     109              int, int, int, int *, int);
     110extern void pcre_free_substring(const pcre_char *);
     111extern void pcre_free_substring_list(const pcre_char **);
     112extern int  pcre_get_substring(const pcre_char *, int *, int, int, const pcre_char **);
     113extern int  pcre_get_substring_list(const pcre_char *, int *, int, const pcre_char ***);
     114extern int  pcre_info(const pcre *, int *, int *);
     115extern int  pcre_fullinfo(const pcre *, const pcre_extra *, int, void *);
     116extern const unsigned char *pcre_maketables(void);
     117extern pcre_extra *pcre_study(const pcre *, int, const char **);
     118extern const char *pcre_version(void);
    253119
    254120#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.