pcre_dfa_exec.c File Reference

#include "pcre_internal.h"

Go to the source code of this file.

Classes

struct  stateblock

Defines

#define NLBLOCK   md
#define PSSTART   start_subject
#define PSEND   end_subject
#define SP   " "
#define OP_PROP_EXTRA   300
#define OP_EXTUNI_EXTRA   320
#define OP_ANYNL_EXTRA   340
#define OP_HSPACE_EXTRA   360
#define OP_VSPACE_EXTRA   380
#define INTS_PER_STATEBLOCK   (sizeof(stateblock)/sizeof(int))
#define ADD_ACTIVE(x, y)
#define ADD_ACTIVE_DATA(x, y, z)
#define ADD_NEW(x, y)
#define ADD_NEW_DATA(x, y, z)

Functions

static int internal_dfa_exec (dfa_match_data *md, const uschar *this_start_code, const uschar *current_subject, int start_offset, int *offsets, int offsetcount, int *workspace, int wscount, int ims, int rlevel, int recursing)
PCRE_EXP_DEFN int PCRE_CALL_CONVENTION pcre_dfa_exec (const pcre *argument_re, const pcre_extra *extra_data, const char *subject, int length, int start_offset, int options, int *offsets, int offsetcount, int *workspace, int wscount)

Variables

static const uschar coptable []
static const uschar toptable1 []
static const uschar toptable2 []


Define Documentation

#define ADD_ACTIVE ( x,
y   ) 

Value:

if (active_count++ < wscount) \
    { \
    next_active_state->offset = (x); \
    next_active_state->count  = (y); \
    next_active_state->ims    = ims; \
    next_active_state++; \
    DPRINTF(("%.*sADD_ACTIVE(%d,%d)\n", rlevel*2-2, SP, (x), (y))); \
    } \
  else return PCRE_ERROR_DFA_WSSIZE

Definition at line 234 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define ADD_ACTIVE_DATA ( x,
y,
z   ) 

Value:

if (active_count++ < wscount) \
    { \
    next_active_state->offset = (x); \
    next_active_state->count  = (y); \
    next_active_state->ims    = ims; \
    next_active_state->data   = (z); \
    next_active_state++; \
    DPRINTF(("%.*sADD_ACTIVE_DATA(%d,%d,%d)\n", rlevel*2-2, SP, (x), (y), (z))); \
    } \
  else return PCRE_ERROR_DFA_WSSIZE

Definition at line 245 of file pcre_dfa_exec.c.

#define ADD_NEW ( x,
y   ) 

Value:

if (new_count++ < wscount) \
    { \
    next_new_state->offset = (x); \
    next_new_state->count  = (y); \
    next_new_state->ims    = ims; \
    next_new_state++; \
    DPRINTF(("%.*sADD_NEW(%d,%d)\n", rlevel*2-2, SP, (x), (y))); \
    } \
  else return PCRE_ERROR_DFA_WSSIZE

Definition at line 257 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define ADD_NEW_DATA ( x,
y,
z   ) 

Value:

if (new_count++ < wscount) \
    { \
    next_new_state->offset = (x); \
    next_new_state->count  = (y); \
    next_new_state->ims    = ims; \
    next_new_state->data   = (z); \
    next_new_state++; \
    DPRINTF(("%.*sADD_NEW_DATA(%d,%d,%d)\n", rlevel*2-2, SP, (x), (y), (z))); \
    } \
  else return PCRE_ERROR_DFA_WSSIZE

Definition at line 268 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define INTS_PER_STATEBLOCK   (sizeof(stateblock)/sizeof(int))

Definition at line 170 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define NLBLOCK   md

Definition at line 51 of file pcre_dfa_exec.c.

#define OP_ANYNL_EXTRA   340

Definition at line 75 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define OP_EXTUNI_EXTRA   320

Definition at line 74 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define OP_HSPACE_EXTRA   360

Definition at line 76 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define OP_PROP_EXTRA   300

Definition at line 73 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define OP_VSPACE_EXTRA   380

Definition at line 77 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

#define PSEND   end_subject

Definition at line 53 of file pcre_dfa_exec.c.

#define PSSTART   start_subject

Definition at line 52 of file pcre_dfa_exec.c.

#define SP   " "

Definition at line 60 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().


Function Documentation

