/[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 458 by ph10, Sat Oct 3 16:24:08 2009 UTC revision 459 by ph10, Sun Oct 4 09:21:39 2009 UTC
# Line 1347  enum { Line 1347  enum {
1347    OP_SCBRA,          /* 98 Start of capturing bracket, check empty */    OP_SCBRA,          /* 98 Start of capturing bracket, check empty */
1348    OP_SCOND,          /* 99 Conditional group, check empty */    OP_SCOND,          /* 99 Conditional group, check empty */
1349    
1350      /* The next two pairs must (respectively) be kept together. */
1351    
1352    OP_CREF,           /* 100 Used to hold a capture number as condition */    OP_CREF,           /* 100 Used to hold a capture number as condition */
1353    OP_RREF,           /* 101 Used to hold a recursion number as condition */    OP_NCREF,          /* 101 Same, but generaged by a name reference*/
1354    OP_DEF,            /* 102 The DEFINE condition */    OP_RREF,           /* 102 Used to hold a recursion number as condition */
1355      OP_NRREF,          /* 103 Same, but generaged by a name reference*/
1356      OP_DEF,            /* 104 The DEFINE condition */
1357    
1358    OP_BRAZERO,        /* 103 These two must remain together and in this */    OP_BRAZERO,        /* 105 These two must remain together and in this */
1359    OP_BRAMINZERO,     /* 104 order. */    OP_BRAMINZERO,     /* 106 order. */
1360    
1361    /* These are backtracking control verbs */    /* These are backtracking control verbs */
1362    
1363    OP_PRUNE,          /* 105 */    OP_PRUNE,          /* 107 */
1364    OP_SKIP,           /* 106 */    OP_SKIP,           /* 108 */
1365    OP_THEN,           /* 107 */    OP_THEN,           /* 109 */
1366    OP_COMMIT,         /* 108 */    OP_COMMIT,         /* 110 */
1367    
1368    /* These are forced failure and success verbs */    /* These are forced failure and success verbs */
1369    
1370    OP_FAIL,           /* 109 */    OP_FAIL,           /* 111 */
1371    OP_ACCEPT,         /* 110 */    OP_ACCEPT,         /* 112 */
1372    OP_CLOSE,          /* 111 Used before OP_ACCEPT to close open captures */    OP_CLOSE,          /* 113 Used before OP_ACCEPT to close open captures */
1373    
1374    /* This is used to skip a subpattern with a {0} quantifier */    /* This is used to skip a subpattern with a {0} quantifier */
1375    
1376    OP_SKIPZERO        /* 112 */    OP_SKIPZERO        /* 114 */
1377  };  };
1378    
1379    
# Line 1393  for debugging. The macro is referenced o Line 1397  for debugging. The macro is referenced o
1397    "Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not",     \    "Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not",     \
1398    "AssertB", "AssertB not", "Reverse",                            \    "AssertB", "AssertB not", "Reverse",                            \
1399    "Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond",        \    "Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond",        \
1400    "Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero",    \    "Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def",   \
1401      "Brazero", "Braminzero",                                        \
1402    "*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT",      \    "*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT",      \
1403    "Close", "Skip zero"    "Close", "Skip zero"
1404    
# Line 1455  in UTF-8 mode. The code that uses this t Line 1460  in UTF-8 mode. The code that uses this t
1460    1+LINK_SIZE,                   /* SBRA                                   */ \    1+LINK_SIZE,                   /* SBRA                                   */ \
1461    3+LINK_SIZE,                   /* SCBRA                                  */ \    3+LINK_SIZE,                   /* SCBRA                                  */ \
1462    1+LINK_SIZE,                   /* SCOND                                  */ \    1+LINK_SIZE,                   /* SCOND                                  */ \
1463    3,                             /* CREF                                   */ \    3, 3,                          /* CREF, NCREF                            */ \
1464    3,                             /* RREF                                   */ \    3, 3,                          /* RREF, NRREF                            */ \
1465    1,                             /* DEF                                    */ \    1,                             /* DEF                                    */ \
1466    1, 1,                          /* BRAZERO, BRAMINZERO                    */ \    1, 1,                          /* BRAZERO, BRAMINZERO                    */ \
1467    1, 1, 1, 1,                    /* PRUNE, SKIP, THEN, COMMIT,             */ \    1, 1, 1, 1,                    /* PRUNE, SKIP, THEN, COMMIT,             */ \
1468    1, 1, 3, 1                     /* FAIL, ACCEPT, CLOSE, SKIPZERO          */    1, 1, 3, 1                     /* FAIL, ACCEPT, CLOSE, SKIPZERO          */
1469    
1470    
1471  /* A magic value for OP_RREF to indicate the "any recursion" condition. */  /* A magic value for OP_RREF and OP_NRREF to indicate the "any recursion"
1472    condition. */
1473    
1474  #define RREF_ANY  0xffff  #define RREF_ANY  0xffff
1475    
# Line 1521  typedef struct pcre_study_data { Line 1527  typedef struct pcre_study_data {
1527    pcre_uint32 size;               /* Total that was malloced */    pcre_uint32 size;               /* Total that was malloced */
1528    pcre_uint32 flags;              /* Private flags */    pcre_uint32 flags;              /* Private flags */
1529    uschar start_bits[32];          /* Starting char bits */    uschar start_bits[32];          /* Starting char bits */
1530    pcre_uint32 minlength;          /* Minimum subject length */    pcre_uint32 minlength;          /* Minimum subject length */
1531  } pcre_study_data;  } pcre_study_data;
1532    
1533  /* Structure for building a chain of open capturing subpatterns during  /* Structure for building a chain of open capturing subpatterns during
1534  compiling, so that instructions to close them can be compiled when (*ACCEPT) is  compiling, so that instructions to close them can be compiled when (*ACCEPT) is
1535  encountered. */  encountered. */
1536    
1537  typedef struct open_capitem {  typedef struct open_capitem {
1538    struct open_capitem *next;    /* Chain link */    struct open_capitem *next;    /* Chain link */
1539    pcre_uint16 number;           /* Capture number */    pcre_uint16 number;           /* Capture number */
1540  } open_capitem;  } open_capitem;
1541    
1542  /* Structure for passing "static" information around between the functions  /* Structure for passing "static" information around between the functions
1543  doing the compiling, so that they are thread-safe. */  doing the compiling, so that they are thread-safe. */
# Line 1545  typedef struct compile_data { Line 1551  typedef struct compile_data {
1551    const uschar *start_code;     /* The start of the compiled code */    const uschar *start_code;     /* The start of the compiled code */
1552    const uschar *start_pattern;  /* The start of the pattern */    const uschar *start_pattern;  /* The start of the pattern */
1553    const uschar *end_pattern;    /* The end of the pattern */    const uschar *end_pattern;    /* The end of the pattern */
1554    open_capitem *open_caps;      /* Chain of open capture items */    open_capitem *open_caps;      /* Chain of open capture items */
1555    uschar *hwm;                  /* High watermark of workspace */    uschar *hwm;                  /* High watermark of workspace */
1556    uschar *name_table;           /* The name/number table */    uschar *name_table;           /* The name/number table */
1557    int  names_found;             /* Number of entries so far */    int  names_found;             /* Number of entries so far */
# Line 1558  typedef struct compile_data { Line 1564  typedef struct compile_data {
1564    int  external_flags;          /* External flag bits to be set */    int  external_flags;          /* External flag bits to be set */
1565    int  req_varyopt;             /* "After variable item" flag for reqbyte */    int  req_varyopt;             /* "After variable item" flag for reqbyte */
1566    BOOL had_accept;              /* (*ACCEPT) encountered */    BOOL had_accept;              /* (*ACCEPT) encountered */
1567    BOOL check_lookbehind;        /* Lookbehinds need later checking */    BOOL check_lookbehind;        /* Lookbehinds need later checking */
1568    int  nltype;                  /* Newline type */    int  nltype;                  /* Newline type */
1569    int  nllen;                   /* Newline string length */    int  nllen;                   /* Newline string length */
1570    uschar nl[4];                 /* Newline string when fixed length */    uschar nl[4];                 /* Newline string when fixed length */
# Line 1582  typedef struct recursion_info { Line 1588  typedef struct recursion_info {
1588    USPTR save_start;             /* Old value of mstart */    USPTR save_start;             /* Old value of mstart */
1589    int *offset_save;             /* Pointer to start of saved offsets */    int *offset_save;             /* Pointer to start of saved offsets */
1590    int saved_max;                /* Number of saved offsets */    int saved_max;                /* Number of saved offsets */
1591    int offset_top;               /* Current value of offset_top */    int offset_top;               /* Current value of offset_top */
1592  } recursion_info;  } recursion_info;
1593    
1594  /* 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 1607  typedef struct match_data { Line 1613  typedef struct match_data {
1613    int    offset_max;            /* The maximum usable for return data */    int    offset_max;            /* The maximum usable for return data */
1614    int    nltype;                /* Newline type */    int    nltype;                /* Newline type */
1615    int    nllen;                 /* Newline string length */    int    nllen;                 /* Newline string length */
1616      int    name_count;            /* Number of names in name table */
1617      int    name_entry_size;       /* Size of entry in names table */
1618      uschar *name_table;           /* Table of names */
1619    uschar nl[4];                 /* Newline string when fixed */    uschar nl[4];                 /* Newline string when fixed */
1620    const uschar *lcc;            /* Points to lower casing table */    const uschar *lcc;            /* Points to lower casing table */
1621    const uschar *ctypes;         /* Points to table of type maps */    const uschar *ctypes;         /* Points to table of type maps */

Legend:
Removed from v.458  
changed lines
  Added in v.459

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12