/[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 612 by ph10, Sat Jul 2 15:20:59 2011 UTC revision 613 by ph10, Sat Jul 2 16:59:52 2011 UTC
# Line 1445  enum { Line 1445  enum {
1445    OP_KETRMIN,        /* 116 order. They are for groups the repeat for ever. */    OP_KETRMIN,        /* 116 order. They are for groups the repeat for ever. */
1446    OP_KETRPOS,        /* 117 Possessive unlimited repeat. */    OP_KETRPOS,        /* 117 Possessive unlimited repeat. */
1447    
1448    /* The assertions must come before BRA, CBRA, ONCE, and COND.*/    /* The assertions must come before BRA, CBRA, ONCE, and COND, and the four
1449      asserts must remain in order. */
1450    
1451    OP_ASSERT,         /* 118 Positive lookahead */    OP_ASSERT,         /* 118 Positive lookahead */
1452    OP_ASSERT_NOT,     /* 119 Negative lookahead */    OP_ASSERT_NOT,     /* 119 Negative lookahead */
# Line 1455  enum { Line 1456  enum {
1456    
1457    /* ONCE, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come after the assertions,    /* ONCE, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come after the assertions,
1458    with ONCE first, as there's a test for >= ONCE for a subpattern that isn't an    with ONCE first, as there's a test for >= ONCE for a subpattern that isn't an
1459    assertion. The POS versions must immediately follow the non-POS versions in    assertion. The POS versions must immediately follow the non-POS versions in
1460    each case. */    each case. */
1461    
1462    OP_ONCE,           /* 123 Atomic group */    OP_ONCE,           /* 123 Atomic group */
# Line 1484  enum { Line 1485  enum {
1485    
1486    OP_BRAZERO,        /* 139 These two must remain together and in this */    OP_BRAZERO,        /* 139 These two must remain together and in this */
1487    OP_BRAMINZERO,     /* 140 order. */    OP_BRAMINZERO,     /* 140 order. */
1488    OP_BRAPOSZERO,     /* 141 */    OP_BRAPOSZERO,     /* 141 */
1489    
1490    /* These are backtracking control verbs */    /* These are backtracking control verbs */
1491    
# Line 1501  enum { Line 1502  enum {
1502    
1503    OP_FAIL,           /* 150 */    OP_FAIL,           /* 150 */
1504    OP_ACCEPT,         /* 151 */    OP_ACCEPT,         /* 151 */
1505    OP_CLOSE,          /* 152 Used before OP_ACCEPT to close open captures */    OP_ASSERT_ACCEPT,  /* 152 Used inside assertions */
1506      OP_CLOSE,          /* 153 Used before OP_ACCEPT to close open captures */
1507    
1508    /* This is used to skip a subpattern with a {0} quantifier */    /* This is used to skip a subpattern with a {0} quantifier */
1509    
1510    OP_SKIPZERO,       /* 153 */    OP_SKIPZERO,       /* 154 */
1511    
1512    /* This is not an opcode, but is used to check that tables indexed by opcode    /* This is not an opcode, but is used to check that tables indexed by opcode
1513    are the correct length, in order to catch updating errors - there have been    are the correct length, in order to catch updating errors - there have been
# Line 1557  some cases doesn't actually use these na Line 1559  some cases doesn't actually use these na
1559    "Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def",   \    "Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def",   \
1560    "Brazero", "Braminzero", "Braposzero",                          \    "Brazero", "Braminzero", "Braposzero",                          \
1561    "*MARK", "*PRUNE", "*PRUNE", "*SKIP", "*SKIP",                  \    "*MARK", "*PRUNE", "*PRUNE", "*SKIP", "*SKIP",                  \
1562    "*THEN", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT",                \    "*THEN", "*THEN", "*COMMIT", "*FAIL",                           \
1563      "*ACCEPT", "*ASSERT_ACCEPT",                                    \
1564    "Close", "Skip zero"    "Close", "Skip zero"
1565    
1566    
# Line 1639  in UTF-8 mode. The code that uses this t Line 1642  in UTF-8 mode. The code that uses this t
1642    3, 1, 3,                       /* MARK, PRUNE, PRUNE_ARG                 */ \    3, 1, 3,                       /* MARK, PRUNE, PRUNE_ARG                 */ \
1643    1, 3,                          /* SKIP, SKIP_ARG                         */ \    1, 3,                          /* SKIP, SKIP_ARG                         */ \
1644    1+LINK_SIZE, 3+LINK_SIZE,      /* THEN, THEN_ARG                         */ \    1+LINK_SIZE, 3+LINK_SIZE,      /* THEN, THEN_ARG                         */ \
1645    1, 1, 1, 3, 1                  /* COMMIT, FAIL, ACCEPT, CLOSE, SKIPZERO  */ \    1, 1, 1, 1,                    /* COMMIT, FAIL, ACCEPT, ASSERT_ACCEPT    */ \
1646      3, 1                           /* CLOSE, SKIPZERO  */
1647    
1648  /* A magic value for OP_RREF and OP_NRREF to indicate the "any recursion"  /* A magic value for OP_RREF and OP_NRREF to indicate the "any recursion"
1649  condition. */  condition. */
# Line 1737  typedef struct compile_data { Line 1741  typedef struct compile_data {
1741    int  final_bracount;          /* Saved value after first pass */    int  final_bracount;          /* Saved value after first pass */
1742    int  top_backref;             /* Maximum back reference */    int  top_backref;             /* Maximum back reference */
1743    unsigned int backref_map;     /* Bitmap of low back refs */    unsigned int backref_map;     /* Bitmap of low back refs */
1744      int  assert_depth;            /* Depth of nested assertions */
1745    int  external_options;        /* External (initial) options */    int  external_options;        /* External (initial) options */
1746    int  external_flags;          /* External flag bits to be set */    int  external_flags;          /* External flag bits to be set */
1747    int  req_varyopt;             /* "After variable item" flag for reqbyte */    int  req_varyopt;             /* "After variable item" flag for reqbyte */
# Line 1793  typedef struct match_data { Line 1798  typedef struct match_data {
1798    int    name_entry_size;       /* Size of entry in names table */    int    name_entry_size;       /* Size of entry in names table */
1799    uschar *name_table;           /* Table of names */    uschar *name_table;           /* Table of names */
1800    uschar nl[4];                 /* Newline string when fixed */    uschar nl[4];                 /* Newline string when fixed */
1801    const uschar *lcc;            /* Points to lower casing table */    const  uschar *lcc;           /* Points to lower casing table */
1802    const uschar *ctypes;         /* Points to table of type maps */    const  uschar *ctypes;        /* Points to table of type maps */
1803    BOOL   offset_overflow;       /* Set if too many extractions */    BOOL   offset_overflow;       /* Set if too many extractions */
1804    BOOL   notbol;                /* NOTBOL flag */    BOOL   notbol;                /* NOTBOL flag */
1805    BOOL   noteol;                /* NOTEOL flag */    BOOL   noteol;                /* NOTEOL flag */
# Line 1806  typedef struct match_data { Line 1811  typedef struct match_data {
1811    BOOL   notempty_atstart;      /* Empty string match at start not wanted */    BOOL   notempty_atstart;      /* Empty string match at start not wanted */
1812    BOOL   hitend;                /* Hit the end of the subject at some point */    BOOL   hitend;                /* Hit the end of the subject at some point */
1813    BOOL   bsr_anycrlf;           /* \R is just any CRLF, not full Unicode */    BOOL   bsr_anycrlf;           /* \R is just any CRLF, not full Unicode */
1814    const uschar *start_code;     /* For use when recursing */    const  uschar *start_code;    /* For use when recursing */
1815    USPTR  start_subject;         /* Start of the subject string */    USPTR  start_subject;         /* Start of the subject string */
1816    USPTR  end_subject;           /* End of the subject string */    USPTR  end_subject;           /* End of the subject string */
1817    USPTR  start_match_ptr;       /* Start of matched string */    USPTR  start_match_ptr;       /* Start of matched string */
# Line 1816  typedef struct match_data { Line 1821  typedef struct match_data {
1821    int    end_offset_top;        /* Highwater mark at end of match */    int    end_offset_top;        /* Highwater mark at end of match */
1822    int    capture_last;          /* Most recent capture number */    int    capture_last;          /* Most recent capture number */
1823    int    start_offset;          /* The start offset value */    int    start_offset;          /* The start offset value */
1824    int    match_function_type;   /* Set for certain special calls of MATCH() */    int    match_function_type;   /* Set for certain special calls of MATCH() */
1825    eptrblock *eptrchain;         /* Chain of eptrblocks for tail recursions */    eptrblock *eptrchain;         /* Chain of eptrblocks for tail recursions */
1826    int    eptrn;                 /* Next free eptrblock */    int    eptrn;                 /* Next free eptrblock */
1827    recursion_info *recursive;    /* Linked list of recursion data */    recursion_info *recursive;    /* Linked list of recursion data */
1828    void  *callout_data;          /* To pass back to callouts */    void  *callout_data;          /* To pass back to callouts */
1829    const uschar *mark;           /* Mark pointer to pass back */    const  uschar *mark;          /* Mark pointer to pass back */
1830  } match_data;  } match_data;
1831    
1832  /* 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

Legend:
Removed from v.612  
changed lines
  Added in v.613

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12