/[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 642 by ph10, Thu Jul 28 18:59:40 2011 UTC revision 716 by ph10, Tue Oct 4 16:38:05 2011 UTC
# Line 594  compatibility. */ Line 594  compatibility. */
594  #define PCRE_STARTLINE     0x0008  /* start after \n for multiline */  #define PCRE_STARTLINE     0x0008  /* start after \n for multiline */
595  #define PCRE_JCHANGED      0x0010  /* j option used in regex */  #define PCRE_JCHANGED      0x0010  /* j option used in regex */
596  #define PCRE_HASCRORLF     0x0020  /* explicit \r or \n in pattern */  #define PCRE_HASCRORLF     0x0020  /* explicit \r or \n in pattern */
597    #define PCRE_HASTHEN       0x0040  /* pattern contains (*THEN) */
598    
599  /* Flags for the "extra" block produced by pcre_study(). */  /* Flags for the "extra" block produced by pcre_study(). */
600    
# Line 624  time, run time, or study time, respectiv Line 625  time, run time, or study time, respectiv
625     PCRE_DFA_RESTART|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE| \     PCRE_DFA_RESTART|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE| \
626     PCRE_NO_START_OPTIMIZE)     PCRE_NO_START_OPTIMIZE)
627    
628  #define PUBLIC_STUDY_OPTIONS 0   /* None defined */  #define PUBLIC_STUDY_OPTIONS \
629       PCRE_STUDY_JIT_COMPILE
630    
631  /* Magic number to provide a small check against being handed junk. Also used  /* Magic number to provide a small check against being handed junk. Also used
632  to detect whether a pattern was compiled on a host of different endianness. */  to detect whether a pattern was compiled on a host of different endianness. */
# Line 1641  in UTF-8 mode. The code that uses this t Line 1643  in UTF-8 mode. The code that uses this t
1643    1, 1, 1,                       /* BRAZERO, BRAMINZERO, BRAPOSZERO        */ \    1, 1, 1,                       /* BRAZERO, BRAMINZERO, BRAPOSZERO        */ \
1644    3, 1, 3,                       /* MARK, PRUNE, PRUNE_ARG                 */ \    3, 1, 3,                       /* MARK, PRUNE, PRUNE_ARG                 */ \
1645    1, 3,                          /* SKIP, SKIP_ARG                         */ \    1, 3,                          /* SKIP, SKIP_ARG                         */ \
1646    1+LINK_SIZE, 3+LINK_SIZE,      /* THEN, THEN_ARG                         */ \    1, 3,                          /* THEN, THEN_ARG                         */ \
1647    1, 1, 1, 1,                    /* COMMIT, FAIL, ACCEPT, ASSERT_ACCEPT    */ \    1, 1, 1, 1,                    /* COMMIT, FAIL, ACCEPT, ASSERT_ACCEPT    */ \
1648    3, 1                           /* CLOSE, SKIPZERO  */    3, 1                           /* CLOSE, SKIPZERO  */
1649    
# Line 1741  typedef struct compile_data { Line 1743  typedef struct compile_data {
1743    int  final_bracount;          /* Saved value after first pass */    int  final_bracount;          /* Saved value after first pass */
1744    int  top_backref;             /* Maximum back reference */    int  top_backref;             /* Maximum back reference */
1745    unsigned int backref_map;     /* Bitmap of low back refs */    unsigned int backref_map;     /* Bitmap of low back refs */
1746    int  assert_depth;            /* Depth of nested assertions */    int  assert_depth;            /* Depth of nested assertions */
1747    int  external_options;        /* External (initial) options */    int  external_options;        /* External (initial) options */
1748    int  external_flags;          /* External flag bits to be set */    int  external_flags;          /* External flag bits to be set */
1749    int  req_varyopt;             /* "After variable item" flag for reqbyte */    int  req_varyopt;             /* "After variable item" flag for reqbyte */
# Line 1768  typedef struct recursion_info { Line 1770  typedef struct recursion_info {
1770    int group_num;                  /* Number of group that was called */    int group_num;                  /* Number of group that was called */
1771    int *offset_save;               /* Pointer to start of saved offsets */    int *offset_save;               /* Pointer to start of saved offsets */
1772    int saved_max;                  /* Number of saved offsets */    int saved_max;                  /* Number of saved offsets */
1773    USPTR subject_position;         /* Position at start of recursion */    USPTR subject_position;         /* Position at start of recursion */
1774  } recursion_info;  } recursion_info;
1775    
1776  /* A similar structure for pcre_dfa_exec(). */  /* A similar structure for pcre_dfa_exec(). */
# Line 1781  typedef struct dfa_recursion_info { Line 1783  typedef struct dfa_recursion_info {
1783    
1784  /* Structure for building a chain of data for holding the values of the subject  /* Structure for building a chain of data for holding the values of the subject
1785  pointer at the start of each subpattern, so as to detect when an empty string  pointer at the start of each subpattern, so as to detect when an empty string
1786  has been matched by a subpattern - to break infinite loops; used by  has been matched by a subpattern - to break infinite loops; used by
1787  pcre_exec(). */  pcre_exec(). */
1788    
1789  typedef struct eptrblock {  typedef struct eptrblock {
# Line 1819  typedef struct match_data { Line 1821  typedef struct match_data {
1821    BOOL   notempty_atstart;      /* Empty string match at start not wanted */    BOOL   notempty_atstart;      /* Empty string match at start not wanted */
1822    BOOL   hitend;                /* Hit the end of the subject at some point */    BOOL   hitend;                /* Hit the end of the subject at some point */
1823    BOOL   bsr_anycrlf;           /* \R is just any CRLF, not full Unicode */    BOOL   bsr_anycrlf;           /* \R is just any CRLF, not full Unicode */
1824      BOOL   hasthen;               /* Pattern contains (*THEN) */
1825    const  uschar *start_code;    /* For use when recursing */    const  uschar *start_code;    /* For use when recursing */
1826    USPTR  start_subject;         /* Start of the subject string */    USPTR  start_subject;         /* Start of the subject string */
1827    USPTR  end_subject;           /* End of the subject string */    USPTR  end_subject;           /* End of the subject string */
# Line 1835  typedef struct match_data { Line 1838  typedef struct match_data {
1838    recursion_info *recursive;    /* Linked list of recursion data */    recursion_info *recursive;    /* Linked list of recursion data */
1839    void  *callout_data;          /* To pass back to callouts */    void  *callout_data;          /* To pass back to callouts */
1840    const  uschar *mark;          /* Mark pointer to pass back */    const  uschar *mark;          /* Mark pointer to pass back */
1841    const  uschar *once_target;   /* Where to back up to for atomic groups */    const  uschar *once_target;   /* Where to back up to for atomic groups */
1842  } match_data;  } match_data;
1843    
1844  /* 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 1854  typedef struct dfa_match_data { Line 1857  typedef struct dfa_match_data {
1857    int    nllen;                  /* Newline string length */    int    nllen;                  /* Newline string length */
1858    uschar nl[4];                  /* Newline string when fixed */    uschar nl[4];                  /* Newline string when fixed */
1859    void  *callout_data;           /* To pass back to callouts */    void  *callout_data;           /* To pass back to callouts */
1860    dfa_recursion_info *recursive; /* Linked list of recursion data */    dfa_recursion_info *recursive; /* Linked list of recursion data */
1861  } dfa_match_data;  } dfa_match_data;
1862    
1863  /* Bit definitions for entries in the pcre_ctypes table. */  /* Bit definitions for entries in the pcre_ctypes table. */
# Line 1912  extern const int    _pcre_utf8_table2[]; Line 1915  extern const int    _pcre_utf8_table2[];
1915  extern const int    _pcre_utf8_table3[];  extern const int    _pcre_utf8_table3[];
1916  extern const uschar _pcre_utf8_table4[];  extern const uschar _pcre_utf8_table4[];
1917    
1918    #ifdef SUPPORT_JIT
1919    extern const uschar _pcre_utf8_char_sizes[];
1920    #endif
1921    
1922  extern const int    _pcre_utf8_table1_size;  extern const int    _pcre_utf8_table1_size;
1923    
1924  extern const char   _pcre_utt_names[];  extern const char   _pcre_utt_names[];
# Line 1936  extern int           _pcre_valid_utf8(US Line 1943  extern int           _pcre_valid_utf8(US
1943  extern BOOL          _pcre_was_newline(USPTR, int, USPTR, int *, BOOL);  extern BOOL          _pcre_was_newline(USPTR, int, USPTR, int *, BOOL);
1944  extern BOOL          _pcre_xclass(int, const uschar *);  extern BOOL          _pcre_xclass(int, const uschar *);
1945    
1946    #ifdef SUPPORT_JIT
1947    extern void          _pcre_jit_compile(const real_pcre *, pcre_extra *);
1948    extern int           _pcre_jit_exec(const real_pcre *, void *, PCRE_SPTR,
1949                            int, int, int, int, int *, int);
1950    extern void          _pcre_jit_free(void *);
1951    #endif
1952    
1953  /* Unicode character database (UCD) */  /* Unicode character database (UCD) */
1954    
# Line 1949  extern const ucd_record  _pcre_ucd_recor Line 1962  extern const ucd_record  _pcre_ucd_recor
1962  extern const uschar      _pcre_ucd_stage1[];  extern const uschar      _pcre_ucd_stage1[];
1963  extern const pcre_uint16 _pcre_ucd_stage2[];  extern const pcre_uint16 _pcre_ucd_stage2[];
1964  extern const int         _pcre_ucp_gentype[];  extern const int         _pcre_ucp_gentype[];
1965    #ifdef SUPPORT_JIT
1966    extern const int         _pcre_ucp_typerange[];
1967    #endif
1968    
1969  /* UCD access macros */  /* UCD access macros */
1970    

Legend:
Removed from v.642  
changed lines
  Added in v.716

  ViewVC Help
Powered by ViewVC 1.1.5