re_dfa_t
create_initial_state (re_dfa_t *dfa)
optimize_utf8 (re_dfa_t *dfa)
static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
static bin_tree_t *create_tree (re_dfa_t *dfa,
re_dfa_t *dfa = preg->buffer;
static bin_tree_t *create_token_tree (re_dfa_t *dfa,
static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa);
re_dfa_t *dfa = (re_dfa_t *) extra;
re_dfa_t *dfa = preg->buffer;
re_dfa_t *dfa = (re_dfa_t *) extra;
re_dfa_t *dfa = (re_dfa_t *) extra;
duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint)
calc_inveclosure (re_dfa_t *dfa)
calc_eclosure (re_dfa_t *dfa)
calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
re_dfa_t *dfa = preg->buffer;
re_dfa_t *dfa = preg->buffer;
re_dfa_t *dfa = preg->buffer;
re_dfa_t *dfa = preg->buffer;
re_dfa_t *dfa = preg->buffer;
parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
re_dfa_t *dfa = bufp->buffer;
parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len);
re_dfa_t *dfa = bufp->buffer;
static reg_errcode_t create_initial_state (re_dfa_t *dfa);
re_token_t *token, int token_len, re_dfa_t *dfa,
static void optimize_utf8 (re_dfa_t *dfa);
build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa)
static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint);
static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
static reg_errcode_t calc_eclosure (re_dfa_t *dfa);
static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
static reg_errcode_t calc_inveclosure (re_dfa_t *dfa);
free_dfa_content (re_dfa_t *dfa)
re_dfa_t *dfa = preg->buffer;
re_dfa_t *dfa;
if (BE (preg->allocated < sizeof (re_dfa_t), 0))
dfa = re_realloc (preg->buffer, re_dfa_t, 1);
preg->allocated = sizeof (re_dfa_t);
preg->used = sizeof (re_dfa_t);
re_dfa_t *dfa, re_token_t *token,
static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa,
init_dfa (re_dfa_t *dfa, size_t pat_len)
memset (dfa, '\0', sizeof (re_dfa_t));
re_dfa_t *dfa,
init_word_char (re_dfa_t *dfa)
re_dfa_t *dfa = preg->buffer;
re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,
create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
const re_dfa_t *dfa)
const re_dfa_t *dfa);
static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
struct re_dfa_t;
typedef struct re_dfa_t re_dfa_t;
const re_dfa_t *const dfa;
const re_dfa_t *dfa;
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
static reg_errcode_t merge_state_array (const re_dfa_t *dfa,
check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context)
const re_dfa_t *const dfa = mctx->dfa;
static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
const re_dfa_t *dfa = preg->buffer;
static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa,
update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa,
static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state);
static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
const re_dfa_t *const dfa = mctx->dfa;
static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst,
const re_dfa_t *const dfa = mctx->dfa;
add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes,
sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes,
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
re_dfa_t *dfa = preg->buffer;
check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
const re_dfa_t *const dfa = mctx->dfa;
const re_dfa_t *const dfa = mctx->dfa;
check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes,
const re_dfa_t *const dfa = mctx->dfa;
build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
re_dfa_t *dfa = bufp->buffer;
static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
const re_dfa_t *dfa = preg->buffer;
static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa,
const re_dfa_t *const dfa = mctx->dfa;
static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa,