php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
pcre2_compile.c File Reference
#include "pcre2_internal.h"

Go to the source code of this file.

Data Structures

struct  verbitem
 
struct  alasitem
 
struct  pso
 
struct  nest_save
 

Macros

#define NLBLOCK   cb /* Block containing newline information */
 
#define PSSTART   start_pattern /* Field containing processed string start */
 
#define PSEND   end_pattern /* Field containing processed string end */
 
#define XDIGIT(c)
 
#define STRING_UTFn_RIGHTPAR   STRING_UTF32_RIGHTPAR, 6
 
#define PUTOFFSET(s, p)
 
#define GETOFFSET(s, p)
 
#define GETPLUSOFFSET(s, p)
 
#define READPLUSOFFSET(s, p)
 
#define SKIPOFFSET(p)
 
#define SIZEOFFSET   1
 
#define META_CODE(x)
 
#define META_DATA(x)
 
#define META_DIFF(x, y)
 
#define MAX_GROUP_NUMBER   65535u
 
#define MAX_REPEAT_COUNT   65535u
 
#define REPEAT_UNLIMITED   (MAX_REPEAT_COUNT+1)
 
#define COMPILE_WORK_SIZE   (3000*LINK_SIZE) /* Size in code units */
 
#define C16_WORK_SIZE    ((COMPILE_WORK_SIZE * sizeof(PCRE2_UCHAR))/sizeof(uint16_t))
 
#define GROUPINFO_DEFAULT_SIZE   256
 
#define WORK_SIZE_SAFETY_MARGIN   (100)
 
#define NAMED_GROUP_LIST_SIZE   20
 
#define PARSED_PATTERN_DEFAULT_SIZE   1024
 
#define OFLOW_MAX   (INT_MAX - 20)
 
#define META_END   0x80000000u /* End of pattern */
 
#define META_ALT   0x80010000u /* alternation */
 
#define META_ATOMIC   0x80020000u /* atomic group */
 
#define META_BACKREF   0x80030000u /* Back ref */
 
#define META_BACKREF_BYNAME   0x80040000u /* \k'name' */
 
#define META_BIGVALUE   0x80050000u /* Next is a literal > META_END */
 
#define META_CALLOUT_NUMBER   0x80060000u /* (?C with numerical argument */
 
#define META_CALLOUT_STRING   0x80070000u /* (?C with string argument */
 
#define META_CAPTURE   0x80080000u /* Capturing parenthesis */
 
#define META_CIRCUMFLEX   0x80090000u /* ^ metacharacter */
 
#define META_CLASS   0x800a0000u /* start non-empty class */
 
#define META_CLASS_EMPTY   0x800b0000u /* empty class */
 
#define META_CLASS_EMPTY_NOT   0x800c0000u /* negative empty class */
 
#define META_CLASS_END   0x800d0000u /* end of non-empty class */
 
#define META_CLASS_NOT   0x800e0000u /* start non-empty negative class */
 
#define META_COND_ASSERT   0x800f0000u /* (?(?assertion)... */
 
#define META_COND_DEFINE   0x80100000u /* (?(DEFINE)... */
 
#define META_COND_NAME   0x80110000u /* (?(<name>)... */
 
#define META_COND_NUMBER   0x80120000u /* (?(digits)... */
 
#define META_COND_RNAME   0x80130000u /* (?(R&name)... */
 
#define META_COND_RNUMBER   0x80140000u /* (?(Rdigits)... */
 
#define META_COND_VERSION   0x80150000u /* (?(VERSION<op>x.y)... */
 
#define META_DOLLAR   0x80160000u /* $ metacharacter */
 
#define META_DOT   0x80170000u /* . metacharacter */
 
#define META_ESCAPE   0x80180000u /* \d and friends */
 
#define META_KET   0x80190000u /* closing parenthesis */
 
#define META_NOCAPTURE   0x801a0000u /* no capture parens */
 
#define META_OPTIONS   0x801b0000u /* (?i) and friends */
 
#define META_POSIX   0x801c0000u /* POSIX class item */
 
#define META_POSIX_NEG   0x801d0000u /* negative POSIX class item */
 
#define META_RANGE_ESCAPED   0x801e0000u /* range with at least one escape */
 
#define META_RANGE_LITERAL   0x801f0000u /* range defined literally */
 
#define META_RECURSE   0x80200000u /* Recursion */
 
#define META_RECURSE_BYNAME   0x80210000u /* (?&name) */
 
#define META_SCRIPT_RUN   0x80220000u /* (*script_run:...) */
 
#define META_LOOKAHEAD   0x80230000u /* (?= */
 
#define META_LOOKAHEADNOT   0x80240000u /* (?! */
 
#define META_LOOKBEHIND   0x80250000u /* (?<= */
 
