This module defines a derived-type dfa_graph_t that contains all the states of the DFA.
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(:) |
| generic, public :: add_transition => lazy_dfa__add_transition, dense_dfa__add_transition | |
| procedure, public :: dense_dfa__add_transition | |
| procedure, public :: lazy_dfa__add_transition | |
| procedure, public :: preprocess => lazy_dfa__preprocess | |
| procedure, public :: reallocate => lazy_dfa__reallocate | |
| procedure, public :: registered => lazy_dfa__registered_index |
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 | 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(cube_t), | intent(in) | :: | cube |
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 | |||
| character(len=*), | intent(in) | :: | symbol |
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 |