NCBI C++ ToolKit
Macros | Enumerations | Functions | Variables
pcre2_match.c File Reference
#include "pcre2_internal.h"
+ Include dependency graph for pcre2_match.c:

Go to the source code of this file.

Go to the SVN repository for this file.

Macros

#define NLBLOCK   mb /* Block containing newline information */
 
#define PSSTART   start_subject /* Field containing processed string start */
 
#define PSEND   end_subject /* Field containing processed string end */
 
#define RECURSE_UNSET   0xffffffffu /* Bigger than max group number */
 
#define PUBLIC_MATCH_OPTIONS
 
#define PUBLIC_JIT_MATCH_OPTIONS
 
#define MATCH_MATCH   1
 
#define MATCH_NOMATCH   0
 
#define MATCH_ACCEPT   (-999)
 
#define MATCH_KETRPOS   (-998)
 
#define MATCH_COMMIT   (-997)
 
#define MATCH_PRUNE   (-996)
 
#define MATCH_SKIP   (-995)
 
#define MATCH_SKIP_ARG   (-994)
 
#define MATCH_THEN   (-993)
 
#define MATCH_BACKTRACK_MAX   MATCH_THEN
 
#define MATCH_BACKTRACK_MIN   MATCH_COMMIT
 
#define GF_CAPTURE   0x00010000u
 
#define GF_NOCAPTURE   0x00020000u
 
#define GF_CONDASSERT   0x00030000u
 
#define GF_RECURSE   0x00040000u
 
#define GF_IDMASK(a)   ((a) & 0xffff0000u)
 
#define GF_DATAMASK(a)   ((a) & 0x0000ffffu)
 
#define Fback_frame   F->back_frame
 
#define Fcapture_last   F->capture_last
 
#define Fcurrent_recurse   F->current_recurse
 
#define Fecode   F->ecode
 
#define Feptr   F->eptr
 
#define Fgroup_frame_type   F->group_frame_type
 
#define Flast_group_offset   F->last_group_offset
 
#define Flength   F->length
 
#define Fmark   F->mark
 
#define Frdepth   F->rdepth
 
#define Fstart_match   F->start_match
 
#define Foffset_top   F->offset_top
 
#define Foccu   F->occu
 
#define Fop   F->op
 
#define Fovector   F->ovector
 
#define Freturn_id   F->return_id
 
#define CHECK_PARTIAL()
 
#define SCHECK_PARTIAL()
 
#define RMATCH(ra, rb)
 
#define RRETURN(ra)
 
#define Loclength   F->temp_size
 
#define Lstart_eptr   F->temp_sptr[0]
 
#define Lcharptr   F->temp_sptr[1]
 
#define Lmin   F->temp_32[0]
 
#define Lmax   F->temp_32[1]
 
#define Lc   F->temp_32[2]
 
#define Loc   F->temp_32[3]
 
#define Lstart_eptr   F->temp_sptr[0]
 
#define Lmin   F->temp_32[0]
 
#define Lmax   F->temp_32[1]
 
#define Lc   F->temp_32[2]
 
#define Loc   F->temp_32[3]
 
#define Lmin   F->temp_32[0]
 
#define Lmax   F->temp_32[1]
 
#define Lstart_eptr   F->temp_sptr[0]
 
#define Lbyte_map_address   F->temp_sptr[1]
 
#define Lbyte_map   ((unsigned char *)Lbyte_map_address)
 
#define Lstart_eptr   F->temp_sptr[0]
 
#define Lxclass_data   F->temp_sptr[1]
 
#define Lmin   F->temp_32[0]
 
#define Lmax   F->temp_32[1]
 
#define Lstart_eptr   F->temp_sptr[0]
 
#define Lmin   F->temp_32[0]
 
#define Lmax   F->temp_32[1]
 
#define Lctype   F->temp_32[2]
 
#define Lpropvalue   F->temp_32[3]
 
#define Lmin   F->temp_32[0]
 
#define Lmax   F->temp_32[1]
 
#define Lcaseless   F->temp_32[2]
 
#define Lstart   F->temp_sptr[0]
 
#define Loffset   F->temp_size
 
#define Lnext_ecode   F->temp_sptr[0]
 
#define Lframe_type   F->temp_32[0]
 
#define Lmatched_once   F->temp_32[1]
 
#define Lzero_allowed   F->temp_32[2]
 
#define Lstart_eptr   F->temp_sptr[0]
 
#define Lstart_group   F->temp_sptr[1]
 
#define Lframe_type   F->temp_32[0] /* Set for all that use GROUPLOOP */
 
#define Lnext_branch   F->temp_sptr[0] /* Used only in OP_BRA handling */
 
#define Lframe_type   F->temp_32[0]
 
#define Lstart_branch   F->temp_sptr[0]
 
#define Lframe_type   F->temp_32[0]
 
#define Lframe_type   F->temp_32[0]
 
#define Lpositive   F->temp_32[0]
 
#define Lstart_branch   F->temp_sptr[0]
 
#define Lmin   F->temp_32[0]
 
#define Lmax   F->temp_32[1]
 
#define Leptr   F->temp_sptr[0]
 
#define LBL(val)   case val: goto L_RM##val;
 
#define FF   (PCRE2_NOTEMPTY_SET|PCRE2_NE_ATST_SET)
 
#define OO   (PCRE2_NOTEMPTY|PCRE2_NOTEMPTY_ATSTART)
 

Enumerations

enum  { REPTYPE_MIN , REPTYPE_MAX , REPTYPE_POS }
 