static int internal_dfa_exec ( dfa_match_data md,
const uschar this_start_code,
const uschar current_subject,
int  start_offset,
int *  offsets,
int  offsetcount,
int *  workspace,
int  wscount,
int  ims,
int  rlevel,
int  recursing 
) [static]

Definition at line 283 of file pcre_dfa_exec.c.

References _pcre_ucp_gentype, _pcre_xclass(), ADD_ACTIVE, ADD_NEW, ADD_NEW_DATA, c, dfa_match_data::callout_data, pcre_callout_block::callout_data, pcre_callout_block::callout_number, pcre_callout_block::capture_last, pcre_callout_block::capture_top, ucd_record::chartype, coptable, stateblock::count, ctype_word, ctypes_offset, pcre_callout_block::current_position, d, DPRINTF, dfa_match_data::end_subject, FALSE, fcc_offset, GET2, GET_UCD, GETCHARLEN, GETCHARTEST, i, if(), INTS_PER_STATEBLOCK, IS_NEWLINE, j, lcc_offset, length, LINK_SIZE, max, memmove, dfa_match_data::moptions, pcre_callout_block::next_item_length, dfa_match_data::nllen, NOTACHAR, NULL, pcre_callout_block::offset_vector, OP_ALLANY, OP_ALT, OP_ANY, OP_ANYBYTE, OP_ANYNL, OP_ANYNL_EXTRA, OP_ASSERT, OP_ASSERT_NOT, OP_ASSERTBACK, OP_ASSERTBACK_NOT, OP_BRA, OP_BRAMINZERO, OP_BRAZERO, OP_CALLOUT, OP_CBRA, OP_CHAR, OP_CHARNC, OP_CIRC, OP_CLASS, OP_COND, OP_CREF, OP_CRMINPLUS, OP_CRMINQUERY, OP_CRMINRANGE, OP_CRMINSTAR, OP_CRPLUS, OP_CRQUERY, OP_CRRANGE, OP_CRSTAR, OP_DEF, OP_DIGIT, OP_DOLL, OP_EOD, OP_EODN, OP_EXACT, OP_EXTUNI, OP_EXTUNI_EXTRA, OP_FAIL, OP_HSPACE, OP_HSPACE_EXTRA, OP_KET, OP_KETRMAX, OP_KETRMIN, OP_MINPLUS, OP_MINQUERY, OP_MINSTAR, OP_MINUPTO, OP_NCLASS, OP_NOT, OP_NOT_DIGIT, OP_NOT_HSPACE, OP_NOT_VSPACE, OP_NOT_WHITESPACE, OP_NOT_WORD_BOUNDARY, OP_NOT_WORDCHAR, OP_NOTEXACT, OP_NOTMINPLUS, OP_NOTMINQUERY, OP_NOTMINSTAR, OP_NOTMINUPTO, OP_NOTPLUS, OP_NOTPOSPLUS, OP_NOTPOSQUERY, OP_NOTPOSSTAR, OP_NOTPOSUPTO, OP_NOTPROP, OP_NOTQUERY, OP_NOTSTAR, OP_NOTUPTO, OP_ONCE, OP_OPT, OP_PLUS, OP_POSPLUS, OP_POSQUERY, OP_POSSTAR, OP_POSUPTO, OP_PROP, OP_PROP_EXTRA, OP_QUERY, OP_RECURSE, OP_REVERSE, OP_RREF, OP_SBRA, OP_SCBRA, OP_SCOND, OP_SKIPZERO, OP_SOD, OP_SOM, OP_STAR, 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_UPTO, OP_VSPACE, OP_VSPACE_EXTRA, OP_WHITESPACE, OP_WORD_BOUNDARY, OP_WORDCHAR, OP_XCLASS, p, pcre_callout_block::pattern_position, pchars(), PCRE_BSR_ANYCRLF, pcre_callout, PCRE_CASELESS, PCRE_DFA_RESTART, PCRE_DFA_SHORTEST, PCRE_ERROR_DFA_RECURSE, PCRE_ERROR_DFA_UCOND, PCRE_ERROR_DFA_UITEM, PCRE_ERROR_NOMATCH, PCRE_MULTILINE, PCRE_NOTBOL, PCRE_NOTEMPTY, PCRE_NOTEOL, PCRE_SPTR, PCRE_UTF8, dfa_match_data::poptions, PT_ANY, PT_GC, PT_LAMP, PT_PC, PT_SC, ptr, RREF_ANY, ucd_record::script, SP, dfa_match_data::start_code, pcre_callout_block::start_match, dfa_match_data::start_subject, pcre_callout_block::subject, pcre_callout_block::subject_length, dfa_match_data::tables, toptable1, toptable2, TRUE, UCD_CATEGORY, UCD_OTHERCASE, ucp_Ll, ucp_Lt, ucp_Lu, ucp_M, utf8, value, pcre_callout_block::version, WAS_NEWLINE, and x80.

