regcomp.c File Reference

#include "regparse.h"

Include dependency graph for regcomp.c:

Go to the source code of this file.

Data Structures

struct  MinMaxLen
struct  OptEnv
struct  OptAncInfo
struct  OptExactInfo
struct  OptMapInfo
struct  NodeOptInfo

Defines

#define IS_NEED_STR_LEN_OP_EXACT(op)
#define REPEAT_RANGE_ALLOC   4
#define QUANTIFIER_EXPAND_LIMIT_SIZE   50
#define CKN_ON   (ckn > 0)
#define GET_CHAR_LEN_VARLEN   -1
#define GET_CHAR_LEN_TOP_ALT_VARLEN   -2
#define RECURSION_EXIST   1
#define RECURSION_INFINITE   2
#define FOUND_CALLED_NODE   1
#define THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION   8
#define IN_ALT   (1<<0)
#define IN_NOT   (1<<1)
#define IN_REPEAT   (1<<2)
#define IN_VAR_REPEAT   (1<<3)
#define EXPAND_STRING_MAX_LENGTH   100
#define ALLOWED_TYPE_IN_LB
#define ALLOWED_ENCLOSE_IN_LB   ( ENCLOSE_MEMORY )
#define ALLOWED_ENCLOSE_IN_LB_NOT   0
#define ALLOWED_ANCHOR_IN_LB   ( ANCHOR_LOOK_BEHIND | ANCHOR_BEGIN_LINE | ANCHOR_END_LINE | ANCHOR_BEGIN_BUF | ANCHOR_BEGIN_POSITION )
#define ALLOWED_ANCHOR_IN_LB_NOT   ( ANCHOR_LOOK_BEHIND | ANCHOR_LOOK_BEHIND_NOT | ANCHOR_BEGIN_LINE | ANCHOR_END_LINE | ANCHOR_BEGIN_BUF | ANCHOR_BEGIN_POSITION )
#define OPT_EXACT_MAXLEN   24
#define COMP_EM_BASE   20
#define MAX_NODE_OPT_INFO_REF_COUNT   5
#define REGEX_TRANSFER(to, from)
#define REGEX_CHAIN_HEAD(reg)
#define COMPILE_INIT_SIZE   20

Functions

OnigCaseFoldType onig_get_default_case_fold_flag (void)
int onig_set_default_case_fold_flag (OnigCaseFoldType case_fold_flag)
static UChar * str_dup (UChar *s, UChar *end)
static void swap_node (Node *a, Node *b)
static OnigDistance distance_add (OnigDistance d1, OnigDistance d2)
static OnigDistance distance_multiply (OnigDistance d, int m)
static int bitset_is_empty (BitSetRef bs)
int onig_bbuf_init (BBuf *buf, int size)
static int unset_addr_list_init (UnsetAddrList *uslist, int size)
static void unset_addr_list_end (UnsetAddrList *uslist)
static int unset_addr_list_add (UnsetAddrList *uslist, int offset, struct _Node *node)
static int add_opcode (regex_t *reg, int opcode)
static int add_rel_addr (regex_t *reg, int addr)
static int add_abs_addr (regex_t *reg, int addr)
static int add_length (regex_t *reg, int len)
static int add_mem_num (regex_t *reg, int num)
static int add_pointer (regex_t *reg, void *addr)
static int add_option (regex_t *reg, OnigOptionType option)
static int add_opcode_rel_addr (regex_t *reg, int opcode, int addr)
static int add_bytes (regex_t *reg, UChar *bytes, int len)
static int add_bitset (regex_t *reg, BitSetRef bs)
static int add_opcode_option (regex_t *reg, int opcode, OnigOptionType option)
static int compile_length_tree (Node *node, regex_t *reg)
static int compile_tree (Node *node, regex_t *reg)
static int select_str_opcode (int mb_len, int str_len, int ignore_case)
static int compile_tree_empty_check (Node *node, regex_t *reg, int empty_info)
static int compile_call (CallNode *node, regex_t *reg)
static int compile_tree_n_times (Node *node, int n, regex_t *reg)
static int add_compile_string_length (UChar *s ARG_UNUSED, int mb_len, OnigDistance str_len, regex_t *reg ARG_UNUSED, int ignore_case)
static int add_compile_string (UChar *s, int mb_len, int str_len, regex_t *reg, int ignore_case)
static int compile_length_string_node (Node *node, regex_t *reg)
static int compile_length_string_raw_node (StrNode *sn, regex_t *reg)
static int compile_string_node (Node *node, regex_t *reg)
static int compile_string_raw_node (StrNode *sn, regex_t *reg)
static int add_multi_byte_cclass (BBuf *mbuf, regex_t *reg)
static int compile_length_cclass_node (CClassNode *cc, regex_t *reg)
static int compile_cclass_node (CClassNode *cc, regex_t *reg)
static int entry_repeat_range (regex_t *reg, int id, int lower, int upper)
static int compile_range_repeat_node (QtfrNode *qn, int target_len, int empty_info, regex_t *reg)
static int is_anychar_star_quantifier (QtfrNode *qn)
static int compile_length_quantifier_node (QtfrNode *qn, regex_t *reg)
static int compile_quantifier_node (QtfrNode *qn, regex_t *reg)
static int compile_length_option_node (EncloseNode *node, regex_t *reg)
static int compile_option_node (EncloseNode *node, regex_t *reg)
static int compile_length_enclose_node (EncloseNode *node, regex_t *reg)
static int get_char_length_tree (Node *node, regex_t *reg, int *len)
static int compile_enclose_node (EncloseNode *node, regex_t *reg)
static int compile_length_anchor_node (AnchorNode *node, regex_t *reg)
static int compile_anchor_node (AnchorNode *node, regex_t *reg)
static int noname_disable_map (Node **plink, GroupNumRemap *map, int *counter)
static int renumber_node_backref (Node *node, GroupNumRemap *map)
static int renumber_by_map (Node *node, GroupNumRemap *map)
static int numbered_ref_check (Node *node)
static int disable_noname_group_capture (Node **root, regex_t *reg, ScanEnv *env)
static int unset_addr_list_fix (UnsetAddrList *uslist, regex_t *reg)
static int quantifiers_memory_node_info (Node *node)
static int get_min_match_length (Node *node, OnigDistance *min, ScanEnv *env)
static int get_max_match_length (Node *node, OnigDistance *max, ScanEnv *env)
static int get_char_length_tree1 (Node *node, regex_t *reg, int *len, int level)
static int is_not_included (Node *x, Node *y, regex_t *reg)
static Nodeget_head_value_node (Node *node, int exact, regex_t *reg)
static int check_type_tree (Node *node, int type_mask, int enclose_mask, int anchor_mask)
static int subexp_inf_recursive_check (Node *node, ScanEnv *env, int head)
static int subexp_inf_recursive_check_trav (Node *node, ScanEnv *env)
static int subexp_recursive_check (Node *node)
static int subexp_recursive_check_trav (Node *node, ScanEnv *env)
static int setup_subexp_call (Node *node, ScanEnv *env)
static int divide_look_behind_alternatives (Node *node)
static int setup_look_behind (Node *node, regex_t *reg, ScanEnv *env)
static int next_setup (Node *node, Node *next_node, regex_t *reg)
static int update_string_node_case_fold (regex_t *reg, Node *node)
static int expand_case_fold_make_rem_string (Node **rnode, UChar *s, UChar *end, regex_t *reg)
static int expand_case_fold_string_alt (int item_num, OnigCaseFoldCodeItem items[], UChar *p, int slen, UChar *end, regex_t *reg, Node **rnode)
static int expand_case_fold_string (Node *node, regex_t *reg)
static int setup_tree (Node *node, regex_t *reg, int state, ScanEnv *env)
static int set_bm_skip (UChar *s, UChar *end, OnigEncoding enc ARG_UNUSED, UChar skip[], int **int_skip)
static int map_position_value (OnigEncoding enc, int i)
static int distance_value (MinMaxLen *mm)
static int comp_distance_value (MinMaxLen *d1, MinMaxLen *d2, int v1, int v2)
static int is_equal_mml (MinMaxLen *a, MinMaxLen *b)
static void set_mml (MinMaxLen *mml, OnigDistance min, OnigDistance max)
static void clear_mml (MinMaxLen *mml)
static void copy_mml (MinMaxLen *to, MinMaxLen *from)
static void add_mml (MinMaxLen *to, MinMaxLen *from)
static void alt_merge_mml (MinMaxLen *to, MinMaxLen *from)
static void copy_opt_env (OptEnv *to, OptEnv *from)
static void clear_opt_anc_info (OptAncInfo *anc)
static void copy_opt_anc_info (OptAncInfo *to, OptAncInfo *from)
static void concat_opt_anc_info (OptAncInfo *to, OptAncInfo *left, OptAncInfo *right, OnigDistance left_len, OnigDistance right_len)
static int is_left_anchor (int anc)
static int is_set_opt_anc_info (OptAncInfo *to, int anc)
static void add_opt_anc_info (OptAncInfo *to, int anc)
static void remove_opt_anc_info (OptAncInfo *to, int anc)
static void alt_merge_opt_anc_info (OptAncInfo *to, OptAncInfo *add)
static int is_full_opt_exact_info (OptExactInfo *ex)
static void clear_opt_exact_info (OptExactInfo *ex)
static void copy_opt_exact_info (OptExactInfo *to, OptExactInfo *from)
static void concat_opt_exact_info (OptExactInfo *to, OptExactInfo *add, OnigEncoding enc)
static void concat_opt_exact_info_str (OptExactInfo *to, UChar *s, UChar *end, int raw ARG_UNUSED, OnigEncoding enc)
static void alt_merge_opt_exact_info (OptExactInfo *to, OptExactInfo *add, OptEnv *env)
static void select_opt_exact_info (OnigEncoding enc, OptExactInfo *now, OptExactInfo *alt)
static void clear_opt_map_info (OptMapInfo *map)
static void copy_opt_map_info (OptMapInfo *to, OptMapInfo *from)
static void add_char_opt_map_info (OptMapInfo *map, UChar c, OnigEncoding enc)
static int add_char_amb_opt_map_info (OptMapInfo *map, UChar *p, UChar *end, OnigEncoding enc, OnigCaseFoldType case_fold_flag)
static void select_opt_map_info (OptMapInfo *now, OptMapInfo *alt)
static int comp_opt_exact_or_map_info (OptExactInfo *e, OptMapInfo *m)
static void alt_merge_opt_map_info (OnigEncoding enc, OptMapInfo *to, OptMapInfo *add)
static void set_bound_node_opt_info (NodeOptInfo *opt, MinMaxLen *mmd)
static void clear_node_opt_info (NodeOptInfo *opt)
static void copy_node_opt_info (NodeOptInfo *to, NodeOptInfo *from)
static void concat_left_node_opt_info (OnigEncoding enc, NodeOptInfo *to, NodeOptInfo *add)
static void alt_merge_node_opt_info (NodeOptInfo *to, NodeOptInfo *add, OptEnv *env)
static int optimize_node_left (Node *node, NodeOptInfo *opt, OptEnv *env)
static int set_optimize_exact_info (regex_t *reg, OptExactInfo *e)
static void set_optimize_map_info (regex_t *reg, OptMapInfo *m)
static void set_sub_anchor (regex_t *reg, OptAncInfo *anc)
static int set_optimize_info_from_tree (Node *node, regex_t *reg, ScanEnv *scan_env)
static void clear_optimize_info (regex_t *reg)
void onig_free_body (regex_t *reg)
void onig_free (regex_t *reg)
size_t onig_memsize (regex_t *reg)
void onig_transfer (regex_t *to, regex_t *from)
void onig_chain_link_add (regex_t *to, regex_t *add)
void onig_chain_reduce (regex_t *reg)
int onig_compile (regex_t *reg, const UChar *pattern, const UChar *pattern_end, OnigErrorInfo *einfo, const char *sourcefile, int sourceline)
int onig_reg_init (regex_t *reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType *syntax)
int onig_new_without_alloc (regex_t *reg, const UChar *pattern, const UChar *pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType *syntax, OnigErrorInfo *einfo)
int onig_new (regex_t **reg, const UChar *pattern, const UChar *pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType *syntax, OnigErrorInfo *einfo)
int onig_init (void)
int onig_end (void)
int onig_is_in_code_range (const UChar *p, OnigCodePoint code)
int onig_is_code_in_cc_len (int elen, OnigCodePoint code, CClassNode *cc)
int onig_is_code_in_cc (OnigEncoding enc, OnigCodePoint code, CClassNode *cc)