enum  {
  RM1 =1 , RM2 , RM3 , RM4 ,
  RM5 , RM6 , RM7 , RM8 ,
  RM9 , RM10 , RM11 , RM12 ,
  RM13 , RM14 , RM15 , RM16 ,
  RM17 , RM18 , RM19 , RM20 ,
  RM21 , RM22 , RM23 , RM24 ,
  RM25 , RM26 , RM27 , RM28 ,
  RM29 , RM30 , RM31 , RM32 ,
  RM33 , RM34 , RM35 , RM36 ,
  RM37
}
 

Functions

static int do_callout (heapframe *F, match_block *mb, PCRE2_SIZE *lengthptr)
 
static int match_ref (PCRE2_SIZE offset, BOOL caseless, heapframe *F, match_block *mb, PCRE2_SIZE *lengthptr)
 
static int match (PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)
 
PCRE2_EXPORT int PCRE2_CALL_CONVENTION pcre2_match (const pcre2_code *code, PCRE2_SPTR subject, PCRE2_SIZE length, PCRE2_SIZE start_offset, uint32_t options, pcre2_match_data *match_data, pcre2_match_context *mcontext)
 

Variables

static const uint32_t rep_min []
 
static const uint32_t rep_max []
 
static const uint32_t rep_typ []
 

Macro Definition Documentation

◆ CHECK_PARTIAL

#define CHECK_PARTIAL ( )
Value:
if (Feptr >= mb->end_subject) \
{ \
SCHECK_PARTIAL(); \
}
#define Feptr
Definition: pcre2_match.c:182

Definition at line 531 of file pcre2_match.c.

◆ Fback_frame

#define Fback_frame   F->back_frame

Definition at line 178 of file pcre2_match.c.

◆ Fcapture_last

#define Fcapture_last   F->capture_last

Definition at line 179 of file pcre2_match.c.

◆ Fcurrent_recurse

#define Fcurrent_recurse   F->current_recurse

Definition at line 180 of file pcre2_match.c.

◆ Fecode

#define Fecode   F->ecode

Definition at line 181 of file pcre2_match.c.

◆ Feptr

#define Feptr   F->eptr

Definition at line 182 of file pcre2_match.c.

◆ FF

◆ Fgroup_frame_type

#define Fgroup_frame_type   F->group_frame_type

Definition at line 183 of file pcre2_match.c.

◆ Flast_group_offset

#define Flast_group_offset   F->last_group_offset

Definition at line 184 of file pcre2_match.c.

◆ Flength

#define Flength   F->length

Definition at line 185 of file pcre2_match.c.

◆ Fmark

#define Fmark   F->mark

Definition at line 186 of file pcre2_match.c.

◆ Foccu

#define Foccu   F->occu

Definition at line 190 of file pcre2_match.c.

◆ Foffset_top

#define Foffset_top   F->offset_top

Definition at line 189 of file pcre2_match.c.

◆ Fop

#define Fop   F->op

Definition at line 191 of file pcre2_match.c.

◆ Fovector

#define Fovector   F->ovector

Definition at line 192 of file pcre2_match.c.

◆ Frdepth

#define Frdepth   F->rdepth

Definition at line 187 of file pcre2_match.c.

◆ Freturn_id

#define Freturn_id   F->return_id

Definition at line 193 of file pcre2_match.c.

◆ Fstart_match

#define Fstart_match   F->start_match

Definition at line 188 of file pcre2_match.c.

◆ GF_CAPTURE

#define GF_CAPTURE   0x00010000u

Definition at line 111 of file pcre2_match.c.

◆ GF_CONDASSERT

#define GF_CONDASSERT   0x00030000u

Definition at line 113 of file pcre2_match.c.

◆ GF_DATAMASK

#define GF_DATAMASK (   a)    ((a) & 0x0000ffffu)

Definition at line 119 of file pcre2_match.c.

◆ GF_IDMASK

#define GF_IDMASK (   a)    ((a) & 0xffff0000u)

Definition at line 118 of file pcre2_match.c.

◆ GF_NOCAPTURE

#define GF_NOCAPTURE   0x00020000u

Definition at line 112 of file pcre2_match.c.

◆ GF_RECURSE

#define GF_RECURSE   0x00040000u

Definition at line 114 of file pcre2_match.c.

◆ LBL

#define LBL (   val)    case val: goto L_RM##val;

◆ Lbyte_map

#define Lbyte_map   ((unsigned char *)Lbyte_map_address)

◆ Lbyte_map_address

#define Lbyte_map_address   F->temp_sptr[1]

◆ Lc [1/2]

#define Lc   F->temp_32[2]

◆ Lc [2/2]

#define Lc   F->temp_32[2]

◆ Lcaseless

#define Lcaseless   F->temp_32[2]

◆ Lcharptr

#define Lcharptr   F->temp_sptr[1]

◆ Lctype

#define Lctype   F->temp_32[2]

◆ Leptr

#define Leptr   F->temp_sptr[0]

◆ Lframe_type [1/5]

#define Lframe_type   F->temp_32[0]

◆ Lframe_type [2/5]

#define Lframe_type   F->temp_32[0] /* Set for all that use GROUPLOOP */

◆ Lframe_type [3/5]

#define Lframe_type   F->temp_32[0]

◆ Lframe_type [4/5]

#define Lframe_type   F->temp_32[0]

◆ Lframe_type [5/5]

#define Lframe_type   F->temp_32[0]

◆ Lmatched_once

#define Lmatched_once   F->temp_32[1]

◆ Lmax [1/7]

#define Lmax   F->temp_32[1]

◆ Lmax [2/7]

#define Lmax   F->temp_32[1]

◆ Lmax [3/7]

#define Lmax   F->temp_32[1]

◆ Lmax [4/7]

#define Lmax   F->temp_32[1]

