Class: Kumi::IR::Testing::SnastFactory::ModuleBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/kumi/ir/testing/snast_factory.rb

Instance Method Summary collapse

Constructor Details

#initializeModuleBuilder

Returns a new instance of ModuleBuilder.



128
129
130
# File 'lib/kumi/ir/testing/snast_factory.rb', line 128

def initialize
  @decls = {}
end

Instance Method Details

#buildObject



139
140
141
# File 'lib/kumi/ir/testing/snast_factory.rb', line 139

def build
  SnastFactory.snast_module(@decls)
end

#declaration(name, **opts, &block) ⇒ Object

Raises:

  • (ArgumentError)


132
133
134
135
136
137
# File 'lib/kumi/ir/testing/snast_factory.rb', line 132

def declaration(name, **opts, &block)
  raise ArgumentError, "declaration requires block" unless block

  body = block.call
  @decls[name.to_sym] = SnastFactory.declaration(name, body:, **opts)
end