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

Diff of /code/trunk/pcre_internal.h

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

revision 932 by ph10, Fri Feb 24 18:54:43 2012 UTC revision 1022 by ph10, Tue Aug 28 12:28:15 2012 UTC
# Line 523  capturing parenthesis numbers in back re Line 523  capturing parenthesis numbers in back re
523    
524  #define PUT2INC(a,n,d)  PUT2(a,n,d), a += IMM2_SIZE  #define PUT2INC(a,n,d)  PUT2(a,n,d), a += IMM2_SIZE
525    
526    /* The maximum length of a MARK name is currently one data unit; it may be
527    changed in future to be a fixed number of bytes or to depend on LINK_SIZE. */
528    
529    #define MAX_MARK ((1 << (sizeof(pcre_uchar)*8)) - 1)
530    
531  /* When UTF encoding is being used, a character is no longer just a single  /* When UTF encoding is being used, a character is no longer just a single
532  character. The macros for character handling generate simple sequences when  character. The macros for character handling generate simple sequences when
533  used in character-mode, and more complicated ones for UTF characters.  used in character-mode, and more complicated ones for UTF characters.
# Line 888  time, run time, or study time, respectiv Line 893  time, run time, or study time, respectiv
893    
894  #define PUBLIC_STUDY_OPTIONS \  #define PUBLIC_STUDY_OPTIONS \
895     (PCRE_STUDY_JIT_COMPILE|PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE| \     (PCRE_STUDY_JIT_COMPILE|PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE| \
896      PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE)      PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE|PCRE_STUDY_EXTRA_NEEDED)
897    
898  /* Magic number to provide a small check against being handed junk. */  /* Magic number to provide a small check against being handed junk. */
899    
# Line 1940  enum { ERR0,  ERR1,  ERR2,  ERR3,  ERR4, Line 1945  enum { ERR0,  ERR1,  ERR2,  ERR3,  ERR4,
1945         ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49,         ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49,
1946         ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59,         ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59,
1947         ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69,         ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69,
1948         ERR70, ERR71, ERR72, ERR73, ERR74, ERRCOUNT };         ERR70, ERR71, ERR72, ERR73, ERR74, ERR75, ERR76, ERRCOUNT };
1949    
1950  /* JIT compiling modes. The function list is indexed by them. */  /* JIT compiling modes. The function list is indexed by them. */
1951  enum { JIT_COMPILE, JIT_PARTIAL_SOFT_COMPILE, JIT_PARTIAL_HARD_COMPILE,  enum { JIT_COMPILE, JIT_PARTIAL_SOFT_COMPILE, JIT_PARTIAL_HARD_COMPILE,
# Line 2036  typedef struct compile_data { Line 2041  typedef struct compile_data {
2041    int  external_flags;              /* External flag bits to be set */    int  external_flags;              /* External flag bits to be set */
2042    int  req_varyopt;                 /* "After variable item" flag for reqbyte */    int  req_varyopt;                 /* "After variable item" flag for reqbyte */
2043    BOOL had_accept;                  /* (*ACCEPT) encountered */    BOOL had_accept;                  /* (*ACCEPT) encountered */
2044      BOOL had_pruneorskip;             /* (*PRUNE) or (*SKIP) encountered */
2045    BOOL check_lookbehind;            /* Lookbehinds need later checking */    BOOL check_lookbehind;            /* Lookbehinds need later checking */
2046    int  nltype;                      /* Newline type */    int  nltype;                      /* Newline type */
2047    int  nllen;                       /* Newline string length */    int  nllen;                       /* Newline string length */
# Line 2130  typedef struct match_data { Line 2136  typedef struct match_data {
2136    const  pcre_uchar *mark;        /* Mark pointer to pass back on success */    const  pcre_uchar *mark;        /* Mark pointer to pass back on success */
2137    const  pcre_uchar *nomatch_mark;/* Mark pointer to pass back on failure */    const  pcre_uchar *nomatch_mark;/* Mark pointer to pass back on failure */
2138    const  pcre_uchar *once_target; /* Where to back up to for atomic groups */    const  pcre_uchar *once_target; /* Where to back up to for atomic groups */
2139    #ifdef NO_RECURSE
2140      void  *match_frames_base;       /* For remembering malloc'd frames */
2141    #endif
2142  } match_data;  } match_data;
2143    
2144  /* A similar structure is used for the same purpose by the DFA matching  /* A similar structure is used for the same purpose by the DFA matching
# Line 2293  extern BOOL              PRIV(was_newlin Line 2302  extern BOOL              PRIV(was_newlin
2302  extern BOOL              PRIV(xclass)(int, const pcre_uchar *, BOOL);  extern BOOL              PRIV(xclass)(int, const pcre_uchar *, BOOL);
2303    
2304  #ifdef SUPPORT_JIT  #ifdef SUPPORT_JIT
2305  extern void              PRIV(jit_compile)(const REAL_PCRE *, PUBL(extra) *, int);  extern void              PRIV(jit_compile)(const REAL_PCRE *,
2306  extern int               PRIV(jit_exec)(const REAL_PCRE *, void *,                             PUBL(extra) *, int);
2307                             const pcre_uchar *, int, int, int, int, int *, int,  extern int               PRIV(jit_exec)(const REAL_PCRE *, const PUBL(extra) *,
2308                             pcre_uchar **);                             const pcre_uchar *, int, int, int, int *, int);
2309  extern void              PRIV(jit_free)(void *);  extern void              PRIV(jit_free)(void *);
2310  extern int               PRIV(jit_get_size)(void *);  extern int               PRIV(jit_get_size)(void *);
2311  extern const char*       PRIV(jit_get_target)(void);  extern const char*       PRIV(jit_get_target)(void);
# Line 2305  extern const char*       PRIV(jit_get_ta Line 2314  extern const char*       PRIV(jit_get_ta
2314  /* Unicode character database (UCD) */  /* Unicode character database (UCD) */
2315    
2316  typedef struct {  typedef struct {
2317    pcre_uint8 script;    pcre_uint8 script;     /* ucp_Arabic, etc. */
2318    pcre_uint8 chartype;    pcre_uint8 chartype;   /* ucp_Cc, etc. (general categories) */
2319    pcre_int32 other_case;    pcre_uint8 gbprop;     /* ucp_gbControl, etc. (grapheme break property) */
2320      pcre_int32 other_case; /* offset to other case, or zero if none */
2321  } ucd_record;  } ucd_record;
2322    
2323  extern const ucd_record  PRIV(ucd_records)[];  extern const ucd_record  PRIV(ucd_records)[];
2324  extern const pcre_uint8  PRIV(ucd_stage1)[];  extern const pcre_uint8  PRIV(ucd_stage1)[];
2325  extern const pcre_uint16 PRIV(ucd_stage2)[];  extern const pcre_uint16 PRIV(ucd_stage2)[];
2326  extern const int         PRIV(ucp_gentype)[];  extern const int         PRIV(ucp_gentype)[];
2327    extern const pcre_uint32 PRIV(ucp_gbtable)[];
2328  #ifdef SUPPORT_JIT  #ifdef SUPPORT_JIT
2329  extern const int         PRIV(ucp_typerange)[];  extern const int         PRIV(ucp_typerange)[];
2330  #endif  #endif
# Line 2326  extern const int         PRIV(ucp_typera Line 2337  extern const int         PRIV(ucp_typera
2337          PRIV(ucd_stage2)[PRIV(ucd_stage1)[(ch) / UCD_BLOCK_SIZE] * \          PRIV(ucd_stage2)[PRIV(ucd_stage1)[(ch) / UCD_BLOCK_SIZE] * \
2338          UCD_BLOCK_SIZE + (ch) % UCD_BLOCK_SIZE])          UCD_BLOCK_SIZE + (ch) % UCD_BLOCK_SIZE])
2339    
2340  #define UCD_CHARTYPE(ch)  GET_UCD(ch)->chartype  #define UCD_CHARTYPE(ch)    GET_UCD(ch)->chartype
2341  #define UCD_SCRIPT(ch)    GET_UCD(ch)->script  #define UCD_SCRIPT(ch)      GET_UCD(ch)->script
2342  #define UCD_CATEGORY(ch)  PRIV(ucp_gentype)[UCD_CHARTYPE(ch)]  #define UCD_CATEGORY(ch)    PRIV(ucp_gentype)[UCD_CHARTYPE(ch)]
2343  #define UCD_OTHERCASE(ch) (ch + GET_UCD(ch)->other_case)  #define UCD_GRAPHBREAK(ch)  GET_UCD(ch)->gbprop
2344    #define UCD_OTHERCASE(ch)   (ch + GET_UCD(ch)->other_case)
2345    
2346  #endif /* SUPPORT_UCP */  #endif /* SUPPORT_UCP */
2347    

Legend:
Removed from v.932  
changed lines
  Added in v.1022

  ViewVC Help
Powered by ViewVC 1.1.5