◆ Lmax [5/7]

#define Lmax   F->temp_32[1]

◆ Lmax [6/7]

#define Lmax   F->temp_32[1]

◆ Lmax [7/7]

#define Lmax   F->temp_32[1]

◆ Lmin [1/7]

#define Lmin   F->temp_32[0]

◆ Lmin [2/7]

#define Lmin   F->temp_32[0]

◆ Lmin [3/7]

#define Lmin   F->temp_32[0]

◆ Lmin [4/7]

#define Lmin   F->temp_32[0]

◆ Lmin [5/7]

#define Lmin   F->temp_32[0]

◆ Lmin [6/7]

#define Lmin   F->temp_32[0]

◆ Lmin [7/7]

#define Lmin   F->temp_32[0]

◆ Lnext_branch

#define Lnext_branch   F->temp_sptr[0] /* Used only in OP_BRA handling */

◆ Lnext_ecode

#define Lnext_ecode   F->temp_sptr[0]

◆ Loc [1/2]

#define Loc   F->temp_32[3]

◆ Loc [2/2]

#define Loc   F->temp_32[3]

◆ Loclength

#define Loclength   F->temp_size

◆ Loffset

#define Loffset   F->temp_size

◆ Lpositive

#define Lpositive   F->temp_32[0]

◆ Lpropvalue

#define Lpropvalue   F->temp_32[3]

◆ Lstart

#define Lstart   F->temp_sptr[0]

◆ Lstart_branch [1/2]

#define Lstart_branch   F->temp_sptr[0]

◆ Lstart_branch [2/2]

#define Lstart_branch   F->temp_sptr[0]

◆ Lstart_eptr [1/6]

#define Lstart_eptr   F->temp_sptr[0]

◆ Lstart_eptr [2/6]

#define Lstart_eptr   F->temp_sptr[0]

◆ Lstart_eptr [3/6]

#define Lstart_eptr   F->temp_sptr[0]

◆ Lstart_eptr [4/6]

#define Lstart_eptr   F->temp_sptr[0]

◆ Lstart_eptr [5/6]

#define Lstart_eptr   F->temp_sptr[0]

◆ Lstart_eptr [6/6]

#define Lstart_eptr   F->temp_sptr[0]

◆ Lstart_group

#define Lstart_group   F->temp_sptr[1]

◆ Lxclass_data

#define Lxclass_data   F->temp_sptr[1]

◆ Lzero_allowed

#define Lzero_allowed   F->temp_32[2]

◆ MATCH_ACCEPT

#define MATCH_ACCEPT   (-999)

Definition at line 93 of file pcre2_match.c.

◆ MATCH_BACKTRACK_MAX

#define MATCH_BACKTRACK_MAX   MATCH_THEN

Definition at line 102 of file pcre2_match.c.

◆ MATCH_BACKTRACK_MIN

#define MATCH_BACKTRACK_MIN   MATCH_COMMIT

Definition at line 103 of file pcre2_match.c.

◆ MATCH_COMMIT

#define MATCH_COMMIT   (-997)

Definition at line 97 of file pcre2_match.c.

◆ MATCH_KETRPOS

#define MATCH_KETRPOS   (-998)

Definition at line 94 of file pcre2_match.c.

◆ MATCH_MATCH

#define MATCH_MATCH   1

Definition at line 87 of file pcre2_match.c.

◆ MATCH_NOMATCH

#define MATCH_NOMATCH   0

Definition at line 88 of file pcre2_match.c.

◆ MATCH_PRUNE

#define MATCH_PRUNE   (-996)

Definition at line 98 of file pcre2_match.c.

◆ MATCH_SKIP

#define MATCH_SKIP   (-995)

Definition at line 99 of file pcre2_match.c.

◆ MATCH_SKIP_ARG

#define MATCH_SKIP_ARG   (-994)

Definition at line 100 of file pcre2_match.c.

◆ MATCH_THEN

#define MATCH_THEN   (-993)

Definition at line 101 of file pcre2_match.c.

◆ NLBLOCK

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

Definition at line 65 of file pcre2_match.c.

◆ OO

◆ PSEND

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

Definition at line 67 of file pcre2_match.c.

◆ PSSTART

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

Definition at line 66 of file pcre2_match.c.

◆ PUBLIC_JIT_MATCH_OPTIONS

#define PUBLIC_JIT_MATCH_OPTIONS
Value:
PCRE2_NOTEMPTY_ATSTART|PCRE2_PARTIAL_SOFT|PCRE2_PARTIAL_HARD|\
PCRE2_COPY_MATCHED_SUBJECT)
#define PCRE2_PARTIAL_SOFT
Definition: pcre2.h:186
#define PCRE2_NOTBOL
Definition: pcre2.h:182
#define PCRE2_PARTIAL_HARD
Definition: pcre2.h:187
#define PCRE2_NO_UTF_CHECK
Definition: pcre2.h:112
#define PCRE2_NOTEMPTY
Definition: pcre2.h:184
#define PCRE2_NOTEOL
Definition: pcre2.h:183

Definition at line 79 of file pcre2_match.c.

◆ PUBLIC_MATCH_OPTIONS

#define PUBLIC_MATCH_OPTIONS
Value:
PCRE2_NOTEMPTY_ATSTART|PCRE2_NO_UTF_CHECK|PCRE2_PARTIAL_HARD| \
PCRE2_DISABLE_RECURSELOOP_CHECK)
#define PCRE2_NO_JIT
Definition: pcre2.h:195
#define PCRE2_ANCHORED
Definition: pcre2.h:111
#define PCRE2_ENDANCHORED
Definition: pcre2.h:113
#define PCRE2_COPY_MATCHED_SUBJECT
Definition: pcre2.h:196

Definition at line 73 of file pcre2_match.c.

◆ RECURSE_UNSET

#define RECURSE_UNSET   0xffffffffu /* Bigger than max group number */

Definition at line 69 of file pcre2_match.c.

◆ RMATCH

#define RMATCH (   ra,
  rb 
)
Value:
{\
start_ecode = ra;\
Freturn_id = rb;\
goto MATCH_RECURSE;\
L_##rb:;\
}

Definition at line 550 of file pcre2_match.c.

◆ RRETURN

#define RRETURN (   ra)
Value:
{\
rrc = ra;\
goto RETURN_SWITCH;\
}

Definition at line 558 of file pcre2_match.c.

◆ SCHECK_PARTIAL

#define SCHECK_PARTIAL ( )
Value:
if (mb->partial != 0 && \
(Feptr > mb->start_used_ptr || mb->allowemptypartial)) \
{ \
mb->hitend = TRUE; \
if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; \
}
#define TRUE
bool replacment for C indicating true.
Definition: ncbi_std.h:97
#define PCRE2_ERROR_PARTIAL
Definition: pcre2.h:334

Definition at line 537 of file pcre2_match.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
REPTYPE_MIN 
REPTYPE_MAX 
REPTYPE_POS 

Definition at line 123 of file pcre2_match.c.

◆ anonymous enum

anonymous enum
Enumerator
RM1 
RM2 
RM3 
RM4 
RM5 
RM6 
RM7 
RM8 
RM9 
RM10 
RM11 
RM12 
RM13 
RM14 
RM15 
RM16 
RM17 
RM18 
RM19 
RM20 
RM21 
RM22 
RM23 
RM24 
RM25 
RM26 
RM27 
RM28 
RM29 
RM30 
RM31 
RM32 
RM33 
RM34 
RM35 
RM36 
RM37 

Definition at line 155 of file pcre2_match.c.

Function Documentation

◆ do_callout()

static int do_callout ( heapframe F,
match_block mb,
PCRE2_SIZE lengthptr 
)
static

◆ match()

static int match ( PCRE2_SPTR  start_eptr,
PCRE2_SPTR  start_ecode,
uint16_t  top_bracket,
PCRE2_SIZE  frame_size,
pcre2_match_data match_data,
match_block mb 
)
static

Definition at line 594 of file pcre2_match.c.

