This module defines the nfa_graph_t derived-type which represents the NFA graph.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | public | :: | entry | = | 0 | ||
| integer(kind=int32), | public | :: | exit | = | 0 | ||
| type(nfa_state_node_t), | public, | allocatable | :: | graph(:) | |||
| integer(kind=int32), | public | :: | nfa_base | = | NFA_STATE_BASE | ||
| integer(kind=int32), | public | :: | nfa_limit | = | NFA_STATE_LIMIT | ||
| integer(kind=int32), | public | :: | top | = | 0 |
| procedure, public :: build => nfa_graph__build | |
| procedure, public :: collect_epsilon_transition => nfa_graph__collect_epsilon_transition | |
| procedure, public :: disjoin => nfa_graph__disjoin | |
| procedure, public :: is_exceeded => nfa_graph__is_exceeded | |
| procedure, public :: mark_epsilon_transition => nfa_graph__mark_epsilon_transition | |
| procedure, public :: new_nfa_node => nfa_graph__new_node | |
| procedure, public :: print => nfa_graph__print | |
| procedure, public :: reallocate => nfa_graph__reallocate |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(in) | :: | self |
This subroutine updates the NFA state transitions by disjoining the segments.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(nfa_transition_t), | intent(inout) | :: | transition | |||
| type(segment_t), | intent(in) | :: | seg_list(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tree_t), | intent(in) | :: | tree | |||
| integer(kind=int32), | intent(in) | :: | idx | |||
| type(nfa_graph_t), | intent(inout) | :: | nfa | |||
| integer(kind=int32), | intent(in) | :: | entry_i | |||
| integer(kind=int32), | intent(in) | :: | exit_i |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tree_t), | intent(in) | :: | tree | |||
| integer(kind=int32), | intent(in) | :: | idx | |||
| type(nfa_graph_t), | intent(inout) | :: | nfa | |||
| integer(kind=int32), | intent(in) | :: | entry_i | |||
| integer(kind=int32), | intent(in) | :: | exit_i |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tree_t), | intent(in) | :: | tree | |||
| integer(kind=int32), | intent(in) | :: | idx | |||
| type(nfa_graph_t), | intent(inout) | :: | nfa | |||
| integer(kind=int32), | intent(in) | :: | entry_i | |||
| integer(kind=int32), | intent(in) | :: | exit_i |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(inout) | :: | self | |||
| type(tree_t), | intent(in) | :: | tree | |||
| integer(kind=int32), | intent(inout) | :: | entry_i | |||
| integer(kind=int32), | intent(inout) | :: | exit_i | |||
| type(cube_t), | intent(inout) | :: | entire |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(in) | :: | self | |||
| type(nfa_state_set_t), | intent(inout) | :: | state_set |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(inout) | :: | self | |||
| type(cube_t), | intent(inout) | :: | cube |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(in) | :: | self | |||
| type(nfa_state_set_t), | intent(inout) | :: | state_set | |||
| integer, | intent(in) | :: | idx |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(inout) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(in) | :: | self | |||
| integer(kind=int32), | intent(in) | :: | uni | |||
| integer(kind=int32), | intent(in) | :: | nfa_exit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nfa_graph_t), | intent(inout) | :: | self |