fix platform derivation and some tests

This commit is contained in:
Torsten Ruger 2018-07-01 21:27:27 +03:00
parent bb49f1be78
commit 5f2a256608
6 changed files with 17 additions and 10 deletions

View File

@ -1,6 +1,6 @@
require_relative "translator"
module Arm
class ArmPlatform
class ArmPlatform < Risc::Platform
def translator
Translator.new
end

View File

@ -1,6 +1,6 @@
module Risc
class InterpreterPlatform
class InterpreterPlatform < Platform
def translator
IdentityTranslator.new
end

View File

@ -13,7 +13,13 @@ module Risc
include Util::Logging
log_level :info
def initialize
def initialize(platform)
if(platform.is_a?(Symbol))
platform = platform.to_s.capitalize
platform = Risc::Platform.for(platform)
end
raise "Platform must be platform, not #{platform.class}" unless platform.is_a?(Platform)
@platform = platform
@risc_init = nil
@constants = []
end

View File

@ -27,9 +27,9 @@ module RubyX
def ruby_to_binary(platform = :arm)
Parfait.boot!
Risc.boot!
assemblers = ruby_to_mom(platform)
assemblers = ruby_to_mom
puts "Assemblers #{assemblers}"
linker = Linker.new
linker = Risc::Linker.new(platform)
linker.position_all
linker.create_binary
end

View File

@ -6,7 +6,7 @@ module Risc
def setup
Parfait.boot!
Risc.boot!
@machine = Linker.new
@machine = Linker.new(:arm)
end
def test_objects
objects = @machine.object_positions
@ -20,11 +20,12 @@ module Risc
assert @machine.add_constant( Parfait::Integer.new(5) )
end
end
class TestMachinePos #< MiniTest::Test
class TestMachinePos < MiniTest::Test
def setup
Parfait.boot!
@machine = Risc.machine.boot
@machine.translate(:arm)
Risc.boot!
@linker = Linker.new(:arm)
@linker.translate
@machine.position_all
end
def test_positions_set

View File

@ -9,7 +9,7 @@ module Risc
def setup
Parfait.boot!
Risc.boot!
RubyX::RubyXCompiler.ruby_to_binary( @string_input , :interpreter)
RubyX::RubyXCompiler.new(@string_input).ruby_to_binary( :interpreter)
@interpreter = Interpreter.new
@interpreter.start_machine
end