Procedures

ProcedureLocationProcedure TypeDescription
add_nfa_state forgex_nfa_state_set_m Subroutine

This subroutine adds a specified state (s) to an NFA state set state_set by setting the corresponding element in state%vec to true.

adjustl_multi_byte forgex_utf8_m Function
arg_in_segment forgex_segment_m Function

Checks if the given integer is within the specified segment.

Read more…
arg_in_segment_list forgex_segment_m Function

Check if the ginve integer is within any of specified segments in a list.

Read more…
automaton__build_nfa forgex_automaton_m Subroutine
automaton__compute_reachable_state forgex_automaton_m Function

This function calculates a set of possible NFA states from the current DFA state by the input character symbol.

Read more…
automaton__construct_dfa forgex_automaton_m Subroutine

This subroutine gets the destination index of DFA nodes from the current index with given symbol, adding a DFA node if necessary.

Read more…
automaton__deallocate forgex_automaton_m Subroutine
automaton__destination forgex_automaton_m Subroutine

This subroutine gets the next DFA nodes index from current index and symbol, and stores the result in next and next_set.

automaton__epsilon_closure forgex_automaton_m Subroutine

Compute the ε-closure for a set of NFA states.

Read more…
automaton__initialize forgex_automaton_m Subroutine

This subroutine reads tree and tree_top variable, constructs the NFA graph, and then initializes the DFA graph.

automaton__move forgex_automaton_m Function

This function returns the dfa transition object, that contains the destination index and the corresponding set of transitionable NFA state.

automaton__print_dfa forgex_automaton_m Subroutine

This subroutine prints DFA states and transitions to a given unit number.

automaton__print_info forgex_automaton_m Subroutine

This subroutine provides the automata' summarized information.

automaton__register_state forgex_automaton_m Subroutine

This subroutine takes a nfa_state_set_t type argument as input and register the set as a DFA state node in the DFA graph.

Read more…
bubble_sort forgex_sort_m Subroutine

Implementing insertion sort instead of this algorithm is considered.

build_nfa_graph forgex_nfa_node_m Subroutine
char_utf8 forgex_utf8_m Function

The char_utf8 function takes a code point as integer in Unicode character set, and returns the corresponding character as UTF-8 binary string.

Read more…
check_nfa_state forgex_nfa_state_set_m Function

This function checks if the arguement 'state' (set of NFA state) includes state 's'.

clear forgex_priority_queue_m Subroutine

The clear subroutine deallocates the queue.

collect_epsilon_transition forgex_nfa_state_set_m Subroutine

This subroutine collects all states reachable by empty transition starting from a given state set in an NFA.

compute_reachable_state forgex_dense_dfa_m Function

This function calculates a set of possible NFA states from the current DFA state.

Read more…
construct_dense_dfa forgex_dense_dfa_m Subroutine

This subroutine convert an NFA into a fully compiled DFA.

copy_dfa_transition forgex_lazy_dfa_node_m Subroutine

This subroutine copies the data of a specified transition into the variables of another dfa_transition_t.

count_token forgex_utf8_m Function

This function counts the occurrence of a spcified character(token) in a given string.

deallocate_tree forgex_syntax_tree_node_m Subroutine

This subroutine deallocate the syntax tree.

dequeue forgex_priority_queue_m Subroutine

The dequeue function takes out and returns the prior segment from the queue.

destination forgex_dense_dfa_m Subroutine

This subroutine gets the next DFA nodes index from current index, and stores the result in next and next_set. If the DFA state is already registered, it returns the index, otherwise it returns DFA_INVALID_INDEX.

dfa_state_node__add_transition forgex_lazy_dfa_node_m Subroutine

This subroutine processes to add the given transition to the list which dfa_state_node_t has.

dfa_state_node__deallocate forgex_lazy_dfa_node_m Subroutine

This subroutine deallocates the transition array of a DFA state node.

dfa_state_node__get_transition_top forgex_lazy_dfa_node_m Function

This function returns the index of top transition in the list dfa_state_node_t has.

dfa_state_node__increment_transition_top forgex_lazy_dfa_node_m Subroutine

This subroutine increments the value of top transition index.

dfa_state_node__initialize_transition_top forgex_lazy_dfa_node_m Subroutine

This subroutine initialize the top index of the transition array of the dfa node with the value of the given argument.

