Class: Kumi::IR::Base::Block

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/kumi/ir/base/block.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, instructions: []) ⇒ Block

Returns a new instance of Block.



11
12
13
14
# File 'lib/kumi/ir/base/block.rb', line 11

def initialize(name:, instructions: [])
  @name = name.to_sym
  @instructions = instructions.dup
end

Instance Attribute Details

#instructionsObject (readonly)

Returns the value of attribute instructions.



9
10
11
# File 'lib/kumi/ir/base/block.rb', line 9

def instructions
  @instructions
end

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/kumi/ir/base/block.rb', line 9

def name
  @name
end

Instance Method Details

#append(instr) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
23
24
# File 'lib/kumi/ir/base/block.rb', line 20

def append(instr)
  raise ArgumentError, "instruction required" unless instr.is_a?(Instruction)
  @instructions << instr
  instr
end

#each(&block) ⇒ Object



16
17
18
# File 'lib/kumi/ir/base/block.rb', line 16

def each(&block)
  @instructions.each(&block)
end

#empty?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/kumi/ir/base/block.rb', line 26

def empty?
  @instructions.empty?
end