lazy_dfa__registered_index Function

private pure function lazy_dfa__registered_index(self, set) result(res)

Returns whether the DFA state is already registered by index, or DFA_INVALID_INDEX if it is not registered.

Type Bound

dfa_graph_t

Arguments

Type IntentOptional Attributes Name
class(dfa_graph_t), intent(in) :: self
type(nfa_state_set_t), intent(in) :: set

Return Value integer(kind=int32)


Source Code

   pure function lazy_dfa__registered_index(self, set) result(res)
      use :: forgex_nfa_state_set_m
      implicit none
      class(dfa_graph_t), intent(in) :: self
      type(nfa_state_set_t), intent(in) :: set
      integer(int32) :: res

      integer(int32) :: i
      logical :: is_registered

      ! Initialize the result variable.
      res = DFA_INVALID_INDEX

      do i = DFA_INITIAL_INDEX, self%dfa_top
         if (.not. allocated(self%nodes(i)%nfa_set%vec)) cycle
         is_registered = equivalent_nfa_state_set(self%nodes(i)%nfa_set, set)
         if (is_registered) then
            res = i
            return
         end if
      end do
   end function lazy_dfa__registered_index