indexing
description: "Non-deterministic finite state automata"
status: "See notice at end of class"
date: "$Date$"
revision: "$Revision$"
deferred class interface
NDFA
feature
dfa: FIXED_DFA
DFA
find_e_successors (source: INTEGER): LINKED_LIST [INTEGER]
require
source_in_automaton: source >= 1 and source <= nb_states
find_successors (source, input_doc: INTEGER): LINKED_LIST [INTEGER]
sourceinput_doc
require
source_in_automaton: source >= 1 and source <= nb_states
possible_input_doc: input_doc >= 0 and input_doc <= greatest_input
greatest_input: INTEGER
AUTOMATON
start_number: INTEGER
AUTOMATON
feature
nb_states: INTEGER
AUTOMATON
feature
set_final (state, f: INTEGER)
statef
AUTOMATON
set_start (n: INTEGER)
n
AUTOMATON
require AUTOMATON
no_other_start: start_number = 0 or start_number = n
is_in_automaton: n <= nb_states and n >= 1
set_state
AUTOMATON
feature
set_e_transition (source, target: INTEGER)
sourcetarget
require
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
set_transition (source, input_doc, target: INTEGER)
sourcetargetinput_doc
require AUTOMATON
True
require else
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
possible_input_doc: input_doc >= 0 and input_doc <= greatest_input
feature
delete_transition (source, input_doc, target: INTEGER)
sourcetargetinput_doc
require
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
possible_input_doc: input_doc >= 0 and input_doc <= greatest_input
feature
construct_dfa
require
start_number_designated: start_number > 0
invariant
ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
end -- NDFA