Variables

OnigCaseFoldType OnigDefaultCaseFoldFlag = ONIGENC_CASE_FOLD_MIN
static unsigned char PadBuf [WORD_ALIGNMENT_SIZE]
static int onig_inited = 0


Define Documentation

#define ALLOWED_ANCHOR_IN_LB   ( ANCHOR_LOOK_BEHIND | ANCHOR_BEGIN_LINE | ANCHOR_END_LINE | ANCHOR_BEGIN_BUF | ANCHOR_BEGIN_POSITION )

Referenced by setup_tree().

#define ALLOWED_ANCHOR_IN_LB_NOT   ( ANCHOR_LOOK_BEHIND | ANCHOR_LOOK_BEHIND_NOT | ANCHOR_BEGIN_LINE | ANCHOR_END_LINE | ANCHOR_BEGIN_BUF | ANCHOR_BEGIN_POSITION )

Referenced by setup_tree().

#define ALLOWED_ENCLOSE_IN_LB   ( ENCLOSE_MEMORY )

Referenced by setup_tree().

#define ALLOWED_ENCLOSE_IN_LB_NOT   0

Referenced by setup_tree().

#define ALLOWED_TYPE_IN_LB

Value:

Referenced by setup_tree().

#define CKN_ON   (ckn > 0)

Definition at line 727 of file regcomp.c.

#define COMP_EM_BASE   20

Referenced by comp_opt_exact_or_map_info().

#define COMPILE_INIT_SIZE   20

Referenced by onig_compile().

#define EXPAND_STRING_MAX_LENGTH   100

Referenced by setup_tree().

#define FOUND_CALLED_NODE   1

Referenced by subexp_recursive_check_trav().

#define GET_CHAR_LEN_TOP_ALT_VARLEN   -2

Definition at line 2292 of file regcomp.c.

Referenced by get_char_length_tree1(), and setup_look_behind().

#define GET_CHAR_LEN_VARLEN   -1

Definition at line 2291 of file regcomp.c.

Referenced by get_char_length_tree1(), and setup_look_behind().

#define IN_ALT   (1<<0)

Definition at line 3670 of file regcomp.c.

Referenced by setup_tree().

#define IN_NOT   (1<<1)

Definition at line 3671 of file regcomp.c.

Referenced by setup_tree().

#define IN_REPEAT   (1<<2)

Definition at line 3672 of file regcomp.c.

Referenced by setup_tree().

#define IN_VAR_REPEAT   (1<<3)

Definition at line 3673 of file regcomp.c.

Referenced by setup_tree().

#define IS_NEED_STR_LEN_OP_EXACT ( op   ) 

Value:

((op) == OP_EXACTN    || (op) == OP_EXACTMB2N ||\
    (op) == OP_EXACTMB3N || (op) == OP_EXACTMBN  || (op) == OP_EXACTN_IC)

Definition at line 310 of file regcomp.c.

Referenced by add_compile_string(), and add_compile_string_length().

#define MAX_NODE_OPT_INFO_REF_COUNT   5

Definition at line 4564 of file regcomp.c.

#define OPT_EXACT_MAXLEN   24

Definition at line 3956 of file regcomp.c.

Referenced by concat_opt_exact_info(), concat_opt_exact_info_str(), and is_full_opt_exact_info().

#define QUANTIFIER_EXPAND_LIMIT_SIZE   50

Definition at line 726 of file regcomp.c.

Referenced by compile_length_quantifier_node(), and compile_quantifier_node().

#define RECURSION_EXIST   1

Definition at line 2738 of file regcomp.c.

Referenced by subexp_inf_recursive_check().

#define RECURSION_INFINITE   2

Definition at line 2739 of file regcomp.c.

Referenced by subexp_inf_recursive_check().

#define REGEX_CHAIN_HEAD ( reg   ) 

Value:

do {\
  while (IS_NOT_NULL((reg)->chain)) {\
    (reg) = (reg)->chain;\
  }\
} while (0)

Definition at line 5264 of file regcomp.c.

Referenced by onig_chain_link_add().

#define REGEX_TRANSFER ( to,
from   ) 

Value:

do {\
  (to)->state = ONIG_STATE_MODIFY;\
  onig_free_body(to);\
  xmemcpy(to, from, sizeof(regex_t));\
  xfree(from);\
} while (0)

Definition at line 5249 of file regcomp.c.

Referenced by onig_chain_reduce(), and onig_transfer().

#define REPEAT_RANGE_ALLOC   4

Referenced by entry_repeat_range().

#define THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION   8

Referenced by expand_case_fold_string().


Function Documentation

static int add_abs_addr ( regex_t reg,
int  addr 
) [static]

Definition at line 228 of file regcomp.c.

References BBUF_ADD, and SIZE_ABSADDR.

Referenced by compile_call(), and compile_enclose_node().

static int add_bitset ( regex_t reg,
BitSetRef  bs 
) [static]

Definition at line 289 of file regcomp.c.

References BBUF_ADD, and SIZE_BITSET.

Referenced by compile_cclass_node().

static int add_bytes ( regex_t reg,
UChar *  bytes,
int  len 
) [static]

Definition at line 282 of file regcomp.c.

References BBUF_ADD.

Referenced by add_compile_string(), add_multi_byte_cclass(), and compile_quantifier_node().

static int add_char_amb_opt_map_info ( OptMapInfo map,
UChar *  p,
UChar *  end,
OnigEncoding  enc,
OnigCaseFoldType  case_fold_flag 
) [static]

Definition at line 4387 of file regcomp.c.

References add_char_opt_map_info(), buf, DISABLE_CASE_FOLD_MULTI_CHAR, ONIGENC_CODE_TO_MBC, ONIGENC_CODE_TO_MBC_MAXLEN, ONIGENC_GET_CASE_FOLD_CODES_BY_STR, ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM, and UChar.

Referenced by optimize_node_left().

static void add_char_opt_map_info ( OptMapInfo map,
UChar  c,
OnigEncoding  enc 
) [static]

Definition at line 4378 of file regcomp.c.

References OptMapInfo::map, map_position_value(), and OptMapInfo::value.

Referenced by add_char_amb_opt_map_info(), and optimize_node_left().

static int add_compile_string ( UChar *  s,
int  mb_len,
int  str_len,
regex_t reg,
int  ignore_case 
) [static]

Definition at line 436 of file regcomp.c.

References add_bytes(), add_length(), add_opcode(), IS_NEED_STR_LEN_OP_EXACT, OP_EXACTMBN, OP_EXACTN_IC, and select_str_opcode().

Referenced by compile_string_node(), and compile_string_raw_node().

static int add_compile_string_length ( UChar *s  ARG_UNUSED,
int  mb_len,
OnigDistance  str_len,
regex_t *reg  ARG_UNUSED,
int  ignore_case 
) [static]

Definition at line 419 of file regcomp.c.

References IS_NEED_STR_LEN_OP_EXACT, len, OP_EXACTMBN, select_str_opcode(), SIZE_LENGTH, and SIZE_OPCODE.

Referenced by compile_length_string_node(), and compile_length_string_raw_node().

static int add_length ( regex_t reg,
int  len 
) [static]

Definition at line 237 of file regcomp.c.

References BBUF_ADD, and SIZE_LENGTH.

Referenced by add_compile_string(), add_multi_byte_cclass(), compile_anchor_node(), and compile_tree().

static int add_mem_num ( regex_t reg,
int  num 
) [static]

Definition at line 246 of file regcomp.c.

References BBUF_ADD, and SIZE_MEMNUM.

Referenced by compile_enclose_node(), compile_range_repeat_node(), compile_tree(), and compile_tree_empty_check().

static void add_mml ( MinMaxLen to,
MinMaxLen from 
) [static]

Definition at line 4104 of file regcomp.c.

References distance_add(), MinMaxLen::max, and MinMaxLen::min.

Referenced by concat_left_node_opt_info(), and optimize_node_left().

static int add_multi_byte_cclass ( BBuf mbuf,
regex_t reg 
) [static]

Definition at line 554 of file regcomp.c.

References add_bytes(), add_length(), BBUF_GET_ADD_ADDRESS, GET_ALIGNMENT_PAD_SIZE, _BBuf::p, PadBuf, SIZE_LENGTH, UChar, _BBuf::used, and WORD_ALIGNMENT_SIZE.

Referenced by compile_cclass_node().

static int add_opcode ( regex_t reg,
int  opcode 
) [static]

Definition at line 201 of file regcomp.c.

References BBUF_ADD1.

Referenced by add_compile_string(), add_opcode_option(), add_opcode_rel_addr(), compile_anchor_node(), compile_call(), compile_cclass_node(), compile_enclose_node(), compile_option_node(), compile_quantifier_node(), compile_range_repeat_node(), compile_tree(), and compile_tree_empty_check().

static int add_opcode_option ( regex_t reg,
int  opcode,
OnigOptionType  option 
) [static]

Definition at line 296 of file regcomp.c.

References add_opcode(), and add_option().

Referenced by compile_option_node().

static int add_opcode_rel_addr ( regex_t reg,
int  opcode,
int  addr 
) [static]

