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

@ -21,7 +21,7 @@ module Vool
def setup
source = "class Integer<Data4;def +(other);X.int_operator(:+);end;end;" + class_main
ret = RubyX::RubyXCompiler.new(RubyX.default_test_options).ruby_to_mom(source)
@ins = ret.compilers.find{|c|c.callable.name==:main}.mom_instructions.next
@ins = ret.compilers.find_compiler{|c|c.callable.name==:main}.mom_instructions.next
end
def test_array
check_array [MessageSetup,ArgumentTransfer,SimpleCall,SlotLoad,

View File

@ -20,8 +20,8 @@ module Vool
def setup
ret = RubyX::RubyXCompiler.new(RubyX.default_test_options).ruby_to_mom(class_main)
@compiler = ret.compilers.find{|c|c.callable.name==:some_inst}
@main = ret.compilers.find{|c|c.callable.name==:main}
@compiler = ret.compilers.find_compiler{|c|c.callable.name==:some_inst}
@main = ret.compilers.find_compiler{|c|c.callable.name==:main}
@ins = @compiler.mom_instructions.next
end
def test_class_inst

View File

@ -23,7 +23,7 @@ module Vool
def setup
source = "class Integer < Data4;def +(other);X.int_operator(:+);end;end;" + class_main
ret = RubyX::RubyXCompiler.new(RubyX.default_test_options).ruby_to_mom(source)
@ins = ret.compilers.find{|c|c.callable.name==:main}.mom_instructions.next
@ins = ret.compilers.find_compiler{|c|c.callable.name==:main}.mom_instructions.next
end
def test_array
check_array [MessageSetup,ArgumentTransfer,SimpleCall,SlotLoad,

View File

@ -39,10 +39,10 @@ module Vool
def test_mom_basic
mom = as_mom
assert_equal Mom::MomCollection , mom.class
assert_equal Mom::MethodCompiler , mom.method_compilers.first.class
assert_equal Mom::MethodCompiler , mom.method_compilers.class
end
def test_mom_instructions
mom_compiler = as_mom.method_compilers.first
mom_compiler = as_mom.method_compilers
assert_equal Mom::Label , mom_compiler.mom_instructions.class
assert_equal Mom::IntOperator , mom_compiler.mom_instructions.next.class
assert_equal Mom::SlotLoad , mom_compiler.mom_instructions.next(2).class