Class: Kumi::Core::Analyzer::Passes::Codegen::Loop::Ruby::Emitter
- Inherits:
-
Object
- Object
- Kumi::Core::Analyzer::Passes::Codegen::Loop::Ruby::Emitter
- Defined in:
- lib/kumi/core/analyzer/passes/codegen/loop/ruby/emitter.rb
Overview
Serializes LoopIR into Ruby. Every opcode maps to a fixed syntax shape; all semantic decisions were made by Loop::Lower.
Instance Method Summary collapse
- #emit(loop_module, schema_digest:) ⇒ Object
-
#initialize(registry) ⇒ Emitter
constructor
A new instance of Emitter.
Constructor Details
#initialize(registry) ⇒ Emitter
Returns a new instance of Emitter.
13 14 15 16 17 |
# File 'lib/kumi/core/analyzer/passes/codegen/loop/ruby/emitter.rb', line 13 def initialize(registry) @registry = registry @buffer = OutputBuffer.new @helper_kernels = [] end |
Instance Method Details
#emit(loop_module, schema_digest:) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/kumi/core/analyzer/passes/codegen/loop/ruby/emitter.rb', line 19 def emit(loop_module, schema_digest:) @buffer.reset! @buffer.emit_header(schema_digest) loop_module.each_function do |fn| emit_function(fn) end emit_helpers @buffer. @buffer.to_s end |