Definition at line 271 of file regcomp.c.

References add_opcode(), and add_rel_addr().

Referenced by compile_anchor_node(), compile_enclose_node(), compile_quantifier_node(), and compile_tree().

static void add_opt_anc_info ( OptAncInfo to,
int  anc 
) [static]

Definition at line 4182 of file regcomp.c.

References is_left_anchor(), OptAncInfo::left_anchor, and OptAncInfo::right_anchor.

static int add_option ( regex_t reg,
OnigOptionType  option 
) [static]

Definition at line 264 of file regcomp.c.

References BBUF_ADD, and SIZE_OPTION.

Referenced by add_opcode_option(), and compile_tree().

static int add_pointer ( regex_t reg,
void *  addr 
) [static]

Definition at line 255 of file regcomp.c.

References BBUF_ADD, and SIZE_POINTER.

Referenced by compile_cclass_node().

static int add_rel_addr ( regex_t reg,
int  addr 
) [static]

Definition at line 219 of file regcomp.c.

References BBUF_ADD, and SIZE_RELADDR.

Referenced by add_opcode_rel_addr(), and compile_range_repeat_node().

static void alt_merge_mml ( MinMaxLen to,
MinMaxLen from 
) [static]

Definition at line 4120 of file regcomp.c.

References MinMaxLen::max, and MinMaxLen::min.

Referenced by alt_merge_node_opt_info(), and alt_merge_opt_map_info().

static void alt_merge_node_opt_info ( NodeOptInfo to,
NodeOptInfo add,
OptEnv env 
) [static]

Definition at line 4552 of file regcomp.c.

References add, alt_merge_mml(), alt_merge_opt_anc_info(), alt_merge_opt_exact_info(), alt_merge_opt_map_info(), NodeOptInfo::anc, OptEnv::enc, NodeOptInfo::exb, NodeOptInfo::exm, NodeOptInfo::expr, NodeOptInfo::len, and NodeOptInfo::map.

Referenced by optimize_node_left().

static void alt_merge_opt_anc_info ( OptAncInfo to,
OptAncInfo add 
) [static]

Definition at line 4200 of file regcomp.c.

References add, OptAncInfo::left_anchor, and OptAncInfo::right_anchor.

Referenced by alt_merge_node_opt_info(), and alt_merge_opt_map_info().

static void alt_merge_opt_exact_info ( OptExactInfo to,
OptExactInfo add,
OptEnv env 
) [static]

Definition at line 4277 of file regcomp.c.

References add, clear_opt_exact_info(), OptEnv::enc, enclen, is_equal_mml(), OptExactInfo::len, len, OptExactInfo::mmd, OptExactInfo::reach_end, and OptExactInfo::s.

Referenced by alt_merge_node_opt_info().

static void alt_merge_opt_map_info ( OnigEncoding  enc,
OptMapInfo to,
OptMapInfo add 
) [static]

Definition at line 4441 of file regcomp.c.

References add, alt_merge_mml(), alt_merge_opt_anc_info(), OptMapInfo::anc, clear_opt_map_info(), if(), OptMapInfo::map, map_position_value(), MinMaxLen::max, OptMapInfo::mmd, ONIG_CHAR_TABLE_SIZE, and OptMapInfo::value.

Referenced by alt_merge_node_opt_info().

static int bitset_is_empty ( BitSetRef  bs  )  [static]

Definition at line 115 of file regcomp.c.

References BITSET_SIZE.

Referenced by compile_cclass_node(), and compile_length_cclass_node().

static int check_type_tree ( Node node,
int  type_mask,
int  enclose_mask,
int  anchor_mask 
) [static]

Definition at line 2688 of file regcomp.c.

References IS_NOT_NULL, NANCHOR, NCAR, NCDR, NENCLOSE, NQTFR, NT_ALT, NT_ANCHOR, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, NTYPE2BIT, EncloseNode::target, EncloseNode::type, and type.

Referenced by setup_tree().

static void clear_mml ( MinMaxLen mml  )  [static]

Definition at line 4091 of file regcomp.c.

References MinMaxLen::max, and MinMaxLen::min.

Referenced by clear_node_opt_info(), clear_opt_exact_info(), and set_optimize_info_from_tree().

static void clear_node_opt_info ( NodeOptInfo opt  )  [static]

Definition at line 4476 of file regcomp.c.

References NodeOptInfo::anc, clear_mml(), clear_opt_anc_info(), clear_opt_exact_info(), clear_opt_map_info(), NodeOptInfo::exb, NodeOptInfo::exm, NodeOptInfo::expr, NodeOptInfo::len, and NodeOptInfo::map.

Referenced by optimize_node_left().

static void clear_opt_anc_info ( OptAncInfo anc  )  [static]

Definition at line 4133 of file regcomp.c.

References OptAncInfo::left_anchor, and OptAncInfo::right_anchor.

Referenced by clear_node_opt_info(), clear_opt_exact_info(), and concat_opt_anc_info().

static void clear_opt_exact_info ( OptExactInfo ex  )  [static]

Definition at line 4213 of file regcomp.c.

References OptExactInfo::anc, clear_mml(), clear_opt_anc_info(), OptExactInfo::ignore_case, OptExactInfo::len, OptExactInfo::mmd, OptExactInfo::reach_end, and OptExactInfo::s.

Referenced by alt_merge_opt_exact_info(), clear_node_opt_info(), and concat_left_node_opt_info().

static void clear_opt_map_info ( OptMapInfo map  )  [static]

Definition at line 4344 of file regcomp.c.

References xmemcpy.

Referenced by alt_merge_opt_map_info(), and clear_node_opt_info().

static void clear_optimize_info ( regex_t reg  )  [static]

Definition at line 5041 of file regcomp.c.

References re_pattern_buffer::anchor, re_pattern_buffer::anchor_dmax, re_pattern_buffer::anchor_dmin, re_pattern_buffer::exact, re_pattern_buffer::exact_end, IS_NOT_NULL, NULL, ONIG_OPTIMIZE_NONE, re_pattern_buffer::optimize, re_pattern_buffer::sub_anchor, re_pattern_buffer::threshold_len, UChar, and xfree.

static int comp_distance_value ( MinMaxLen d1,
MinMaxLen d2,
int  v1,
int  v2 
) [static]

Definition at line 4060 of file regcomp.c.

References distance_value(), and MinMaxLen::min.

Referenced by comp_opt_exact_or_map_info(), select_opt_exact_info(), and select_opt_map_info().

static int comp_opt_exact_or_map_info ( OptExactInfo e,
OptMapInfo m 
) [static]

Definition at line 4428 of file regcomp.c.

References comp_distance_value(), COMP_EM_BASE, OptExactInfo::ignore_case, OptExactInfo::len, OptMapInfo::mmd, OptExactInfo::mmd, and OptMapInfo::value.

Referenced by set_optimize_info_from_tree().

static int compile_anchor_node ( AnchorNode node,
regex_t reg 
) [static]

Definition at line 1405 of file regcomp.c.

References add_length(), add_opcode(), add_opcode_rel_addr(), ANCHOR_BEGIN_BUF, ANCHOR_BEGIN_LINE, ANCHOR_BEGIN_POSITION, ANCHOR_END_BUF, ANCHOR_END_LINE, ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_NOT_WORD_BOUND, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, ANCHOR_SEMI_END_BUF, ANCHOR_WORD_BEGIN, ANCHOR_WORD_BOUND, ANCHOR_WORD_END, AnchorNode::char_len, compile_length_tree(), compile_tree(), get_char_length_tree(), len, ONIGERR_INVALID_LOOK_BEHIND_PATTERN, ONIGERR_TYPE_BUG, OP_BEGIN_BUF, OP_BEGIN_LINE, OP_BEGIN_POSITION, OP_END_BUF, OP_END_LINE, OP_FAIL_LOOK_BEHIND_NOT, OP_FAIL_POS, OP_LOOK_BEHIND, OP_NOT_WORD_BOUND, OP_POP_POS, OP_PUSH_LOOK_BEHIND_NOT, OP_PUSH_POS, OP_PUSH_POS_NOT, OP_SEMI_END_BUF, OP_WORD_BEGIN, OP_WORD_BOUND, OP_WORD_END, SIZE_OP_FAIL_LOOK_BEHIND_NOT, SIZE_OP_FAIL_POS, AnchorNode::target, and AnchorNode::type.

Referenced by compile_tree().

static int compile_call ( CallNode node,
regex_t reg 
) [static]

Definition at line 392 of file regcomp.c.

References add_abs_addr(), add_opcode(), BBUF_GET_OFFSET_POS, OP_CALL, CallNode::target, CallNode::unset_addr_list, and unset_addr_list_add().

Referenced by compile_tree().

static int compile_cclass_node ( CClassNode cc,
regex_t reg 
) [static]

Definition at line 607 of file regcomp.c.

References add_bitset(), add_multi_byte_cclass(), add_opcode(), add_pointer(), bitset_is_empty(), CClassNode::bs, re_pattern_buffer::enc, IS_NCCLASS_NOT, IS_NCCLASS_SHARE, IS_NULL, CClassNode::mbuf, ONIGENC_MBC_MINLEN, OP_CCLASS, OP_CCLASS_MB, OP_CCLASS_MB_NOT, OP_CCLASS_MIX, OP_CCLASS_MIX_NOT, OP_CCLASS_NODE, and OP_CCLASS_NOT.

Referenced by compile_tree().

static int compile_enclose_node ( EncloseNode node,
regex_t reg 
) [static]

Definition at line 1271 of file regcomp.c.

References add_abs_addr(), add_mem_num(), add_opcode(), add_opcode_rel_addr(), BBUF_GET_OFFSET_POS, BIT_STATUS_AT, re_pattern_buffer::bt_mem_end, re_pattern_buffer::bt_mem_start, compile_length_tree(), compile_option_node(), compile_tree(), compile_tree_n_times(), ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, IS_ENCLOSE_CALLED, IS_ENCLOSE_RECURSION, IS_ENCLOSE_STOP_BT_SIMPLE_REPEAT, len, QtfrNode::lower, NQTFR, NST_ADDR_FIXED, ONIGERR_TYPE_BUG, OP_CALL, OP_JUMP, OP_MEMORY_END, OP_MEMORY_END_PUSH, OP_MEMORY_END_PUSH_REC, OP_MEMORY_END_REC, OP_MEMORY_START, OP_MEMORY_START_PUSH, OP_POP, OP_POP_STOP_BT, OP_PUSH, OP_PUSH_STOP_BT, OP_RETURN, SIZE_ABSADDR, SIZE_OP_JUMP, SIZE_OP_MEMORY_END, SIZE_OP_MEMORY_END_PUSH, SIZE_OP_MEMORY_END_PUSH_REC, SIZE_OP_MEMORY_END_REC, SIZE_OP_MEMORY_START_PUSH, SIZE_OP_POP, SIZE_OP_PUSH, SIZE_OP_RETURN, QtfrNode::target, and EncloseNode::type.