#define META_LOOKBEHINDNOT   0x80260000u /* (?<! */
 
#define META_LOOKAHEAD_NA   0x80270000u /* (*napla: */
 
#define META_LOOKBEHIND_NA   0x80280000u /* (*naplb: */
 
#define META_MARK   0x80290000u /* (*MARK) */
 
#define META_ACCEPT   0x802a0000u /* (*ACCEPT) */
 
#define META_FAIL   0x802b0000u /* (*FAIL) */
 
#define META_COMMIT   0x802c0000u /* These */
 
#define META_COMMIT_ARG   0x802d0000u /* pairs */
 
#define META_PRUNE   0x802e0000u /* must */
 
#define META_PRUNE_ARG   0x802f0000u /* be */
 
#define META_SKIP   0x80300000u /* kept */
 
#define META_SKIP_ARG   0x80310000u /* in */
 
#define META_THEN   0x80320000u /* this */
 
#define META_THEN_ARG   0x80330000u /* order */
 
#define META_ASTERISK   0x80340000u /* * */
 
#define META_ASTERISK_PLUS   0x80350000u /* *+ */
 
#define META_ASTERISK_QUERY   0x80360000u /* *? */
 
#define META_PLUS   0x80370000u /* + */
 
#define META_PLUS_PLUS   0x80380000u /* ++ */
 
#define META_PLUS_QUERY   0x80390000u /* +? */
 
#define META_QUERY   0x803a0000u /* ? */
 
#define META_QUERY_PLUS   0x803b0000u /* ?+ */
 
#define META_QUERY_QUERY   0x803c0000u /* ?? */
 
#define META_MINMAX   0x803d0000u /* {n,m} repeat */
 
#define META_MINMAX_PLUS   0x803e0000u /* {n,m}+ repeat */
 
#define META_MINMAX_QUERY   0x803f0000u /* {n,m}? repeat */
 
#define META_FIRST_QUANTIFIER   META_ASTERISK
 
#define META_LAST_QUANTIFIER   META_MINMAX_QUERY
 
#define META_ATOMIC_SCRIPT_RUN   0x8fff0000u
 
#define SETBIT(a, b)
 
#define REQ_UNSET   0xffffffffu /* Not yet found anything */
 
#define REQ_NONE   0xfffffffeu /* Found not fixed character */
 
#define REQ_CASELESS   0x00000001u /* Code unit in xxcu is caseless */
 
#define REQ_VARY   0x00000002u /* Code unit is followed by non-literal */
 
#define GI_SET_FIXED_LENGTH   0x80000000u
 
#define GI_NOT_FIXED_LENGTH   0x40000000u
 
#define GI_FIXED_LENGTH_MASK   0x0000ffffu
 
#define IS_DIGIT(x)
 
#define ESCAPES_FIRST   CHAR_0
 
#define ESCAPES_LAST   CHAR_z
 
#define UPPER_CASE(c)
 
#define PC_DIGIT   7
 
#define PC_GRAPH   8
 
#define PC_PRINT   9
 
#define PC_PUNCT   10
 
#define PC_XDIGIT   13
 
#define PUBLIC_LITERAL_COMPILE_OPTIONS
 
#define PUBLIC_COMPILE_OPTIONS
 
#define PUBLIC_LITERAL_COMPILE_EXTRA_OPTIONS    (PCRE2_EXTRA_MATCH_LINE|PCRE2_EXTRA_MATCH_WORD|PCRE2_EXTRA_CASELESS_RESTRICT)
 
#define PUBLIC_COMPILE_EXTRA_OPTIONS
 
#define NSF_RESET   0x0001u
 
#define NSF_CONDASSERT   0x0002u
 
#define NSF_ATOMICSR   0x0004u
 
#define PARSE_TRACKED_OPTIONS
 
#define PARSE_TRACKED_EXTRA_OPTIONS
 
#define PARSED_LITERAL(c, p)
 
#define RSCAN_CACHE_SIZE   8
 

Typedefs

typedef struct verbitem verbitem
 
typedef struct alasitem alasitem
 
typedef struct pso pso
 
typedef struct nest_save nest_save
 

Enumerations

enum  { PSKIP_ALT , PSKIP_CLASS , PSKIP_KET }
 
enum  {
  ERR0 = COMPILE_ERROR_BASE , ERR1 , ERR2 , ERR3 ,
  ERR4 , ERR5 , ERR6 , ERR7 ,
  ERR8 , ERR9 , ERR10 , ERR11 ,
  ERR12 , ERR13 , ERR14 , ERR15 ,
  ERR16 , ERR17 , ERR18 , ERR19 ,
  ERR20 , ERR21 , ERR22 , ERR23 ,
  ERR24 , ERR25 , ERR26 , ERR27 ,
  ERR28 , ERR29 , ERR30 , ERR31 ,
  ERR32 , ERR33 , ERR34 , ERR35 ,
  ERR36 , ERR37 , ERR38 , ERR39 ,
  ERR40 , ERR41 , ERR42 , ERR43 ,
  ERR44 , ERR45 , ERR46 , ERR47 ,
  ERR48 , ERR49 , ERR50 , ERR51 ,
  ERR52 , ERR53 , ERR54 , ERR55 ,
  ERR56 , ERR57 , ERR58 , ERR59 ,
  ERR60 , ERR61 , ERR62 , ERR63 ,
  ERR64 , ERR65 , ERR66 , ERR67 ,
  ERR68 , ERR69 , ERR70 , ERR71 ,
  ERR72 , ERR73 , ERR74 , ERR75 ,
  ERR76 , ERR77 , ERR78 , ERR79 ,
  ERR80 , ERR81 , ERR82 , ERR83 ,
  ERR84 , ERR85 , ERR86 , ERR87 ,
  ERR88 , ERR89 , ERR90 , ERR91 ,
  ERR92 , ERR93 , ERR94 , ERR95 ,
  ERR96 , ERR97 , ERR98 , ERR99 ,
  ERR100 , ERR101
}
 
enum  {
  PSO_OPT , PSO_FLG , PSO_NL , PSO_BSR ,
  PSO_LIMH , PSO_LIMM , PSO_LIMD
}
 
enum  { RANGE_NO , RANGE_STARTED , RANGE_OK_ESCAPED , RANGE_OK_LITERAL }
 

Functions

PCRE2_EXP_DEFN pcre2_code *PCRE2_CALL_CONVENTION pcre2_code_copy (const pcre2_code *code)
 
PCRE2_EXP_DEFN pcre2_code *PCRE2_CALL_CONVENTION pcre2_code_copy_with_tables (const pcre2_code *code)
 
PCRE2_EXP_DEFN void PCRE2_CALL_CONVENTION pcre2_code_free (pcre2_code *code)
 
int PRIV check_escape (PCRE2_SPTR *ptrptr, PCRE2_SPTR ptrend, uint32_t *chptr, int *errorcodeptr, uint32_t options, uint32_t xoptions, BOOL isclass, compile_block *cb)
 
PCRE2_EXP_DEFN pcre2_code *PCRE2_CALL_CONVENTION pcre2_compile (PCRE2_SPTR pattern, PCRE2_SIZE patlen, uint32_t options, int *errorptr, PCRE2_SIZE *erroroffset, pcre2_compile_context *ccontext)
 

Macro Definition Documentation

◆ C16_WORK_SIZE

#define C16_WORK_SIZE    ((COMPILE_WORK_SIZE * sizeof(PCRE2_UCHAR))/sizeof(uint16_t))

Definition at line 168 of file pcre2_compile.c.

◆ COMPILE_WORK_SIZE

#define COMPILE_WORK_SIZE   (3000*LINK_SIZE) /* Size in code units */

Definition at line 166 of file pcre2_compile.c.

◆ ESCAPES_FIRST

#define ESCAPES_FIRST   CHAR_0

Definition at line 507 of file pcre2_compile.c.

◆ ESCAPES_LAST

#define ESCAPES_LAST   CHAR_z

Definition at line 508 of file pcre2_compile.c.

◆ GETOFFSET

#define GETOFFSET ( s,
p )
Value:
s = *p++
char s[4]
Definition cdf.c:77
p
Definition session.c:1105

Definition at line 93 of file pcre2_compile.c.

◆ GETPLUSOFFSET

#define GETPLUSOFFSET ( s,
p )
Value:
s = *(++p)

Definition at line 94 of file pcre2_compile.c.

◆ GI_FIXED_LENGTH_MASK

#define GI_FIXED_LENGTH_MASK   0x0000ffffu

Definition at line 402 of file pcre2_compile.c.

◆ GI_NOT_FIXED_LENGTH

#define GI_NOT_FIXED_LENGTH   0x40000000u

Definition at line 401 of file pcre2_compile.c.

◆ GI_SET_FIXED_LENGTH

#define GI_SET_FIXED_LENGTH   0x80000000u

Definition at line 400 of file pcre2_compile.c.

◆ GROUPINFO_DEFAULT_SIZE

#define GROUPINFO_DEFAULT_SIZE   256

Definition at line 175 of file pcre2_compile.c.

◆ IS_DIGIT

#define IS_DIGIT ( x)
Value:
((x) >= CHAR_0 && (x) <= CHAR_9)
#define CHAR_9
#define CHAR_0

Definition at line 408 of file pcre2_compile.c.

◆ MAX_GROUP_NUMBER

#define MAX_GROUP_NUMBER   65535u

