Method: Kleene::NFA#initialize

Defined in:
lib/kleene/nfa.rb

#initialize(start_state, alphabet = DEFAULT_ALPHABET, transitions = Hash.new, initial_states = nil) ⇒ NFA

Returns a new instance of NFA.



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/kleene/nfa.rb', line 33

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