Referenced by compile_tree().

static int compile_length_anchor_node ( AnchorNode node,
regex_t reg 
) [static]

Definition at line 1372 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, compile_length_tree(), len, SIZE_OP_FAIL_LOOK_BEHIND_NOT, SIZE_OP_FAIL_POS, SIZE_OP_LOOK_BEHIND, SIZE_OP_POP_POS, SIZE_OP_PUSH_LOOK_BEHIND_NOT, SIZE_OP_PUSH_POS, SIZE_OP_PUSH_POS_NOT, SIZE_OPCODE, AnchorNode::target, and AnchorNode::type.

Referenced by compile_length_tree().

static int compile_length_cclass_node ( CClassNode cc,
regex_t reg 
) [static]

Definition at line 577 of file regcomp.c.

References bitset_is_empty(), CClassNode::bs, re_pattern_buffer::enc, IS_NCCLASS_SHARE, IS_NULL, len, CClassNode::mbuf, ONIGENC_MBC_MINLEN, SIZE_BITSET, SIZE_LENGTH, SIZE_OPCODE, SIZE_POINTER, _BBuf::used, and WORD_ALIGNMENT_SIZE.

Referenced by compile_length_tree().

static int compile_length_enclose_node ( EncloseNode node,
regex_t reg 
) [static]

Definition at line 1205 of file regcomp.c.

References BIT_STATUS_AT, re_pattern_buffer::bt_mem_end, re_pattern_buffer::bt_mem_start, compile_length_option_node(), compile_length_tree(), ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, IS_ENCLOSE_CALLED, IS_ENCLOSE_RECURSION, IS_ENCLOSE_STOP_BT_SIMPLE_REPEAT, len, QtfrNode::lower, NQTFR, ONIGERR_TYPE_BUG, SIZE_OP_CALL, SIZE_OP_JUMP, SIZE_OP_MEMORY_END, SIZE_OP_MEMORY_END_PUSH, SIZE_OP_MEMORY_END_PUSH_REC, SIZE_OP_MEMORY_END_REC, SIZE_OP_MEMORY_START, SIZE_OP_MEMORY_START_PUSH, SIZE_OP_POP, SIZE_OP_POP_STOP_BT, SIZE_OP_PUSH, SIZE_OP_PUSH_STOP_BT, SIZE_OP_RETURN, QtfrNode::target, and EncloseNode::type.

Referenced by compile_length_tree().

static int compile_length_option_node ( EncloseNode node,
regex_t reg 
) [static]

Definition at line 1159 of file regcomp.c.

References compile_length_tree(), IS_DYNAMIC_OPTION, EncloseNode::option, re_pattern_buffer::options, SIZE_OP_FAIL, SIZE_OP_SET_OPTION, SIZE_OP_SET_OPTION_PUSH, and EncloseNode::target.

Referenced by compile_length_enclose_node().

static int compile_length_quantifier_node ( QtfrNode qn,
regex_t reg 
) [static]

Definition at line 966 of file regcomp.c.

References compile_length_tree(), QtfrNode::greedy, QtfrNode::head_exact, IS_NOT_NULL, QtfrNode::is_refered, IS_REPEAT_INFINITE, len, QtfrNode::lower, QtfrNode::next_head_exact, NT_CANY, NTYPE, QUANTIFIER_EXPAND_LIMIT_SIZE, SIZE_MEMNUM, SIZE_OP_ANYCHAR_STAR, SIZE_OP_ANYCHAR_STAR_PEEK_NEXT, SIZE_OP_JUMP, SIZE_OP_NULL_CHECK_END, SIZE_OP_NULL_CHECK_START, SIZE_OP_PUSH, SIZE_OP_PUSH_IF_PEEK_NEXT, SIZE_OP_PUSH_OR_JUMP_EXACT1, SIZE_OP_REPEAT_INC, SIZE_OPCODE, SIZE_RELADDR, QtfrNode::target, QtfrNode::target_empty_info, and QtfrNode::upper.

Referenced by compile_length_tree().

static int compile_length_string_node ( Node node,
regex_t reg 
) [static]

Definition at line 458 of file regcomp.c.

References add_compile_string_length(), re_pattern_buffer::enc, enclen, StrNode::end, if(), len, NSTR, NSTRING_IS_AMBIG, StrNode::s, and UChar.

Referenced by compile_length_tree().

static int compile_length_string_raw_node ( StrNode sn,
regex_t reg 
) [static]

Definition at line 497 of file regcomp.c.

References add_compile_string_length(), StrNode::end, and StrNode::s.

Referenced by compile_length_tree().

static int compile_length_tree ( Node node,
regex_t reg 
) [static]

Definition at line 1489 of file regcomp.c.

References BRefNode::back_num, BRefNode::back_static, compile_length_anchor_node(), compile_length_cclass_node(), compile_length_enclose_node(), compile_length_quantifier_node(), compile_length_string_node(), compile_length_string_raw_node(), IS_BACKREF_NEST_LEVEL, IS_IGNORECASE, IS_NOT_NULL, len, NANCHOR, NBREF, NCAR, NCCLASS, NCDR, NENCLOSE, NQTFR, NSTR, NSTRING_IS_RAW, NT_ALT, NT_ANCHOR, NT_BREF, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, ONIGERR_TYPE_BUG, re_pattern_buffer::options, SIZE_LENGTH, SIZE_MEMNUM, SIZE_OP_CALL, SIZE_OP_JUMP, SIZE_OP_PUSH, SIZE_OPCODE, SIZE_OPTION, and type.

Referenced by compile_anchor_node(), compile_enclose_node(), compile_length_anchor_node(), compile_length_enclose_node(), compile_length_option_node(), compile_length_quantifier_node(), compile_quantifier_node(), and compile_tree().

static int compile_option_node ( EncloseNode node,
regex_t reg 
) [static]

Definition at line 1179 of file regcomp.c.

References add_opcode(), add_opcode_option(), compile_tree(), IS_DYNAMIC_OPTION, OP_FAIL, OP_SET_OPTION, OP_SET_OPTION_PUSH, EncloseNode::option, re_pattern_buffer::options, and EncloseNode::target.

Referenced by compile_enclose_node().

static int compile_quantifier_node ( QtfrNode qn,
regex_t reg 
) [static]

Definition at line 1031 of file regcomp.c.

References add_bytes(), add_opcode(), add_opcode_rel_addr(), compile_length_tree(), compile_range_repeat_node(), compile_tree(), compile_tree_empty_check(), compile_tree_n_times(), QtfrNode::greedy, QtfrNode::head_exact, is_anychar_star_quantifier(), IS_MULTILINE, IS_NOT_NULL, QtfrNode::is_refered, IS_REPEAT_INFINITE, QtfrNode::lower, QtfrNode::next_head_exact, NSTR, OP_ANYCHAR_ML_STAR, OP_ANYCHAR_ML_STAR_PEEK_NEXT, OP_ANYCHAR_STAR, OP_ANYCHAR_STAR_PEEK_NEXT, OP_JUMP, OP_PUSH, OP_PUSH_IF_PEEK_NEXT, OP_PUSH_OR_JUMP_EXACT1, re_pattern_buffer::options, QUANTIFIER_EXPAND_LIMIT_SIZE, SIZE_OP_JUMP, SIZE_OP_NULL_CHECK_END, SIZE_OP_NULL_CHECK_START, SIZE_OP_PUSH, SIZE_OP_PUSH_IF_PEEK_NEXT, SIZE_OP_PUSH_OR_JUMP_EXACT1, QtfrNode::target, QtfrNode::target_empty_info, and QtfrNode::upper.

Referenced by compile_tree().

static int compile_range_repeat_node ( QtfrNode qn,
int  target_len,
int  empty_info,
regex_t reg 
) [static]

Definition at line 681 of file regcomp.c.

References add_mem_num(), add_opcode(), add_rel_addr(), compile_tree_empty_check(), entry_repeat_range(), QtfrNode::greedy, IS_QUANTIFIER_IN_REPEAT, QtfrNode::lower, re_pattern_buffer::num_call, re_pattern_buffer::num_repeat, OP_REPEAT, OP_REPEAT_INC, OP_REPEAT_INC_NG, OP_REPEAT_INC_NG_SG, OP_REPEAT_INC_SG, OP_REPEAT_NG, SIZE_OP_REPEAT_INC, QtfrNode::target, QtfrNode::upper, and USE_SUBEXP_CALL.

Referenced by compile_quantifier_node().

static int compile_string_node ( Node node,
regex_t reg 
) [static]

Definition at line 506 of file regcomp.c.

References add_compile_string(), re_pattern_buffer::enc, enclen, StrNode::end, re_registers::end, len, NSTR, NSTRING_IS_AMBIG, StrNode::s, and UChar.

Referenced by compile_tree().

static int compile_string_raw_node ( StrNode sn,
regex_t reg 
) [static]

Definition at line 545 of file regcomp.c.

References add_compile_string(), StrNode::end, and StrNode::s.

Referenced by compile_tree().

static int compile_tree ( Node node,
regex_t reg 
) [static]

Definition at line 1582 of file regcomp.c.

References add_length(), add_mem_num(), add_opcode(), add_opcode_rel_addr(), add_option(), BRefNode::back_num, BRefNode::back_static, BACKREFS_P, compile_anchor_node(), compile_call(), compile_cclass_node(), compile_enclose_node(), compile_length_tree(), compile_quantifier_node(), compile_string_node(), compile_string_raw_node(), IS_BACKREF_NEST_LEVEL, IS_IGNORECASE, IS_MULTILINE, IS_NOT_NULL, len, NANCHOR, NBREF, NCALL, NCAR, NCCLASS, NCDR, NCTYPE, NENCLOSE, BRefNode::nest_level, NQTFR, NSTR, NSTRING_IS_RAW, NT_ALT, NT_ANCHOR, NT_BREF, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, NULL, ONIG_OPTION_IGNORECASE, ONIGENC_CTYPE_WORD, ONIGERR_TYPE_BUG, OP_ANYCHAR, OP_ANYCHAR_ML, OP_BACKREF1, OP_BACKREF2, OP_BACKREF_MULTI, OP_BACKREF_MULTI_IC, OP_BACKREF_WITH_LEVEL, OP_BACKREFN, OP_BACKREFN_IC, OP_JUMP, OP_NOT_WORD, OP_PUSH, OP_WORD, re_pattern_buffer::options, SIZE_OP_JUMP, SIZE_OP_PUSH, type, and re_pattern_buffer::used.

Referenced by compile_anchor_node(), compile_enclose_node(), compile_option_node(), compile_quantifier_node(), compile_tree_empty_check(), and compile_tree_n_times().

static int compile_tree_empty_check ( Node node,
regex_t reg,
int  empty_info 
) [static]

