|
Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
|
#include "regint.h"Go to the source code of this file.
Macros | |
| #define | USE_TOKEN_THREADED_VM 1 |
| #define | ENC_DUMMY_FLAG (1<<24) |
| #define | ONIGENC_IS_MBC_ASCII_WORD(enc, s, end) |
| #define | ONIGENC_IS_MBC_CRNL(enc, p, end) |
| #define | ONIGENC_IS_MBC_NEWLINE_EX(enc, p, start, end, option, check_prev) is_mbc_newline_ex((enc),(p),(start),(end),(option),(check_prev)) |
| #define | RREGC_SIZE (sizeof(int) * from->num_regs) |
| #define | INVALID_STACK_INDEX -1 |
| stack More... | |
| #define | STK_ALT 0x0001 |
| #define | STK_LOOK_BEHIND_NOT 0x0002 |
| #define | STK_POS_NOT 0x0003 |
| #define | STK_MEM_START 0x0100 |
| #define | STK_MEM_END 0x8200 |
| #define | STK_REPEAT_INC 0x0300 |
| #define | STK_STATE_CHECK_MARK 0x1000 |
| #define | STK_NULL_CHECK_START 0x3000 |
| #define | STK_NULL_CHECK_END 0x5000 /* for recursive call */ |
| #define | STK_MEM_END_MARK 0x8400 |
| #define | STK_POS 0x0500 /* used when POP-POS */ |
| #define | STK_STOP_BT 0x0600 /* mark for "(?>...)" */ |
| #define | STK_REPEAT 0x0700 |
| #define | STK_CALL_FRAME 0x0800 |
| #define | STK_RETURN 0x0900 |
| #define | STK_VOID 0x0a00 /* for fill a blank */ |
| #define | STK_ABSENT_POS 0x0b00 /* for absent */ |
| #define | STK_ABSENT 0x0c00 /* absent inner loop marker */ |
| #define | STK_MASK_POP_USED 0x00ff |
| #define | STK_MASK_TO_VOID_TARGET 0x10ff |
| #define | STK_MASK_MEM_END_OR_MARK 0x8000 /* MEM_END or MEM_END_MARK */ |
| #define | MATCH_ARG_INIT(msa, arg_option, arg_region, arg_start, arg_gpos) |
| #define | MATCH_ARG_FREE(msa) if ((msa).stack_p) xfree((msa).stack_p) |
| #define | MAX_PTR_NUM 100 |
| #define | STACK_INIT(alloc_addr, heap_addr, ptr_num, stack_num) |
| #define | STACK_SAVE |
| #define | STACK_ENSURE(n) |
| #define | STACK_AT(index) (stk_base + (index)) |
| #define | GET_STACK_INDEX(stk) ((stk) - stk_base) |
| #define | STACK_PUSH_TYPE(stack_type) |
| #define | IS_TO_VOID_TARGET(stk) (((stk)->type & STK_MASK_TO_VOID_TARGET) != 0) |
| #define | ELSE_IF_STATE_CHECK_MARK(stk) |
| #define | STACK_PUSH(stack_type, pat, s, sprev, keep) |
| #define | STACK_PUSH_ENSURED(stack_type, pat) |
| #define | STACK_PUSH_ALT(pat, s, sprev, keep) STACK_PUSH(STK_ALT,pat,s,sprev,keep) |
| #define | STACK_PUSH_POS(s, sprev, keep) STACK_PUSH(STK_POS,NULL_UCHARP,s,sprev,keep) |
| #define | STACK_PUSH_POS_NOT(pat, s, sprev, keep) STACK_PUSH(STK_POS_NOT,pat,s,sprev,keep) |
| #define | STACK_PUSH_ABSENT STACK_PUSH_TYPE(STK_ABSENT) |
| #define | STACK_PUSH_STOP_BT STACK_PUSH_TYPE(STK_STOP_BT) |
| #define | STACK_PUSH_LOOK_BEHIND_NOT(pat, s, sprev, keep) STACK_PUSH(STK_LOOK_BEHIND_NOT,pat,s,sprev,keep) |
| #define | STACK_PUSH_REPEAT(id, pat) |
| #define | STACK_PUSH_REPEAT_INC(sindex) |
| #define | STACK_PUSH_MEM_START(mnum, s) |
| #define | STACK_PUSH_MEM_END(mnum, s) |
| #define | STACK_PUSH_MEM_END_MARK(mnum) |
| #define | STACK_GET_MEM_START(mnum, k) |
| #define | STACK_GET_MEM_RANGE(k, mnum, start, end) |
| #define | STACK_PUSH_NULL_CHECK_START(cnum, s) |
| #define | STACK_PUSH_NULL_CHECK_END(cnum) |
| #define | STACK_PUSH_CALL_FRAME(pat) |
| #define | STACK_PUSH_RETURN |
| #define | STACK_PUSH_ABSENT_POS(start, end) |
| #define | STACK_BASE_CHECK(p, at) |
| #define | STACK_POP_ONE |
| #define | STACK_POP |
| #define | STACK_POP_TIL_POS_NOT |
| #define | STACK_POP_TIL_LOOK_BEHIND_NOT |
| #define | STACK_POP_TIL_ABSENT |
| #define | STACK_POP_ABSENT_POS(start, end) |
| #define | STACK_POS_END(k) |
| #define | STACK_STOP_BT_END |
| #define | STACK_NULL_CHECK(isnull, id, s) |
| #define | STACK_NULL_CHECK_REC(isnull, id, s) |
| #define | STACK_NULL_CHECK_MEMST(isnull, id, s, reg) |
| #define | STACK_NULL_CHECK_MEMST_REC(isnull, id, s, reg) |
| #define | STACK_GET_REPEAT(id, k) |
| #define | STACK_RETURN(addr) |
| #define | STRING_CMP(s1, s2, len) |
| #define | STRING_CMP_IC(case_fold_flag, s1, ps2, len, text_end) |
| #define | STRING_CMP_VALUE(s1, s2, len, is_fail) |
| #define | STRING_CMP_VALUE_IC(case_fold_flag, s1, ps2, len, text_end, is_fail) |
| #define | IS_EMPTY_STR (str == end) |
| #define | ON_STR_BEGIN(s) ((s) == str) |
| #define | ON_STR_END(s) ((s) == end) |
| #define | DATA_ENSURE_CHECK1 (s < end) |
| #define | DATA_ENSURE_CHECK(n) (s + (n) <= end) |
| #define | DATA_ENSURE(n) if (s + (n) > end) goto fail |
| #define | ABSENT_END_POS end |
| #define | STACK_INC stk++ |
| #define | MOP_IN(opcode) |
| #define | MOP_OUT |
| #define | OP_OFFSET 0 |
| #define | VM_LOOP |
| #define | VM_LOOP_END } sprev = sbegin; } |
| #define | CASE(x) case x: |
| #define | DEFAULT default: |
| #define | NEXT break |
| #define | JUMP continue; break |
| #define | ADD_NUMMEM 1 |
| #define | OPCODE_EXEC_HOOK ((void) 0) |
| #define | BM_BACKWARD_SEARCH_LENGTH_THRESHOLD 100 |
| #define | MATCH_AND_RETURN_CHECK(none) |
| #define ADD_NUMMEM 1 |
| #define CASE | ( | x | ) | case x: |
| #define DEFAULT default: |
| #define IS_TO_VOID_TARGET | ( | stk | ) | (((stk)->type & STK_MASK_TO_VOID_TARGET) != 0) |
| #define JUMP continue; break |
| #define MATCH_AND_RETURN_CHECK | ( | none | ) |
| #define MATCH_ARG_INIT | ( | msa, | |
| arg_option, | |||
| arg_region, | |||
| arg_start, | |||
| arg_gpos | |||
| ) |
| #define NEXT break |
| #define ONIGENC_IS_MBC_ASCII_WORD | ( | enc, | |
| s, | |||
| end | |||
| ) |
| #define ONIGENC_IS_MBC_CRNL | ( | enc, | |
| p, | |||
| end | |||
| ) |
| #define ONIGENC_IS_MBC_NEWLINE_EX | ( | enc, | |
| p, | |||
| start, | |||
| end, | |||
| option, | |||
| check_prev | |||
| ) | is_mbc_newline_ex((enc),(p),(start),(end),(option),(check_prev)) |
| #define OP_OFFSET 0 |
| #define OPCODE_EXEC_HOOK ((void) 0) |
| #define RREGC_SIZE (sizeof(int) * from->num_regs) |
| #define STACK_ENSURE | ( | n | ) |
| #define STACK_GET_MEM_RANGE | ( | k, | |
| mnum, | |||
| start, | |||
| end | |||
| ) |
| #define STACK_GET_MEM_START | ( | mnum, | |
| k | |||
| ) |
| #define STACK_GET_REPEAT | ( | id, | |
| k | |||
| ) |
| #define STACK_INIT | ( | alloc_addr, | |
| heap_addr, | |||
| ptr_num, | |||
| stack_num | |||
| ) |
| #define STACK_NULL_CHECK | ( | isnull, | |
| id, | |||
| s | |||
| ) |
| #define STACK_NULL_CHECK_MEMST_REC | ( | isnull, | |
| id, | |||
| s, | |||
| reg | |||
| ) |
| #define STACK_NULL_CHECK_REC | ( | isnull, | |
| id, | |||
| s | |||
| ) |
| #define STACK_POP_ABSENT_POS | ( | start, | |
| end | |||
| ) |
| #define STACK_POP_ONE |
| #define STACK_POP_TIL_ABSENT |
| #define STACK_POP_TIL_LOOK_BEHIND_NOT |
| #define STACK_POP_TIL_POS_NOT |
| #define STACK_POS_END | ( | k | ) |
| #define STACK_PUSH | ( | stack_type, | |
| pat, | |||
| s, | |||
| sprev, | |||
| keep | |||
| ) |
| #define STACK_PUSH_ABSENT STACK_PUSH_TYPE(STK_ABSENT) |
| #define STACK_PUSH_ABSENT_POS | ( | start, | |
| end | |||
| ) |
| #define STACK_PUSH_ALT | ( | pat, | |
| s, | |||
| sprev, | |||
| keep | |||
| ) | STACK_PUSH(STK_ALT,pat,s,sprev,keep) |
| #define STACK_PUSH_CALL_FRAME | ( | pat | ) |
| #define STACK_PUSH_ENSURED | ( | stack_type, | |
| pat | |||
| ) |
| #define STACK_PUSH_LOOK_BEHIND_NOT | ( | pat, | |
| s, | |||
| sprev, | |||
| keep | |||
| ) | STACK_PUSH(STK_LOOK_BEHIND_NOT,pat,s,sprev,keep) |
| #define STACK_PUSH_MEM_END | ( | mnum, | |
| s | |||
| ) |
| #define STACK_PUSH_MEM_END_MARK | ( | mnum | ) |
| #define STACK_PUSH_MEM_START | ( | mnum, | |
| s | |||
| ) |
| #define STACK_PUSH_NULL_CHECK_END | ( | cnum | ) |
| #define STACK_PUSH_NULL_CHECK_START | ( | cnum, | |
| s | |||
| ) |
| #define STACK_PUSH_POS | ( | s, | |
| sprev, | |||
| keep | |||
| ) | STACK_PUSH(STK_POS,NULL_UCHARP,s,sprev,keep) |
| #define STACK_PUSH_POS_NOT | ( | pat, | |
| s, | |||
| sprev, | |||
| keep | |||
| ) | STACK_PUSH(STK_POS_NOT,pat,s,sprev,keep) |
| #define STACK_PUSH_REPEAT | ( | id, | |
| pat | |||
| ) |
| #define STACK_PUSH_REPEAT_INC | ( | sindex | ) |
| #define STACK_PUSH_RETURN |
| #define STACK_PUSH_STOP_BT STACK_PUSH_TYPE(STK_STOP_BT) |
| #define STACK_PUSH_TYPE | ( | stack_type | ) |
| #define STACK_RETURN | ( | addr | ) |
| #define STACK_SAVE |
| #define STACK_STOP_BT_END |
| #define STK_MASK_MEM_END_OR_MARK 0x8000 /* MEM_END or MEM_END_MARK */ |
| #define STK_NULL_CHECK_END 0x5000 /* for recursive call */ |
| #define STRING_CMP | ( | s1, | |
| s2, | |||
| len | |||
| ) |
| #define STRING_CMP_IC | ( | case_fold_flag, | |
| s1, | |||
| ps2, | |||
| len, | |||
| text_end | |||
| ) |
| #define STRING_CMP_VALUE | ( | s1, | |
| s2, | |||
| len, | |||
| is_fail | |||
| ) |
| #define STRING_CMP_VALUE_IC | ( | case_fold_flag, | |
| s1, | |||
| ps2, | |||
| len, | |||
| text_end, | |||
| is_fail | |||
| ) |
| #define VM_LOOP |
| #define VM_LOOP_END } sprev = sbegin; } |
| void onig_copy_encoding | ( | OnigEncodingType * | to, |
| OnigEncoding | from | ||
| ) |
| OnigCaseFoldType onig_get_case_fold_flag | ( | const regex_t * | reg | ) |
Definition at line 4583 of file regexec.c.
References re_pattern_buffer::case_fold_flag.
| OnigEncoding onig_get_encoding | ( | const regex_t * | reg | ) |
Definition at line 4571 of file regexec.c.
References re_pattern_buffer::enc.
| OnigOptionType onig_get_options | ( | const regex_t * | reg | ) |
Definition at line 4577 of file regexec.c.
References re_pattern_buffer::options.
| const OnigSyntaxType * onig_get_syntax | ( | const regex_t * | reg | ) |
Definition at line 4589 of file regexec.c.
References re_pattern_buffer::syntax.
| OnigPosition onig_match | ( | regex_t * | reg, |
| const UChar * | str, | ||
| const UChar * | end, | ||
| const UChar * | at, | ||
| OnigRegion * | region, | ||
| OnigOptionType | option | ||
| ) |
Definition at line 3866 of file regexec.c.
References re_pattern_buffer::enc, MATCH_ARG_FREE, MATCH_ARG_INIT, re_pattern_buffer::num_comb_exp_check, re_pattern_buffer::num_mem, onigenc_get_prev_char_head(), str, and UChar.
Definition at line 4601 of file regexec.c.
References BIT_STATUS_AT, re_pattern_buffer::capture_history, and ONIG_MAX_CAPTURE_HISTORY_GROUP.
Definition at line 4595 of file regexec.c.
References re_pattern_buffer::num_mem.
| void onig_region_clear | ( | OnigRegion * | region | ) |
Definition at line 235 of file regexec.c.
References re_registers::beg, re_registers::end, re_registers::num_regs, and ONIG_REGION_NOTPOS.
Referenced by onig_search_gpos().
| void onig_region_copy | ( | OnigRegion * | to, |
| const OnigRegion * | from | ||
| ) |
Definition at line 359 of file regexec.c.
References re_registers::beg, re_registers::end, IS_NOT_NULL, re_registers::num_regs, and onig_region_resize().
Referenced by rb_reg_region_copy().
| void onig_region_free | ( | OnigRegion * | r, |
| int | free_self | ||
| ) |
Definition at line 343 of file regexec.c.
References re_registers::allocated, re_registers::beg, re_registers::end, and xfree.
Referenced by rb_reg_start_with_p().
| void onig_region_init | ( | OnigRegion * | region | ) |
Definition at line 320 of file regexec.c.
References re_registers::allocated, re_registers::beg, re_registers::end, and re_registers::num_regs.
Referenced by onig_region_new().
| OnigRegion * onig_region_new | ( | void | ) |
Definition at line 332 of file regexec.c.
References onig_region_init(), and xmalloc.
| int onig_region_resize | ( | OnigRegion * | region, |
| int | n | ||
| ) |
Definition at line 248 of file regexec.c.
References re_registers::allocated, re_registers::beg, re_registers::end, re_registers::num_regs, ONIG_NREGION, ONIGERR_MEMORY, xfree, xmalloc, and xrealloc.
Referenced by onig_region_copy(), and onig_region_set().
| int onig_region_set | ( | OnigRegion * | region, |
| int | at, | ||
| int | beg, | ||
| int | end | ||
| ) |
Definition at line 305 of file regexec.c.
References re_registers::allocated, re_registers::beg, re_registers::end, onig_region_resize(), and ONIGERR_INVALID_ARGUMENT.
| OnigPosition onig_scan | ( | regex_t * | reg, |
| const UChar * | str, | ||
| const UChar * | end, | ||
| OnigRegion * | region, | ||
| OnigOptionType | option, | ||
| int(*)(OnigPosition, OnigPosition, OnigRegion *, void *) | scan_callback, | ||
| void * | callback_arg | ||
| ) |
Definition at line 4529 of file regexec.c.
References re_pattern_buffer::enc, enclen, re_registers::end, ONIG_MISMATCH, onig_search(), str, and UChar.
| OnigPosition onig_search | ( | regex_t * | reg, |
| const UChar * | str, | ||
| const UChar * | end, | ||
| const UChar * | start, | ||
| const UChar * | range, | ||
| OnigRegion * | region, | ||
| OnigOptionType | option | ||
| ) |
Definition at line 4149 of file regexec.c.
References onig_search_gpos(), range, and str.
Referenced by onig_scan().
| OnigPosition onig_search_gpos | ( | regex_t * | reg, |
| const UChar * | str, | ||
| const UChar * | end, | ||
| const UChar * | global_pos, | ||
| const UChar * | start, | ||
| const UChar * | range, | ||
| OnigRegion * | region, | ||
| OnigOptionType | option | ||
| ) |
Definition at line 4156 of file regexec.c.
References re_pattern_buffer::anchor, ANCHOR_ANYCHAR_STAR, ANCHOR_ANYCHAR_STAR_ML, ANCHOR_BEGIN_BUF, ANCHOR_BEGIN_POSITION, re_pattern_buffer::anchor_dmax, re_pattern_buffer::anchor_dmin, ANCHOR_END_BUF, ANCHOR_LOOK_BEHIND, ANCHOR_PREC_READ_NOT, ANCHOR_SEMI_END_BUF, OnigMatchArg::best_len, OnigMatchArg::best_s, re_pattern_buffer::dmax, re_pattern_buffer::enc, enclen, IS_FIND_LONGEST, IS_FIND_NOT_EMPTY, IS_NEWLINE_CRLF, IS_NOT_NULL, match, MATCH_AND_RETURN_CHECK, MATCH_ARG_FREE, MATCH_ARG_INIT, MIN, NULL, re_pattern_buffer::num_comb_exp_check, re_pattern_buffer::num_mem, ONIG_INFINITE_DISTANCE, ONIG_MISMATCH, ONIG_OPTIMIZE_NONE, onig_region_clear(), onigenc_get_prev_char_head(), onigenc_get_right_adjust_char_head(), ONIGENC_IS_MBC_CRNL, ONIGENC_IS_MBC_NEWLINE, ONIGENC_IS_MBC_NEWLINE_EX, ONIGENC_LEFT_ADJUST_CHAR_HEAD, ONIGENC_STEP_BACK, re_pattern_buffer::optimize, re_pattern_buffer::options, PRIdPTRDIFF, PRIuPTR, range, str, re_pattern_buffer::threshold_len, and UChar.
Referenced by onig_search().