Definition at line 147 of file pcre2_compile.c.

◆ MAX_REPEAT_COUNT

#define MAX_REPEAT_COUNT   65535u

Definition at line 148 of file pcre2_compile.c.

◆ META_ACCEPT

#define META_ACCEPT   0x802a0000u /* (*ACCEPT) */

Definition at line 266 of file pcre2_compile.c.

◆ META_ALT

#define META_ALT   0x80010000u /* alternation */

Definition at line 213 of file pcre2_compile.c.

◆ META_ASTERISK

#define META_ASTERISK   0x80340000u /* * */

Definition at line 279 of file pcre2_compile.c.

◆ META_ASTERISK_PLUS

#define META_ASTERISK_PLUS   0x80350000u /* *+ */

Definition at line 280 of file pcre2_compile.c.

◆ META_ASTERISK_QUERY

#define META_ASTERISK_QUERY   0x80360000u /* *? */

Definition at line 281 of file pcre2_compile.c.

◆ META_ATOMIC

#define META_ATOMIC   0x80020000u /* atomic group */

Definition at line 214 of file pcre2_compile.c.

◆ META_ATOMIC_SCRIPT_RUN

#define META_ATOMIC_SCRIPT_RUN   0x8fff0000u

Definition at line 300 of file pcre2_compile.c.

◆ META_BACKREF

#define META_BACKREF   0x80030000u /* Back ref */

Definition at line 215 of file pcre2_compile.c.

◆ META_BACKREF_BYNAME

#define META_BACKREF_BYNAME   0x80040000u /* \k'name' */

Definition at line 216 of file pcre2_compile.c.

◆ META_BIGVALUE

#define META_BIGVALUE   0x80050000u /* Next is a literal > META_END */

Definition at line 217 of file pcre2_compile.c.

◆ META_CALLOUT_NUMBER

#define META_CALLOUT_NUMBER   0x80060000u /* (?C with numerical argument */

Definition at line 218 of file pcre2_compile.c.

◆ META_CALLOUT_STRING

#define META_CALLOUT_STRING   0x80070000u /* (?C with string argument */

Definition at line 219 of file pcre2_compile.c.

◆ META_CAPTURE

#define META_CAPTURE   0x80080000u /* Capturing parenthesis */

Definition at line 220 of file pcre2_compile.c.

◆ META_CIRCUMFLEX

#define META_CIRCUMFLEX   0x80090000u /* ^ metacharacter */

Definition at line 221 of file pcre2_compile.c.

◆ META_CLASS

#define META_CLASS   0x800a0000u /* start non-empty class */

Definition at line 222 of file pcre2_compile.c.

◆ META_CLASS_EMPTY

#define META_CLASS_EMPTY   0x800b0000u /* empty class */

Definition at line 223 of file pcre2_compile.c.

◆ META_CLASS_EMPTY_NOT

#define META_CLASS_EMPTY_NOT   0x800c0000u /* negative empty class */

Definition at line 224 of file pcre2_compile.c.

◆ META_CLASS_END

#define META_CLASS_END   0x800d0000u /* end of non-empty class */

Definition at line 225 of file pcre2_compile.c.

◆ META_CLASS_NOT

#define META_CLASS_NOT   0x800e0000u /* start non-empty negative class */

Definition at line 226 of file pcre2_compile.c.

◆ META_CODE

#define META_CODE ( x)
Value:
(x & 0xffff0000u)

Definition at line 113 of file pcre2_compile.c.

◆ META_COMMIT

#define META_COMMIT   0x802c0000u /* These */

Definition at line 268 of file pcre2_compile.c.

◆ META_COMMIT_ARG

#define META_COMMIT_ARG   0x802d0000u /* pairs */

Definition at line 269 of file pcre2_compile.c.

◆ META_COND_ASSERT

#define META_COND_ASSERT   0x800f0000u /* (?(?assertion)... */

Definition at line 227 of file pcre2_compile.c.

◆ META_COND_DEFINE

#define META_COND_DEFINE   0x80100000u /* (?(DEFINE)... */

Definition at line 228 of file pcre2_compile.c.

◆ META_COND_NAME

#define META_COND_NAME   0x80110000u /* (?(<name>)... */

Definition at line 229 of file pcre2_compile.c.

◆ META_COND_NUMBER

#define META_COND_NUMBER   0x80120000u /* (?(digits)... */

Definition at line 230 of file pcre2_compile.c.

◆ META_COND_RNAME

#define META_COND_RNAME   0x80130000u /* (?(R&name)... */

Definition at line 231 of file pcre2_compile.c.

◆ META_COND_RNUMBER

#define META_COND_RNUMBER   0x80140000u /* (?(Rdigits)... */

Definition at line 232 of file pcre2_compile.c.

◆ META_COND_VERSION