Definition at line 360 of file regcomp.c.

References add_mem_num(), add_opcode(), compile_tree(), NQ_TARGET_IS_EMPTY, NQ_TARGET_IS_EMPTY_MEM, NQ_TARGET_IS_EMPTY_REC, re_pattern_buffer::num_null_check, OP_NULL_CHECK_END, OP_NULL_CHECK_END_MEMST, OP_NULL_CHECK_END_MEMST_PUSH, and OP_NULL_CHECK_START.

Referenced by compile_quantifier_node(), and compile_range_repeat_node().

static int compile_tree_n_times ( Node node,
int  n,
regex_t reg 
) [static]

Definition at line 407 of file regcomp.c.

References compile_tree().

Referenced by compile_enclose_node(), and compile_quantifier_node().

static void concat_left_node_opt_info ( OnigEncoding  enc,
NodeOptInfo to,
NodeOptInfo add 
) [static]

Definition at line 4493 of file regcomp.c.

References add, add_mml(), NodeOptInfo::anc, clear_opt_exact_info(), concat_opt_anc_info(), concat_opt_exact_info(), copy_opt_anc_info(), copy_opt_exact_info(), NodeOptInfo::exb, NodeOptInfo::exm, NodeOptInfo::expr, OptAncInfo::left_anchor, OptExactInfo::len, NodeOptInfo::len, NodeOptInfo::map, MinMaxLen::max, OptExactInfo::mmd, OptExactInfo::reach_end, select_opt_exact_info(), and select_opt_map_info().

Referenced by optimize_node_left().

static void concat_opt_anc_info ( OptAncInfo to,
OptAncInfo left,
OptAncInfo right,
OnigDistance  left_len,
OnigDistance  right_len 
) [static]

Definition at line 4146 of file regcomp.c.

References clear_opt_anc_info(), OptAncInfo::left_anchor, and OptAncInfo::right_anchor.

Referenced by concat_left_node_opt_info(), and concat_opt_exact_info().

static void concat_opt_exact_info ( OptExactInfo to,
OptExactInfo add,
OnigEncoding  enc 
) [static]

Definition at line 4230 of file regcomp.c.

References add, OptExactInfo::anc, concat_opt_anc_info(), copy_opt_anc_info(), enclen, OptExactInfo::ignore_case, OptExactInfo::len, len, OPT_EXACT_MAXLEN, OptExactInfo::reach_end, OptAncInfo::right_anchor, OptExactInfo::s, and UChar.

Referenced by concat_left_node_opt_info().

static void concat_opt_exact_info_str ( OptExactInfo to,
UChar *  s,
UChar *  end,
int raw  ARG_UNUSED,
OnigEncoding  enc 
) [static]

Definition at line 4260 of file regcomp.c.

References enclen, OptExactInfo::len, len, OPT_EXACT_MAXLEN, OptExactInfo::s, and UChar.

Referenced by optimize_node_left().

static void copy_mml ( MinMaxLen to,
MinMaxLen from 
) [static]

Definition at line 4097 of file regcomp.c.

References MinMaxLen::max, and MinMaxLen::min.

Referenced by set_bound_node_opt_info().

static void copy_node_opt_info ( NodeOptInfo to,
NodeOptInfo from 
) [static]

Definition at line 4487 of file regcomp.c.

Referenced by optimize_node_left().

static void copy_opt_anc_info ( OptAncInfo to,
OptAncInfo from 
) [static]

Definition at line 4140 of file regcomp.c.

Referenced by concat_left_node_opt_info(), and concat_opt_exact_info().

static void copy_opt_env ( OptEnv to,
OptEnv from 
) [static]

Definition at line 4127 of file regcomp.c.

Referenced by optimize_node_left().

static void copy_opt_exact_info ( OptExactInfo to,
OptExactInfo from 
) [static]

Definition at line 4224 of file regcomp.c.

Referenced by concat_left_node_opt_info(), and select_opt_exact_info().

static void copy_opt_map_info ( OptMapInfo to,
OptMapInfo from 
) [static]

Definition at line 4372 of file regcomp.c.

Referenced by select_opt_map_info().

static int disable_noname_group_capture ( Node **  root,
regex_t reg,
ScanEnv env 
) [static]

Definition at line 1922 of file regcomp.c.

References BIT_STATUS_AT, BIT_STATUS_CLEAR, BIT_STATUS_ON_AT_SIMPLE, ScanEnv::capture_history, CHECK_NULL_RETURN_MEMERR, GroupNumRemap::new_val, noname_disable_map(), re_pattern_buffer::num_mem, ScanEnv::num_mem, ScanEnv::num_named, ONIG_MAX_CAPTURE_HISTORY_GROUP, onig_renumber_name_table(), renumber_by_map(), SCANENV_MEM_NODES, and xalloca.

Referenced by onig_compile().

static OnigDistance distance_add ( OnigDistance  d1,
OnigDistance  d2 
) [static]

Definition at line 93 of file regcomp.c.

References ONIG_INFINITE_DISTANCE.

Referenced by add_mml(), get_char_length_tree1(), and get_max_match_length().

static OnigDistance distance_multiply ( OnigDistance  d,
int  m 
) [static]

Definition at line 104 of file regcomp.c.

References ONIG_INFINITE_DISTANCE.

Referenced by get_char_length_tree1(), get_max_match_length(), and get_min_match_length().

static int distance_value ( MinMaxLen mm  )  [static]

Definition at line 4031 of file regcomp.c.

References MinMaxLen::max, MinMaxLen::min, and ONIG_INFINITE_DISTANCE.

Referenced by comp_distance_value().

static int divide_look_behind_alternatives ( Node node  )  [static]

Definition at line 3119 of file regcomp.c.

References ANCHOR_LOOK_BEHIND_NOT, CHECK_NULL_RETURN_MEMERR, NANCHOR, NCAR, NCDR, NT_LIST, NULL_NODE, onig_node_new_anchor(), SET_NTYPE, swap_node(), AnchorNode::target, and AnchorNode::type.

Referenced by setup_look_behind().

static int entry_repeat_range ( regex_t reg,
int  id,
int  lower,
int  upper 
) [static]

Definition at line 650 of file regcomp.c.

References CHECK_NULL_RETURN_MEMERR, IS_REPEAT_INFINITE, OnigRepeatRange::lower, re_pattern_buffer::repeat_range, REPEAT_RANGE_ALLOC, re_pattern_buffer::repeat_range_alloc, OnigRepeatRange::upper, xmalloc, and xrealloc.

Referenced by compile_range_repeat_node().

static int expand_case_fold_make_rem_string ( Node **  rnode,
UChar *  s,
UChar *  end,
regex_t reg 
) [static]

Definition at line 3260 of file regcomp.c.

References IS_NULL, NSTRING_SET_AMBIG, NSTRING_SET_DONT_GET_OPT_INFO, onig_node_free(), onig_node_new_str(), ONIGERR_MEMORY, and update_string_node_case_fold().

Referenced by expand_case_fold_string(), and expand_case_fold_string_alt().

static int expand_case_fold_string ( Node node,
regex_t reg 
) [static]

Definition at line 3394 of file regcomp.c.

References re_pattern_buffer::case_fold_flag, re_pattern_buffer::enc, enclen, StrNode::end, re_registers::end, err, expand_case_fold_make_rem_string(), expand_case_fold_string_alt(), IS_NOT_NULL, IS_NULL, len, NCAR, NSTR, NSTRING_IS_AMBIG, NULL, NULL_NODE, onig_node_free(), onig_node_list_add(), onig_node_new_str(), onig_node_str_cat(), ONIGENC_GET_CASE_FOLD_CODES_BY_STR, ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM, ONIGERR_MEMORY, StrNode::s, swap_node(), THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION, and UChar.

Referenced by setup_tree().

static int expand_case_fold_string_alt ( int  item_num,
OnigCaseFoldCodeItem  items[],
UChar *  p,
int  slen,
UChar *  end,
regex_t reg,
Node **  rnode 
) [static]

Definition at line 3282 of file regcomp.c.

References buf, OnigCaseFoldCodeItem::byte_len, OnigCaseFoldCodeItem::code, OnigCaseFoldCodeItem::code_len, re_pattern_buffer::enc, expand_case_fold_make_rem_string(), if(), IS_NULL, len, NCAR, NCDR, NULL, NULL_NODE, onig_node_free(), onig_node_list_add(), onig_node_new_alt(), onig_node_new_list(), onig_node_new_str(), onig_node_str_cat(), ONIGENC_CODE_TO_MBC, ONIGENC_CODE_TO_MBC_MAXLEN, ONIGERR_MEMORY, and UChar.

Referenced by expand_case_fold_string().

static int get_char_length_tree ( Node node,
regex_t reg,
int *  len 
) [static]

Definition at line 2419 of file regcomp.c.

References get_char_length_tree1().

Referenced by compile_anchor_node(), and setup_look_behind().

static int get_char_length_tree1 ( Node node,
regex_t reg,
int *  len,
int  level 
) [static]

Definition at line 2296 of file regcomp.c.

References EncloseNode::char_len, distance_add(), distance_multiply(), re_pattern_buffer::enc, enclen, ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, StrNode::end, re_registers::end, GET_CHAR_LEN_TOP_ALT_VARLEN, GET_CHAR_LEN_VARLEN, IS_CALL_RECURSION, IS_ENCLOSE_CLEN_FIXED, IS_NOT_NULL, QtfrNode::lower, NCALL, NCAR, NCDR, NENCLOSE, NQTFR, NST_CLEN_FIXED, NSTR, NT_ALT, NT_ANCHOR, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, StrNode::s, SET_ENCLOSE_STATUS, EncloseNode::target, QtfrNode::target, EncloseNode::type, UChar, and QtfrNode::upper.

Referenced by get_char_length_tree().

static Node* get_head_value_node ( Node node,
int  exact,
regex_t reg 
) [static]

Definition at line 2601 of file regcomp.c.

References ANCHOR_PREC_READ, ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, StrNode::end, QtfrNode::head_exact, IS_IGNORECASE, IS_NOT_NULL, QtfrNode::lower, NANCHOR, NCAR, NENCLOSE, NQTFR, NSTR, NSTRING_IS_RAW, NT_ALT, NT_ANCHOR, NT_BREF, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, NULL_NODE, options(), re_pattern_buffer::options, StrNode::s, EncloseNode::target, QtfrNode::target, type, and EncloseNode::type.

Referenced by next_setup(), and setup_tree().

static int get_max_match_length ( Node node,
OnigDistance max,
ScanEnv env 
) [static]

Definition at line 2175 of file regcomp.c.