Referenced by pcre_dfa_exec().

PCRE_EXP_DEFN int PCRE_CALL_CONVENTION pcre_dfa_exec ( const pcre argument_re,
const pcre_extra extra_data,
const char *  subject,
int  length,
int  start_offset,
int  options,
int *  offsets,
int  offsetcount,
int *  workspace,
int  wscount 
)

Definition at line 2509 of file pcre_dfa_exec.c.

References _pcre_default_tables, _pcre_try_flipped(), _pcre_valid_utf8(), anchored(), c, dfa_match_data::callout_data, pcre_extra::callout_data, dfa_match_data::end_subject, FALSE, fcc_offset, real_pcre::first_byte, pcre_extra::flags, flags, real_pcre::flags, if(), internal_dfa_exec(), IS_NEWLINE, lcc_offset, MAGIC_NUMBER, real_pcre::magic_number, dfa_match_data::moptions, real_pcre::name_count, real_pcre::name_entry_size, real_pcre::name_table_offset, NEWLINE, newline, dfa_match_data::nl, dfa_match_data::nllen, dfa_match_data::nltype, NLTYPE_ANY, NLTYPE_ANYCRLF, NLTYPE_FIXED, NULL, pcre_study_data::options, real_pcre::options, p, PCRE_ANCHORED, PCRE_BSR_ANYCRLF, PCRE_BSR_UNICODE, PCRE_CASELESS, PCRE_DFA_RESTART, PCRE_DOTALL, PCRE_ERROR_BADCOUNT, PCRE_ERROR_BADMAGIC, PCRE_ERROR_BADNEWLINE, PCRE_ERROR_BADOPTION, PCRE_ERROR_BADUTF8, PCRE_ERROR_BADUTF8_OFFSET, PCRE_ERROR_DFA_UMLIMIT, PCRE_ERROR_DFA_WSSIZE, PCRE_ERROR_NOMATCH, PCRE_ERROR_NULL, PCRE_EXTRA_CALLOUT_DATA, PCRE_EXTRA_MATCH_LIMIT, PCRE_EXTRA_MATCH_LIMIT_RECURSION, PCRE_EXTRA_STUDY_DATA, PCRE_EXTRA_TABLES, PCRE_FIRSTLINE, PCRE_FIRSTSET, PCRE_HASCRORLF, PCRE_MULTILINE, PCRE_NEWLINE_ANY, PCRE_NEWLINE_ANYCRLF, PCRE_NEWLINE_BITS, PCRE_NEWLINE_CR, PCRE_NEWLINE_LF, PCRE_NO_UTF8_CHECK, PCRE_PARTIAL, PCRE_REQCHSET, PCRE_STARTLINE, PCRE_STUDY_MAPPED, PCRE_UTF8, dfa_match_data::poptions, PUBLIC_DFA_EXEC_OPTIONS, real_pcre::req_byte, REQ_BYTE_MAX, REQ_CASELESS, pcre_study_data::start_bits, dfa_match_data::start_code, dfa_match_data::start_subject, pcre_extra::study_data, t, pcre_extra::tables, dfa_match_data::tables, real_pcre::tables, TRUE, USPTR, utf8, WAS_NEWLINE, and x80.


Variable Documentation

const uschar coptable[] [static]

Definition at line 87 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

const uschar toptable1[] [static]

Initial value:

 {
  0, 0, 0, 0, 0, 0,
  ctype_digit, ctype_digit,
  ctype_space, ctype_space,
  ctype_word,  ctype_word,
  0, 0                            
}

Definition at line 141 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().

const uschar toptable2[] [static]

Initial value:

 {
  0, 0, 0, 0, 0, 0,
  ctype_digit, 0,
  ctype_space, 0,
  ctype_word,  0,
  1, 1                            
}

Definition at line 149 of file pcre_dfa_exec.c.

Referenced by internal_dfa_exec().


Generated on Tue Jul 5 15:57:28 2011 for ROOT_528-00b_version by  doxygen 1.5.1