#define META_COND_VERSION   0x80150000u /* (?(VERSION<op>x.y)... */

Definition at line 233 of file pcre2_compile.c.

◆ META_DATA

#define META_DATA ( x)
Value:
(x & 0x0000ffffu)

Definition at line 114 of file pcre2_compile.c.

◆ META_DIFF

#define META_DIFF ( x,
y )
Value:
((x-y)>>16)

Definition at line 115 of file pcre2_compile.c.

◆ META_DOLLAR

#define META_DOLLAR   0x80160000u /* $ metacharacter */

Definition at line 234 of file pcre2_compile.c.

◆ META_DOT

#define META_DOT   0x80170000u /* . metacharacter */

Definition at line 235 of file pcre2_compile.c.

◆ META_END

#define META_END   0x80000000u /* End of pattern */

Definition at line 211 of file pcre2_compile.c.

◆ META_ESCAPE

#define META_ESCAPE   0x80180000u /* \d and friends */

Definition at line 236 of file pcre2_compile.c.

◆ META_FAIL

#define META_FAIL   0x802b0000u /* (*FAIL) */

Definition at line 267 of file pcre2_compile.c.

◆ META_FIRST_QUANTIFIER

#define META_FIRST_QUANTIFIER   META_ASTERISK

Definition at line 292 of file pcre2_compile.c.

◆ META_KET

#define META_KET   0x80190000u /* closing parenthesis */

Definition at line 237 of file pcre2_compile.c.

◆ META_LAST_QUANTIFIER

#define META_LAST_QUANTIFIER   META_MINMAX_QUERY

Definition at line 293 of file pcre2_compile.c.

◆ META_LOOKAHEAD

#define META_LOOKAHEAD   0x80230000u /* (?= */

Definition at line 251 of file pcre2_compile.c.

◆ META_LOOKAHEAD_NA

#define META_LOOKAHEAD_NA   0x80270000u /* (*napla: */

Definition at line 258 of file pcre2_compile.c.

◆ META_LOOKAHEADNOT

#define META_LOOKAHEADNOT   0x80240000u /* (?! */

Definition at line 252 of file pcre2_compile.c.

◆ META_LOOKBEHIND

#define META_LOOKBEHIND   0x80250000u /* (?<= */

Definition at line 253 of file pcre2_compile.c.

◆ META_LOOKBEHIND_NA

#define META_LOOKBEHIND_NA   0x80280000u /* (*naplb: */

Definition at line 259 of file pcre2_compile.c.

◆ META_LOOKBEHINDNOT

#define META_LOOKBEHINDNOT   0x80260000u /* (?<! */

Definition at line 254 of file pcre2_compile.c.

◆ META_MARK

#define META_MARK   0x80290000u /* (*MARK) */

Definition at line 265 of file pcre2_compile.c.

◆ META_MINMAX

#define META_MINMAX   0x803d0000u /* {n,m} repeat */

Definition at line 288 of file pcre2_compile.c.

◆ META_MINMAX_PLUS

#define META_MINMAX_PLUS   0x803e0000u /* {n,m}+ repeat */

Definition at line 289 of file pcre2_compile.c.

◆ META_MINMAX_QUERY

#define META_MINMAX_QUERY   0x803f0000u /* {n,m}? repeat */

Definition at line 290 of file pcre2_compile.c.

◆ META_NOCAPTURE

#define META_NOCAPTURE   0x801a0000u /* no capture parens */

Definition at line 238 of file pcre2_compile.c.

◆ META_OPTIONS

#define META_OPTIONS   0x801b0000u /* (?i) and friends */

Definition at line 239 of file pcre2_compile.c.

◆ META_PLUS

#define META_PLUS   0x80370000u /* + */

Definition at line 282 of file pcre2_compile.c.

◆ META_PLUS_PLUS

#define META_PLUS_PLUS   0x80380000u /* ++ */

Definition at line 283 of file pcre2_compile.c.

◆ META_PLUS_QUERY

#define META_PLUS_QUERY   0x80390000u /* +? */

Definition at line 284 of file pcre2_compile.c.

◆ META_POSIX

#define META_POSIX   0x801c0000u /* POSIX class item */

Definition at line 240 of file pcre2_compile.c.

◆ META_POSIX_NEG

#define META_POSIX_NEG   0x801d0000u /* negative POSIX class item */

Definition at line 241 of file pcre2_compile.c.

◆ META_PRUNE

#define META_PRUNE   0x802e0000u /* must */

Definition at line 270 of file pcre2_compile.c.

◆ META_PRUNE_ARG

#define META_PRUNE_ARG   0x802f0000u /* be */

Definition at line 271 of file pcre2_compile.c.

◆ META_QUERY

#define META_QUERY   0x803a0000u /* ? */