References BRefNode::back_num, BACKREFS_P, distance_add(), distance_multiply(), ScanEnv::enc, ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, StrNode::end, IS_CALL_RECURSION, IS_ENCLOSE_MAX_FIXED, IS_NOT_NULL, IS_REPEAT_INFINITE, EncloseNode::max_len, NBREF, NCALL, NCAR, NCDR, NENCLOSE, NQTFR, NST_MAX_FIXED, NST_RECURSION, NSTR, NT_ALT, NT_ANCHOR, NT_BREF, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, ScanEnv::num_mem, ONIG_INFINITE_DISTANCE, ONIGENC_MBC_MAXLEN_DIST, ONIGERR_INVALID_BACKREF, StrNode::s, SCANENV_MEM_NODES, SET_ENCLOSE_STATUS, BRefNode::state, EncloseNode::target, QtfrNode::target, EncloseNode::type, and QtfrNode::upper.

Referenced by setup_tree().

static int get_min_match_length ( Node node,
OnigDistance min,
ScanEnv env 
) [static]

Definition at line 2052 of file regcomp.c.

References BRefNode::back_num, BACKREFS_P, distance_multiply(), ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, StrNode::end, IS_CALL_RECURSION, IS_ENCLOSE_MIN_FIXED, IS_NOT_NULL, QtfrNode::lower, EncloseNode::min_len, NBREF, NCALL, NCAR, NCDR, NENCLOSE, NQTFR, NST_MIN_FIXED, NST_RECURSION, NSTR, NT_ALT, NT_ANCHOR, NT_BREF, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, ScanEnv::num_mem, ONIGERR_INVALID_BACKREF, StrNode::s, SCANENV_MEM_NODES, SET_ENCLOSE_STATUS, BRefNode::state, EncloseNode::target, QtfrNode::target, and EncloseNode::type.

Referenced by setup_tree(), and subexp_inf_recursive_check().

static int is_anychar_star_quantifier ( QtfrNode qn  )  [static]

Definition at line 717 of file regcomp.c.

References QtfrNode::greedy, IS_REPEAT_INFINITE, NT_CANY, NTYPE, QtfrNode::target, and QtfrNode::upper.

Referenced by compile_quantifier_node().

static int is_equal_mml ( MinMaxLen a,
MinMaxLen b 
) [static]

Definition at line 4077 of file regcomp.c.

References a(), and b().

Referenced by alt_merge_opt_exact_info().

static int is_full_opt_exact_info ( OptExactInfo ex  )  [static]

Definition at line 4207 of file regcomp.c.

References OptExactInfo::len, and OPT_EXACT_MAXLEN.

static int is_left_anchor ( int  anc  )  [static]

Definition at line 4163 of file regcomp.c.

References ANCHOR_END_BUF, ANCHOR_END_LINE, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, and ANCHOR_SEMI_END_BUF.

Referenced by add_opt_anc_info(), and remove_opt_anc_info().

static int is_not_included ( Node x,
Node y,
regex_t reg 
) [static]

Definition at line 2426 of file regcomp.c.

References BITSET_AT, CClassNode::bs, re_pattern_buffer::enc, if(), IS_CODE_SB_WORD, IS_NCCLASS_NOT, IS_NULL, len, CClassNode::mbuf, NCCLASS, NCTYPE, NT_CCLASS, NT_CTYPE, NT_STR, NTYPE, ONIGENC_CTYPE_WORD, and UChar.

Referenced by next_setup().

static int is_set_opt_anc_info ( OptAncInfo to,
int  anc 
) [static]

Definition at line 4174 of file regcomp.c.

References OptAncInfo::left_anchor, and OptAncInfo::right_anchor.

static int map_position_value ( OnigEncoding  enc,
int  i 
) [static]

Definition at line 4007 of file regcomp.c.

References ONIGENC_MBC_MINLEN.

Referenced by add_char_opt_map_info(), alt_merge_opt_map_info(), and select_opt_exact_info().

static int next_setup ( Node node,
Node next_node,
regex_t reg 
) [static]

Definition at line 3170 of file regcomp.c.

References CHECK_NULL_RETURN_MEMERR, ENCLOSE_MEMORY, ENCLOSE_STOP_BACKTRACK, get_head_value_node(), QtfrNode::greedy, IS_NODE_TYPE_SIMPLE, is_not_included(), IS_NOT_NULL, IS_REPEAT_INFINITE, QtfrNode::lower, NENCLOSE, QtfrNode::next_head_exact, NQTFR, NST_STOP_BT_SIMPLE_REPEAT, NSTR, NT_ENCLOSE, NT_QTFR, NTYPE, onig_node_new_enclose(), SET_ENCLOSE_STATUS, swap_node(), EncloseNode::target, QtfrNode::target, EncloseNode::type, type, and QtfrNode::upper.

Referenced by setup_tree().

static int noname_disable_map ( Node **  plink,
GroupNumRemap map,
int *  counter 
) [static]

Definition at line 1751 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, ENCLOSE_MEMORY, IS_ENCLOSE_NAMED_GROUP, IS_NOT_NULL, NANCHOR, NCAR, NCDR, NENCLOSE, GroupNumRemap::new_val, NQTFR, NT_ALT, NT_ANCHOR, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, NULL_NODE, onig_node_free(), onig_reduce_nested_quantifier(), AnchorNode::target, EncloseNode::target, AnchorNode::type, and EncloseNode::type.

Referenced by disable_noname_group_capture().

static int numbered_ref_check ( Node node  )  [static]

Definition at line 1891 of file regcomp.c.

References IS_BACKREF_NAME_REF, IS_NOT_NULL, NBREF, NCAR, NCDR, NENCLOSE, NQTFR, NT_ALT, NT_BREF, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, and ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED.

Referenced by onig_compile().

int onig_bbuf_init ( BBuf buf,
int  size 
)

Definition at line 139 of file regcomp.c.

References buf, IS_NULL, NULL, ONIGERR_MEMORY, UChar, and xmalloc.

void onig_chain_link_add ( regex_t to,
regex_t add 
)

Definition at line 5271 of file regcomp.c.

References add, re_pattern_buffer::chain, REGEX_CHAIN_HEAD, THREAD_ATOMIC_END, and THREAD_ATOMIC_START.

void onig_chain_reduce ( regex_t reg  ) 

Definition at line 5280 of file regcomp.c.

References re_pattern_buffer::chain, IS_NOT_NULL, NULL, ONIG_STATE_MODIFY, REGEX_TRANSFER, and re_pattern_buffer::state.

Referenced by onig_match(), and onig_search().

int onig_compile ( regex_t reg,
const UChar *  pattern,
const UChar *  pattern_end,
OnigErrorInfo einfo,
const char *  sourcefile,
int  sourceline 
)

Definition at line 5305 of file regcomp.c.

References re_pattern_buffer::alloc, ScanEnv::backrefed_mem, BBUF_INIT, BIT_STATUS_AT, BIT_STATUS_ON_ALL, ScanEnv::bt_mem_end, re_pattern_buffer::bt_mem_end, ScanEnv::bt_mem_start, re_pattern_buffer::bt_mem_start, ScanEnv::capture_history, re_pattern_buffer::capture_history, COMPILE_INIT_SIZE, disable_noname_group_capture(), re_pattern_buffer::enc, err, IS_FIND_CONDITION, IS_NOT_NULL, IS_SYNTAX_BV, NULL, re_pattern_buffer::num_call, ScanEnv::num_call, re_pattern_buffer::num_comb_exp_check, ScanEnv::num_mem, re_pattern_buffer::num_mem, ScanEnv::num_named, re_pattern_buffer::num_null_check, re_pattern_buffer::num_repeat, numbered_ref_check(), ONIG_IS_OPTION_ON, ONIG_OPTION_CAPTURE_GROUP, onig_parse_make_tree(), ONIG_STATE_COMPILING, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP, re_pattern_buffer::options, OnigErrorInfo::par, re_pattern_buffer::repeat_range, re_pattern_buffer::repeat_range_alloc, setup_subexp_call(), setup_tree(), ScanEnv::sourcefile, ScanEnv::sourceline, re_pattern_buffer::state, subexp_inf_recursive_check_trav(), subexp_recursive_check_trav(), ScanEnv::syntax, UChar, ScanEnv::unset_addr_list, unset_addr_list_init(), USE_SUBEXP_CALL, and re_pattern_buffer::used.

Referenced by onig_new(), onig_new_with_source(), and onig_new_without_alloc().

int onig_end ( void   ) 

Definition at line 5624 of file regcomp.c.

References onig_free_node_list(), onig_free_shared_cclass_table(), THREAD_ATOMIC_END, THREAD_ATOMIC_START, and THREAD_SYSTEM_END.

void onig_free ( regex_t reg  ) 

Definition at line 5227 of file regcomp.c.

References IS_NOT_NULL, onig_free_body(), and xfree.

Referenced by obj_free(), onig_free_body(), onig_new(), onig_new_with_source(), rb_reg_search(), rb_reg_to_s(), and strscan_do_scan().

void onig_free_body ( regex_t reg  ) 

Definition at line 5210 of file regcomp.c.

References re_pattern_buffer::chain, re_pattern_buffer::exact, re_pattern_buffer::int_map, re_pattern_buffer::int_map_backward, IS_NOT_NULL, onig_free(), onig_names_free(), re_pattern_buffer::p, re_pattern_buffer::repeat_range, and xfree.

Referenced by onig_free().

OnigCaseFoldType onig_get_default_case_fold_flag ( void   ) 

Definition at line 35 of file regcomp.c.

References OnigDefaultCaseFoldFlag.

int onig_init ( void   ) 

Definition at line 5601 of file regcomp.c.

References onigenc_init(), THREAD_ATOMIC_END, THREAD_ATOMIC_START, and THREAD_SYSTEM_INIT.

Referenced by onig_reg_init().

int onig_is_code_in_cc ( OnigEncoding  enc,
OnigCodePoint  code,
CClassNode cc 
)

Definition at line 5692 of file regcomp.c.

References len, onig_is_code_in_cc_len(), ONIGENC_CODE_TO_MBCLEN, and ONIGENC_MBC_MINLEN.

Referenced by i_apply_case_fold().

int onig_is_code_in_cc_len ( int  elen,
OnigCodePoint  code,
CClassNode cc 
)

Definition at line 5669 of file regcomp.c.

References BITSET_AT, CClassNode::bs, IS_NCCLASS_NOT, IS_NULL, CClassNode::mbuf, onig_is_in_code_range(), and _BBuf::p.

Referenced by match_at(), and onig_is_code_in_cc().

int onig_is_in_code_range ( const UChar *  p,
OnigCodePoint  code 
)

Definition at line 5648 of file regcomp.c.

References GET_CODE_POINT.

Referenced by is_code_ctype(), match_at(), onig_is_code_in_cc_len(), and onigenc_unicode_is_code_ctype().

size_t onig_memsize ( regex_t reg  ) 

Definition at line 5236 of file regcomp.c.

