• Home
  • Raw
  • Download

Lines Matching refs:tnfa

47 		const tre_tnfa_t *tnfa, regoff_t *tags, regoff_t match_eo);
82 #define CHECK_CHAR_CLASSES(trans_i, tnfa, eflags) \ argument
84 && !(tnfa->cflags & REG_ICASE) \
87 && (tnfa->cflags & REG_ICASE) \
92 tnfa->cflags & REG_ICASE)))
170 tre_tnfa_run_parallel(const tre_tnfa_t *tnfa, const void *string, in tre_tnfa_run_parallel() argument
184 int reg_newline = tnfa->cflags & REG_NEWLINE; in tre_tnfa_run_parallel()
206 num_tags = tnfa->num_tags; in tre_tnfa_run_parallel()
217 if (num_tags > SIZE_MAX/(8 * sizeof(regoff_t) * tnfa->num_states)) in tre_tnfa_run_parallel()
221 if (tnfa->num_states+1 > SIZE_MAX/(8 * sizeof(*reach_next))) in tre_tnfa_run_parallel()
225 if (tnfa->num_states > SIZE_MAX/(8 * sizeof(*reach_pos))) in tre_tnfa_run_parallel()
230 rbytes = sizeof(*reach_next) * (tnfa->num_states + 1); in tre_tnfa_run_parallel()
231 pbytes = sizeof(*reach_pos) * tnfa->num_states; in tre_tnfa_run_parallel()
235 + (rbytes + xbytes * tnfa->num_states) * 2 + tbytes + pbytes; in tre_tnfa_run_parallel()
255 for (i = 0; i < tnfa->num_states; i++) in tre_tnfa_run_parallel()
264 for (i = 0; i < tnfa->num_states; i++) in tre_tnfa_run_parallel()
276 trans_i = tnfa->initial; in tre_tnfa_run_parallel()
299 if (reach_next_i->state == tnfa->final) in tre_tnfa_run_parallel()
333 if (tnfa->num_minimals && new_match) in tre_tnfa_run_parallel()
340 for (i = 0; tnfa->minimal_tags[i] >= 0; i += 2) in tre_tnfa_run_parallel()
342 int end = tnfa->minimal_tags[i]; in tre_tnfa_run_parallel()
343 int start = tnfa->minimal_tags[i + 1]; in tre_tnfa_run_parallel()
387 || CHECK_CHAR_CLASSES(trans_i, tnfa, eflags))) in tre_tnfa_run_parallel()
414 if (reach_next_i->state == tnfa->final in tre_tnfa_run_parallel()
433 if (tre_tag_order(num_tags, tnfa->tag_directions, in tre_tnfa_run_parallel()
440 if (trans_i->state == tnfa->final) in tre_tnfa_run_parallel()
545 sizeof(*tags) * tnfa->num_tags); \
567 for (i = 0; i < tnfa->num_tags; i++) \
582 for (i = 0; i < tnfa->num_tags; i++) \
593 tre_tnfa_run_backtrack(const tre_tnfa_t *tnfa, const void *string, in tre_tnfa_run_backtrack() argument
606 int reg_newline = tnfa->cflags & REG_NEWLINE; in tre_tnfa_run_backtrack()
652 if (tnfa->num_tags) in tre_tnfa_run_backtrack()
654 tags = xmalloc(sizeof(*tags) * tnfa->num_tags); in tre_tnfa_run_backtrack()
661 if (tnfa->num_submatches) in tre_tnfa_run_backtrack()
663 pmatch = xmalloc(sizeof(*pmatch) * tnfa->num_submatches); in tre_tnfa_run_backtrack()
670 if (tnfa->num_states) in tre_tnfa_run_backtrack()
672 states_seen = xmalloc(sizeof(*states_seen) * tnfa->num_states); in tre_tnfa_run_backtrack()
683 for (i = 0; i < tnfa->num_tags; i++) in tre_tnfa_run_backtrack()
689 for (i = 0; i < tnfa->num_states; i++) in tre_tnfa_run_backtrack()
705 for (trans_i = tnfa->initial; trans_i->state; trans_i++) in tre_tnfa_run_backtrack()
744 if (state == tnfa->final) in tre_tnfa_run_backtrack()
749 && tre_tag_order(tnfa->num_tags, tnfa->tag_directions, in tre_tnfa_run_backtrack()
756 for (i = 0; i < tnfa->num_tags; i++) in tre_tnfa_run_backtrack()
779 tre_fill_pmatch(bt + 1, pmatch, tnfa->cflags & ~REG_NOSUB, in tre_tnfa_run_backtrack()
780 tnfa, tags, pos); in tre_tnfa_run_backtrack()
829 || CHECK_CHAR_CLASSES(trans_i, tnfa, eflags))) in tre_tnfa_run_backtrack()
931 const tre_tnfa_t *tnfa, regoff_t *tags, regoff_t match_eo) in tre_fill_pmatch() argument
941 submatch_data = tnfa->submatch_data; in tre_fill_pmatch()
942 while (i < tnfa->num_submatches && i < nmatch) in tre_fill_pmatch()
944 if (submatch_data[i].so_tag == tnfa->end_tag) in tre_fill_pmatch()
949 if (submatch_data[i].eo_tag == tnfa->end_tag) in tre_fill_pmatch()
964 while (i < tnfa->num_submatches && i < nmatch) in tre_fill_pmatch()
999 tre_tnfa_t *tnfa = (void *)preg->TRE_REGEX_T_FIELD; in regexec() local
1002 if (tnfa->cflags & REG_NOSUB) nmatch = 0; in regexec()
1003 if (tnfa->num_tags > 0 && nmatch > 0) in regexec()
1005 tags = xmalloc(sizeof(*tags) * tnfa->num_tags); in regexec()
1011 if (tnfa->have_backrefs) in regexec()
1014 status = tre_tnfa_run_backtrack(tnfa, string, tags, eflags, &eo); in regexec()
1019 status = tre_tnfa_run_parallel(tnfa, string, tags, eflags, &eo); in regexec()
1024 tre_fill_pmatch(nmatch, pmatch, tnfa->cflags, tnfa, tags, eo); in regexec()