/[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 412 by ph10, Sat Apr 11 10:34:37 2009 UTC revision 454 by ph10, Tue Sep 22 09:42:11 2009 UTC
# Line 535  Standard C system should have one. */ Line 535  Standard C system should have one. */
535    
536  /* Private flags containing information about the compiled regex. They used to  /* Private flags containing information about the compiled regex. They used to
537  live at the top end of the options word, but that got almost full, so now they  live at the top end of the options word, but that got almost full, so now they
538  are in a 16-bit flags word. */  are in a 16-bit flags word. From release 8.00, PCRE_NOPARTIAL is unused, as
539    the restrictions on partial matching have been lifted. It remains for backwards
540    compatibility. */
541    
542  #define PCRE_NOPARTIAL     0x0001  /* can't use partial with this regex */  #define PCRE_NOPARTIAL     0x0001  /* can't use partial with this regex */
543  #define PCRE_FIRSTSET      0x0002  /* first_byte is set */  #define PCRE_FIRSTSET      0x0002  /* first_byte is set */
# Line 562  time, run time, or study time, respectiv Line 564  time, run time, or study time, respectiv
564     PCRE_JAVASCRIPT_COMPAT)     PCRE_JAVASCRIPT_COMPAT)
565    
566  #define PUBLIC_EXEC_OPTIONS \  #define PUBLIC_EXEC_OPTIONS \
567    (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \    (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NOTEMPTY_ATSTART| \
568     PCRE_PARTIAL|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE| \     PCRE_NO_UTF8_CHECK|PCRE_PARTIAL_HARD|PCRE_PARTIAL_SOFT|PCRE_NEWLINE_BITS| \
569     PCRE_NO_START_OPTIMIZE)     PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE|PCRE_NO_START_OPTIMIZE)
570    
571  #define PUBLIC_DFA_EXEC_OPTIONS \  #define PUBLIC_DFA_EXEC_OPTIONS \
572    (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \    (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NOTEMPTY_ATSTART| \
573     PCRE_PARTIAL|PCRE_DFA_SHORTEST|PCRE_DFA_RESTART|PCRE_NEWLINE_BITS| \     PCRE_NO_UTF8_CHECK|PCRE_PARTIAL_HARD|PCRE_PARTIAL_SOFT|PCRE_DFA_SHORTEST| \
574     PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE|PCRE_NO_START_OPTIMIZE)     PCRE_DFA_RESTART|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE| \
575       PCRE_NO_START_OPTIMIZE)
576    
577  #define PUBLIC_STUDY_OPTIONS 0   /* None defined */  #define PUBLIC_STUDY_OPTIONS 0   /* None defined */
578    
# Line 1361  enum { Line 1364  enum {
1364    
1365    OP_FAIL,           /* 109 */    OP_FAIL,           /* 109 */
1366    OP_ACCEPT,         /* 110 */    OP_ACCEPT,         /* 110 */
1367      OP_CLOSE,          /* 111 Used before OP_ACCEPT to close open captures */
1368    
1369    /* This is used to skip a subpattern with a {0} quantifier */    /* This is used to skip a subpattern with a {0} quantifier */
1370    
1371    OP_SKIPZERO        /* 111 */    OP_SKIPZERO        /* 112 */
1372  };  };
1373    
1374    
# Line 1390  for debugging. The macro is referenced o Line 1394  for debugging. The macro is referenced o
1394    "Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond",        \    "Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond",        \
1395    "Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero",    \    "Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero",    \
1396    "*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT",      \    "*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT",      \
1397    "Skip zero"    "Close", "Skip zero"
1398    
1399    
1400  /* This macro defines the length of fixed length operations in the compiled  /* This macro defines the length of fixed length operations in the compiled
# Line 1455  in UTF-8 mode. The code that uses this t Line 1459  in UTF-8 mode. The code that uses this t
1459    1,                             /* DEF                                    */ \    1,                             /* DEF                                    */ \
1460    1, 1,                          /* BRAZERO, BRAMINZERO                    */ \    1, 1,                          /* BRAZERO, BRAMINZERO                    */ \
1461    1, 1, 1, 1,                    /* PRUNE, SKIP, THEN, COMMIT,             */ \    1, 1, 1, 1,                    /* PRUNE, SKIP, THEN, COMMIT,             */ \
1462    1, 1, 1                        /* FAIL, ACCEPT, SKIPZERO                 */    1, 1, 3, 1                     /* FAIL, ACCEPT, CLOSE, SKIPZERO          */
1463    
1464    
1465  /* A magic value for OP_RREF to indicate the "any recursion" condition. */  /* A magic value for OP_RREF to indicate the "any recursion" condition. */
# Line 1518  typedef struct pcre_study_data { Line 1522  typedef struct pcre_study_data {
1522    uschar start_bits[32];    uschar start_bits[32];
1523  } pcre_study_data;  } pcre_study_data;
1524    
1525    /* Structure for building a chain of open capturing subpatterns during
1526    compiling, so that instructions to close them can be compiled when (*ACCEPT) is
1527    encountered. */
1528    
1529    typedef struct open_capitem {
1530      struct open_capitem *next;    /* Chain link */
1531      pcre_uint16 number;           /* Capture number */
1532    } open_capitem;
1533    
1534  /* Structure for passing "static" information around between the functions  /* Structure for passing "static" information around between the functions
1535  doing the compiling, so that they are thread-safe. */  doing the compiling, so that they are thread-safe. */
1536    
# Line 1530  typedef struct compile_data { Line 1543  typedef struct compile_data {
1543    const uschar *start_code;     /* The start of the compiled code */    const uschar *start_code;     /* The start of the compiled code */
1544    const uschar *start_pattern;  /* The start of the pattern */    const uschar *start_pattern;  /* The start of the pattern */
1545    const uschar *end_pattern;    /* The end of the pattern */    const uschar *end_pattern;    /* The end of the pattern */
1546      open_capitem *open_caps;      /* Chain of open capture items */
1547    uschar *hwm;                  /* High watermark of workspace */    uschar *hwm;                  /* High watermark of workspace */
1548    uschar *name_table;           /* The name/number table */    uschar *name_table;           /* The name/number table */
1549    int  names_found;             /* Number of entries so far */    int  names_found;             /* Number of entries so far */
# Line 1542  typedef struct compile_data { Line 1556  typedef struct compile_data {
1556    int  external_flags;          /* External flag bits to be set */    int  external_flags;          /* External flag bits to be set */
1557    int  req_varyopt;             /* "After variable item" flag for reqbyte */    int  req_varyopt;             /* "After variable item" flag for reqbyte */
1558    BOOL had_accept;              /* (*ACCEPT) encountered */    BOOL had_accept;              /* (*ACCEPT) encountered */
1559      BOOL check_lookbehind;        /* Lookbehinds need later checking */
1560    int  nltype;                  /* Newline type */    int  nltype;                  /* Newline type */
1561    int  nllen;                   /* Newline string length */    int  nllen;                   /* Newline string length */
1562    uschar nl[4];                 /* Newline string when fixed length */    uschar nl[4];                 /* Newline string when fixed length */
# Line 1565  typedef struct recursion_info { Line 1580  typedef struct recursion_info {
1580    USPTR save_start;             /* Old value of mstart */    USPTR save_start;             /* Old value of mstart */
1581    int *offset_save;             /* Pointer to start of saved offsets */    int *offset_save;             /* Pointer to start of saved offsets */
1582    int saved_max;                /* Number of saved offsets */    int saved_max;                /* Number of saved offsets */
1583      int offset_top;               /* Current value of offset_top */
1584  } recursion_info;  } recursion_info;
1585    
1586  /* 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
# Line 1599  typedef struct match_data { Line 1615  typedef struct match_data {
1615    BOOL   jscript_compat;        /* JAVASCRIPT_COMPAT flag */    BOOL   jscript_compat;        /* JAVASCRIPT_COMPAT flag */
1616    BOOL   endonly;               /* Dollar not before final \n */    BOOL   endonly;               /* Dollar not before final \n */
1617    BOOL   notempty;              /* Empty string match not wanted */    BOOL   notempty;              /* Empty string match not wanted */
1618    BOOL   partial;               /* PARTIAL flag */    BOOL   notempty_atstart;      /* Empty string match at start not wanted */
1619    BOOL   hitend;                /* Hit the end of the subject at some point */    BOOL   hitend;                /* Hit the end of the subject at some point */
1620    BOOL   bsr_anycrlf;           /* \R is just any CRLF, not full Unicode */    BOOL   bsr_anycrlf;           /* \R is just any CRLF, not full Unicode */
1621    const uschar *start_code;     /* For use when recursing */    const uschar *start_code;     /* For use when recursing */
# Line 1607  typedef struct match_data { Line 1623  typedef struct match_data {
1623    USPTR  end_subject;           /* End of the subject string */    USPTR  end_subject;           /* End of the subject string */
1624    USPTR  start_match_ptr;       /* Start of matched string */    USPTR  start_match_ptr;       /* Start of matched string */
1625    USPTR  end_match_ptr;         /* Subject position at end match */    USPTR  end_match_ptr;         /* Subject position at end match */
1626      USPTR  start_used_ptr;        /* Earliest consulted character */
1627      int    partial;               /* PARTIAL options */
1628    int    end_offset_top;        /* Highwater mark at end of match */    int    end_offset_top;        /* Highwater mark at end of match */
1629    int    capture_last;          /* Most recent capture number */    int    capture_last;          /* Most recent capture number */
1630    int    start_offset;          /* The start offset value */    int    start_offset;          /* The start offset value */
# Line 1623  typedef struct dfa_match_data { Line 1641  typedef struct dfa_match_data {
1641    const uschar *start_code;     /* Start of the compiled pattern */    const uschar *start_code;     /* Start of the compiled pattern */
1642    const uschar *start_subject;  /* Start of the subject string */    const uschar *start_subject;  /* Start of the subject string */
1643    const uschar *end_subject;    /* End of subject string */    const uschar *end_subject;    /* End of subject string */
1644      const uschar *start_used_ptr; /* Earliest consulted character */
1645    const uschar *tables;         /* Character tables */    const uschar *tables;         /* Character tables */
1646      int   start_offset;           /* The start offset value */
1647    int   moptions;               /* Match options */    int   moptions;               /* Match options */
1648    int   poptions;               /* Pattern options */    int   poptions;               /* Pattern options */
1649    int    nltype;                /* Newline type */    int    nltype;                /* Newline type */

Legend:
Removed from v.412  
changed lines
  Added in v.454

  ViewVC Help
Powered by ViewVC 1.1.5