nfa__merge_segments_of_transition Subroutine

private pure elemental subroutine nfa__merge_segments_of_transition(self)

Type Bound

nfa_state_node_t

Arguments

Type IntentOptional Attributes Name
class(nfa_state_node_t), intent(inout) :: self

Source Code

   pure elemental subroutine nfa__merge_segments_of_transition(self)
      implicit none
      class(nfa_state_node_t), intent(inout) :: self

      integer :: j

      if(allocated(self%forward)) then
         do j = 1, self%forward_top
            if (allocated(self%forward(j)%c)) then
               call seg__sort_segments(self%forward(j)%c)
               call seg__merge_segments(self%forward(j)%c)
               self%forward(j)%c_top = size(self%forward(j)%c, dim=1)
            end if
         end do
      end if

      if (allocated(self%backward)) then
         do j = 1, self%backward_top
            if (allocated(self%backward(j)%c)) then
               call seg__sort_segments(self%backward(j)%c)
               call seg__merge_segments(self%backward(j)%c)
               self%backward(j)%c_top = size(self%backward(j)%c, dim=1)
            end if
         end do
      end if
   end subroutine nfa__merge_segments_of_transition