This type has the entire graph of DFA states.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=int32), | public | :: | alloc_count_node | = | 0 | ||
integer(kind=int32), | public | :: | dfa_base | = | DFA_STATE_BASE | ||
integer(kind=int32), | public | :: | dfa_limit | = | DFA_STATE_UNIT | ||
integer(kind=int32), | public | :: | dfa_top | = | DFA_INVALID_INDEX | ||
type(dfa_state_node_t), | public, | allocatable | :: | nodes(:) |
This subroutine construct an new transition object from the arguments,
and invokes the type-bound procedure of dfa_state_node_t
with it.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dfa_graph_t), | intent(inout) | :: | self | |||
type(nfa_state_set_t), | intent(in) | :: | state_set | |||
integer, | intent(in) | :: | src | |||
integer, | intent(in) | :: | dst | |||
type(segment_t), | intent(in) | :: | seg |
This subroutine performs deallocation of the arrays representing the DFA node transitions for every node in the DFA graph.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dfa_graph_t), | intent(inout) | :: | self |
This subroutine determines the number of DFA nodes the graph has and allocate the array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dfa_graph_t), | intent(inout) | :: | self |
This subroutine performs reallocating array that represents the DFA graph.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dfa_graph_t), | intent(inout) | :: | self |
Returns whether the DFA state is already registered by index, or DFA_INVALID_INDEX if it is not registered.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dfa_graph_t), | intent(in) | :: | self | |||
type(nfa_state_set_t), | intent(in) | :: | set |
type, public :: dfa_graph_t !! This type has the entire graph of DFA states. type(dfa_state_node_t), allocatable :: nodes(:) integer(int32) :: dfa_base = DFA_STATE_BASE integer(int32) :: dfa_limit = DFA_STATE_UNIT integer(int32) :: dfa_top = DFA_INVALID_INDEX integer(int32) :: alloc_count_node = 0 contains procedure :: preprocess => lazy_dfa__preprocess procedure :: registered => lazy_dfa__registered_index procedure :: add_transition => lazy_dfa__add_transition procedure :: free => lazy_dfa__deallocate procedure :: reallocate => lazy_dfa__reallocate end type dfa_graph_t