39 lines
785 B
Ruby
39 lines
785 B
Ruby
module Risc
|
|
class FakeCallable
|
|
def self_type
|
|
Parfait.object_space.types.values.first
|
|
end
|
|
def name
|
|
:fake_name
|
|
end
|
|
end
|
|
def self.test_compiler(label = SlotMachine::Label.new("start","start_label"))
|
|
CallableCompiler.new( FakeCallable.new , label)
|
|
end
|
|
class FakeCompiler
|
|
attr_reader :instructions
|
|
def initialize
|
|
@instructions = []
|
|
end
|
|
def add_code(c)
|
|
@instructions << c
|
|
end
|
|
def current
|
|
@instructions.last
|
|
end
|
|
def slot_type(slot,type)
|
|
type.type_for(slot)
|
|
end
|
|
def resolve_type(name)
|
|
Parfait.object_space.types.values.first
|
|
end
|
|
def use_reg(type , extra = {})
|
|
RegisterValue.new(:r1 , type)
|
|
end
|
|
def reset_regs
|
|
end
|
|
def add_constant(c)
|
|
end
|
|
end
|
|
end
|