make mom:method_compiler a list

Compilers forms alist by Util::CompilerList
Change Collection to use the list instead of array
This commit is contained in:
2019-09-28 12:41:38 +03:00
parent aba42a6836
commit 2eb9364283
16 changed files with 58 additions and 63 deletions

View File

@ -8,7 +8,7 @@ module Mom
def get_compiler(clazz , name)
compiler = RubyX::RubyXCompiler.new(RubyX.default_test_options)
coll = compiler.ruby_to_mom( get_preload("Space.main;#{clazz}.#{name}") )
@method = coll.method_compilers.last
@method = coll.method_compilers.last_compiler
@method
end

View File

@ -12,17 +12,17 @@ module Vool
assert_equal Mom::MomCollection , @ret.class
end
def test_has_method
assert_equal Parfait::CallableMethod , @ret.method_compilers.first.get_method.class
assert_equal Parfait::CallableMethod , @ret.method_compilers.get_method.class
end
def test_method_has_block
assert @ret.method_compilers.first.get_method.blocks , "No block created"
assert @ret.method_compilers.get_method.blocks , "No block created"
end
end
class TestBlockLocal < MiniTest::Test
include MomCompile
def setup
@ret = compile_mom( as_main("self.main {|elem| local = 5 } "))
@block = @ret.method_compilers.first.get_method.blocks
@block = @ret.method_compilers.get_method.blocks
end
def test_block_arg_type
assert_equal Parfait::Type, @block.arguments_type.class

View File

@ -13,11 +13,11 @@ module Vool
assert_equal Mom::MomCollection , @ret.class
end
def test_has_compilers
assert_equal Mom::MethodCompiler , @ret.method_compilers.first.class
assert_equal Mom::MethodCompiler , @ret.method_compilers.class
end
def test_constant
assert @ret.method_compilers.first.add_constant( Parfait::Integer.new(5) )
assert @ret.method_compilers.add_constant( Parfait::Integer.new(5) )
end
end

View File

@ -20,15 +20,15 @@ module Mom
def test_method_mom_col
mom = in_test_vool()
assert_equal Mom::MomCollection , mom.class
assert_equal Mom::MethodCompiler , mom.compilers.first.class
assert_equal Mom::MethodCompiler , mom.compilers.class
end
def test_compiles_risc
compiler = in_test_vool().compilers.first.to_risc
compiler = in_test_vool().compilers.to_risc
assert_equal Risc::MethodCompiler , compiler.class
assert_equal Risc::Label , compiler.risc_instructions.class
end
def test_compiles_all_risc
compiler = in_test_vool().compilers.first.to_risc
compiler = in_test_vool().compilers.to_risc
assert_equal Risc::LoadConstant , compiler.risc_instructions.next.class
assert_equal 16 , compiler.risc_instructions.length
end

View File

@ -12,23 +12,17 @@ module Mom
assert_equal MomCollection , @comp.class
end
def test_compilers
assert_equal 3 , @comp.compilers.length
assert_equal 3 , @comp.compilers.num_compilers
end
def test_init_compilers
assert_equal Array , @comp.init_compiler.class
end
def test_init_compiler
assert_equal Mom::MethodCompiler , @comp.init_compiler.first.class
assert_equal MomCollection , @comp.init_compilers.class
end
def test_compilers_bare
assert_equal 2 , MomCollection.new.compilers.length
assert_equal 2 , MomCollection.new.compilers.num_compilers
end
def test_append_class
assert_equal MomCollection, (@comp.append @comp).class
end
def test_append_length
assert_equal 2 , @comp.append(@comp).method_compilers.length
end
end
class TestMomCollectionToRisc < MiniTest::Test
include MomCompile