Module: MilkTea::Lowering

Defined in:
lib/milk_tea/core/lowering.rb,
lib/milk_tea/core/lowering/dyn.rb,
lib/milk_tea/core/lowering/proc.rb,
lib/milk_tea/core/lowering/block.rb,
lib/milk_tea/core/lowering/calls.rb,
lib/milk_tea/core/lowering/loops.rb,
lib/milk_tea/core/lowering/scans.rb,
lib/milk_tea/core/lowering/utils.rb,
lib/milk_tea/core/lowering/events.rb,
lib/milk_tea/core/lowering/resolve.rb,
lib/milk_tea/core/lowering/functions.rb,
lib/milk_tea/core/lowering/str_buffer.rb,
lib/milk_tea/core/lowering/expressions.rb,
lib/milk_tea/core/lowering/declarations.rb,
lib/milk_tea/core/lowering/foreign_cstr.rb,
lib/milk_tea/core/lowering/async/analysis.rb,
lib/milk_tea/core/lowering/async/frame_builder.rb,
lib/milk_tea/core/lowering/async/normalization.rb,
lib/milk_tea/core/lowering/async/async_lowering.rb

Defined Under Namespace

Modules: Async, Block, Calls, Declarations, Dyn, Events, Expressions, ForeignCstr, Functions, Loops, Proc, Resolve, Scans, StrBuffer, Utils

Class Method Summary collapse

Class Method Details

.lower(program) ⇒ Object



65
66
67
68
69
# File 'lib/milk_tea/core/lowering.rb', line 65

def self.lower(program)
  lowerer = Lowerer.new(program)
  ir_program, _modules, _synths = lowerer.lower_and_assemble
  ir_program
end

.lower_incremental(program, cached: nil, cached_synthetics: nil) ⇒ Object



71
72
73
74
# File 'lib/milk_tea/core/lowering.rb', line 71

def self.lower_incremental(program, cached: nil, cached_synthetics: nil)
  lowerer = Lowerer.new(program)
  lowerer.lower_and_assemble(cached:, cached_synthetics:)
end