Class: Kleene::State

Inherits:
Object
  • Object
show all
Defined in:
lib/kleene/kleene.rb

Constant Summary collapse

@@next_id =
0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(final = false, error = false, id = nil) ⇒ State

Returns a new instance of State.



36
37
38
39
40
# File 'lib/kleene/kleene.rb', line 36

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

Instance Attribute Details

#errorObject

: Bool



34
35
36
# File 'lib/kleene/kleene.rb', line 34

def error
  @error
end

#finalObject

: Bool



33
34
35
# File 'lib/kleene/kleene.rb', line 33

def final
  @final
end

#idObject (readonly)

: Int32



32
33
34
# File 'lib/kleene/kleene.rb', line 32

def id
  @id
end

Class Method Details

.new_error_state(final = false) ⇒ Object



27
28
29
# File 'lib/kleene/kleene.rb', line 27

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

.next_idObject



23
24
25
# File 'lib/kleene/kleene.rb', line 23

def self.next_id
  @@next_id += 1
end

Instance Method Details

#dupObject



52
53
54
# File 'lib/kleene/kleene.rb', line 52

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

#error?Boolean

is this an error state?

Returns:

  • (Boolean)


43
44
45
# File 'lib/kleene/kleene.rb', line 43

def error?
  @error
end

#final?Boolean

is this a final state?

Returns:

  • (Boolean)


48
49
50
# File 'lib/kleene/kleene.rb', line 48

def final?
  @final
end

#to_sObject



56
57
58
# File 'lib/kleene/kleene.rb', line 56

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