dfa_state_node__is_registered_transition forgex_lazy_dfa_node_m Function
dfa_state_node__reallocate_transition_forward forgex_lazy_dfa_node_m Subroutine

This subroutine performs allocating initial or additional transition arrays.

Read more…
disjoin forgex_segment_disjoin_m Interface

Interface for the procedure disjoin_kernel.

disjoin_kernel forgex_segment_disjoin_m Subroutine

Disjoins overlapping segments and creates a new list of non-overlapping segments.

Read more…
disjoin_nfa forgex_nfa_node_m Subroutine
disjoin_nfa_each_transition forgex_nfa_node_m Subroutine

This subroutine updates the NFA state transitions by disjoining the segments.

Read more…
do_matching_exactly forgex_api_internal_m Subroutine

This subroutine is intended to be called from the forgex API module.

do_matching_including forgex_api_internal_m Subroutine

This procedure reads a text, performs regular expression matching using an automaton, and stores the string index in the argument if it contains a match.

dump_tree_table forgex_syntax_tree_graph_m Subroutine
enqueue forgex_priority_queue_m Subroutine

The enqueue subroutine is responsible for allocating heap structure and holding the disjoined segment data with ascending priority order.

Read more…
equivalent_nfa_state_set forgex_nfa_state_set_m Function

This function determines if two NFA state sets (logical vectors) are equivalent.

Read more…
extract_same_part_middle forgex_syntax_tree_optimize_m Function
extract_same_part_prefix forgex_syntax_tree_optimize_m Function
extract_same_part_suffix forgex_syntax_tree_optimize_m Function
function__regex forgex Function

The function implemented for the regex_f function.

generate_nfa forgex_nfa_node_m Subroutine
generate_nfa_closure forgex_nfa_node_m Subroutine
generate_nfa_concatenate forgex_nfa_node_m Subroutine
get_entire_literal forgex_syntax_tree_optimize_m Function
get_entire_literal_internal forgex_syntax_tree_optimize_m Subroutine
get_index_list_forward forgex_utility_m Subroutine

This subroutine creates an array containing a list of the positions of the prefixes that exist in the text

get_prefix_literal forgex_syntax_tree_optimize_m Function
get_prefix_literal_internal forgex_syntax_tree_optimize_m Subroutine
get_suffix_literal forgex_syntax_tree_optimize_m Function
get_suffix_literal_internal forgex_syntax_tree_optimize_m Subroutine
get_token forgex_syntax_tree_node_m Subroutine

Get the currently focused character (1 to 4 bytes) from the entire string inside the type_t derived-type, and store the enumerator's numeric value in the current_token component. This is a type-bound procedure of tape_t.

ichar_utf8 forgex_utf8_m Function

Take a UTF-8 character as an argument and return the integer (also known as "code point" in Unicode) representing its UTF-8 binary string.

Read more…
idxutf8 forgex_utf8_m Function

This function returns the index of the end of the (multibyte) character, given the string str and the current index curr.

index_list_from_segment_list forgex_segment_disjoin_m Subroutine

Extracts a sorted list of unique indices from a list of segments.

Read more…
init_state_set forgex_nfa_state_set_m Subroutine
insertion_sort forgex_sort_m Subroutine
invert_segment_list forgex_segment_m Subroutine

This subroutine inverts a list of segment ranges representing Unicode characters. It compute the complement of the given ranges and modifies the list accordingly.

is_char_class_tree_node forgex_syntax_tree_optimize_m Function
is_exceeded forgex_nfa_node_m Function
is_first_byte_of_character forgex_utf8_m Function

This function determines if a given character is the first byte of a UTF-8 multibyte character. It takes a 1-byte character as input and returns a logical value indicating if it is the first byte of an UTF-8 binary string.

is_first_byte_of_character_array forgex_utf8_m Subroutine

This subroutine determines if each character in a given string is the first byte of a UTF-8 multibyte character. It takes a UTF-8 string and return a logical array indicating for each position if it is the first byte.

is_literal_tree_node forgex_syntax_tree_optimize_m Function
is_overlap_to_seg_list forgex_segment_disjoin_m Function

Checks if a segment overlaps with any segments in a list.

Read more…
is_prime_semgment forgex_segment_disjoin_m Function

