Class: Kumi::Core::Analyzer::Passes::LIR::KernelBindingPass

Inherits:
PassBase
  • Object
show all
Defined in:
lib/kumi/core/analyzer/passes/lir/kernel_binding_pass.rb

Instance Method Summary collapse

Methods inherited from PassBase

#debug, #debug_enabled?, #initialize

Methods included from ErrorReporting

#inferred_location, #raise_localized_error, #raise_syntax_error, #raise_type_error, #report_enhanced_error, #report_error, #report_semantic_error, #report_syntax_error, #report_type_error

Constructor Details

This class inherits a constructor from Kumi::Core::Analyzer::Passes::PassBase

Instance Method Details

#run(_errors) ⇒ Object

In: state, state Out: state, state



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/kumi/core/analyzer/passes/lir/kernel_binding_pass.rb', line 11

def run(_errors)
  lir_decls = get_state(:lir_module)
  registry = get_state(:registry)

  # Generate binding manifest from the final LIR
  manifest_ruby = Binder.bind(lir_decls, registry, target: :ruby)
  manifest_js = Binder.bind(lir_decls, registry, target: :javascript)
  manifest = {
    ruby: manifest_ruby,
    javascript: manifest_js
  }

  state.with(:binding_manifest, manifest)
end