remove the code_builder

this is core of #11
rename compiler_builder to just builder
and change all builder uses to use that
some test change as code is not returned anymore
This commit is contained in:
Torsten Ruger
2018-08-19 13:16:07 +03:00
parent b294208025
commit 57dc6c45bb
10 changed files with 44 additions and 93 deletions

View File

@ -7,8 +7,12 @@ module Risc
Parfait.boot!
Risc.boot!
init = Parfait.object_space.get_init
@builder = Risc::MethodCompiler.new( init ).code_builder(init)
@builder = Risc::MethodCompiler.new( init ).builder(init)
@label = Risc.label("source","name")
@start = @builder.compiler.current
end
def built
@start.next
end
def test_has_build
assert @builder.respond_to?(:build)
@ -36,34 +40,34 @@ module Risc
end
def test_returns_built
r1 = RegisterValue.new(:r1 , :Space)
built = @builder.build{ space! << r1 }
@builder.build{ space! << r1 }
assert_equal Transfer , built.class
end
def test_returns_two
r1 = RegisterValue.new(:r1 , :Space)
built = @builder.build{ space! << r1 ; space << r1}
@builder.build{ space! << r1 ; space << r1}
assert_equal Transfer , built.next.class
end
def test_returns_slot
r2 = RegisterValue.new(:r2 , :Message).set_builder( @builder )
built = @builder.build{ r2 << space![:next_message] }
@builder.build{ r2 << space![:next_message] }
assert_equal SlotToReg , built.class
assert_equal :r1 , built.array.symbol
end
def test_returns_slot_reverse
r2 = RegisterValue.new(:r2 , :Message).set_builder( @builder )
built = @builder.build{ r2 << space![:next_message] }
@builder.build{ r2 << space![:next_message] }
assert_equal SlotToReg , built.class
assert_equal :r1 , built.array.symbol
end
def test_reuses_names
r1 = RegisterValue.new(:r1 , :Space)
built = @builder.build{ space! << r1 ; space << r1}
@builder.build{ space! << r1 ; space << r1}
assert_equal built.to.symbol , built.next.to.symbol
end
def test_uses_message_as_message
r1 = RegisterValue.new(:r1 , :Space)
built = @builder.build{ message[:receiver] << r1}
@builder.build{ message[:receiver] << r1}
assert_equal RegToSlot , built.class
assert_equal :r0 , built.array.symbol
end

View File

@ -8,7 +8,7 @@ module Risc
Risc.boot!
@init = Parfait.object_space.get_init
@compiler = Risc::MethodCompiler.new( @init )
@builder = @compiler.compiler_builder(@init)
@builder = @compiler.builder(@init)
end
def test_inserts_built
r1 = RegisterValue.new(:r1 , :Space)

View File

@ -8,7 +8,7 @@ module Risc
Risc.boot!
@init = Parfait.object_space.get_init
@compiler = Risc::MethodCompiler.new( @init )
@builder = @compiler.compiler_builder(@init)
@builder = @compiler.builder(@init)
end
def test_list
assert_equal :List , @builder.infer_type(:list).class_name