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:
Torsten Ruger
2018-04-08 18:51:20 +03:00
parent c2860bef7a
commit 9867234c38
6 changed files with 117 additions and 102 deletions

View File

@ -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

View File

@ -2,7 +2,7 @@ require_relative "../helper"
class FakeBuilder
attr_reader :built
def add(ins)
def add_code(ins)
@built = ins
end
end