move most code from method_compiler to builder
rather use builder in two ways, than sometimes compiler and sometimes builder Also makes it possible to reuse builtin code in mom’s to_risc, as both use builder. The builtin code by directly adding to compiler, the mom code not.
This commit is contained in:
@ -1,13 +1,13 @@
|
||||
require_relative "../helper"
|
||||
|
||||
module Risc
|
||||
class TestBuilderBoot < MiniTest::Test
|
||||
class TestBuilderFalse < MiniTest::Test
|
||||
|
||||
def setup
|
||||
Risc.machine.boot
|
||||
init = Parfait.object_space.get_init
|
||||
@builder = Risc::MethodCompiler.new( init ).builder(false)
|
||||
@label = Risc::Label.new("source","name")
|
||||
@builder = Risc::MethodCompiler.new( init ).builder
|
||||
end
|
||||
def test_has_build
|
||||
assert @builder.respond_to?(:build)
|
||||
@ -97,4 +97,18 @@ module Risc
|
||||
assert_equal :Space , op.left.type
|
||||
end
|
||||
end
|
||||
class TestBuilderTrue < MiniTest::Test
|
||||
|
||||
def setup
|
||||
Risc.machine.boot
|
||||
@init = Parfait.object_space.get_init
|
||||
@builder = Risc::MethodCompiler.new( @init ).builder(true)
|
||||
end
|
||||
def test_inserts_built
|
||||
r1 = RiscValue.new(:r1 , :Space)
|
||||
@builder.build{ space << r1 }
|
||||
assert_equal Transfer , @init.risc_instructions.next.class , @init.risc_instructions.next
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
@ -2,7 +2,7 @@ require_relative "../helper"
|
||||
|
||||
class FakeBuilder
|
||||
attr_reader :built
|
||||
def add(ins)
|
||||
def add_code(ins)
|
||||
@built = ins
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user