Lines Matching refs:reg

201 add_opcode(regex_t* reg, int opcode)  in add_opcode()  argument
203 BBUF_ADD1(reg, opcode); in add_opcode()
209 add_state_check_num(regex_t* reg, int num) in add_state_check_num() argument
213 BBUF_ADD(reg, &n, SIZE_STATE_CHECK_NUM); in add_state_check_num()
219 add_rel_addr(regex_t* reg, int addr) in add_rel_addr() argument
223 BBUF_ADD(reg, &ra, SIZE_RELADDR); in add_rel_addr()
228 add_abs_addr(regex_t* reg, int addr) in add_abs_addr() argument
232 BBUF_ADD(reg, &ra, SIZE_ABSADDR); in add_abs_addr()
237 add_length(regex_t* reg, int len) in add_length() argument
241 BBUF_ADD(reg, &l, SIZE_LENGTH); in add_length()
246 add_mem_num(regex_t* reg, int num) in add_mem_num() argument
250 BBUF_ADD(reg, &n, SIZE_MEMNUM); in add_mem_num()
255 add_pointer(regex_t* reg, void* addr) in add_pointer() argument
259 BBUF_ADD(reg, &ptr, SIZE_POINTER); in add_pointer()
264 add_option(regex_t* reg, OnigOptionType option) in add_option() argument
266 BBUF_ADD(reg, &option, SIZE_OPTION); in add_option()
271 add_opcode_rel_addr(regex_t* reg, int opcode, int addr) in add_opcode_rel_addr() argument
275 r = add_opcode(reg, opcode); in add_opcode_rel_addr()
277 r = add_rel_addr(reg, addr); in add_opcode_rel_addr()
282 add_bytes(regex_t* reg, UChar* bytes, int len) in add_bytes() argument
284 BBUF_ADD(reg, bytes, len); in add_bytes()
289 add_bitset(regex_t* reg, BitSetRef bs) in add_bitset() argument
291 BBUF_ADD(reg, bs, SIZE_BITSET); in add_bitset()
296 add_opcode_option(regex_t* reg, int opcode, OnigOptionType option) in add_opcode_option() argument
300 r = add_opcode(reg, opcode); in add_opcode_option()
302 r = add_option(reg, option); in add_opcode_option()
306 static int compile_length_tree(Node* node, regex_t* reg);
307 static int compile_tree(Node* node, regex_t* reg);
360 compile_tree_empty_check(Node* node, regex_t* reg, int empty_info) in compile_tree_empty_check() argument
363 int saved_num_null_check = reg->num_null_check; in compile_tree_empty_check()
366 r = add_opcode(reg, OP_NULL_CHECK_START); in compile_tree_empty_check()
368 r = add_mem_num(reg, reg->num_null_check); /* NULL CHECK ID */ in compile_tree_empty_check()
370 reg->num_null_check++; in compile_tree_empty_check()
373 r = compile_tree(node, reg); in compile_tree_empty_check()
378 r = add_opcode(reg, OP_NULL_CHECK_END); in compile_tree_empty_check()
380 r = add_opcode(reg, OP_NULL_CHECK_END_MEMST); in compile_tree_empty_check()
382 r = add_opcode(reg, OP_NULL_CHECK_END_MEMST_PUSH); in compile_tree_empty_check()
385 r = add_mem_num(reg, saved_num_null_check); /* NULL CHECK ID */ in compile_tree_empty_check()
392 compile_call(CallNode* node, regex_t* reg) in compile_call() argument
396 r = add_opcode(reg, OP_CALL); in compile_call()
398 r = unset_addr_list_add(node->unset_addr_list, BBUF_GET_OFFSET_POS(reg), in compile_call()
401 r = add_abs_addr(reg, 0 /*dummy addr.*/); in compile_call()
407 compile_tree_n_times(Node* node, int n, regex_t* reg) in compile_tree_n_times() argument
412 r = compile_tree(node, reg); in compile_tree_n_times()
420 regex_t* reg ARG_UNUSED, int ignore_case) in add_compile_string_length()
437 regex_t* reg, int ignore_case) in add_compile_string() argument
440 add_opcode(reg, op); in add_compile_string()
443 add_length(reg, mb_len); in add_compile_string()
447 add_length(reg, mb_len * str_len); in add_compile_string()
449 add_length(reg, str_len); in add_compile_string()
452 add_bytes(reg, s, mb_len * str_len); in add_compile_string()
458 compile_length_string_node(Node* node, regex_t* reg) in compile_length_string_node() argument
461 OnigEncoding enc = reg->enc; in compile_length_string_node()
483 r = add_compile_string_length(prev, prev_len, slen, reg, ambig); in compile_length_string_node()
491 r = add_compile_string_length(prev, prev_len, slen, reg, ambig); in compile_length_string_node()
497 compile_length_string_raw_node(StrNode* sn, regex_t* reg) in compile_length_string_raw_node() argument
502 return add_compile_string_length(sn->s, 1 /* sb */, sn->end - sn->s, reg, 0); in compile_length_string_raw_node()
506 compile_string_node(Node* node, regex_t* reg) in compile_string_node() argument
509 OnigEncoding enc = reg->enc; in compile_string_node()
531 r = add_compile_string(prev, prev_len, slen, reg, ambig); in compile_string_node()
541 return add_compile_string(prev, prev_len, slen, reg, ambig); in compile_string_node()
545 compile_string_raw_node(StrNode* sn, regex_t* reg) in compile_string_raw_node() argument
550 return add_compile_string(sn->s, 1 /* sb */, sn->end - sn->s, reg, 0); in compile_string_raw_node()
554 add_multi_byte_cclass(BBuf* mbuf, regex_t* reg) in add_multi_byte_cclass() argument
557 add_length(reg, mbuf->used); in add_multi_byte_cclass()
558 return add_bytes(reg, mbuf->p, mbuf->used); in add_multi_byte_cclass()
561 UChar* p = BBUF_GET_ADD_ADDRESS(reg) + SIZE_LENGTH; in add_multi_byte_cclass()
564 add_length(reg, mbuf->used + (WORD_ALIGNMENT_SIZE - 1)); in add_multi_byte_cclass()
565 if (pad_size != 0) add_bytes(reg, PadBuf, pad_size); in add_multi_byte_cclass()
567 r = add_bytes(reg, mbuf->p, mbuf->used); in add_multi_byte_cclass()
571 if (pad_size != 0) add_bytes(reg, PadBuf, pad_size); in add_multi_byte_cclass()
577 compile_length_cclass_node(CClassNode* cc, regex_t* reg) in compile_length_cclass_node() argument
590 if (ONIGENC_MBC_MINLEN(reg->enc) > 1 || bitset_is_empty(cc->bs)) { in compile_length_cclass_node()
607 compile_cclass_node(CClassNode* cc, regex_t* reg) in compile_cclass_node() argument
612 add_opcode(reg, OP_CCLASS_NODE); in compile_cclass_node()
613 r = add_pointer(reg, cc); in compile_cclass_node()
619 add_opcode(reg, OP_CCLASS_NOT); in compile_cclass_node()
621 add_opcode(reg, OP_CCLASS); in compile_cclass_node()
623 r = add_bitset(reg, cc->bs); in compile_cclass_node()
626 if (ONIGENC_MBC_MINLEN(reg->enc) > 1 || bitset_is_empty(cc->bs)) { in compile_cclass_node()
628 add_opcode(reg, OP_CCLASS_MB_NOT); in compile_cclass_node()
630 add_opcode(reg, OP_CCLASS_MB); in compile_cclass_node()
632 r = add_multi_byte_cclass(cc->mbuf, reg); in compile_cclass_node()
636 add_opcode(reg, OP_CCLASS_MIX_NOT); in compile_cclass_node()
638 add_opcode(reg, OP_CCLASS_MIX); in compile_cclass_node()
640 r = add_bitset(reg, cc->bs); in compile_cclass_node()
642 r = add_multi_byte_cclass(cc->mbuf, reg); in compile_cclass_node()
650 entry_repeat_range(regex_t* reg, int id, int lower, int upper) in entry_repeat_range() argument
656 if (reg->repeat_range_alloc == 0) { in entry_repeat_range()
659 reg->repeat_range = p; in entry_repeat_range()
660 reg->repeat_range_alloc = REPEAT_RANGE_ALLOC; in entry_repeat_range()
662 else if (reg->repeat_range_alloc <= id) { in entry_repeat_range()
664 n = reg->repeat_range_alloc + REPEAT_RANGE_ALLOC; in entry_repeat_range()
665 p = (OnigRepeatRange* )xrealloc(reg->repeat_range, in entry_repeat_range()
668 reg->repeat_range = p; in entry_repeat_range()
669 reg->repeat_range_alloc = n; in entry_repeat_range()
672 p = reg->repeat_range; in entry_repeat_range()
682 regex_t* reg) in compile_range_repeat_node() argument
685 int num_repeat = reg->num_repeat; in compile_range_repeat_node()
687 r = add_opcode(reg, qn->greedy ? OP_REPEAT : OP_REPEAT_NG); in compile_range_repeat_node()
689 r = add_mem_num(reg, num_repeat); /* OP_REPEAT ID */ in compile_range_repeat_node()
690 reg->num_repeat++; in compile_range_repeat_node()
692 r = add_rel_addr(reg, target_len + SIZE_OP_REPEAT_INC); in compile_range_repeat_node()
695 r = entry_repeat_range(reg, num_repeat, qn->lower, qn->upper); in compile_range_repeat_node()
698 r = compile_tree_empty_check(qn->target, reg, empty_info); in compile_range_repeat_node()
703 reg->num_call > 0 || in compile_range_repeat_node()
706 r = add_opcode(reg, qn->greedy ? OP_REPEAT_INC_SG : OP_REPEAT_INC_NG_SG); in compile_range_repeat_node()
709 r = add_opcode(reg, qn->greedy ? OP_REPEAT_INC : OP_REPEAT_INC_NG); in compile_range_repeat_node()
712 r = add_mem_num(reg, num_repeat); /* OP_REPEAT ID */ in compile_range_repeat_node()
732 compile_length_quantifier_node(QtfrNode* qn, regex_t* reg) in compile_length_quantifier_node() argument
738 int tlen = compile_length_tree(qn->target, reg); in compile_length_quantifier_node()
742 ckn = ((reg->num_comb_exp_check > 0) ? qn->comb_exp_check_num : 0); in compile_length_quantifier_node()
812 compile_quantifier_node(QtfrNode* qn, regex_t* reg) in compile_quantifier_node() argument
818 int tlen = compile_length_tree(qn->target, reg); in compile_quantifier_node()
822 ckn = ((reg->num_comb_exp_check > 0) ? qn->comb_exp_check_num : 0); in compile_quantifier_node()
825 r = compile_tree_n_times(qn->target, qn->lower, reg); in compile_quantifier_node()
828 if (IS_MULTILINE(reg->options)) in compile_quantifier_node()
829 r = add_opcode(reg, OP_ANYCHAR_ML_STAR_PEEK_NEXT); in compile_quantifier_node()
831 r = add_opcode(reg, OP_ANYCHAR_STAR_PEEK_NEXT); in compile_quantifier_node()
834 r = add_state_check_num(reg, ckn); in compile_quantifier_node()
838 return add_bytes(reg, NSTR(qn->next_head_exact)->s, 1); in compile_quantifier_node()
841 if (IS_MULTILINE(reg->options)) { in compile_quantifier_node()
842 r = add_opcode(reg, (CKN_ON ? in compile_quantifier_node()
847 r = add_opcode(reg, (CKN_ON ? in compile_quantifier_node()
853 r = add_state_check_num(reg, ckn); in compile_quantifier_node()
867 r = add_opcode_rel_addr(reg, OP_JUMP, in compile_quantifier_node()
873 r = add_opcode(reg, OP_STATE_CHECK_PUSH); in compile_quantifier_node()
875 r = add_state_check_num(reg, ckn); in compile_quantifier_node()
877 r = add_rel_addr(reg, mod_tlen + SIZE_OP_JUMP); in compile_quantifier_node()
880 r = add_opcode_rel_addr(reg, OP_PUSH, mod_tlen + SIZE_OP_JUMP); in compile_quantifier_node()
883 r = compile_tree_empty_check(qn->target, reg, empty_info); in compile_quantifier_node()
885 r = add_opcode_rel_addr(reg, OP_JUMP, in compile_quantifier_node()
891 r = add_opcode_rel_addr(reg, OP_JUMP, mod_tlen); in compile_quantifier_node()
894 r = compile_tree_empty_check(qn->target, reg, empty_info); in compile_quantifier_node()
897 r = add_opcode(reg, OP_STATE_CHECK_PUSH_OR_JUMP); in compile_quantifier_node()
899 r = add_state_check_num(reg, ckn); in compile_quantifier_node()
901 r = add_rel_addr(reg, in compile_quantifier_node()
905 r = add_opcode_rel_addr(reg, OP_PUSH, -(mod_tlen + (int )SIZE_OP_PUSH)); in compile_quantifier_node()
910 r = add_opcode_rel_addr(reg, OP_JUMP, tlen); in compile_quantifier_node()
912 r = compile_tree(qn->target, reg); in compile_quantifier_node()
920 r = add_opcode(reg, OP_STATE_CHECK_PUSH); in compile_quantifier_node()
922 r = add_state_check_num(reg, ckn); in compile_quantifier_node()
924 r = add_rel_addr(reg, tlen); in compile_quantifier_node()
927 r = add_opcode_rel_addr(reg, OP_PUSH, tlen); in compile_quantifier_node()
932 r = compile_tree(qn->target, reg); in compile_quantifier_node()
936 r = add_opcode(reg, OP_STATE_CHECK_PUSH); in compile_quantifier_node()
938 r = add_state_check_num(reg, ckn); in compile_quantifier_node()
940 r = add_rel_addr(reg, SIZE_OP_JUMP); in compile_quantifier_node()
943 r = add_opcode_rel_addr(reg, OP_PUSH, SIZE_OP_JUMP); in compile_quantifier_node()
947 r = add_opcode_rel_addr(reg, OP_JUMP, tlen); in compile_quantifier_node()
949 r = compile_tree(qn->target, reg); in compile_quantifier_node()
952 r = compile_range_repeat_node(qn, mod_tlen, empty_info, reg); in compile_quantifier_node()
955 r = add_opcode(reg, OP_STATE_CHECK); in compile_quantifier_node()
957 r = add_state_check_num(reg, ckn); in compile_quantifier_node()
966 compile_length_quantifier_node(QtfrNode* qn, regex_t* reg) in compile_length_quantifier_node() argument
971 int tlen = compile_length_tree(qn->target, reg); in compile_length_quantifier_node()
1031 compile_quantifier_node(QtfrNode* qn, regex_t* reg) in compile_quantifier_node() argument
1036 int tlen = compile_length_tree(qn->target, reg); in compile_quantifier_node()
1041 r = compile_tree_n_times(qn->target, qn->lower, reg); in compile_quantifier_node()
1044 if (IS_MULTILINE(reg->options)) in compile_quantifier_node()
1045 r = add_opcode(reg, OP_ANYCHAR_ML_STAR_PEEK_NEXT); in compile_quantifier_node()
1047 r = add_opcode(reg, OP_ANYCHAR_STAR_PEEK_NEXT); in compile_quantifier_node()
1049 return add_bytes(reg, NSTR(qn->next_head_exact)->s, 1); in compile_quantifier_node()
1052 if (IS_MULTILINE(reg->options)) in compile_quantifier_node()
1053 return add_opcode(reg, OP_ANYCHAR_ML_STAR); in compile_quantifier_node()
1055 return add_opcode(reg, OP_ANYCHAR_STAR); in compile_quantifier_node()
1069 r = add_opcode_rel_addr(reg, OP_JUMP, SIZE_OP_PUSH_OR_JUMP_EXACT1); in compile_quantifier_node()
1071 r = add_opcode_rel_addr(reg, OP_JUMP, SIZE_OP_PUSH_IF_PEEK_NEXT); in compile_quantifier_node()
1073 r = add_opcode_rel_addr(reg, OP_JUMP, SIZE_OP_PUSH); in compile_quantifier_node()
1076 r = add_opcode_rel_addr(reg, OP_JUMP, SIZE_OP_JUMP); in compile_quantifier_node()
1081 r = compile_tree_n_times(qn->target, qn->lower, reg); in compile_quantifier_node()
1087 r = add_opcode_rel_addr(reg, OP_PUSH_OR_JUMP_EXACT1, in compile_quantifier_node()
1090 add_bytes(reg, NSTR(qn->head_exact)->s, 1); in compile_quantifier_node()
1091 r = compile_tree_empty_check(qn->target, reg, empty_info); in compile_quantifier_node()
1093 r = add_opcode_rel_addr(reg, OP_JUMP, in compile_quantifier_node()
1097 r = add_opcode_rel_addr(reg, OP_PUSH_IF_PEEK_NEXT, in compile_quantifier_node()
1100 add_bytes(reg, NSTR(qn->next_head_exact)->s, 1); in compile_quantifier_node()
1101 r = compile_tree_empty_check(qn->target, reg, empty_info); in compile_quantifier_node()
1103 r = add_opcode_rel_addr(reg, OP_JUMP, in compile_quantifier_node()
1107 r = add_opcode_rel_addr(reg, OP_PUSH, mod_tlen + SIZE_OP_JUMP); in compile_quantifier_node()
1109 r = compile_tree_empty_check(qn->target, reg, empty_info); in compile_quantifier_node()
1111 r = add_opcode_rel_addr(reg, OP_JUMP, in compile_quantifier_node()
1116 r = add_opcode_rel_addr(reg, OP_JUMP, mod_tlen); in compile_quantifier_node()
1118 r = compile_tree_empty_check(qn->target, reg, empty_info); in compile_quantifier_node()
1120 r = add_opcode_rel_addr(reg, OP_PUSH, -(mod_tlen + (int )SIZE_OP_PUSH)); in compile_quantifier_node()
1124 r = add_opcode_rel_addr(reg, OP_JUMP, tlen); in compile_quantifier_node()
1126 r = compile_tree(qn->target, reg); in compile_quantifier_node()
1133 r = compile_tree_n_times(qn->target, qn->lower, reg); in compile_quantifier_node()
1137 r = add_opcode_rel_addr(reg, OP_PUSH, in compile_quantifier_node()
1140 r = compile_tree(qn->target, reg); in compile_quantifier_node()
1145 r = add_opcode_rel_addr(reg, OP_PUSH, SIZE_OP_JUMP); in compile_quantifier_node()
1147 r = add_opcode_rel_addr(reg, OP_JUMP, tlen); in compile_quantifier_node()
1149 r = compile_tree(qn->target, reg); in compile_quantifier_node()
1152 r = compile_range_repeat_node(qn, mod_tlen, empty_info, reg); in compile_quantifier_node()
1159 compile_length_option_node(EncloseNode* node, regex_t* reg) in compile_length_option_node() argument
1162 OnigOptionType prev = reg->options; in compile_length_option_node()
1164 reg->options = node->option; in compile_length_option_node()
1165 tlen = compile_length_tree(node->target, reg); in compile_length_option_node()
1166 reg->options = prev; in compile_length_option_node()
1179 compile_option_node(EncloseNode* node, regex_t* reg) in compile_option_node() argument
1182 OnigOptionType prev = reg->options; in compile_option_node()
1185 r = add_opcode_option(reg, OP_SET_OPTION_PUSH, node->option); in compile_option_node()
1187 r = add_opcode_option(reg, OP_SET_OPTION, prev); in compile_option_node()
1189 r = add_opcode(reg, OP_FAIL); in compile_option_node()
1193 reg->options = node->option; in compile_option_node()
1194 r = compile_tree(node->target, reg); in compile_option_node()
1195 reg->options = prev; in compile_option_node()
1199 r = add_opcode_option(reg, OP_SET_OPTION, prev); in compile_option_node()
1205 compile_length_enclose_node(EncloseNode* node, regex_t* reg) in compile_length_enclose_node() argument
1211 return compile_length_option_node(node, reg); in compile_length_enclose_node()
1214 tlen = compile_length_tree(node->target, reg); in compile_length_enclose_node()
1226 if (BIT_STATUS_AT(reg->bt_mem_end, node->regnum)) in compile_length_enclose_node()
1236 if (BIT_STATUS_AT(reg->bt_mem_start, node->regnum)) in compile_length_enclose_node()
1241 len += tlen + (BIT_STATUS_AT(reg->bt_mem_end, node->regnum) in compile_length_enclose_node()
1249 tlen = compile_length_tree(qn->target, reg); in compile_length_enclose_node()
1268 static int get_char_length_tree(Node* node, regex_t* reg, int* len);
1271 compile_enclose_node(EncloseNode* node, regex_t* reg) in compile_enclose_node() argument
1276 return compile_option_node(node, reg); in compile_enclose_node()
1282 r = add_opcode(reg, OP_CALL); in compile_enclose_node()
1284 node->call_addr = BBUF_GET_OFFSET_POS(reg) + SIZE_ABSADDR + SIZE_OP_JUMP; in compile_enclose_node()
1286 r = add_abs_addr(reg, (int )node->call_addr); in compile_enclose_node()
1288 len = compile_length_tree(node->target, reg); in compile_enclose_node()
1290 if (BIT_STATUS_AT(reg->bt_mem_end, node->regnum)) in compile_enclose_node()
1297 r = add_opcode_rel_addr(reg, OP_JUMP, len); in compile_enclose_node()
1301 if (BIT_STATUS_AT(reg->bt_mem_start, node->regnum)) in compile_enclose_node()
1302 r = add_opcode(reg, OP_MEMORY_START_PUSH); in compile_enclose_node()
1304 r = add_opcode(reg, OP_MEMORY_START); in compile_enclose_node()
1306 r = add_mem_num(reg, node->regnum); in compile_enclose_node()
1308 r = compile_tree(node->target, reg); in compile_enclose_node()
1312 if (BIT_STATUS_AT(reg->bt_mem_end, node->regnum)) in compile_enclose_node()
1313 r = add_opcode(reg, (IS_ENCLOSE_RECURSION(node) in compile_enclose_node()
1316 r = add_opcode(reg, (IS_ENCLOSE_RECURSION(node) in compile_enclose_node()
1320 r = add_mem_num(reg, node->regnum); in compile_enclose_node()
1322 r = add_opcode(reg, OP_RETURN); in compile_enclose_node()
1327 if (BIT_STATUS_AT(reg->bt_mem_end, node->regnum)) in compile_enclose_node()
1328 r = add_opcode(reg, OP_MEMORY_END_PUSH); in compile_enclose_node()
1330 r = add_opcode(reg, OP_MEMORY_END); in compile_enclose_node()
1332 r = add_mem_num(reg, node->regnum); in compile_enclose_node()
1339 r = compile_tree_n_times(qn->target, qn->lower, reg); in compile_enclose_node()
1342 len = compile_length_tree(qn->target, reg); in compile_enclose_node()
1345 r = add_opcode_rel_addr(reg, OP_PUSH, len + SIZE_OP_POP + SIZE_OP_JUMP); in compile_enclose_node()
1347 r = compile_tree(qn->target, reg); in compile_enclose_node()
1349 r = add_opcode(reg, OP_POP); in compile_enclose_node()
1351 r = add_opcode_rel_addr(reg, OP_JUMP, in compile_enclose_node()
1355 r = add_opcode(reg, OP_PUSH_STOP_BT); in compile_enclose_node()
1357 r = compile_tree(node->target, reg); in compile_enclose_node()
1359 r = add_opcode(reg, OP_POP_STOP_BT); in compile_enclose_node()
1372 compile_length_anchor_node(AnchorNode* node, regex_t* reg) in compile_length_anchor_node() argument
1378 tlen = compile_length_tree(node->target, reg); in compile_length_anchor_node()
1405 compile_anchor_node(AnchorNode* node, regex_t* reg) in compile_anchor_node() argument
1410 case ANCHOR_BEGIN_BUF: r = add_opcode(reg, OP_BEGIN_BUF); break; in compile_anchor_node()
1411 case ANCHOR_END_BUF: r = add_opcode(reg, OP_END_BUF); break; in compile_anchor_node()
1412 case ANCHOR_BEGIN_LINE: r = add_opcode(reg, OP_BEGIN_LINE); break; in compile_anchor_node()
1413 case ANCHOR_END_LINE: r = add_opcode(reg, OP_END_LINE); break; in compile_anchor_node()
1414 case ANCHOR_SEMI_END_BUF: r = add_opcode(reg, OP_SEMI_END_BUF); break; in compile_anchor_node()
1415 case ANCHOR_BEGIN_POSITION: r = add_opcode(reg, OP_BEGIN_POSITION); break; in compile_anchor_node()
1417 case ANCHOR_WORD_BOUND: r = add_opcode(reg, OP_WORD_BOUND); break; in compile_anchor_node()
1418 case ANCHOR_NOT_WORD_BOUND: r = add_opcode(reg, OP_NOT_WORD_BOUND); break; in compile_anchor_node()
1420 case ANCHOR_WORD_BEGIN: r = add_opcode(reg, OP_WORD_BEGIN); break; in compile_anchor_node()
1421 case ANCHOR_WORD_END: r = add_opcode(reg, OP_WORD_END); break; in compile_anchor_node()
1425 r = add_opcode(reg, OP_PUSH_POS); in compile_anchor_node()
1427 r = compile_tree(node->target, reg); in compile_anchor_node()
1429 r = add_opcode(reg, OP_POP_POS); in compile_anchor_node()
1433 len = compile_length_tree(node->target, reg); in compile_anchor_node()
1435 r = add_opcode_rel_addr(reg, OP_PUSH_POS_NOT, len + SIZE_OP_FAIL_POS); in compile_anchor_node()
1437 r = compile_tree(node->target, reg); in compile_anchor_node()
1439 r = add_opcode(reg, OP_FAIL_POS); in compile_anchor_node()
1445 r = add_opcode(reg, OP_LOOK_BEHIND); in compile_anchor_node()
1448 r = get_char_length_tree(node->target, reg, &n); in compile_anchor_node()
1453 r = add_length(reg, n); in compile_anchor_node()
1455 r = compile_tree(node->target, reg); in compile_anchor_node()
1462 len = compile_length_tree(node->target, reg); in compile_anchor_node()
1463 r = add_opcode_rel_addr(reg, OP_PUSH_LOOK_BEHIND_NOT, in compile_anchor_node()
1467 r = get_char_length_tree(node->target, reg, &n); in compile_anchor_node()
1472 r = add_length(reg, n); in compile_anchor_node()
1474 r = compile_tree(node->target, reg); in compile_anchor_node()
1476 r = add_opcode(reg, OP_FAIL_LOOK_BEHIND_NOT); in compile_anchor_node()
1489 compile_length_tree(Node* node, regex_t* reg) in compile_length_tree() argument
1498 r = compile_length_tree(NCAR(node), reg); in compile_length_tree()
1511 r += compile_length_tree(NCAR(node), reg); in compile_length_tree()
1520 r = compile_length_string_raw_node(NSTR(node), reg); in compile_length_tree()
1522 r = compile_length_string_node(node, reg); in compile_length_tree()
1526 r = compile_length_cclass_node(NCCLASS(node), reg); in compile_length_tree()
1546 r = ((!IS_IGNORECASE(reg->options) && br->back_static[0] <= 2) in compile_length_tree()
1562 r = compile_length_quantifier_node(NQTFR(node), reg); in compile_length_tree()
1566 r = compile_length_enclose_node(NENCLOSE(node), reg); in compile_length_tree()
1570 r = compile_length_anchor_node(NANCHOR(node), reg); in compile_length_tree()
1582 compile_tree(Node* node, regex_t* reg) in compile_tree() argument
1590 r = compile_tree(NCAR(node), reg); in compile_tree()
1599 len += compile_length_tree(NCAR(x), reg); in compile_tree()
1604 pos = reg->used + len; /* goal position */ in compile_tree()
1607 len = compile_length_tree(NCAR(node), reg); in compile_tree()
1609 r = add_opcode_rel_addr(reg, OP_PUSH, len + SIZE_OP_JUMP); in compile_tree()
1612 r = compile_tree(NCAR(node), reg); in compile_tree()
1615 len = pos - (reg->used + SIZE_OP_JUMP); in compile_tree()
1616 r = add_opcode_rel_addr(reg, OP_JUMP, len); in compile_tree()
1625 r = compile_string_raw_node(NSTR(node), reg); in compile_tree()
1627 r = compile_string_node(node, reg); in compile_tree()
1631 r = compile_cclass_node(NCCLASS(node), reg); in compile_tree()
1647 r = add_opcode(reg, op); in compile_tree()
1652 if (IS_MULTILINE(reg->options)) in compile_tree()
1653 r = add_opcode(reg, OP_ANYCHAR_ML); in compile_tree()
1655 r = add_opcode(reg, OP_ANYCHAR); in compile_tree()
1664 r = add_opcode(reg, OP_BACKREF_WITH_LEVEL); in compile_tree()
1666 r = add_option(reg, (reg->options & ONIG_OPTION_IGNORECASE)); in compile_tree()
1668 r = add_length(reg, br->nest_level); in compile_tree()
1677 if (IS_IGNORECASE(reg->options)) { in compile_tree()
1678 r = add_opcode(reg, OP_BACKREFN_IC); in compile_tree()
1680 r = add_mem_num(reg, n); in compile_tree()
1684 case 1: r = add_opcode(reg, OP_BACKREF1); break; in compile_tree()
1685 case 2: r = add_opcode(reg, OP_BACKREF2); break; in compile_tree()
1687 r = add_opcode(reg, OP_BACKREFN); in compile_tree()
1689 r = add_mem_num(reg, n); in compile_tree()
1698 if (IS_IGNORECASE(reg->options)) { in compile_tree()
1699 r = add_opcode(reg, OP_BACKREF_MULTI_IC); in compile_tree()
1702 r = add_opcode(reg, OP_BACKREF_MULTI); in compile_tree()
1709 r = add_length(reg, br->back_num); in compile_tree()
1713 r = add_mem_num(reg, p[i]); in compile_tree()
1722 r = compile_call(NCALL(node), reg); in compile_tree()
1727 r = compile_quantifier_node(NQTFR(node), reg); in compile_tree()
1731 r = compile_enclose_node(NENCLOSE(node), reg); in compile_tree()
1735 r = compile_anchor_node(NANCHOR(node), reg); in compile_tree()
1894 disable_noname_group_capture(Node** root, regex_t* reg, ScanEnv* env) in disable_noname_group_capture() argument
1928 reg->num_mem = env->num_named; in disable_noname_group_capture()
1930 return onig_renumber_name_table(reg, map); in disable_noname_group_capture()
1936 unset_addr_list_fix(UnsetAddrList* uslist, regex_t* reg) in unset_addr_list_fix() argument
1948 BBUF_WRITE(reg, offset, &addr, SIZE_ABSADDR); in unset_addr_list_fix()
2268 get_char_length_tree1(Node* node, regex_t* reg, int* len, int level) in get_char_length_tree1() argument
2278 r = get_char_length_tree1(NCAR(node), reg, &tlen, level); in get_char_length_tree1()
2289 r = get_char_length_tree1(NCAR(node), reg, &tlen, level); in get_char_length_tree1()
2291 r = get_char_length_tree1(NCAR(node), reg, &tlen2, level); in get_char_length_tree1()
2315 s += enclen(reg->enc, s); in get_char_length_tree1()
2325 r = get_char_length_tree1(qn->target, reg, &tlen, level); in get_char_length_tree1()
2337 r = get_char_length_tree1(NCALL(node)->target, reg, len, level); in get_char_length_tree1()
2361 r = get_char_length_tree1(en->target, reg, len, level); in get_char_length_tree1()
2371 r = get_char_length_tree1(en->target, reg, len, level); in get_char_length_tree1()
2391 get_char_length_tree(Node* node, regex_t* reg, int* len) in get_char_length_tree() argument
2393 return get_char_length_tree1(node, reg, len, 0); in get_char_length_tree()
2398 is_not_included(Node* x, Node* y, regex_t* reg) in is_not_included() argument
2449 if (IS_CODE_SB_WORD(reg->enc, i)) return 0; in is_not_included()
2458 if (! IS_CODE_SB_WORD(reg->enc, i)) { in is_not_included()
2521 if (ONIGENC_IS_MBC_WORD(reg->enc, xs->s, xs->end)) in is_not_included()
2535 code = ONIGENC_MBC_TO_CODE(reg->enc, xs->s, in is_not_included()
2536 xs->s + ONIGENC_MBC_MAXLEN(reg->enc)); in is_not_included()
2537 return (onig_is_code_in_cc(reg->enc, code, cc) != 0 ? 0 : 1); in is_not_included()
2573 get_head_value_node(Node* node, int exact, regex_t* reg) in get_head_value_node() argument
2594 n = get_head_value_node(NCAR(node), exact, reg); in get_head_value_node()
2605 !NSTRING_IS_RAW(node) && IS_IGNORECASE(reg->options)) { in get_head_value_node()
2620 n = get_head_value_node(qn->target, exact, reg); in get_head_value_node()
2631 OnigOptionType options = reg->options; in get_head_value_node()
2633 reg->options = NENCLOSE(node)->option; in get_head_value_node()
2634 n = get_head_value_node(NENCLOSE(node)->target, exact, reg); in get_head_value_node()
2635 reg->options = options; in get_head_value_node()
2641 n = get_head_value_node(en->target, exact, reg); in get_head_value_node()
2649 n = get_head_value_node(NANCHOR(node)->target, exact, reg); in get_head_value_node()
3042 int n = onig_name_to_group_numbers(env->reg, cn->name, cn->name_end, in setup_subexp_call()
3121 setup_look_behind(Node* node, regex_t* reg, ScanEnv* env) in setup_look_behind() argument
3126 r = get_char_length_tree(an->target, reg, &len); in setup_look_behind()
3142 next_setup(Node* node, Node* next_node, regex_t* reg) in next_setup() argument
3152 Node* n = get_head_value_node(next_node, 1, reg); in next_setup()
3163 x = get_head_value_node(qn->target, 0, reg); in next_setup()
3165 y = get_head_value_node(next_node, 0, reg); in next_setup()
3166 if (IS_NOT_NULL(y) && is_not_included(x, y, reg)) { in next_setup()
3190 update_string_node_case_fold(regex_t* reg, Node *node) in update_string_node_case_fold() argument
3206 len = ONIGENC_MBC_CASE_FOLD(reg->enc, reg->case_fold_flag, &p, end, buf); in update_string_node_case_fold()
3232 regex_t* reg) in expand_case_fold_make_rem_string() argument
3240 r = update_string_node_case_fold(reg, node); in expand_case_fold_make_rem_string()
3255 regex_t* reg, Node **rnode) in expand_case_fold_string_alt() argument
3298 len = ONIGENC_CODE_TO_MBC(reg->enc, items[i].code[j], buf); in expand_case_fold_string_alt()
3318 r = expand_case_fold_make_rem_string(&rem, q, end, reg); in expand_case_fold_string_alt()
3365 expand_case_fold_string(Node* node, regex_t* reg) in expand_case_fold_string() argument
3386 n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(reg->enc, reg->case_fold_flag, in expand_case_fold_string()
3393 SAFE_ENC_LEN(reg->enc, p, end, len); in expand_case_fold_string()
3430 r = expand_case_fold_string_alt(n, items, p, len, end, reg, &prev_node); in expand_case_fold_string()
3463 r = expand_case_fold_make_rem_string(&srem, p, end, reg); in expand_case_fold_string()
3655 setup_tree(Node* node, regex_t* reg, int state, ScanEnv* env) in setup_tree() argument
3666 r = setup_tree(NCAR(node), reg, state, env); in setup_tree()
3668 r = next_setup(prev, NCAR(node), reg); in setup_tree()
3677 r = setup_tree(NCAR(node), reg, (state | IN_ALT), env); in setup_tree()
3685 if (IS_IGNORECASE(reg->options) && !NSTRING_IS_RAW(node)) { in setup_tree()
3686 r = expand_case_fold_string(node, reg); in setup_tree()
3759 r = setup_tree(target, reg, state, env); in setup_tree()
3793 qn->head_exact = get_head_value_node(qn->target, 1, reg); in setup_tree()
3807 OnigOptionType options = reg->options; in setup_tree()
3808 reg->options = NENCLOSE(node)->option; in setup_tree()
3809 r = setup_tree(NENCLOSE(node)->target, reg, state, env); in setup_tree()
3810 reg->options = options; in setup_tree()
3819 r = setup_tree(en->target, reg, state, env); in setup_tree()
3825 r = setup_tree(target, reg, state, env); in setup_tree()
3847 r = setup_tree(an->target, reg, state, env); in setup_tree()
3850 r = setup_tree(an->target, reg, (state | IN_NOT), env); in setup_tree()
3872 r = setup_look_behind(node, reg, env); in setup_tree()
3874 r = setup_tree(an->target, reg, state, env); in setup_tree()
3884 r = setup_look_behind(node, reg, env); in setup_tree()
3886 r = setup_tree(an->target, reg, (state | IN_NOT), env); in setup_tree()
4882 set_optimize_exact_info(regex_t* reg, OptExactInfo* e) in set_optimize_exact_info() argument
4889 reg->exact = (UChar* )xmalloc(e->len); in set_optimize_exact_info()
4890 CHECK_NULL_RETURN_MEMERR(reg->exact); in set_optimize_exact_info()
4891 xmemcpy(reg->exact, e->s, e->len); in set_optimize_exact_info()
4892 reg->exact_end = reg->exact + e->len; in set_optimize_exact_info()
4893 reg->optimize = ONIG_OPTIMIZE_EXACT_IC; in set_optimize_exact_info()
4898 reg->exact = str_dup(e->s, e->s + e->len); in set_optimize_exact_info()
4899 CHECK_NULL_RETURN_MEMERR(reg->exact); in set_optimize_exact_info()
4900 reg->exact_end = reg->exact + e->len; in set_optimize_exact_info()
4903 ONIGENC_IS_ALLOWED_REVERSE_MATCH(reg->enc, reg->exact, reg->exact_end); in set_optimize_exact_info()
4906 r = set_bm_skip(reg->exact, reg->exact_end, reg->enc, in set_optimize_exact_info()
4907 reg->map, &(reg->int_map)); in set_optimize_exact_info()
4910 reg->optimize = (allow_reverse != 0 in set_optimize_exact_info()
4914 reg->optimize = ONIG_OPTIMIZE_EXACT; in set_optimize_exact_info()
4918 reg->dmin = e->mmd.min; in set_optimize_exact_info()
4919 reg->dmax = e->mmd.max; in set_optimize_exact_info()
4921 if (reg->dmin != ONIG_INFINITE_DISTANCE) { in set_optimize_exact_info()
4922 reg->threshold_len = reg->dmin + (reg->exact_end - reg->exact); in set_optimize_exact_info()
4929 set_optimize_map_info(regex_t* reg, OptMapInfo* m) in set_optimize_map_info() argument
4934 reg->map[i] = m->map[i]; in set_optimize_map_info()
4936 reg->optimize = ONIG_OPTIMIZE_MAP; in set_optimize_map_info()
4937 reg->dmin = m->mmd.min; in set_optimize_map_info()
4938 reg->dmax = m->mmd.max; in set_optimize_map_info()
4940 if (reg->dmin != ONIG_INFINITE_DISTANCE) { in set_optimize_map_info()
4941 reg->threshold_len = reg->dmin + 1; in set_optimize_map_info()
4946 set_sub_anchor(regex_t* reg, OptAncInfo* anc) in set_sub_anchor() argument
4948 reg->sub_anchor |= anc->left_anchor & ANCHOR_BEGIN_LINE; in set_sub_anchor()
4949 reg->sub_anchor |= anc->right_anchor & ANCHOR_END_LINE; in set_sub_anchor()
4953 static void print_optimize_info(FILE* f, regex_t* reg);
4957 set_optimize_info_from_tree(Node* node, regex_t* reg, ScanEnv* scan_env) in set_optimize_info_from_tree() argument
4964 env.enc = reg->enc; in set_optimize_info_from_tree()
4965 env.options = reg->options; in set_optimize_info_from_tree()
4966 env.case_fold_flag = reg->case_fold_flag; in set_optimize_info_from_tree()
4973 reg->anchor = opt.anc.left_anchor & (ANCHOR_BEGIN_BUF | in set_optimize_info_from_tree()
4976 reg->anchor |= opt.anc.right_anchor & (ANCHOR_END_BUF | ANCHOR_SEMI_END_BUF); in set_optimize_info_from_tree()
4978 if (reg->anchor & (ANCHOR_END_BUF | ANCHOR_SEMI_END_BUF)) { in set_optimize_info_from_tree()
4979 reg->anchor_dmin = opt.len.min; in set_optimize_info_from_tree()
4980 reg->anchor_dmax = opt.len.max; in set_optimize_info_from_tree()
4984 select_opt_exact_info(reg->enc, &opt.exb, &opt.exm); in set_optimize_info_from_tree()
4990 r = set_optimize_exact_info(reg, &opt.exb); in set_optimize_info_from_tree()
4991 set_sub_anchor(reg, &opt.exb.anc); in set_optimize_info_from_tree()
4996 set_optimize_map_info(reg, &opt.map); in set_optimize_info_from_tree()
4997 set_sub_anchor(reg, &opt.map.anc); in set_optimize_info_from_tree()
5000 reg->sub_anchor |= opt.anc.left_anchor & ANCHOR_BEGIN_LINE; in set_optimize_info_from_tree()
5002 reg->sub_anchor |= opt.anc.right_anchor & ANCHOR_END_LINE; in set_optimize_info_from_tree()
5006 print_optimize_info(stderr, reg); in set_optimize_info_from_tree()
5012 clear_optimize_info(regex_t* reg) in clear_optimize_info() argument
5014 reg->optimize = ONIG_OPTIMIZE_NONE; in clear_optimize_info()
5015 reg->anchor = 0; in clear_optimize_info()
5016 reg->anchor_dmin = 0; in clear_optimize_info()
5017 reg->anchor_dmax = 0; in clear_optimize_info()
5018 reg->sub_anchor = 0; in clear_optimize_info()
5019 reg->exact_end = (UChar* )NULL; in clear_optimize_info()
5020 reg->threshold_len = 0; in clear_optimize_info()
5021 if (IS_NOT_NULL(reg->exact)) { in clear_optimize_info()
5022 xfree(reg->exact); in clear_optimize_info()
5023 reg->exact = (UChar* )NULL; in clear_optimize_info()
5127 print_optimize_info(FILE* f, regex_t* reg) in print_optimize_info() argument
5132 fprintf(f, "optimize: %s\n", on[reg->optimize]); in print_optimize_info()
5133 fprintf(f, " anchor: "); print_anchor(f, reg->anchor); in print_optimize_info()
5134 if ((reg->anchor & ANCHOR_END_BUF_MASK) != 0) in print_optimize_info()
5135 print_distance_range(f, reg->anchor_dmin, reg->anchor_dmax); in print_optimize_info()
5138 if (reg->optimize) { in print_optimize_info()
5139 fprintf(f, " sub anchor: "); print_anchor(f, reg->sub_anchor); in print_optimize_info()
5144 if (reg->exact) { in print_optimize_info()
5147 for (p = reg->exact; p < reg->exact_end; p++) { in print_optimize_info()
5150 fprintf(f, "]: length: %d\n", (reg->exact_end - reg->exact)); in print_optimize_info()
5152 else if (reg->optimize & ONIG_OPTIMIZE_MAP) { in print_optimize_info()
5156 if (reg->map[i]) n++; in print_optimize_info()
5163 if (reg->map[i] != 0) { in print_optimize_info()
5166 if (ONIGENC_MBC_MAXLEN(reg->enc) == 1 && in print_optimize_info()
5167 ONIGENC_IS_CODE_PRINT(reg->enc, (OnigCodePoint )i)) in print_optimize_info()
5181 onig_free_body(regex_t* reg) in onig_free_body() argument
5183 if (IS_NOT_NULL(reg)) { in onig_free_body()
5184 if (IS_NOT_NULL(reg->p)) xfree(reg->p); in onig_free_body()
5185 if (IS_NOT_NULL(reg->exact)) xfree(reg->exact); in onig_free_body()
5186 if (IS_NOT_NULL(reg->int_map)) xfree(reg->int_map); in onig_free_body()
5187 if (IS_NOT_NULL(reg->int_map_backward)) xfree(reg->int_map_backward); in onig_free_body()
5188 if (IS_NOT_NULL(reg->repeat_range)) xfree(reg->repeat_range); in onig_free_body()
5189 if (IS_NOT_NULL(reg->chain)) onig_free(reg->chain); in onig_free_body()
5192 onig_names_free(reg); in onig_free_body()
5198 onig_free(regex_t* reg) in onig_free() argument
5200 if (IS_NOT_NULL(reg)) { in onig_free()
5201 onig_free_body(reg); in onig_free()
5202 xfree(reg); in onig_free()
5221 #define REGEX_CHAIN_HEAD(reg) do {\ argument
5222 while (IS_NOT_NULL((reg)->chain)) {\
5223 (reg) = (reg)->chain;\
5237 onig_chain_reduce(regex_t* reg) in onig_chain_reduce() argument
5241 prev = reg; in onig_chain_reduce()
5244 reg->state = ONIG_STATE_MODIFY; in onig_chain_reduce()
5250 REGEX_TRANSFER(reg, head); in onig_chain_reduce()
5255 static void print_compiled_byte_code_list P_((FILE* f, regex_t* reg));
5262 onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end, in onig_compile() argument
5276 reg->state = ONIG_STATE_COMPILING; in onig_compile()
5279 print_enc_string(stderr, reg->enc, pattern, pattern_end); in onig_compile()
5282 if (reg->alloc == 0) { in onig_compile()
5285 r = BBUF_INIT(reg, init_size); in onig_compile()
5289 reg->used = 0; in onig_compile()
5291 reg->num_mem = 0; in onig_compile()
5292 reg->num_repeat = 0; in onig_compile()
5293 reg->num_null_check = 0; in onig_compile()
5294 reg->repeat_range_alloc = 0; in onig_compile()
5295 reg->repeat_range = (OnigRepeatRange* )NULL; in onig_compile()
5297 reg->num_comb_exp_check = 0; in onig_compile()
5300 r = onig_parse_make_tree(&root, pattern, pattern_end, reg, &scan_env); in onig_compile()
5307 !ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_CAPTURE_GROUP)) { in onig_compile()
5309 r = disable_noname_group_capture(&root, reg, &scan_env); in onig_compile()
5329 reg->num_call = scan_env.num_call; in onig_compile()
5332 reg->num_call = 0; in onig_compile()
5335 r = setup_tree(root, reg, 0, &scan_env); in onig_compile()
5342 reg->capture_history = scan_env.capture_history; in onig_compile()
5343 reg->bt_mem_start = scan_env.bt_mem_start; in onig_compile()
5344 reg->bt_mem_start |= reg->capture_history; in onig_compile()
5345 if (IS_FIND_CONDITION(reg->options)) in onig_compile()
5346 BIT_STATUS_ON_ALL(reg->bt_mem_end); in onig_compile()
5348 reg->bt_mem_end = scan_env.bt_mem_end; in onig_compile()
5349 reg->bt_mem_end |= reg->capture_history; in onig_compile()
5376 reg->num_comb_exp_check = scan_env.num_comb_exp_check; in onig_compile()
5379 clear_optimize_info(reg); in onig_compile()
5381 r = set_optimize_info_from_tree(root, reg, &scan_env); in onig_compile()
5390 r = compile_tree(root, reg); in onig_compile()
5392 r = add_opcode(reg, OP_END); in onig_compile()
5395 r = unset_addr_list_fix(&uslist, reg); in onig_compile()
5401 if ((reg->num_repeat != 0) || (reg->bt_mem_end != 0)) in onig_compile()
5402 reg->stack_pop_level = STACK_POP_LEVEL_ALL; in onig_compile()
5404 if (reg->bt_mem_start != 0) in onig_compile()
5405 reg->stack_pop_level = STACK_POP_LEVEL_MEM_START; in onig_compile()
5407 reg->stack_pop_level = STACK_POP_LEVEL_FREE; in onig_compile()
5419 onig_print_names(stderr, reg); in onig_compile()
5421 print_compiled_byte_code_list(stderr, reg); in onig_compile()
5425 reg->state = ONIG_STATE_NORMAL; in onig_compile()
5451 onig_recompile(regex_t* reg, const UChar* pattern, const UChar* pattern_end, in onig_recompile() argument
5460 if (ONIG_STATE(reg) == ONIG_STATE_NORMAL) { in onig_recompile()
5461 onig_transfer(reg, new_reg); in onig_recompile()
5464 onig_chain_link_add(reg, new_reg); in onig_recompile()
5473 onig_reg_init(regex_t* reg, OnigOptionType option, in onig_reg_init() argument
5480 if (IS_NULL(reg)) in onig_reg_init()
5491 (reg)->state = ONIG_STATE_MODIFY; in onig_reg_init()
5500 (reg)->enc = enc; in onig_reg_init()
5501 (reg)->options = option; in onig_reg_init()
5502 (reg)->syntax = syntax; in onig_reg_init()
5503 (reg)->optimize = 0; in onig_reg_init()
5504 (reg)->exact = (UChar* )NULL; in onig_reg_init()
5505 (reg)->int_map = (int* )NULL; in onig_reg_init()
5506 (reg)->int_map_backward = (int* )NULL; in onig_reg_init()
5507 (reg)->chain = (regex_t* )NULL; in onig_reg_init()
5509 (reg)->p = (UChar* )NULL; in onig_reg_init()
5510 (reg)->alloc = 0; in onig_reg_init()
5511 (reg)->used = 0; in onig_reg_init()
5512 (reg)->name_table = (void* )NULL; in onig_reg_init()
5514 (reg)->case_fold_flag = case_fold_flag; in onig_reg_init()
5519 onig_new_without_alloc(regex_t* reg, const UChar* pattern, in onig_new_without_alloc() argument
5525 r = onig_reg_init(reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax); in onig_new_without_alloc()
5528 r = onig_compile(reg, pattern, pattern_end, einfo); in onig_new_without_alloc()
5533 onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end, in onig_new() argument
5539 *reg = (regex_t* )xmalloc(sizeof(regex_t)); in onig_new()
5540 if (IS_NULL(*reg)) return ONIGERR_MEMORY; in onig_new()
5542 r = onig_reg_init(*reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax); in onig_new()
5545 r = onig_compile(*reg, pattern, pattern_end, einfo); in onig_new()
5548 onig_free(*reg); in onig_new()
5549 *reg = NULL; in onig_new()
6091 print_compiled_byte_code_list(FILE* f, regex_t* reg) in print_compiled_byte_code_list() argument
6094 UChar* bp = reg->p; in print_compiled_byte_code_list()
6095 UChar* end = reg->p + reg->used; in print_compiled_byte_code_list()
6097 fprintf(f, "code length: %d\n", reg->used); in print_compiled_byte_code_list()
6102 if (bp > reg->p) { in print_compiled_byte_code_list()
6108 onig_print_compiled_byte_code(f, bp, &bp, reg->enc); in print_compiled_byte_code_list()