Checks if a segment is a prime segment within a disjoined list.

Read more…
is_there_caret_at_the_top forgex_utility_m Function

This function returns .true. if the pattern contains the caret character at the top that matches the beginning of a line.

is_there_dollar_at_the_end forgex_utility_m Function

This funciton returns .true. if the pattern contains the doller character at the end that matches the ending of a line.

is_valid__in forgex_test_m Function

This function checks if a pattern is found within a string and compares the result to the correct_answer.

is_valid__match forgex_test_m Function

This function checks if a pattern matches exactly a string and compares the result to the correct answer.

is_valid__prefix forgex_test_m Function

This function checks whether the correct prefix is extracted for a given pattern.

is_valid__regex forgex_test_m Function

This function checks if a pattern matches a string using the regex function and compares the result to the expected answer.

is_valid__suffix forgex_test_m Function

This function checks whether the correct suffix is extracted for a given pattern.

is_valid_multiple_byte_character forgex_utf8_m Function
lazy_dfa__add_transition forgex_lazy_dfa_graph_m Subroutine

This subroutine construct an new transition object from the arguments, and invokes the type-bound procedure of dfa_state_node_t with it.

lazy_dfa__deallocate forgex_lazy_dfa_graph_m Subroutine

This subroutine performs deallocation of the arrays representing the DFA node transitions for every node in the DFA graph.

lazy_dfa__preprocess forgex_lazy_dfa_graph_m Subroutine

This subroutine determines the number of DFA nodes the graph has and allocate the array.

lazy_dfa__reallocate forgex_lazy_dfa_graph_m Subroutine

This subroutine performs reallocating array that represents the DFA graph.

Read more…
lazy_dfa__registered_index forgex_lazy_dfa_graph_m Function

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

len_trim_utf8 forgex_utf8_m Function

This function calculates the length of a UTF-8 string excluding tailing spaces.

Read more…
len_utf8 forgex_utf8_m Function

This function calculates the length of a UTF-8 string.

Read more…
make_atom forgex_syntax_tree_node_m Function
make_nfa_node forgex_nfa_node_m Subroutine
make_repeat_node forgex_syntax_tree_node_m Function
make_tree_node forgex_syntax_tree_node_m Function
mark_epsilon_transition forgex_nfa_state_set_m Subroutine

This subroutine recursively marks empty transitions from a given NFA state index.

match_dense_dfa_exactly forgex_dense_dfa_m Function

This procedure reads a text, performs regular expression matching using compiled DFA, and returns .true. if it matches exactly.

match_dense_dfa_including forgex_dense_dfa_m Subroutine

This procedure reads a text, performs regular expression matching using an automaton, and stores the string index in the argument if it contains a match.

merge_segments forgex_segment_m Subroutine
move forgex_dense_dfa_m Function

This function returns the dfa transition object, that contains the destination index and the corresponding set of transitionable NFA state.

next_state_dense_dfa forgex_dense_dfa_m Function

This function returns the index of the destination DFA state from the index of the current automaton DFA state array and the input symbol.

nfa__add_transition forgex_nfa_node_m Subroutine

Note that the return value of the size function on an unallocated array is undefined.

Read more…
nfa__merge_segments_of_transition forgex_nfa_node_m Subroutine
nfa__reallocate_transition_backward forgex_nfa_node_m Subroutine
nfa__reallocate_transition_forward forgex_nfa_node_m Subroutine
nfa_deallocate forgex_nfa_node_m Subroutine
nfa_graph__build forgex_nfa_graph_m Subroutine
nfa_graph__collect_epsilon_transition forgex_nfa_graph_m Subroutine
nfa_graph__deallocate forgex_nfa_graph_m Subroutine

This subroutine invokes procedure for deallocation.

nfa_graph__generate forgex_nfa_graph_m Subroutine
nfa_graph__mark_epsilon_transition forgex_nfa_graph_m Subroutine
nfa_graph__print forgex_nfa_graph_m Subroutine
operator(.in.) forgex Interface

Interface for user-defined operator of .in.

operator(.in.) forgex_segment_m Interface

This interface block provides the .in. operator, which checks whether an integer and a segment, an integer and a list of segments, or a segment and a segment, is contained in the latter, respectively.

operator(.match.) forgex Interface

Interface for user-defined operator of .match.

