class Kleene::State

def self.new_error_state(final = false)

def self.new_error_state(final = false)
  State.new(final, true)
end

def self.next_id

def self.next_id
  @@next_id += 1
end

def dup

def dup
  State.new(@final, @error, nil)
end

def error?

is this an error state?
def error?
  @error
end

def final?

is this a final state?
def final?
  @final
end

def initialize(final = false, error = false, id = nil)

def initialize(final = false, error = false, id = nil)
  @final = final
  @error = error
  @id = id || State.next_id
end

def to_s

def to_s
  "State{id: #{id}, final: #{final}, error: #{error}}"
end