References re_pattern_buffer::alloc, re_pattern_buffer::chain, re_pattern_buffer::exact, re_pattern_buffer::exact_end, re_pattern_buffer::int_map, re_pattern_buffer::int_map_backward, IS_NOT_NULL, onig_memsize(), re_pattern_buffer::p, re_pattern_buffer::repeat_range, re_pattern_buffer::repeat_range_alloc, and size.

Referenced by memsize_of(), and onig_memsize().

int onig_new ( regex_t **  reg,
const UChar *  pattern,
const UChar *  pattern_end,
OnigOptionType  option,
OnigEncoding  enc,
const OnigSyntaxType syntax,
OnigErrorInfo einfo 
)

Definition at line 5578 of file regcomp.c.

References err, IS_NULL, NULL, onig_compile(), onig_free(), onig_reg_init(), ONIGENC_CASE_FOLD_DEFAULT, ONIGERR_MEMORY, and xmalloc.

Referenced by rb_reg_prepare_re(), and rb_reg_to_s().

int onig_new_without_alloc ( regex_t reg,
const UChar *  pattern,
const UChar *  pattern_end,
OnigOptionType  option,
OnigEncoding  enc,
OnigSyntaxType syntax,
OnigErrorInfo einfo 
)

Definition at line 5564 of file regcomp.c.

References NULL, onig_compile(), onig_reg_init(), and ONIGENC_CASE_FOLD_DEFAULT.

int onig_reg_init ( regex_t reg,
OnigOptionType  option,
OnigCaseFoldType  case_fold_flag,
OnigEncoding  enc,
const OnigSyntaxType syntax 
)

Definition at line 5518 of file regcomp.c.

References alloc, IS_NULL, NULL, onig_init(), ONIG_OPTION_CAPTURE_GROUP, ONIG_OPTION_DONT_CAPTURE_GROUP, ONIG_OPTION_NEGATE_SINGLELINE, ONIG_OPTION_SINGLELINE, ONIG_STATE_MODIFY, ONIGENC_IS_UNDEF, ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED, ONIGERR_INVALID_ARGUMENT, ONIGERR_INVALID_COMBINATION_OF_OPTIONS, options(), OnigSyntaxType::options, and UChar.

Referenced by onig_new(), onig_new_with_source(), and onig_new_without_alloc().

int onig_set_default_case_fold_flag ( OnigCaseFoldType  case_fold_flag  ) 

Definition at line 41 of file regcomp.c.

References OnigDefaultCaseFoldFlag.

void onig_transfer ( regex_t to,
regex_t from 
)

Definition at line 5257 of file regcomp.c.

References REGEX_TRANSFER, THREAD_ATOMIC_END, and THREAD_ATOMIC_START.

static int optimize_node_left ( Node node,
NodeOptInfo opt,
OptEnv env 
) [static]

Definition at line 4567 of file regcomp.c.

References add_char_amb_opt_map_info(), add_char_opt_map_info(), add_mml(), alt_merge_node_opt_info(), BITSET_AT, CClassNode::bs, OptEnv::case_fold_flag, clear_node_opt_info(), concat_left_node_opt_info(), concat_opt_exact_info_str(), copy_node_opt_info(), copy_opt_env(), OptEnv::enc, StrNode::end, NodeOptInfo::exb, if(), OptExactInfo::ignore_case, IS_NCCLASS_NOT, IS_NOT_NULL, OptExactInfo::len, NodeOptInfo::len, NodeOptInfo::map, max(), CClassNode::mbuf, OptEnv::mmd, NCAR, NCCLASS, NCDR, NCTYPE, NSTR, NSTRING_IS_AMBIG, NSTRING_IS_DONT_GET_OPT_INFO, NSTRING_IS_RAW, NT_ALT, NT_CCLASS, NT_CTYPE, NT_LIST, NT_STR, NTYPE, ONIGENC_CTYPE_WORD, ONIGENC_IS_CODE_WORD, ONIGENC_MBC_MAXLEN_DIST, ONIGENC_MBC_MINLEN, onigenc_strlen(), OptExactInfo::reach_end, StrNode::s, set_bound_node_opt_info(), set_mml(), and UChar.

Referenced by set_optimize_info_from_tree().

static int quantifiers_memory_node_info ( Node node  )  [static]

Definition at line 1984 of file regcomp.c.

References ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, IS_CALL_RECURSION, IS_NOT_NULL, NCALL, NCAR, NCDR, NENCLOSE, NQ_TARGET_IS_EMPTY_MEM, NQ_TARGET_IS_EMPTY_REC, NQTFR, NT_ALT, NT_ANCHOR, NT_BREF, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, EncloseNode::target, QtfrNode::target, EncloseNode::type, and QtfrNode::upper.

Referenced by setup_tree().

static void remove_opt_anc_info ( OptAncInfo to,
int  anc 
) [static]

Definition at line 4191 of file regcomp.c.

References is_left_anchor(), OptAncInfo::left_anchor, and OptAncInfo::right_anchor.

static int renumber_by_map ( Node node,
GroupNumRemap map 
) [static]

Definition at line 1847 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, IS_NOT_NULL, NANCHOR, NCAR, NCDR, NENCLOSE, NQTFR, NT_ALT, NT_ANCHOR, NT_BREF, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, renumber_node_backref(), AnchorNode::target, and AnchorNode::type.

Referenced by disable_noname_group_capture().

static int renumber_node_backref ( Node node,
GroupNumRemap map 
) [static]

Definition at line 1819 of file regcomp.c.

References BRefNode::back_dynamic, BRefNode::back_num, BRefNode::back_static, IS_BACKREF_NAME_REF, IS_NULL, NBREF, and ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED.

Referenced by renumber_by_map().

static void select_opt_exact_info ( OnigEncoding  enc,
OptExactInfo now,
OptExactInfo alt 
) [static]

Definition at line 4313 of file regcomp.c.

References comp_distance_value(), copy_opt_exact_info(), OptExactInfo::ignore_case, OptExactInfo::len, map_position_value(), OptExactInfo::mmd, and OptExactInfo::s.

Referenced by concat_left_node_opt_info(), and set_optimize_info_from_tree().

static void select_opt_map_info ( OptMapInfo now,
OptMapInfo alt 
) [static]

Definition at line 4409 of file regcomp.c.

References comp_distance_value(), copy_opt_map_info(), OptMapInfo::mmd, and OptMapInfo::value.

Referenced by concat_left_node_opt_info().

static int select_str_opcode ( int  mb_len,
int  str_len,
int  ignore_case 
) [static]

Definition at line 315 of file regcomp.c.

References OP_EXACT1, OP_EXACT1_IC, OP_EXACT2, OP_EXACT3, OP_EXACT4, OP_EXACT5, OP_EXACTMB2N, OP_EXACTMB2N1, OP_EXACTMB2N2, OP_EXACTMB2N3, OP_EXACTMB3N, OP_EXACTMBN, OP_EXACTN, and OP_EXACTN_IC.

Referenced by add_compile_string(), and add_compile_string_length().

static int set_bm_skip ( UChar *  s,
UChar *  end,
OnigEncoding enc  ARG_UNUSED,
UChar  skip[],
int **  int_skip 
) [static]

Definition at line 3931 of file regcomp.c.

References IS_NULL, len, ONIG_CHAR_TABLE_SIZE, ONIGERR_MEMORY, and xmalloc.

Referenced by set_optimize_exact_info().

static void set_bound_node_opt_info ( NodeOptInfo opt,
MinMaxLen mmd 
) [static]

Definition at line 4468 of file regcomp.c.

References copy_mml(), NodeOptInfo::exb, NodeOptInfo::expr, NodeOptInfo::map, OptMapInfo::mmd, and OptExactInfo::mmd.

Referenced by optimize_node_left().

static void set_mml ( MinMaxLen mml,
OnigDistance  min,
OnigDistance  max 
) [static]

Definition at line 4084 of file regcomp.c.

References MinMaxLen::max, and MinMaxLen::min.

Referenced by optimize_node_left().

static int set_optimize_exact_info ( regex_t reg,
OptExactInfo e 
) [static]

Definition at line 4911 of file regcomp.c.

References CHECK_NULL_RETURN_MEMERR, re_pattern_buffer::dmax, re_pattern_buffer::dmin, re_pattern_buffer::enc, re_pattern_buffer::exact, re_pattern_buffer::exact_end, OptExactInfo::ignore_case, re_pattern_buffer::int_map, OptExactInfo::len, re_pattern_buffer::map, MinMaxLen::max, MinMaxLen::min, OptExactInfo::mmd, ONIG_INFINITE_DISTANCE, ONIG_OPTIMIZE_EXACT, ONIG_OPTIMIZE_EXACT_BM, ONIG_OPTIMIZE_EXACT_BM_NOT_REV, ONIG_OPTIMIZE_EXACT_IC, ONIGENC_IS_ALLOWED_REVERSE_MATCH, re_pattern_buffer::optimize, OptExactInfo::s, set_bm_skip(), str_dup(), re_pattern_buffer::threshold_len, UChar, xmalloc, and xmemcpy.

Referenced by set_optimize_info_from_tree().

static int set_optimize_info_from_tree ( Node node,
regex_t reg,
ScanEnv scan_env 
) [static]

Definition at line 4986 of file regcomp.c.

References OptMapInfo::anc, OptExactInfo::anc, NodeOptInfo::anc, re_pattern_buffer::anchor, ANCHOR_ANYCHAR_STAR, ANCHOR_ANYCHAR_STAR_ML, ANCHOR_BEGIN_BUF, ANCHOR_BEGIN_LINE, ANCHOR_BEGIN_POSITION, re_pattern_buffer::anchor_dmax, re_pattern_buffer::anchor_dmin, ANCHOR_END_BUF, ANCHOR_END_LINE, ANCHOR_SEMI_END_BUF, re_pattern_buffer::case_fold_flag, OptEnv::case_fold_flag, clear_mml(), comp_opt_exact_or_map_info(), re_pattern_buffer::enc, OptEnv::enc, NodeOptInfo::exb, NodeOptInfo::exm, OptAncInfo::left_anchor, OptExactInfo::len, NodeOptInfo::len, NodeOptInfo::map, MinMaxLen::max, MinMaxLen::min, OptEnv::mmd, optimize_node_left(), re_pattern_buffer::options, OptEnv::options, OptAncInfo::right_anchor, OptEnv::scan_env, select_opt_exact_info(), set_optimize_exact_info(), set_optimize_map_info(), set_sub_anchor(), re_pattern_buffer::sub_anchor, and OptMapInfo::value.

static void set_optimize_map_info ( regex_t reg,
OptMapInfo m 
) [static]

Definition at line 4958 of file regcomp.c.

References re_pattern_buffer::dmax, re_pattern_buffer::dmin, if(), OptMapInfo::map, re_pattern_buffer::map, MinMaxLen::max, MinMaxLen::min, OptMapInfo::mmd, ONIG_CHAR_TABLE_SIZE, ONIG_INFINITE_DISTANCE, ONIG_OPTIMIZE_MAP, re_pattern_buffer::optimize, and re_pattern_buffer::threshold_len.