References available, match_block::bsr_convention, match_block::cb, CHAR_COMMERCIAL_AT, CHAR_CR, CHAR_DOLLAR_SIGN, CHAR_FF, CHAR_GRAVE_ACCENT, CHAR_LF, CHAR_NEL, CHAR_NL, CHAR_VT, ucd_record::chartype, CHECK_PARTIAL, match_block::check_subject, CHMAX_255, count, ctype_digit, ctype_space, ctype_word, match_block::ctypes, CU2BYTES, do_callout(), match_block::end_match_ptr, match_block::end_offset_top, match_block::end_subject, F, FALSE, Fback_frame, Fcapture_last, match_block::fcc, Fcurrent_recurse, Fecode, Feptr, Fgroup_frame_type, Flast_group_offset, Flength, Fmark, Foccu, Foffset_top, Fop, Fovector, Frdepth, Freturn_id, Fstart_match, GET2, GET_UCD, GETCHAR, GETCHARINC, GETCHARINCTEST, GETCHARLEN, GF_CAPTURE, GF_CONDASSERT, GF_DATAMASK, GF_IDMASK, GF_NOCAPTURE, GF_RECURSE, match_block::hasthen, match_block::heap_limit, match_block::hitend, HSPACE_BYTE_CASES, HSPACE_CASES, HSPACE_MULTIBYTE_CASES, i, match_block::ignore_skip_arg, IMM2_SIZE, int, IS_NEWLINE, match_block::last_used_ptr, LBL, Lbyte_map, Lbyte_map_address, Lc, Lcaseless, match_block::lcc, Lcharptr, Lctype, len, Leptr, Lframe_type, lgb(), LINK_SIZE, Lmatched_once, Lmax, Lmin, Lnext_branch, Lnext_ecode, Loc, Loclength, Loffset, Lpositive, Lpropvalue, Lstart, Lstart_branch, Lstart_eptr, Lstart_group, Lxclass_data, Lzero_allowed, MAPBIT, heapframe::mark, match_block::mark, MATCH_ACCEPT, MATCH_BACKTRACK_MAX, MATCH_BACKTRACK_MIN, match_block::match_call_count, MATCH_COMMIT, match_data, MATCH_KETRPOS, match_block::match_limit, match_block::match_limit_depth, MATCH_MATCH, MATCH_NOMATCH, MATCH_PRUNE, match_ref(), MATCH_SKIP, MATCH_SKIP_ARG, MATCH_THEN, MAX_255, MAX_UTF_CODE_POINT, match_block::moptions, N, match_block::name_entry_size, match_block::name_table, NLBLOCK, match_block::nllen, NLTYPE_FIXED, match_block::nomatch_mark, NULL, number, offset, heapframe::offset_top, offsetof, ok, OP_ACCEPT, OP_ALLANY, OP_ALT, OP_ANY, OP_ANYBYTE, OP_ANYNL, OP_ASSERT, OP_ASSERT_ACCEPT, OP_ASSERT_NA, OP_ASSERT_NOT, OP_ASSERTBACK, OP_ASSERTBACK_NA, OP_ASSERTBACK_NOT, OP_BRA, OP_BRAMINZERO, OP_BRAPOS, OP_BRAPOSZERO, OP_BRAZERO, OP_CALLOUT, OP_CALLOUT_STR, OP_CBRA, OP_CBRAPOS, OP_CHAR, OP_CHARI, OP_CIRC, OP_CIRCM, OP_CLASS, OP_CLOSE, OP_COMMIT, OP_COMMIT_ARG, OP_COND, OP_CREF, OP_CRMINPLUS, OP_CRMINQUERY, OP_CRMINRANGE, OP_CRMINSTAR, OP_CRPLUS, OP_CRPOSPLUS, OP_CRPOSQUERY, OP_CRPOSRANGE, OP_CRPOSSTAR, OP_CRQUERY, OP_CRRANGE, OP_CRSTAR, OP_DIGIT, OP_DNCREF, OP_DNREF, OP_DNREFI, OP_DNRREF, OP_DOLL, OP_DOLLM, OP_END, OP_EOD, OP_EODN, OP_EXACT, OP_EXACTI, OP_EXTUNI, OP_FAIL, OP_FALSE, OP_HSPACE, OP_KET, OP_KETRMAX, OP_KETRMIN, OP_KETRPOS, OP_lengths, OP_MARK, OP_MINPLUS, OP_MINPLUSI, OP_MINQUERY, OP_MINQUERYI, OP_MINSTAR, OP_MINSTARI, OP_MINUPTO, OP_MINUPTOI, OP_names, OP_NCLASS, OP_NOT, OP_NOT_DIGIT, OP_NOT_HSPACE, OP_NOT_UCP_WORD_BOUNDARY, OP_NOT_VSPACE, OP_NOT_WHITESPACE, OP_NOT_WORD_BOUNDARY, OP_NOT_WORDCHAR, OP_NOTEXACT, OP_NOTEXACTI, OP_NOTI, OP_NOTMINPLUS, OP_NOTMINPLUSI, OP_NOTMINQUERY, OP_NOTMINQUERYI, OP_NOTMINSTAR, OP_NOTMINSTARI, OP_NOTMINUPTO, OP_NOTMINUPTOI, OP_NOTPLUS, OP_NOTPLUSI, OP_NOTPOSPLUS, OP_NOTPOSPLUSI, OP_NOTPOSQUERY, OP_NOTPOSQUERYI, OP_NOTPOSSTAR, OP_NOTPOSSTARI, OP_NOTPOSUPTO, OP_NOTPOSUPTOI, OP_NOTPROP, OP_NOTQUERY, OP_NOTQUERYI, OP_NOTSTAR, OP_NOTSTARI, OP_NOTUPTO, OP_NOTUPTOI, OP_ONCE, OP_PLUS, OP_PLUSI, OP_POSPLUS, OP_POSPLUSI, OP_POSQUERY, OP_POSQUERYI, OP_POSSTAR, OP_POSSTARI, OP_POSUPTO, OP_POSUPTOI, OP_PROP, OP_PRUNE, OP_PRUNE_ARG, OP_QUERY, OP_QUERYI, OP_RECURSE, OP_REF, OP_REFI, OP_REVERSE, OP_RREF, OP_SBRA, OP_SBRAPOS, OP_SCBRA, OP_SCBRAPOS, OP_SCOND, OP_SCRIPT_RUN, OP_SET_SOM, OP_SKIP, OP_SKIP_ARG, OP_SKIPZERO, OP_SOD, OP_SOM, OP_STAR, OP_STARI, OP_THEN, OP_THEN_ARG, OP_TRUE, OP_TYPEEXACT, OP_TYPEMINPLUS, OP_TYPEMINQUERY, OP_TYPEMINSTAR, OP_TYPEMINUPTO, OP_TYPEPLUS, OP_TYPEPOSPLUS, OP_TYPEPOSQUERY, OP_TYPEPOSSTAR, OP_TYPEPOSUPTO, OP_TYPEQUERY, OP_TYPESTAR, OP_TYPEUPTO, OP_UCP_WORD_BOUNDARY, OP_UPTO, OP_UPTOI, OP_VREVERSE, OP_VSPACE, OP_WHITESPACE, OP_WORD_BOUNDARY, OP_WORDCHAR, OP_XCLASS, P, match_block::partial, PCRE2_ALT_CIRCUMFLEX, PCRE2_BSR_ANYCRLF, PCRE2_CALLOUT_BACKTRACK, PCRE2_CODE_UNIT_WIDTH, PCRE2_DISABLE_RECURSELOOP_CHECK, PCRE2_DOLLAR_ENDONLY, PCRE2_ENDANCHORED, PCRE2_ERROR_DEPTHLIMIT, PCRE2_ERROR_HEAPLIMIT, PCRE2_ERROR_INTERNAL, PCRE2_ERROR_MATCHLIMIT, PCRE2_ERROR_NOMEMORY, PCRE2_ERROR_PARTIAL, PCRE2_ERROR_RECURSELOOP, PCRE2_MATCH_UNSET_BACKREF, PCRE2_NOTBOL, PCRE2_NOTEMPTY, PCRE2_NOTEMPTY_ATSTART, PCRE2_NOTEOL, PCRE2_SIZE, PCRE2_SIZE_MAX, PCRE2_SPTR, PCRE2_UCHAR, PCRE2_UCP, PCRE2_UNSET, PCRE2_UTF, match_block::poptions, PRIV, PT_ALNUM, PT_ANY, PT_BIDICL, PT_BOOL, PT_CLIST, PT_GC, PT_LAMP, PT_PC, PT_PXSPACE, PT_SC, PT_SCX, PT_SPACE, PT_UCNC, PT_WORD, RECURSE_UNSET, rep_max, rep_min, rep_typ, REPTYPE_MAX, REPTYPE_MIN, REPTYPE_POS, RM1, RM10, RM11, RM12, RM13, RM14, RM15, RM16, RM17, RM18, RM19, RM2, RM20, RM21, RM22, RM23, RM24, RM25, RM26, RM27, RM28, RM29, RM3, RM30, RM31, RM32, RM33, RM34, RM35, RM36, RM37, RM4, RM5, RM6, RM7, RM8, RM9, RMATCH, RREF_ANY, RRETURN, SCHECK_PARTIAL, ucd_record::script, match_block::skip_arg_count, match_block::start_code, match_block::start_offset, match_block::start_subject, match_block::start_used_ptr, util::strcmp(), TABLE_GET, TRUE, UCD_BIDICLASS, UCD_BIDICLASS_PROP, UCD_BPROPS_PROP, UCD_CATEGORY, UCD_CHARTYPE, UCD_GRAPHBREAK, UCD_OTHERCASE, UCD_SCRIPT, UCD_SCRIPTX_PROP, UCHAR21, UCHAR21INC, UCHAR21INCTEST, UCHAR21TEST, ucp_L, ucp_Ll, ucp_Lt, ucp_Lu, ucp_Mn, ucp_N, ucp_Pc, ucp_Z, UINT32_MAX, uint8_t, utf, match_block::verb_current_recurse, match_block::verb_ecode_ptr, match_block::verb_skip_ptr, VSPACE_BYTE_CASES, VSPACE_CASES, VSPACE_MULTIBYTE_CASES, and WAS_NEWLINE.

