class Kleene::NFA
def initialize(start_state, alphabet = DEFAULT_ALPHABET, transitions = Hash.new, initial_states = nil)
def initialize(start_state, alphabet = DEFAULT_ALPHABET, transitions = Hash.new, initial_states = nil) @start_state = start_state @transitions = transitions @alphabet = alphabet + all_transitions.map(&:token) @states = initial_states || reachable_states(start_state) @current_states = Set.new @final_states = Set.new update_final_states reset_current_states end