Lines Matching defs:dfa
172 /// the `dfa` instructions or the `dfa_reverse` instructions from
455 let cache = &mut cache.dfa;
456 let mut dfa = Fsm {
465 let (empty_flags, state_flags) = dfa.start_flags(text, at);
466 dfa.start =
467 match dfa.start_state(&mut cache.qcur, empty_flags, state_flags) {
472 debug_assert!(dfa.start != STATE_UNKNOWN);
473 dfa.exec_at(&mut cache.qcur, &mut cache.qnext, text)
486 let mut dfa = Fsm {
495 let (empty_flags, state_flags) = dfa.start_flags_reverse(text, at);
496 dfa.start =
497 match dfa.start_state(&mut cache.qcur, empty_flags, state_flags) {
502 debug_assert!(dfa.start != STATE_UNKNOWN);
503 dfa.exec_at_reverse(&mut cache.qcur, &mut cache.qnext, text)
516 let cache = &mut cache.dfa;
517 let mut dfa = Fsm {
526 let (empty_flags, state_flags) = dfa.start_flags(text, at);
527 dfa.start =
528 match dfa.start_state(&mut cache.qcur, empty_flags, state_flags) {
533 debug_assert!(dfa.start != STATE_UNKNOWN);
534 let result = dfa.exec_at(&mut cache.qcur, &mut cache.qnext, text);
539 debug_assert!(dfa.last_match_si != STATE_UNKNOWN);
540 debug_assert!(dfa.last_match_si != STATE_DEAD);
541 for ip in dfa.state(dfa.last_match_si).inst_ptrs() {
542 if let Inst::Match(slot) = dfa.prog[ip] {