Definition at line 285 of file pcre2_compile.c.

◆ META_QUERY_PLUS

#define META_QUERY_PLUS   0x803b0000u /* ?+ */

Definition at line 286 of file pcre2_compile.c.

◆ META_QUERY_QUERY

#define META_QUERY_QUERY   0x803c0000u /* ?? */

Definition at line 287 of file pcre2_compile.c.

◆ META_RANGE_ESCAPED

#define META_RANGE_ESCAPED   0x801e0000u /* range with at least one escape */

Definition at line 242 of file pcre2_compile.c.

◆ META_RANGE_LITERAL

#define META_RANGE_LITERAL   0x801f0000u /* range defined literally */

Definition at line 243 of file pcre2_compile.c.

◆ META_RECURSE

#define META_RECURSE   0x80200000u /* Recursion */

Definition at line 244 of file pcre2_compile.c.

◆ META_RECURSE_BYNAME

#define META_RECURSE_BYNAME   0x80210000u /* (?&name) */

Definition at line 245 of file pcre2_compile.c.

◆ META_SCRIPT_RUN

#define META_SCRIPT_RUN   0x80220000u /* (*script_run:...) */

Definition at line 246 of file pcre2_compile.c.

◆ META_SKIP

#define META_SKIP   0x80300000u /* kept */

Definition at line 272 of file pcre2_compile.c.

◆ META_SKIP_ARG

#define META_SKIP_ARG   0x80310000u /* in */

Definition at line 273 of file pcre2_compile.c.

◆ META_THEN

#define META_THEN   0x80320000u /* this */

Definition at line 274 of file pcre2_compile.c.

◆ META_THEN_ARG

#define META_THEN_ARG   0x80330000u /* order */

Definition at line 275 of file pcre2_compile.c.

◆ NAMED_GROUP_LIST_SIZE

#define NAMED_GROUP_LIST_SIZE   20

Definition at line 187 of file pcre2_compile.c.

◆ NLBLOCK

#define NLBLOCK   cb /* Block containing newline information */

Definition at line 46 of file pcre2_compile.c.

◆ NSF_ATOMICSR

#define NSF_ATOMICSR   0x0004u

Definition at line 2736 of file pcre2_compile.c.

◆ NSF_CONDASSERT

#define NSF_CONDASSERT   0x0002u

Definition at line 2735 of file pcre2_compile.c.

◆ NSF_RESET

#define NSF_RESET   0x0001u

Definition at line 2734 of file pcre2_compile.c.

◆ OFLOW_MAX

#define OFLOW_MAX   (INT_MAX - 20)

Definition at line 200 of file pcre2_compile.c.

◆ PARSE_TRACKED_EXTRA_OPTIONS

#define PARSE_TRACKED_EXTRA_OPTIONS
Value:
#define PCRE2_EXTRA_ASCII_POSIX
Definition pcre2.h:160
#define PCRE2_EXTRA_ASCII_BSS
Definition pcre2.h:158
#define PCRE2_EXTRA_ASCII_BSD
Definition pcre2.h:157
#define PCRE2_EXTRA_CASELESS_RESTRICT
Definition pcre2.h:156
#define PCRE2_EXTRA_ASCII_DIGIT
Definition pcre2.h:161
#define PCRE2_EXTRA_ASCII_BSW
Definition pcre2.h:159

Definition at line 2747 of file pcre2_compile.c.

◆ PARSE_TRACKED_OPTIONS

#define PARSE_TRACKED_OPTIONS
Value:
#define PCRE2_DOTALL
Definition pcre2.h:124
#define PCRE2_EXTENDED
Definition pcre2.h:126
#define PCRE2_EXTENDED_MORE
Definition pcre2.h:143
#define PCRE2_UNGREEDY
Definition pcre2.h:137
#define PCRE2_CASELESS
Definition pcre2.h:122
#define PCRE2_DUPNAMES
Definition pcre2.h:125
#define PCRE2_MULTILINE
Definition pcre2.h:129
#define PCRE2_NO_AUTO_CAPTURE
Definition pcre2.h:132

Definition at line 2743 of file pcre2_compile.c.

◆ PARSED_LITERAL

#define PARSED_LITERAL ( c,
p )
Value:
*p++ = c; okquantifier = TRUE;
#define TRUE
Definition gd_gd.c:7

Definition at line 2768 of file pcre2_compile.c.

◆ PARSED_PATTERN_DEFAULT_SIZE

#define PARSED_PATTERN_DEFAULT_SIZE   1024

Definition at line 193 of file pcre2_compile.c.

◆ PC_DIGIT

#define PC_DIGIT   7

Definition at line 709 of file pcre2_compile.c.

◆ PC_GRAPH

#define PC_GRAPH   8

Definition at line 710 of file pcre2_compile.c.

