/[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 208 by ph10, Mon Aug 6 15:23:29 2007 UTC revision 226 by ph10, Tue Aug 21 11:46:08 2007 UTC
# Line 492  bits. */ Line 492  bits. */
492  #define PCRE_REQCHSET      0x20000000  /* req_byte is set */  #define PCRE_REQCHSET      0x20000000  /* req_byte is set */
493  #define PCRE_STARTLINE     0x10000000  /* start after \n for multiline */  #define PCRE_STARTLINE     0x10000000  /* start after \n for multiline */
494  #define PCRE_JCHANGED      0x08000000  /* j option changes within regex */  #define PCRE_JCHANGED      0x08000000  /* j option changes within regex */
495    #define PCRE_HASCRORLF     0x04000000  /* explicit \r or \n in pattern */
496    
497  /* Options for the "extra" block produced by pcre_study(). */  /* Options for the "extra" block produced by pcre_study(). */
498    
# Line 608  enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, E Line 609  enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, E
609         ESC_V, ESC_v, ESC_X, ESC_Z, ESC_z, ESC_E, ESC_Q, ESC_k, ESC_REF };         ESC_V, ESC_v, ESC_X, ESC_Z, ESC_z, ESC_E, ESC_Q, ESC_k, ESC_REF };
610    
611    
612  /* Opcode table: OP_BRA must be last, as all values >= it are used for brackets  /* Opcode table: Starting from 1 (i.e. after OP_END), the values up to
 that extract substrings. Starting from 1 (i.e. after OP_END), the values up to  
613  OP_EOD must correspond in order to the list of escapes immediately above.  OP_EOD must correspond in order to the list of escapes immediately above.
614    
 To keep stored, compiled patterns compatible, new opcodes should be added  
 immediately before OP_BRA, where (since release 7.0) a gap is left for this  
 purpose.  
   
615  *** NOTE NOTE NOTE *** Whenever this list is updated, the two macro definitions  *** NOTE NOTE NOTE *** Whenever this list is updated, the two macro definitions
616  that follow must also be updated to match. There is also a table called  that follow must also be updated to match. There is also a table called
617  "coptable" in pcre_dfa_exec.c that must be updated. */  "coptable" in pcre_dfa_exec.c that must be updated. */
# Line 758  enum { Line 754  enum {
754    OP_DEF,            /* 101 The DEFINE condition */    OP_DEF,            /* 101 The DEFINE condition */
755    
756    OP_BRAZERO,        /* 102 These two must remain together and in this */    OP_BRAZERO,        /* 102 These two must remain together and in this */
757    OP_BRAMINZERO      /* 103 order. */    OP_BRAMINZERO,     /* 103 order. */
758    
759      /* These are backtracking control verbs */
760    
761      OP_PRUNE,          /* 104 */
762      OP_SKIP,           /* 105 */
763      OP_THEN,           /* 106 */
764      OP_COMMIT,         /* 107 */
765    
766      /* These are forced failure and success verbs */
767    
768      OP_FAIL,           /* 108 */
769      OP_ACCEPT          /* 109 */
770  };  };
771    
772    
# Line 782  for debugging. The macro is referenced o Line 790  for debugging. The macro is referenced o
790    "Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not",     \    "Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not",     \
791    "AssertB", "AssertB not", "Reverse",                            \    "AssertB", "AssertB not", "Reverse",                            \
792    "Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond",        \    "Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond",        \
793    "Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero"    "Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero",    \
794      "*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT"
795    
796    
797  /* 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 846  in UTF-8 mode. The code that uses this t Line 855  in UTF-8 mode. The code that uses this t
855    3,                             /* RREF                                   */ \    3,                             /* RREF                                   */ \
856    1,                             /* DEF                                    */ \    1,                             /* DEF                                    */ \
857    1, 1,                          /* BRAZERO, BRAMINZERO                    */ \    1, 1,                          /* BRAZERO, BRAMINZERO                    */ \
858      1, 1, 1, 1,                    /* PRUNE, SKIP, THEN, COMMIT,             */ \
859      1, 1                           /* FAIL, ACCEPT                           */
860    
861    
862  /* 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 860  enum { ERR0,  ERR1,  ERR2,  ERR3,  ERR4, Line 871  enum { ERR0,  ERR1,  ERR2,  ERR3,  ERR4,
871         ERR20, ERR21, ERR22, ERR23, ERR24, ERR25, ERR26, ERR27, ERR28, ERR29,         ERR20, ERR21, ERR22, ERR23, ERR24, ERR25, ERR26, ERR27, ERR28, ERR29,
872         ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39,         ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39,
873         ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49,         ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49,
874         ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58 };         ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59,
875           ERR60, ERR61 };
876    
877  /* The real format of the start of the pcre block; the index of names and the  /* The real format of the start of the pcre block; the index of names and the
878  code vector run on as long as necessary after the end. We store an explicit  code vector run on as long as necessary after the end. We store an explicit
# Line 929  typedef struct compile_data { Line 941  typedef struct compile_data {
941    int  external_options;        /* External (initial) options */    int  external_options;        /* External (initial) options */
942    int  req_varyopt;             /* "After variable item" flag for reqbyte */    int  req_varyopt;             /* "After variable item" flag for reqbyte */
943    BOOL nopartial;               /* Set TRUE if partial won't work */    BOOL nopartial;               /* Set TRUE if partial won't work */
944      BOOL had_accept;              /* (*ACCEPT) encountered */
945    int  nltype;                  /* Newline type */    int  nltype;                  /* Newline type */
946    int  nllen;                   /* Newline string length */    int  nllen;                   /* Newline string length */
947    uschar nl[4];                 /* Newline string when fixed length */    uschar nl[4];                 /* Newline string when fixed length */

Legend:
Removed from v.208  
changed lines
  Added in v.226

  ViewVC Help
Powered by ViewVC 1.1.5