Referenced by CAlnMixMatches::Add(), CLDS2_Database::AddBioseq(), CTextFsm< CSeqSearch::CPatternInfo >::CState::AddMatch(), CProteinAlignText::AddSpliceText(), CTextFsm< MatchType >::AddWord(), CAdjustForConsensusSpliceSite::AdjustCDS(), AdvancedStringCompare(), CRemoveFeaturesDlg::ApplyToCSeq_entry(), CCorrectIntervalOrder::ApplyToCSeq_entry(), CCdsMatchInfo::AssignMatch(), CMatchCDS::AssignSinglemRNA(), BDB_find_field(), Blast_RedoAlignmentCore_MT(), BlastGetStartForGappedAlignmentNucl(), BOOST_AUTO_TEST_CASE(), CAlnMixMatch::CAlnMixMatch(), CMultAlign::CheckWord(), ContainsSgml(), CFeatureGenerator::ConvertLocToAnnot(), CProSplignTrimmer::CProSplignTrimmer(), CEditHistory::CreateControls(), CDependent_field_rule::DoesStringMatchRuleExpression(), CField_rule::DoesStringMatchRuleExpression(), CStringConstraint::DoesTextMatch(), CQueryFuncPromoteEq::Evaluate(), ExcludeBadExons(), extract_date_iso8601(), CGlTextureFont::FaceFromString(), FF_FUN(), CAlignFormatUtil::FilterSeqalignBySeqList(), CTempString::find(), CTempString::find_first_not_of(), CTempString::find_first_of(), CTempString::find_last_not_of(), CTempString::find_last_of(), FindGoodParts(), CSeqMatch::FindMatches(), CCleanup::FindMatchingLocus_tagGene(), CCleanup::FindMatchingLocusGene(), FindMatchInOrgRef(), NAdapterSearch::CSimpleUngappedAligner::FindSingleBest(), CDataSource::GetAccVer(), CScope_Impl::GetAccVer(), CDataSource::GetAccVers(), CScope_Impl::GetAccVers(), CScope_Impl::GetBioseqHandle(), CTSE_ScopeInfo::GetBioseqInfo(), CScoreBuilder::GetBlastScoreDenseg(), CDataSource::GetBlobs(), CDataSource::GetBulkIds(), CScope_Impl::GetBulkIds(), CPubFieldType::GetChoicesForField(), CBulkEditFeatDlg::GetCommand(), CEditSequenceEnds::GetCommand(), CDictionaryUtil::GetEditDistance(), CMolInfoFieldType::GetFieldType(), CBioSource::GetGenomeByOrganelle(), CDataSource::GetGi(), CScope_Impl::GetGi(), CDataSource::GetGis(), CScope_Impl::GetGis(), CSeqUtils::GetGIString(), CScope_Impl::GetIds(), CDataSource::GetIds(), CDataSource::GetLabel(), CScope_Impl::GetLabel(), CDataSource::GetLabels(), CScope_Impl::GetLabels(), CDataSource::GetMatches(), CSeq_id::GetMatchingIds(), CSeq_id::GetMatchingTextseqIds(), CBioSource::GetOriginByString(), CScope_Impl::GetSequenceLength(), CDataSource::GetSequenceLength(), CDataSource::GetSequenceLengths(), CScope_Impl::GetSequenceLengths(), CScope_Impl::GetSequenceState(), CDataSource::GetSequenceState(), CDataSource::GetSequenceStates(), CScope_Impl::GetSequenceStates(), CScope_Impl::GetSequenceType(), CDataSource::GetSequenceType(), CDataSource::GetSequenceTypes(), CScope_Impl::GetSequenceTypes(), CPubFieldType::GetStatusFromString(), CScope_Impl::GetSynonyms(), CDataSource::GetTaxId(), CScope_Impl::GetTaxId(), CDataSource::GetTaxIds(), CScope_Impl::GetTaxIds(), CPubFieldType::GetTypeForLabel(), CDBLinkFieldType::GetTypeForLabel(), CDBLinkField::GetTypeForLabel(), CGBBlockField::GetTypeForLabel(), CStdSegHit::HasAlignment(), CSplignTrim::ImproveFromLeft(), CNWFormatter::SSegment::ImproveFromLeft1(), CSplignTrim::ImproveFromRight(), CNWFormatter::SSegment::ImproveFromRight1(), inflate_table(), CStringConstraint::IsInRange(), IsMet1(), CPCRPrimerSeq::IsValid(), CSatelliteTypeNameColumn::IsValid(), longest_match(), main(), CPrefetchThreadOld::Main(), CAlignFilter::Match(), IEditingActionFeat::MatchBioseqConstraintForFeatHandle(), CCharHistogram::CMergedChar::NextChar(), CAddSuspectProductRule::OnAccept(), CAlnMixMatch::operator=(), CProSplignText::Output(), CGb_qual::ParseInferenceString(), pcre2_match(), pcre2grep(), CReorderSequencesDlg::PopulateSet(), CGFFReader::Read(), pub_report::CUnpublishedReport::ReportUnpublished(), CTempString::rfind(), s_CalculateIdentity(), s_CalculateMatchingColumns(), s_ComputeTraceback(), s_DisplayIdentityInfo(), s_DoesTextContainOnlyTheseWords(), s_DoUSAStateCleanup(), s_ExtendLeft(), s_ExtendRight(), s_FindNumIdentical(), s_GetAlignmentMismatches(), CAdapterSearchApplication::s_GetCoverage(), CAdapterSearchApplication::s_GetIdentity(), s_GetNextInfo(), s_GetOwnerGroupFromSIDs(), s_GetPubMatchInfo(), s_GetSplicedSegIdentityMismatch(), s_GetTextseq_id(), s_HSPsHaveCommonEndpoint(), s_IdXrefsAreReciprocal(), CAdapterSearchApplication::s_MaskQuery(), s_PercentBioseqMatch(), s_RecordMatch(), s_ReplaceEnding(), s_TruncateEnding(), CAuth_list::SameCitation(), CCdsMatchInfo::SetMatch(), CAddSuspectProductRule::SetRule(), SMatrix::SMatrix(), CSegregateSetsBase::TakeFromSet(), fix_pub::TenAuthorsCompare(), fix_pub::TenAuthorsProcess(), TestSparseFindEqStrPipeline(), CMacroFunction_UpdateProteinSeqs::TheFunction(), CMacroFunction_LocationType::TheFunction(), CMacroFunction_FeatStrandednessConstraint::TheFunction(), CMacroFunction_StringConstraints::TheFunction(), CTrackUtils::TokenizeWithEscape(), transform_ambiguous_date(), CPileUpGraph::UpdateAlignStats(), CValidError_imp::ValidateSourceQualTags(), CArchive::x_Append(), CRemoveDescDlg::x_ApplyToSeq_entry(), CSingleFeatValidator::x_CalculateLocationGaps(), CMacroFunction_StringConstraints::x_CheckAuthorNames(), CMatchesListCtrl::x_ConvertAllToByLocation(), COrfSearchJob::x_DoSearch(), CAlignGlyph::x_DrawAlignRowSequence(), CShowBlastDefline::x_FillDeflineAndId(), CDisplaySeqalign::x_FillIdentityInfo(), CScope_Impl::x_FindBioseq_Info(), x_FindRSite(), objects::CFixSuspectProductName::x_FixSuspectProductName(), CScope_Impl::x_GetBioseq_Info(), CScope_Impl::x_GetBioseqHandleFromTSE(), CScope_Impl::x_GetBioseqHandlesSorted(), CCorrectGenesDialog::x_GetConstrainedList(), CScoreBuilderBase::x_GetMatrixCounts(), CAlnMultiRenderer::x_GetRowTooltip(), CDataSource_ScopeInfo::x_GetSeqMatch(), CWholeFileAnnotation::x_HasMatch(), CScope_Impl::x_InitBioseq_Info(), CString_constraint::x_IsAllPunctuation(), CString_constraint::x_IsAllSkippable(), CAdjustFeaturesForGaps::x_IsFeatureTypeSelected(), CSingleFeatValidator::x_IsMostlyNs(), CScope_Impl::x_LockMatchSet(), CAlnMixMerger::x_Merge(), COligoSpecificityCheck::x_NW_alignment(), CMultiAlignView::x_OnSetSelection(), CRNAPanel::x_PopulateTranscriptID(), CDisplaySeqalign::x_PrepareRowData(), CUpdateAlign::x_ReadAlign(), CArchive::x_ReadAndProcess(), CTar::x_ReadAndProcess(), CScope_Impl::x_ResolveSeq_id(), CAlnMixMerger::x_SecondRowFits(), CDataSource_ScopeInfo::x_SetMatch(), CAlnMixMerger::x_SetSeqFrame(), x_TestList(), x_TestPair(), CRequestContext::x_UpdateStdContextProp(), and CValidError_align::x_ValidateAlignPercentIdentity().