operator(/=) forgex_segment_m Interface

This interface block provides a not equal operator for comparing segments.

operator(==) forgex_segment_m Interface

This interface block provides a equal operator for comparing segments.

operator__in forgex Function

The function implemented for the .in. operator.

operator__match forgex Function

The function implemented for the .match. operator.

print_class_simplify forgex_syntax_tree_graph_m Function
print_nfa_state_set forgex_nfa_state_set_m Subroutine
print_tree_internal forgex_syntax_tree_graph_m Subroutine
print_tree_wrap forgex_syntax_tree_graph_m Subroutine
reallocate_nfa forgex_nfa_node_m Subroutine
reallocate_tree forgex_syntax_tree_node_m Subroutine
regex forgex Interface

The generic name for the regex subroutine implemented as procedure__regex.

regex_f forgex Interface

The generic name for the regex_f function implemented as function__regex.

register_seg_list forgex_segment_disjoin_m Subroutine

Registers a new segment into a list if it is valid.

Read more…
runner_in forgex_test_m Subroutine

This subroutine runs the is_valid__in function and prints the result.

runner_match forgex_test_m Subroutine

This subroutine runs the is_valid__match function and prints the result.

runner_prefix forgex_test_m Subroutine

This subroutine runs the is_valid_prefix function and prints the result.

runner_regex forgex_test_m Subroutine

This subroutine runs the is_valid__regex function and prints the result.

runner_suffix forgex_test_m Subroutine

This function runs the is_valid_suffix function and prints the result.

seg_in_segment forgex_segment_m Function

Check if the one segment is completely within another segment.

Read more…
seg_in_segment_list forgex_segment_m Function
segment_equivalent forgex_segment_m Function

Check if the one segment is exactly equal to another segment.

Read more…
segment_for_print forgex_segment_m Function

Converts a segment to a printable string representation.

Read more…
segment_is_valid forgex_segment_m Function

Checks if a segment is valid.

Read more…
segment_not_equiv forgex_segment_m Function

Check if two segments are not equivalent.

Read more…
set_continuation_byte forgex_utf8_m Function

This function take one byte, set the first two bits to 10, and returns one byte of the continuation part.

sort_segment_by_min forgex_segment_m Subroutine
subroutine__regex forgex Subroutine

The function implemented for the regex subroutine.

symbol_to_segment forgex_segment_m Function

This function convert an input symbol into the segment corresponding it.

tree_graph__build_syntax_tree forgex_syntax_tree_graph_m Subroutine
tree_graph__char_class forgex_syntax_tree_graph_m Subroutine
tree_graph__connect_left forgex_syntax_tree_graph_m Subroutine
tree_graph__connect_right forgex_syntax_tree_graph_m Subroutine
tree_graph__deallocate forgex_syntax_tree_graph_m Subroutine
tree_graph__get_top forgex_syntax_tree_graph_m Function
tree_graph__make_tree_caret_dollar forgex_syntax_tree_graph_m Subroutine

This function constructs a tree node for carriage return (CR) and line feed (LF) characters.

tree_graph__make_tree_crlf forgex_syntax_tree_graph_m Subroutine
tree_graph__primary forgex_syntax_tree_graph_m Subroutine
tree_graph__range forgex_syntax_tree_graph_m Subroutine
tree_graph__reallocate forgex_syntax_tree_graph_m Subroutine
tree_graph__regex forgex_syntax_tree_graph_m Subroutine
tree_graph__register_connector forgex_syntax_tree_graph_m Subroutine
tree_graph__register_node forgex_syntax_tree_graph_m Subroutine
tree_graph__shorthand forgex_syntax_tree_graph_m Subroutine

This function handles shorthand escape sequences (\t, \n, \r, \d, \D, \w, \W, \s, \S).

tree_graph__suffix_op forgex_syntax_tree_graph_m Subroutine
tree_graph__term forgex_syntax_tree_graph_m Subroutine
trim_invalid_utf8_byte forgex_utf8_m Function
update_c_top forgex_nfa_node_m Subroutine

Update c_top, which has become outdated by disjoin, to new information.

which_segment_symbol_belong forgex_segment_m Function

This function takes an array of segments and a character as arguments, and returns the segment as rank=1 array to which symbol belongs (included in the segment interval).