/[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 1359 by ph10, Tue Sep 3 10:10:59 2013 UTC revision 1361 by ph10, Fri Sep 6 17:47:32 2013 UTC
# Line 2055  enum { Line 2055  enum {
2055                                class. This does both positive and negative. */                                class. This does both positive and negative. */
2056    OP_REF,            /* 109 Match a back reference, casefully */    OP_REF,            /* 109 Match a back reference, casefully */
2057    OP_REFI,           /* 110 Match a back reference, caselessly */    OP_REFI,           /* 110 Match a back reference, caselessly */
2058    OP_RECURSE,        /* 111 Match a numbered subpattern (possibly recursive) */    OP_DNREF,          /* 111 Match a duplicate name backref, casefully */
2059    OP_CALLOUT,        /* 112 Call out to external function if provided */    OP_DNREFI,         /* 112 Match a duplicate name backref, caselessly */
2060      OP_RECURSE,        /* 113 Match a numbered subpattern (possibly recursive) */
2061    OP_ALT,            /* 113 Start of alternation */    OP_CALLOUT,        /* 114 Call out to external function if provided */
2062    OP_KET,            /* 114 End of group that doesn't have an unbounded repeat */  
2063    OP_KETRMAX,        /* 115 These two must remain together and in this */    OP_ALT,            /* 115 Start of alternation */
2064    OP_KETRMIN,        /* 116 order. They are for groups the repeat for ever. */    OP_KET,            /* 116 End of group that doesn't have an unbounded repeat */
2065    OP_KETRPOS,        /* 117 Possessive unlimited repeat. */    OP_KETRMAX,        /* 117 These two must remain together and in this */
2066      OP_KETRMIN,        /* 118 order. They are for groups the repeat for ever. */
2067      OP_KETRPOS,        /* 119 Possessive unlimited repeat. */
2068    
2069    /* The assertions must come before BRA, CBRA, ONCE, and COND, and the four    /* The assertions must come before BRA, CBRA, ONCE, and COND, and the four
2070    asserts must remain in order. */    asserts must remain in order. */
2071    
2072    OP_REVERSE,        /* 118 Move pointer back - used in lookbehind assertions */    OP_REVERSE,        /* 129 Move pointer back - used in lookbehind assertions */
2073    OP_ASSERT,         /* 119 Positive lookahead */    OP_ASSERT,         /* 121 Positive lookahead */
2074    OP_ASSERT_NOT,     /* 120 Negative lookahead */    OP_ASSERT_NOT,     /* 122 Negative lookahead */
2075    OP_ASSERTBACK,     /* 121 Positive lookbehind */    OP_ASSERTBACK,     /* 123 Positive lookbehind */
2076    OP_ASSERTBACK_NOT, /* 122 Negative lookbehind */    OP_ASSERTBACK_NOT, /* 124 Negative lookbehind */
2077    
2078    /* ONCE, ONCE_NC, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come immediately    /* ONCE, ONCE_NC, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come immediately
2079    after the assertions, with ONCE first, as there's a test for >= ONCE for a    after the assertions, with ONCE first, as there's a test for >= ONCE for a
2080    subpattern that isn't an assertion. The POS versions must immediately follow    subpattern that isn't an assertion. The POS versions must immediately follow
2081    the non-POS versions in each case. */    the non-POS versions in each case. */
2082    
2083    OP_ONCE,           /* 123 Atomic group, contains captures */    OP_ONCE,           /* 125 Atomic group, contains captures */
2084    OP_ONCE_NC,        /* 124 Atomic group containing no captures */    OP_ONCE_NC,        /* 126 Atomic group containing no captures */
2085    OP_BRA,            /* 125 Start of non-capturing bracket */    OP_BRA,            /* 127 Start of non-capturing bracket */
2086    OP_BRAPOS,         /* 126 Ditto, with unlimited, possessive repeat */    OP_BRAPOS,         /* 128 Ditto, with unlimited, possessive repeat */
2087    OP_CBRA,           /* 127 Start of capturing bracket */    OP_CBRA,           /* 129 Start of capturing bracket */
2088    OP_CBRAPOS,        /* 128 Ditto, with unlimited, possessive repeat */    OP_CBRAPOS,        /* 130 Ditto, with unlimited, possessive repeat */
2089    OP_COND,           /* 129 Conditional group */    OP_COND,           /* 131 Conditional group */
2090    
2091    /* These five must follow the previous five, in the same order. There's a    /* These five must follow the previous five, in the same order. There's a
2092    check for >= SBRA to distinguish the two sets. */    check for >= SBRA to distinguish the two sets. */
2093    
2094    OP_SBRA,           /* 130 Start of non-capturing bracket, check empty  */    OP_SBRA,           /* 132 Start of non-capturing bracket, check empty  */
2095    OP_SBRAPOS,        /* 131 Ditto, with unlimited, possessive repeat */    OP_SBRAPOS,        /* 133 Ditto, with unlimited, possessive repeat */
2096    OP_SCBRA,          /* 132 Start of capturing bracket, check empty */    OP_SCBRA,          /* 134 Start of capturing bracket, check empty */
2097    OP_SCBRAPOS,       /* 133 Ditto, with unlimited, possessive repeat */    OP_SCBRAPOS,       /* 135 Ditto, with unlimited, possessive repeat */
2098    OP_SCOND,          /* 134 Conditional group, check empty */    OP_SCOND,          /* 136 Conditional group, check empty */
2099    
2100    /* The next two pairs must (respectively) be kept together. */    /* The next two pairs must (respectively) be kept together. */
2101    
2102    OP_CREF,           /* 135 Used to hold a capture number as condition */    OP_CREF,           /* 137 Used to hold a capture number as condition */
2103    OP_NCREF,          /* 136 Same, but generated by a name reference*/    OP_NCREF,          /* 138 Same, but generated by a name reference*/
2104    OP_RREF,           /* 137 Used to hold a recursion number as condition */    OP_RREF,           /* 139 Used to hold a recursion number as condition */
2105    OP_NRREF,          /* 138 Same, but generated by a name reference*/    OP_NRREF,          /* 140 Same, but generated by a name reference*/
2106    OP_DEF,            /* 139 The DEFINE condition */    OP_DEF,            /* 141 The DEFINE condition */
2107    
2108    OP_BRAZERO,        /* 140 These two must remain together and in this */    OP_BRAZERO,        /* 142 These two must remain together and in this */
2109    OP_BRAMINZERO,     /* 141 order. */    OP_BRAMINZERO,     /* 143 order. */
2110    OP_BRAPOSZERO,     /* 142 */    OP_BRAPOSZERO,     /* 144 */
2111    
2112    /* These are backtracking control verbs */    /* These are backtracking control verbs */
2113    
2114    OP_MARK,           /* 143 always has an argument */    OP_MARK,           /* 145 always has an argument */
2115    OP_PRUNE,          /* 144 */    OP_PRUNE,          /* 146 */
2116    OP_PRUNE_ARG,      /* 145 same, but with argument */    OP_PRUNE_ARG,      /* 147 same, but with argument */
2117    OP_SKIP,           /* 146 */    OP_SKIP,           /* 148 */
2118    OP_SKIP_ARG,       /* 147 same, but with argument */    OP_SKIP_ARG,       /* 149 same, but with argument */
2119    OP_THEN,           /* 148 */    OP_THEN,           /* 150 */
2120    OP_THEN_ARG,       /* 149 same, but with argument */    OP_THEN_ARG,       /* 151 same, but with argument */
2121    OP_COMMIT,         /* 150 */    OP_COMMIT,         /* 152 */
2122    
2123    /* These are forced failure and success verbs */    /* These are forced failure and success verbs */
2124    
2125    OP_FAIL,           /* 151 */    OP_FAIL,           /* 153 */
2126    OP_ACCEPT,         /* 152 */    OP_ACCEPT,         /* 154 */
2127    OP_ASSERT_ACCEPT,  /* 153 Used inside assertions */    OP_ASSERT_ACCEPT,  /* 155 Used inside assertions */
2128    OP_CLOSE,          /* 154 Used before OP_ACCEPT to close open captures */    OP_CLOSE,          /* 156 Used before OP_ACCEPT to close open captures */
2129    
2130    /* This is used to skip a subpattern with a {0} quantifier */    /* This is used to skip a subpattern with a {0} quantifier */
2131    
2132    OP_SKIPZERO,       /* 155 */    OP_SKIPZERO,       /* 157 */
2133    
2134    /* 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
2135    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 2167  some cases doesn't actually use these na Line 2169  some cases doesn't actually use these na
2169    "*", "*?", "+", "+?", "?", "??", "{", "{", "{",                 \    "*", "*?", "+", "+?", "?", "??", "{", "{", "{",                 \
2170    "*+","++", "?+", "{",                                           \    "*+","++", "?+", "{",                                           \
2171    "*", "*?", "+", "+?", "?", "??", "{", "{",                      \    "*", "*?", "+", "+?", "?", "??", "{", "{",                      \
2172    "class", "nclass", "xclass", "Ref", "Refi",                     \    "class", "nclass", "xclass", "Ref", "Refi", "DnRef", "DnRefi",  \
2173    "Recurse", "Callout",                                           \    "Recurse", "Callout",                                           \
2174    "Alt", "Ket", "KetRmax", "KetRmin", "KetRpos",                  \    "Alt", "Ket", "KetRmax", "KetRmin", "KetRpos",                  \
2175    "Reverse", "Assert", "Assert not", "AssertB", "AssertB not",    \    "Reverse", "Assert", "Assert not", "AssertB", "AssertB not",    \
# Line 2237  in UTF-8 mode. The code that uses this t Line 2239  in UTF-8 mode. The code that uses this t
2239    0,                             /* XCLASS - variable length               */ \    0,                             /* XCLASS - variable length               */ \
2240    1+IMM2_SIZE,                   /* REF                                    */ \    1+IMM2_SIZE,                   /* REF                                    */ \
2241    1+IMM2_SIZE,                   /* REFI                                   */ \    1+IMM2_SIZE,                   /* REFI                                   */ \
2242      1+2*IMM2_SIZE,                 /* DNREF                                  */ \
2243      1+2*IMM2_SIZE,                 /* DNREFI                                 */ \
2244    1+LINK_SIZE,                   /* RECURSE                                */ \    1+LINK_SIZE,                   /* RECURSE                                */ \
2245    2+2*LINK_SIZE,                 /* CALLOUT                                */ \    2+2*LINK_SIZE,                 /* CALLOUT                                */ \
2246    1+LINK_SIZE,                   /* Alt                                    */ \    1+LINK_SIZE,                   /* Alt                                    */ \
# Line 2441  typedef struct compile_data { Line 2445  typedef struct compile_data {
2445    int  max_lookbehind;              /* Maximum lookbehind (characters) */    int  max_lookbehind;              /* Maximum lookbehind (characters) */
2446    int  top_backref;                 /* Maximum back reference */    int  top_backref;                 /* Maximum back reference */
2447    unsigned int backref_map;         /* Bitmap of low back refs */    unsigned int backref_map;         /* Bitmap of low back refs */
2448      unsigned int namedrefcount;       /* Number of backreferences by name */
2449    int  assert_depth;                /* Depth of nested assertions */    int  assert_depth;                /* Depth of nested assertions */
2450    pcre_uint32 external_options;     /* External (initial) options */    pcre_uint32 external_options;     /* External (initial) options */
2451    pcre_uint32 external_flags;       /* External flag bits to be set */    pcre_uint32 external_flags;       /* External flag bits to be set */
# Line 2448  typedef struct compile_data { Line 2453  typedef struct compile_data {
2453    BOOL had_accept;                  /* (*ACCEPT) encountered */    BOOL had_accept;                  /* (*ACCEPT) encountered */
2454    BOOL had_pruneorskip;             /* (*PRUNE) or (*SKIP) encountered */    BOOL had_pruneorskip;             /* (*PRUNE) or (*SKIP) encountered */
2455    BOOL check_lookbehind;            /* Lookbehinds need later checking */    BOOL check_lookbehind;            /* Lookbehinds need later checking */
2456      BOOL dupnames;                    /* Duplicate names exist */
2457    int  nltype;                      /* Newline type */    int  nltype;                      /* Newline type */
2458    int  nllen;                       /* Newline string length */    int  nllen;                       /* Newline string length */
2459    pcre_uchar nl[4];                 /* Newline string when fixed length */    pcre_uchar nl[4];                 /* Newline string when fixed length */

Legend:
Removed from v.1359  
changed lines
  Added in v.1361

  ViewVC Help
Powered by ViewVC 1.1.5