Referenced by set_optimize_info_from_tree().

static void set_sub_anchor ( regex_t reg,
OptAncInfo anc 
) [static]

Definition at line 4975 of file regcomp.c.

References ANCHOR_BEGIN_LINE, ANCHOR_END_LINE, OptAncInfo::left_anchor, OptAncInfo::right_anchor, and re_pattern_buffer::sub_anchor.

Referenced by set_optimize_info_from_tree().

static int setup_look_behind ( Node node,
regex_t reg,
ScanEnv env 
) [static]

Definition at line 3149 of file regcomp.c.

References AnchorNode::char_len, divide_look_behind_alternatives(), GET_CHAR_LEN_TOP_ALT_VARLEN, GET_CHAR_LEN_VARLEN, get_char_length_tree(), IS_SYNTAX_BV, len, NANCHOR, ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND, ONIGERR_INVALID_LOOK_BEHIND_PATTERN, ScanEnv::syntax, and AnchorNode::target.

Referenced by setup_tree().

static int setup_subexp_call ( Node node,
ScanEnv env 
) [static]

Definition at line 3006 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, BIT_STATUS_ON_AT, ScanEnv::bt_mem_start, CallNode::group_num, IS_NOT_NULL, IS_NULL, IS_SYNTAX_BV, CallNode::name, CallNode::name_end, NANCHOR, NCALL, NCAR, NCDR, NENCLOSE, NQTFR, NST_CALLED, NT_ALT, NT_ANCHOR, NT_CALL, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, ScanEnv::num_mem, ScanEnv::num_named, ONIG_IS_OPTION_ON, onig_name_to_group_numbers(), ONIG_OPTION_CAPTURE_GROUP, onig_scan_env_set_error_string(), ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP, ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL, ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED, ONIGERR_UNDEFINED_GROUP_REFERENCE, ONIGERR_UNDEFINED_NAME_REFERENCE, ScanEnv::option, ScanEnv::reg, SCANENV_MEM_NODES, SET_ENCLOSE_STATUS, ScanEnv::syntax, AnchorNode::target, CallNode::target, AnchorNode::type, type, ScanEnv::unset_addr_list, and CallNode::unset_addr_list.

Referenced by onig_compile().

static int setup_tree ( Node node,
regex_t reg,
int  state,
ScanEnv env 
) [static]

Definition at line 3684 of file regcomp.c.

References ALLOWED_ANCHOR_IN_LB, ALLOWED_ANCHOR_IN_LB_NOT, ALLOWED_ENCLOSE_IN_LB, ALLOWED_ENCLOSE_IN_LB_NOT, ALLOWED_TYPE_IN_LB, ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, BRefNode::back_num, ScanEnv::backrefed_mem, BACKREFS_P, BIT_STATUS_ON_AT, ScanEnv::bt_mem_end, ScanEnv::bt_mem_start, check_type_tree(), ENCLOSE_MEMORY, ENCLOSE_OPTION, ENCLOSE_STOP_BACKTRACK, StrNode::end, expand_case_fold_string(), EXPAND_STRING_MAX_LENGTH, get_head_value_node(), get_max_match_length(), get_min_match_length(), QtfrNode::greedy, QtfrNode::head_exact, if(), IN_ALT, IN_NOT, IN_REPEAT, IN_VAR_REPEAT, IS_BACKREF_NEST_LEVEL, IS_IGNORECASE, IS_NODE_TYPE_SIMPLE, IS_NOT_NULL, IS_REPEAT_INFINITE, len, QtfrNode::lower, NANCHOR, NBREF, NCAR, NCDR, NENCLOSE, next_setup(), NQ_TARGET_IS_EMPTY, NQTFR, NST_IN_REPEAT, NST_MEM_BACKREFED, NST_STOP_BT_SIMPLE_REPEAT, NSTR, NSTRING_IS_RAW, NSTRING_LEN, NT_ALT, NT_ANCHOR, NT_BREF, NT_CALL, NT_CANY, NT_CCLASS, NT_CTYPE, NT_ENCLOSE, NT_LIST, NT_QTFR, NT_STR, NTYPE, NULL, NULL_NODE, ScanEnv::num_mem, onig_node_conv_to_str_node(), onig_node_free(), onig_node_str_cat(), ONIGERR_INVALID_BACKREF, ONIGERR_INVALID_LOOK_BEHIND_PATTERN, options(), re_pattern_buffer::options, quantifiers_memory_node_info(), EncloseNode::regnum, StrNode::s, SCANENV_MEM_NODES, SET_ENCLOSE_STATUS, setup_look_behind(), QtfrNode::state, AnchorNode::target, EncloseNode::target, QtfrNode::target, QtfrNode::target_empty_info, AnchorNode::type, EncloseNode::type, QtfrNode::upper, and USE_BACKREF_WITH_LEVEL.

Referenced by onig_compile().

static UChar* str_dup ( UChar *  s,
UChar *  end 
) [static]

Definition at line 53 of file regcomp.c.

References CHECK_NULL_RETURN, len, NULL, UChar, xmalloc, and xmemcpy.

Referenced by set_optimize_exact_info().

static int subexp_inf_recursive_check ( Node node,
ScanEnv env,
int  head 
) [static]

Definition at line 2742 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, CLEAR_ENCLOSE_STATUS, get_min_match_length(), IS_ENCLOSE_MARK1, IS_ENCLOSE_MARK2, IS_NOT_NULL, NANCHOR, NCALL, NCAR, NCDR, NENCLOSE, NQTFR, NST_MARK2, NT_ALT, NT_ANCHOR, NT_CALL, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, RECURSION_EXIST, RECURSION_INFINITE, SET_ENCLOSE_STATUS, AnchorNode::target, AnchorNode::type, and type.

Referenced by subexp_inf_recursive_check_trav().

static int subexp_inf_recursive_check_trav ( Node node,
ScanEnv env 
) [static]

Definition at line 2826 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, CLEAR_ENCLOSE_STATUS, IS_ENCLOSE_RECURSION, IS_NOT_NULL, NANCHOR, NCAR, NCDR, NENCLOSE, NQTFR, NST_MARK1, NT_ALT, NT_ANCHOR, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, ONIGERR_NEVER_ENDING_RECURSION, SET_ENCLOSE_STATUS, subexp_inf_recursive_check(), EncloseNode::target, AnchorNode::target, AnchorNode::type, and type.

Referenced by onig_compile().

static int subexp_recursive_check ( Node node  )  [static]

Definition at line 2881 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, CLEAR_ENCLOSE_STATUS, IS_ENCLOSE_MARK1, IS_ENCLOSE_MARK2, IS_NOT_NULL, NANCHOR, NCALL, NCAR, NCDR, NENCLOSE, NQTFR, NST_MARK2, NT_ALT, NT_ANCHOR, NT_CALL, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, SET_CALL_RECURSION, SET_ENCLOSE_STATUS, AnchorNode::target, and AnchorNode::type.

Referenced by subexp_recursive_check_trav().

static int subexp_recursive_check_trav ( Node node,
ScanEnv env 
) [static]

Definition at line 2937 of file regcomp.c.

References ANCHOR_LOOK_BEHIND, ANCHOR_LOOK_BEHIND_NOT, ANCHOR_PREC_READ, ANCHOR_PREC_READ_NOT, CLEAR_ENCLOSE_STATUS, FOUND_CALLED_NODE, IS_ENCLOSE_CALLED, IS_ENCLOSE_RECURSION, IS_NOT_NULL, NANCHOR, NCAR, NCDR, NENCLOSE, NQTFR, NST_MARK1, NST_RECURSION, NT_ALT, NT_ANCHOR, NT_ENCLOSE, NT_LIST, NT_QTFR, NTYPE, SET_ENCLOSE_STATUS, subexp_recursive_check(), EncloseNode::target, AnchorNode::target, AnchorNode::type, and type.

Referenced by onig_compile().

static void swap_node ( Node a,
Node b 
) [static]

Definition at line 68 of file regcomp.c.

References a(), b(), StrNode::buf, StrNode::capa, StrNode::end, len, NSTR, NT_STR, NTYPE, and StrNode::s.

Referenced by divide_look_behind_alternatives(), expand_case_fold_string(), and next_setup().

static int unset_addr_list_add ( UnsetAddrList uslist,
int  offset,
struct _Node node 
) [static]

Definition at line 179 of file regcomp.c.

References UnsetAddrList::alloc, CHECK_NULL_RETURN_MEMERR, UnsetAddrList::num, UnsetAddr::offset, size, UnsetAddr::target, UnsetAddrList::us, and xrealloc.

Referenced by compile_call().

static void unset_addr_list_end ( UnsetAddrList uslist  )  [static]

Definition at line 172 of file regcomp.c.

References IS_NOT_NULL, UnsetAddrList::us, and xfree.

static int unset_addr_list_fix ( UnsetAddrList uslist,
regex_t reg 
) [static]

Definition at line 1964 of file regcomp.c.

References BBUF_WRITE, EncloseNode::call_addr, if(), IS_ENCLOSE_ADDR_FIXED, NENCLOSE, UnsetAddrList::num, UnsetAddr::offset, ONIGERR_PARSER_BUG, SIZE_ABSADDR, UnsetAddr::target, and UnsetAddrList::us.

static int unset_addr_list_init ( UnsetAddrList uslist,
int  size 
) [static]

Definition at line 159 of file regcomp.c.

References UnsetAddrList::alloc, CHECK_NULL_RETURN_MEMERR, UnsetAddrList::num, UnsetAddrList::us, and xmalloc.

Referenced by onig_compile().

static int update_string_node_case_fold ( regex_t reg,
Node node 
) [static]

Definition at line 3218 of file regcomp.c.

References buf, re_pattern_buffer::case_fold_flag, CHECK_NULL_RETURN_MEMERR, re_pattern_buffer::enc, StrNode::end, re_registers::end, len, NSTR, onig_node_str_set(), ONIGENC_MBC_CASE_FOLD, ONIGENC_MBC_CASE_FOLD_MAXLEN, StrNode::s, UChar, xfree, xmalloc, and xrealloc.

Referenced by expand_case_fold_make_rem_string().


Variable Documentation

int onig_inited = 0 [static]

Definition at line 5515 of file regcomp.c.

OnigCaseFoldType OnigDefaultCaseFoldFlag = ONIGENC_CASE_FOLD_MIN

Definition at line 32 of file regcomp.c.

unsigned char PadBuf[WORD_ALIGNMENT_SIZE] [static]

Definition at line 49 of file regcomp.c.

Referenced by add_multi_byte_cclass().


Generated on Wed Aug 10 09:18:56 2011 for Ruby by  doxygen 1.4.7