◆ match_ref()

static int match_ref ( PCRE2_SIZE  offset,
BOOL  caseless,
heapframe F,
match_block mb,
PCRE2_SIZE lengthptr 
)
static

◆ pcre2_match()

PCRE2_EXPORT int PCRE2_CALL_CONVENTION pcre2_match ( const pcre2_code code,
PCRE2_SPTR  subject,
PCRE2_SIZE  length,
PCRE2_SIZE  start_offset,
uint32_t  options,
pcre2_match_data match_data,
pcre2_match_context mcontext 
)

Definition at line 6530 of file pcre2_match.c.

References match_block::allowemptypartial, pcre2_real_code::bsr_convention, match_block::bsr_convention, match_block::callout, match_block::callout_data, match_block::cb, CHAR_CR, CHAR_NL, CHAR_NUL, match_block::check_subject, match_block::ctypes, ctypes_offset, CU2BYTES, match_block::end_match_ptr, match_block::end_offset_top, match_block::end_subject, pcre2_real_code::executable_jit, FALSE, match_block::fcc, fcc_offset, FF, pcre2_real_code::first_codeunit, pcre2_real_code::flags, match_block::hasthen, match_block::heap_limit, HEAPFRAME_ALIGNMENT, match_block::hitend, i, match_block::ignore_skip_arg, int, IS_NEWLINE, pcre2_real_code::last_codeunit, match_block::last_used_ptr, match_block::lcc, lcc_offset, pcre2_real_code::limit_depth, pcre2_real_code::limit_heap, pcre2_real_code::limit_match, MAGIC_NUMBER, pcre2_real_code::magic_number, match_block::mark, match(), match_block::match_call_count, MATCH_COMMIT, match_data, match_block::match_limit, match_block::match_limit_depth, MATCH_MATCH, MATCH_NOMATCH, MATCH_PRUNE, MATCH_SKIP, MATCH_SKIP_ARG, MATCH_THEN, pcre2_real_code::max_lookbehind, pcre2_real_code::memctl, match_block::memctl, match_block::moptions, pcre2_real_code::name_count, match_block::name_count, pcre2_real_code::name_entry_size, match_block::name_entry_size, match_block::name_table, pcre2_real_code::newline_convention, match_block::nl, match_block::nllen, match_block::nltype, NLTYPE_ANY, NLTYPE_ANYCRLF, NLTYPE_FIXED, match_block::nomatch_mark, NULL, offsetof, ok, OO, pcre2_real_code::overall_options, match_block::partial, PCRE2_ANCHORED, pcre2_callout_block, PCRE2_CALLOUT_STARTMATCH, PCRE2_CODE_UNIT_WIDTH, PCRE2_COPY_MATCHED_SUBJECT, PCRE2_ENDANCHORED, PCRE2_ERROR_BADMAGIC, PCRE2_ERROR_BADMODE, PCRE2_ERROR_BADOFFSET, PCRE2_ERROR_BADOFFSETLIMIT, PCRE2_ERROR_BADOPTION, PCRE2_ERROR_BADUTFOFFSET, PCRE2_ERROR_HEAPLIMIT, PCRE2_ERROR_INTERNAL, PCRE2_ERROR_JIT_BADOPTION, PCRE2_ERROR_NOMATCH, PCRE2_ERROR_NOMEMORY, PCRE2_ERROR_NULL, PCRE2_ERROR_PARTIAL, PCRE2_ERROR_UTF16_ERR3, PCRE2_ERROR_UTF8_ERR20, PCRE2_FIRSTCASELESS, PCRE2_FIRSTLINE, PCRE2_FIRSTMAPSET, PCRE2_FIRSTSET, PCRE2_HASCRORLF, PCRE2_HASTHEN, pcre2_jit_match(), PCRE2_LASTCASELESS, PCRE2_LASTSET, pcre2_match_context, PCRE2_MATCH_EMPTY, PCRE2_MATCH_INVALID_UTF, PCRE2_MATCHEDBY_INTERPRETER, PCRE2_MD_COPIED_SUBJECT, PCRE2_MODE_MASK, PCRE2_NEWLINE_ANY, PCRE2_NEWLINE_ANYCRLF, PCRE2_NEWLINE_CR, PCRE2_NEWLINE_CRLF, PCRE2_NEWLINE_LF, PCRE2_NEWLINE_NUL, PCRE2_NO_START_OPTIMIZE, PCRE2_NO_UTF_CHECK, PCRE2_NOTBOL, PCRE2_NOTEOL, PCRE2_PARTIAL_HARD, PCRE2_PARTIAL_SOFT, PCRE2_SIZE, PCRE2_SPTR, PCRE2_STARTLINE, PCRE2_UCHAR, PCRE2_UCP, PCRE2_UNSET, PCRE2_USE_OFFSET_LIMIT, PCRE2_UTF, PCRE2_ZERO_TERMINATED, match_block::poptions, PRIV, PUBLIC_JIT_MATCH_OPTIONS, PUBLIC_MATCH_OPTIONS, REQ_CU_MAX, match_block::skip_arg_count, pcre2_real_code::start_bitmap, match_block::start_code, START_FRAMES_SIZE, match_block::start_offset, match_block::start_subject, match_block::start_used_ptr, subject, SUPPORT_JIT, t, TABLE_GET, pcre2_real_code::tables, pcre2_real_code::top_bracket, TRUE, match_block::true_end_subject, UCD_OTHERCASE, UCHAR21INCTEST, UCHAR21TEST, use_jit, utf, valid_utf(), match_block::verb_skip_ptr, and WAS_NEWLINE.

Referenced by LLVMFuzzerTestOneInput(), main(), match_patterns(), pcre2_regexec(), pcre2_substitute(), test_incexc(), and CRegexp::x_Match().

Variable Documentation

◆ rep_max

const uint32_t rep_max[]
static
Initial value:
= {
1, 1,
0, 0,
#define UINT32_MAX
Definition: stdint.h:188

Definition at line 135 of file pcre2_match.c.

Referenced by match().

◆ rep_min

const uint32_t rep_min[]
static
Initial value:
= {
0, 0,
1, 1,
0, 0,
0, 0,
0, 1, 0 }

Definition at line 128 of file pcre2_match.c.

Referenced by match().

◆ rep_typ

const uint32_t rep_typ[]
static
Initial value:

Definition at line 144 of file pcre2_match.c.

Referenced by match().

Modified on Fri Sep 20 14:57:54 2024 by modify_doxy.py rev. 669887