This subroutine collects all states reachable by empty transition starting from a given state set in an NFA.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(nfa_state_node_t), | intent(in) | :: | nfa_graph(:) | |||
integer(kind=int32), | intent(in) | :: | nfa_top | |||
type(nfa_state_set_t), | intent(inout) | :: | nfa_set |
pure subroutine collect_epsilon_transition(nfa_graph, nfa_top, nfa_set) use :: forgex_nfa_node_m, only: nfa_state_node_t implicit none type(nfa_state_node_t), intent(in) :: nfa_graph(:) integer(int32), intent(in) :: nfa_top type(nfa_state_set_t), intent(inout) :: nfa_set integer(int32) :: ii do ii = NFA_STATE_BASE+1, nfa_top if (check_nfa_state(nfa_set, ii)) then call mark_epsilon_transition(nfa_graph, nfa_top, nfa_set, ii) end if end do end subroutine collect_epsilon_transition