◆ PC_PRINT

#define PC_PRINT   9

Definition at line 711 of file pcre2_compile.c.

◆ PC_PUNCT

#define PC_PUNCT   10

Definition at line 712 of file pcre2_compile.c.

◆ PC_XDIGIT

#define PC_XDIGIT   13

Definition at line 713 of file pcre2_compile.c.

◆ PSEND

#define PSEND   end_pattern /* Field containing processed string end */

Definition at line 48 of file pcre2_compile.c.

◆ PSSTART

#define PSSTART   start_pattern /* Field containing processed string start */

Definition at line 47 of file pcre2_compile.c.

◆ PUBLIC_COMPILE_EXTRA_OPTIONS

#define PUBLIC_COMPILE_EXTRA_OPTIONS

◆ PUBLIC_COMPILE_OPTIONS

#define PUBLIC_COMPILE_OPTIONS
Value:
#define PCRE2_ALT_BSUX
Definition pcre2.h:120
#define PCRE2_ALLOW_EMPTY_CLASS
Definition pcre2.h:119
#define PCRE2_DOLLAR_ENDONLY
Definition pcre2.h:123
#define PCRE2_ALT_VERBNAMES
Definition pcre2.h:141
#define PCRE2_NEVER_UTF
Definition pcre2.h:131
#define PCRE2_UCP
Definition pcre2.h:136
#define PCRE2_NO_AUTO_POSSESS
Definition pcre2.h:133
#define PCRE2_MATCH_UNSET_BACKREF
Definition pcre2.h:128
#define PCRE2_NO_DOTSTAR_ANCHOR
Definition pcre2.h:134
#define PCRE2_NEVER_UCP
Definition pcre2.h:130
#define PCRE2_ALT_CIRCUMFLEX
Definition pcre2.h:140
#define PCRE2_NEVER_BACKSLASH_C
Definition pcre2.h:139
#define PUBLIC_LITERAL_COMPILE_OPTIONS

Definition at line 774 of file pcre2_compile.c.

◆ PUBLIC_LITERAL_COMPILE_EXTRA_OPTIONS

Definition at line 783 of file pcre2_compile.c.

◆ PUBLIC_LITERAL_COMPILE_OPTIONS

#define PUBLIC_LITERAL_COMPILE_OPTIONS
Value:
#define PCRE2_LITERAL
Definition pcre2.h:144
#define PCRE2_ANCHORED
Definition pcre2.h:105
#define PCRE2_ENDANCHORED
Definition pcre2.h:107
#define PCRE2_AUTO_CALLOUT
Definition pcre2.h:121
#define PCRE2_MATCH_INVALID_UTF
Definition pcre2.h:145
#define PCRE2_USE_OFFSET_LIMIT
Definition pcre2.h:142
#define PCRE2_UTF
Definition pcre2.h:138
#define PCRE2_NO_UTF_CHECK
Definition pcre2.h:106
#define PCRE2_NO_START_OPTIMIZE
Definition pcre2.h:135
#define PCRE2_FIRSTLINE
Definition pcre2.h:127

Definition at line 769 of file pcre2_compile.c.

◆ PUTOFFSET

#define PUTOFFSET ( s,
p )
Value:
*p++ = s

Definition at line 92 of file pcre2_compile.c.

◆ READPLUSOFFSET

#define READPLUSOFFSET ( s,
p )
Value:
s = p[1]

Definition at line 95 of file pcre2_compile.c.

◆ REPEAT_UNLIMITED

#define REPEAT_UNLIMITED   (MAX_REPEAT_COUNT+1)

Definition at line 149 of file pcre2_compile.c.

◆ REQ_CASELESS

#define REQ_CASELESS   0x00000001u /* Code unit in xxcu is caseless */

Definition at line 395 of file pcre2_compile.c.

◆ REQ_NONE

#define REQ_NONE   0xfffffffeu /* Found not fixed character */

Definition at line 394 of file pcre2_compile.c.

◆ REQ_UNSET

#define REQ_UNSET   0xffffffffu /* Not yet found anything */

Definition at line 393 of file pcre2_compile.c.

◆ REQ_VARY

#define REQ_VARY   0x00000002u /* Code unit is followed by non-literal */

Definition at line 396 of file pcre2_compile.c.

◆ RSCAN_CACHE_SIZE

#define RSCAN_CACHE_SIZE   8

◆ SETBIT

#define SETBIT ( a,
b )
Value:
a[(b)/8] = (uint8_t)(a[(b)/8] | (1u << ((b)&7)))
$obj a
Definition test.php:84

Definition at line 386 of file pcre2_compile.c.

◆ SIZEOFFSET

#define SIZEOFFSET   1

Definition at line 97 of file pcre2_compile.c.

