Also make risc compilers a linked lists

also via util::compiler_ist
leave collection as much in place as possible
(though collections and seperate block_compilers are about to go)
This commit is contained in:
2019-09-28 15:07:20 +03:00
parent 2eb9364283
commit 9f81d78767
10 changed files with 49 additions and 29 deletions

View File

@ -13,11 +13,11 @@ module Mom
assert_equal Risc::RiscCollection, @risc.class
end
def test_main_compiler
assert_equal :main , @risc.method_compilers.first.callable.name
assert_equal :main , @risc.method_compilers.callable.name
end
def test_main_block_compiler
assert_equal :main , @risc.method_compilers.first.block_compilers.first.in_method.name
assert_equal :main_block , @risc.method_compilers.first.block_compilers.first.callable.name
assert_equal :main , @risc.method_compilers.block_compilers.first.in_method.name
assert_equal :main_block , @risc.method_compilers.block_compilers.first.callable.name
end
end
class TestBlockCompiler2 < MiniTest::Test
@ -32,11 +32,11 @@ module Mom
assert_equal Risc::RiscCollection, @risc.class
end
def test_main_compiler
assert_equal :main , @risc.method_compilers.first.callable.name
assert_equal :main , @risc.method_compilers.callable.name
end
def test_main_block_compiler
assert_equal :main , @risc.method_compilers.first.block_compilers.first.in_method.name
assert_equal :main_block , @risc.method_compilers.first.block_compilers.first.callable.name
assert_equal :main , @risc.method_compilers.block_compilers.first.in_method.name
assert_equal :main_block , @risc.method_compilers.block_compilers.first.callable.name
end
end
end

View File

@ -32,14 +32,14 @@ module Mom
@collection = @comp.to_risc()
end
def compiler
@collection.method_compilers.first
@collection.method_compilers
end
def test_has_to_risc
assert_equal Risc::RiscCollection, @collection.class
end
def test_has_risc_compiler
assert_equal Risc::MethodCompiler, compiler.class
assert_equal 3, @collection.method_compilers.length
assert_equal 3, @collection.method_compilers.num_compilers
end
def test_has_risc_instructions
assert_equal Risc::Label, compiler.risc_instructions.class