Lines Matching refs:reg

841 #define STACK_NULL_CHECK_MEMST(isnull,id,s,reg) do {\  argument
860 if (BIT_STATUS_AT(reg->bt_mem_end, k->u.mem.num))\
880 #define STACK_NULL_CHECK_MEMST_REC(isnull,id,s,reg) do {\ argument
901 if (BIT_STATUS_AT(reg->bt_mem_end, k->u.mem.num))\
1038 OnigStackType* stk_top, UChar* str, regex_t* reg) in make_capture_history_tree() argument
1048 BIT_STATUS_AT(reg->capture_history, n) != 0) { in make_capture_history_tree()
1056 r = make_capture_history_tree(child, kp, stk_top, str, reg); in make_capture_history_tree()
1090 static int backref_match_at_nested_level(regex_t* reg in backref_match_at_nested_level() argument
1119 if (string_cmp_ic(reg->enc, case_fold_flag, in backref_match_at_nested_level()
1238 match_at(regex_t* reg, const UChar* str, const UChar* end, in match_at() argument
1250 OnigOptionType option = reg->options; in match_at()
1251 OnigEncoding encode = reg->enc; in match_at()
1252 OnigCaseFoldType case_fold_flag = reg->case_fold_flag; in match_at()
1254 UChar *p = reg->p; in match_at()
1264 int num_comb_exp_check = reg->num_comb_exp_check; in match_at()
1266 n = reg->num_repeat + reg->num_mem * 2; in match_at()
1269 pop_level = reg->stack_pop_level; in match_at()
1270 num_mem = reg->num_mem; in match_at()
1273 mem_start_stk = (OnigStackIndex* )(repeat_stk + reg->num_repeat); in match_at()
1341 if (BIT_STATUS_AT(reg->bt_mem_start, i)) in match_at()
1346 rmt[i].rm_eo = (BIT_STATUS_AT(reg->bt_mem_end, i) in match_at()
1361 if (BIT_STATUS_AT(reg->bt_mem_start, i)) in match_at()
1366 region->end[i] = (BIT_STATUS_AT(reg->bt_mem_end, i) in match_at()
1376 if (reg->capture_history != 0) { in match_at()
1395 stk, (UChar* )str, reg); in match_at()
2116 if (BIT_STATUS_AT(reg->bt_mem_start, mem)) in match_at()
2150 if (BIT_STATUS_AT(reg->bt_mem_start, mem)) in match_at()
2155 pend = (BIT_STATUS_AT(reg->bt_mem_end, mem) in match_at()
2182 if (BIT_STATUS_AT(reg->bt_mem_start, mem)) in match_at()
2187 pend = (BIT_STATUS_AT(reg->bt_mem_end, mem) in match_at()
2214 if (BIT_STATUS_AT(reg->bt_mem_start, mem)) in match_at()
2219 pend = (BIT_STATUS_AT(reg->bt_mem_end, mem) in match_at()
2253 if (BIT_STATUS_AT(reg->bt_mem_start, mem)) in match_at()
2258 pend = (BIT_STATUS_AT(reg->bt_mem_end, mem) in match_at()
2292 if (backref_match_at_nested_level(reg, stk, stk_base, ic in match_at()
2372 STACK_NULL_CHECK_MEMST(isnull, mem, s, reg); in match_at()
2395 STACK_NULL_CHECK_MEMST_REC(isnull, mem, s, reg); in match_at()
2509 if (reg->repeat_range[mem].lower == 0) { in match_at()
2526 if (reg->repeat_range[mem].lower == 0) { in match_at()
2542 if (stkp->u.repeat.count >= reg->repeat_range[mem].upper) { in match_at()
2545 else if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) { in match_at()
2572 if (stkp->u.repeat.count < reg->repeat_range[mem].upper) { in match_at()
2573 if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) { in match_at()
2584 else if (stkp->u.repeat.count == reg->repeat_range[mem].upper) { in match_at()
2676 p = reg->p + addr; in match_at()
2875 bm_search_notrev(regex_t* reg, const UChar* target, const UChar* target_end, in bm_search_notrev() argument
2896 if (IS_NULL(reg->int_map)) { in bm_search_notrev()
2904 skip = reg->map[*se]; in bm_search_notrev()
2907 s += enclen(reg->enc, s); in bm_search_notrev()
2919 skip = reg->int_map[*se]; in bm_search_notrev()
2922 s += enclen(reg->enc, s); in bm_search_notrev()
2931 bm_search(regex_t* reg, const UChar* target, const UChar* target_end, in bm_search() argument
2943 if (IS_NULL(reg->int_map)) { in bm_search()
2951 s += reg->map[*s]; in bm_search()
2962 s += reg->int_map[*s]; in bm_search()
2991 bm_search_backward(regex_t* reg, const UChar* target, const UChar* target_end, in bm_search_backward() argument
3001 s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, adjust_text, s); in bm_search_backward()
3012 s -= reg->int_map_backward[*s]; in bm_search_backward()
3013 s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, adjust_text, s); in bm_search_backward()
3049 onig_match(regex_t* reg, const UChar* str, const UChar* end, const UChar* at, OnigRegion* region, in onig_match() argument
3059 if (ONIG_STATE(reg) >= ONIG_STATE_NORMAL) { in onig_match()
3060 ONIG_STATE_INC(reg); in onig_match()
3061 if (IS_NOT_NULL(reg->chain) && ONIG_STATE(reg) == ONIG_STATE_NORMAL) { in onig_match()
3062 onig_chain_reduce(reg); in onig_match()
3063 ONIG_STATE_INC(reg); in onig_match()
3071 while (ONIG_STATE(reg) < ONIG_STATE_NORMAL) { in onig_match()
3085 STATE_CHECK_BUFF_INIT(msa, end - str, offset, reg->num_comb_exp_check); in onig_match()
3094 r = onig_region_resize_clear(region, reg->num_mem + 1); in onig_match()
3100 prev = (UChar* )onigenc_get_prev_char_head(reg->enc, str, at); in onig_match()
3101 r = match_at(reg, str, end, in onig_match()
3109 ONIG_STATE_DEC_THREAD(reg); in onig_match()
3114 forward_search_range(regex_t* reg, const UChar* str, const UChar* end, UChar* s, in forward_search_range() argument
3125 if (reg->dmin > 0) { in forward_search_range()
3126 if (ONIGENC_IS_SINGLEBYTE(reg->enc)) { in forward_search_range()
3127 p += reg->dmin; in forward_search_range()
3130 UChar *q = p + reg->dmin; in forward_search_range()
3131 while (p < q) p += enclen(reg->enc, p); in forward_search_range()
3136 switch (reg->optimize) { in forward_search_range()
3138 p = slow_search(reg->enc, reg->exact, reg->exact_end, p, end, range); in forward_search_range()
3141 p = slow_search_ic(reg->enc, reg->case_fold_flag, in forward_search_range()
3142 reg->exact, reg->exact_end, p, end, range); in forward_search_range()
3146 p = bm_search(reg, reg->exact, reg->exact_end, p, end, range); in forward_search_range()
3150 p = bm_search_notrev(reg, reg->exact, reg->exact_end, p, end, range); in forward_search_range()
3154 p = map_search(reg->enc, reg->map, p, range); in forward_search_range()
3159 if (p - reg->dmin < s) { in forward_search_range()
3162 p += enclen(reg->enc, p); in forward_search_range()
3166 if (reg->sub_anchor) { in forward_search_range()
3169 switch (reg->sub_anchor) { in forward_search_range()
3172 prev = onigenc_get_prev_char_head(reg->enc, in forward_search_range()
3174 if (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) in forward_search_range()
3182 prev = (UChar* )onigenc_get_prev_char_head(reg->enc, in forward_search_range()
3184 if (prev && ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) in forward_search_range()
3188 else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end) in forward_search_range()
3190 && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end) in forward_search_range()
3198 if (reg->dmax == 0) { in forward_search_range()
3202 *low_prev = onigenc_get_prev_char_head(reg->enc, s, p); in forward_search_range()
3204 *low_prev = onigenc_get_prev_char_head(reg->enc, in forward_search_range()
3209 if (reg->dmax != ONIG_INFINITE_DISTANCE) { in forward_search_range()
3210 *low = p - reg->dmax; in forward_search_range()
3212 *low = onigenc_get_right_adjust_char_head_with_prev(reg->enc, s, in forward_search_range()
3215 *low_prev = onigenc_get_prev_char_head(reg->enc, in forward_search_range()
3220 *low_prev = onigenc_get_prev_char_head(reg->enc, in forward_search_range()
3226 *high = p - reg->dmin; in forward_search_range()
3231 (int )(*low - str), (int )(*high - str), reg->dmin, reg->dmax); in forward_search_range()
3245 backward_search_range(regex_t* reg, const UChar* str, const UChar* end, in backward_search_range() argument
3252 range += reg->dmin; in backward_search_range()
3256 switch (reg->optimize) { in backward_search_range()
3259 p = slow_search_backward(reg->enc, reg->exact, reg->exact_end, in backward_search_range()
3264 p = slow_search_backward_ic(reg->enc, reg->case_fold_flag, in backward_search_range()
3265 reg->exact, reg->exact_end, in backward_search_range()
3271 if (IS_NULL(reg->int_map_backward)) { in backward_search_range()
3275 r = set_bm_backward_skip(reg->exact, reg->exact_end, reg->enc, in backward_search_range()
3276 &(reg->int_map_backward)); in backward_search_range()
3279 p = bm_search_backward(reg, reg->exact, reg->exact_end, range, adjrange, in backward_search_range()
3284 p = map_search_backward(reg->enc, reg->map, range, adjrange, p); in backward_search_range()
3289 if (reg->sub_anchor) { in backward_search_range()
3292 switch (reg->sub_anchor) { in backward_search_range()
3295 prev = onigenc_get_prev_char_head(reg->enc, str, p); in backward_search_range()
3296 if (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) { in backward_search_range()
3306 prev = onigenc_get_prev_char_head(reg->enc, adjrange, p); in backward_search_range()
3308 if (ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) { in backward_search_range()
3314 else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end) in backward_search_range()
3316 && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end) in backward_search_range()
3319 p = onigenc_get_prev_char_head(reg->enc, adjrange, p); in backward_search_range()
3328 if (reg->dmax != ONIG_INFINITE_DISTANCE) { in backward_search_range()
3329 *low = p - reg->dmax; in backward_search_range()
3330 *high = p - reg->dmin; in backward_search_range()
3331 *high = onigenc_get_right_adjust_char_head(reg->enc, adjrange, *high); in backward_search_range()
3350 onig_search(regex_t* reg, const UChar* str, const UChar* end, in onig_search() argument
3364 if (ONIG_STATE(reg) >= ONIG_STATE_NORMAL) { in onig_search()
3365 ONIG_STATE_INC(reg); in onig_search()
3366 if (IS_NOT_NULL(reg->chain) && ONIG_STATE(reg) == ONIG_STATE_NORMAL) { in onig_search()
3367 onig_chain_reduce(reg); in onig_search()
3368 ONIG_STATE_INC(reg); in onig_search()
3376 while (ONIG_STATE(reg) < ONIG_STATE_NORMAL) { in onig_search()
3397 r = onig_region_resize_clear(region, reg->num_mem + 1); in onig_search()
3407 r = match_at(reg, str, end, (upper_range), s, prev, &msa); \ in onig_search()
3410 if (! IS_FIND_LONGEST(reg->options)) {\ in onig_search()
3418 r = match_at(reg, str, end, (upper_range), s, prev, &msa); \ in onig_search()
3429 r = match_at(reg, str, end, s, prev, &msa);\ in onig_search()
3432 if (! IS_FIND_LONGEST(reg->options)) {\ in onig_search()
3440 r = match_at(reg, str, end, s, prev, &msa);\ in onig_search()
3452 if (reg->anchor != 0 && str < end) { in onig_search()
3455 if (reg->anchor & ANCHOR_BEGIN_POSITION) { in onig_search()
3463 else if (reg->anchor & ANCHOR_BEGIN_BUF) { in onig_search()
3478 else if (reg->anchor & ANCHOR_END_BUF) { in onig_search()
3482 if ((OnigDistance )(max_semi_end - str) < reg->anchor_dmin) in onig_search()
3486 if ((OnigDistance )(min_semi_end - start) > reg->anchor_dmax) { in onig_search()
3487 start = min_semi_end - reg->anchor_dmax; in onig_search()
3489 start = onigenc_get_right_adjust_char_head(reg->enc, str, start); in onig_search()
3491 start = onigenc_get_prev_char_head(reg->enc, str, end); in onig_search()
3494 if ((OnigDistance )(max_semi_end - (range - 1)) < reg->anchor_dmin) { in onig_search()
3495 range = max_semi_end - reg->anchor_dmin + 1; in onig_search()
3501 if ((OnigDistance )(min_semi_end - range) > reg->anchor_dmax) { in onig_search()
3502 range = min_semi_end - reg->anchor_dmax; in onig_search()
3504 if ((OnigDistance )(max_semi_end - start) < reg->anchor_dmin) { in onig_search()
3505 start = max_semi_end - reg->anchor_dmin; in onig_search()
3506 start = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, start); in onig_search()
3511 else if (reg->anchor & ANCHOR_SEMI_END_BUF) { in onig_search()
3512 UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1); in onig_search()
3515 if (ONIGENC_IS_MBC_NEWLINE(reg->enc, pre_end, end)) { in onig_search()
3519 pre_end = ONIGENC_STEP_BACK(reg->enc, str, pre_end, 1); in onig_search()
3521 ONIGENC_IS_MBC_CRNL(reg->enc, pre_end, end)) { in onig_search()
3534 else if ((reg->anchor & ANCHOR_ANYCHAR_STAR_ML)) { in onig_search()
3545 if (reg->threshold_len == 0) { in onig_search()
3570 STATE_CHECK_BUFF_INIT(msa, end - str, offset, reg->num_comb_exp_check); in onig_search()
3577 prev = onigenc_get_prev_char_head(reg->enc, str, s); in onig_search()
3581 if (reg->optimize != ONIG_OPTIMIZE_NONE) { in onig_search()
3585 if (reg->dmax != 0) { in onig_search()
3586 if (reg->dmax == ONIG_INFINITE_DISTANCE) in onig_search()
3589 sch_range += reg->dmax; in onig_search()
3594 if ((end - start) < reg->threshold_len) in onig_search()
3597 if (reg->dmax != ONIG_INFINITE_DISTANCE) { in onig_search()
3599 if (! forward_search_range(reg, str, end, s, sch_range, in onig_search()
3608 s += enclen(reg->enc, s); in onig_search()
3614 if (! forward_search_range(reg, str, end, s, sch_range, in onig_search()
3617 if ((reg->anchor & ANCHOR_ANYCHAR_STAR) != 0) { in onig_search()
3621 s += enclen(reg->enc, s); in onig_search()
3623 while (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end) && s < range) { in onig_search()
3625 s += enclen(reg->enc, s); in onig_search()
3636 s += enclen(reg->enc, s); in onig_search()
3646 orig_start += enclen(reg->enc, orig_start); /* is upper range */ in onig_search()
3649 if (reg->optimize != ONIG_OPTIMIZE_NONE) { in onig_search()
3653 adjrange = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, range); in onig_search()
3657 if (reg->dmax != ONIG_INFINITE_DISTANCE && in onig_search()
3658 (end - range) >= reg->threshold_len) { in onig_search()
3660 sch_start = s + reg->dmax; in onig_search()
3662 if (backward_search_range(reg, str, end, sch_start, range, adjrange, in onig_search()
3670 prev = onigenc_get_prev_char_head(reg->enc, str, s); in onig_search()
3678 if ((end - range) < reg->threshold_len) goto mismatch; in onig_search()
3681 if (reg->dmax != 0) { in onig_search()
3682 if (reg->dmax == ONIG_INFINITE_DISTANCE) in onig_search()
3685 sch_start += reg->dmax; in onig_search()
3688 sch_start = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, in onig_search()
3692 if (backward_search_range(reg, str, end, sch_start, range, adjrange, in onig_search()
3698 prev = onigenc_get_prev_char_head(reg->enc, str, s); in onig_search()
3706 if (IS_FIND_LONGEST(reg->options)) { in onig_search()
3717 ONIG_STATE_DEC_THREAD(reg); in onig_search()
3721 if (IS_FIND_NOT_EMPTY(reg->options) && region in onig_search()
3738 ONIG_STATE_DEC_THREAD(reg); in onig_search()
3746 ONIG_STATE_DEC_THREAD(reg); in onig_search()
3752 onig_get_encoding(regex_t* reg) in onig_get_encoding() argument
3754 return reg->enc; in onig_get_encoding()
3758 onig_get_options(regex_t* reg) in onig_get_options() argument
3760 return reg->options; in onig_get_options()
3764 onig_get_case_fold_flag(regex_t* reg) in onig_get_case_fold_flag() argument
3766 return reg->case_fold_flag; in onig_get_case_fold_flag()
3770 onig_get_syntax(regex_t* reg) in onig_get_syntax() argument
3772 return reg->syntax; in onig_get_syntax()
3776 onig_number_of_captures(regex_t* reg) in onig_number_of_captures() argument
3778 return reg->num_mem; in onig_number_of_captures()
3782 onig_number_of_capture_histories(regex_t* reg) in onig_number_of_capture_histories() argument
3789 if (BIT_STATUS_AT(reg->capture_history, i) != 0) in onig_number_of_capture_histories()