◆ SKIPOFFSET

#define SKIPOFFSET ( p)
Value:
p++

Definition at line 96 of file pcre2_compile.c.

◆ STRING_UTFn_RIGHTPAR

#define STRING_UTFn_RIGHTPAR   STRING_UTF32_RIGHTPAR, 6

Definition at line 83 of file pcre2_compile.c.

◆ UPPER_CASE

#define UPPER_CASE ( c)
Value:
(c-32)

Definition at line 509 of file pcre2_compile.c.

◆ WORK_SIZE_SAFETY_MARGIN

#define WORK_SIZE_SAFETY_MARGIN   (100)

Definition at line 180 of file pcre2_compile.c.

◆ XDIGIT

#define XDIGIT ( c)
Value:
(MAX_255(c)? xdigitab[c] : 0xff)
#define MAX_255(c)

Definition at line 77 of file pcre2_compile.c.

Typedef Documentation

◆ alasitem

typedef struct alasitem alasitem

◆ nest_save

typedef struct nest_save nest_save

◆ pso

typedef struct pso pso

◆ verbitem

typedef struct verbitem verbitem

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ERR0 
ERR1 
ERR2 
ERR3 
ERR4 
ERR5 
ERR6 
ERR7 
ERR8 
ERR9 
ERR10 
ERR11 
ERR12 
ERR13 
ERR14 
ERR15 
ERR16 
ERR17 
ERR18 
ERR19 
ERR20 
ERR21 
ERR22 
ERR23 
ERR24 
ERR25 
ERR26 
ERR27 
ERR28 
ERR29 
ERR30 
ERR31 
ERR32 
ERR33 
ERR34 
ERR35 
ERR36 
ERR37 
ERR38 
ERR39 
ERR40 
ERR41 
ERR42 
ERR43 
ERR44 
ERR45 
ERR46 
ERR47 
ERR48 
ERR49 
ERR50 
ERR51 
ERR52 
ERR53 
ERR54 
ERR55 
ERR56 
ERR57 
ERR58 
ERR59 
ERR60 
ERR61 
ERR62 
ERR63 
ERR64 
ERR65 
ERR66 
ERR67 
ERR68 
ERR69 
ERR70 
ERR71 
ERR72 
ERR73 
ERR74 
ERR75 
ERR76 
ERR77 
ERR78 
ERR79 
ERR80 
ERR81 
ERR82 
ERR83 
ERR84 
ERR85 
ERR86 
ERR87 
ERR88 
ERR89 
ERR90 
ERR91 
ERR92 
ERR93 
ERR94 
ERR95 
ERR96 
ERR97 
ERR98 
ERR99 
ERR100 
ERR101 

Definition at line 801 of file pcre2_compile.c.

◆ anonymous enum

anonymous enum
Enumerator
PSKIP_ALT 
PSKIP_CLASS 
PSKIP_KET 

Definition at line 375 of file pcre2_compile.c.

◆ anonymous enum

anonymous enum
Enumerator
RANGE_NO 
RANGE_STARTED 
RANGE_OK_ESCAPED 
RANGE_OK_LITERAL 

Definition at line 2754 of file pcre2_compile.c.

◆ anonymous enum

anonymous enum
Enumerator
PSO_OPT 
PSO_FLG 
PSO_NL 
PSO_BSR 
PSO_LIMH 
PSO_LIMM 
PSO_LIMD 

Definition at line 819 of file pcre2_compile.c.

Function Documentation

◆ check_escape()

int PRIV check_escape ( PCRE2_SPTR * ptrptr,
PCRE2_SPTR ptrend,
uint32_t * chptr,
int * errorcodeptr,
uint32_t options,
uint32_t xoptions,
BOOL isclass,
compile_block * cb )

Definition at line 1551 of file pcre2_compile.c.

◆ pcre2_code_copy()

PCRE2_EXP_DEFN pcre2_code *PCRE2_CALL_CONVENTION pcre2_code_copy ( const pcre2_code * code)

Definition at line 1200 of file pcre2_compile.c.

◆ pcre2_code_copy_with_tables()

PCRE2_EXP_DEFN pcre2_code *PCRE2_CALL_CONVENTION pcre2_code_copy_with_tables ( const pcre2_code * code)

Definition at line 1234 of file pcre2_compile.c.

◆ pcre2_code_free()

Definition at line 1269 of file pcre2_compile.c.

◆ pcre2_compile()

PCRE2_EXP_DEFN pcre2_code *PCRE2_CALL_CONVENTION pcre2_compile ( PCRE2_SPTR pattern,
PCRE2_SIZE patlen,
uint32_t options,
int * errorptr,
PCRE2_SIZE * erroroffset,
pcre2_compile_context * ccontext )

Definition at line 10126 of file pcre2_compile.c.