From 11cdb5872acb9d8e32a23f72cb8040c56f4139d0 Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Tue, 3 Jul 2018 19:16:12 +0300 Subject: [PATCH] adjust to rubyx layers no global machine and positions also small layout changes --- assets/css/app.css.sass | 3 ++- lib/debugger.js.rb | 5 +++-- lib/views/left_view.rb | 6 ++---- lib/views/object_view.rb | 3 +-- lib/views/ref_view.rb | 6 +----- lib/views/vool_view.rb | 3 +-- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/assets/css/app.css.sass b/assets/css/app.css.sass index 1243e7b..a5ff7ac 100644 --- a/assets/css/app.css.sass +++ b/assets/css/app.css.sass @@ -24,7 +24,8 @@ body .mom_view width: 16% margin-left: 1% - + overflow-x: hidden + .risc_view width: 34% margin-left: 1% diff --git a/lib/debugger.js.rb b/lib/debugger.js.rb index 8d9b158..817e552 100644 --- a/lib/debugger.js.rb +++ b/lib/debugger.js.rb @@ -40,8 +40,9 @@ class MainView < ListView include AST::Sexp def initialize - Risc.machine.boot - @interpreter = Risc::Interpreter.new + input = "class Space;def main(arg); return 1; end; end" + linker = RubyX::RubyXCompiler.new(input).ruby_to_binary(:interpreter) + @interpreter = Risc::Interpreter.new(linker) super( [LeftView.new(@interpreter) , VoolView.new(@interpreter) , MomView.new(@interpreter) , diff --git a/lib/views/left_view.rb b/lib/views/left_view.rb index 8b589a5..6879110 100644 --- a/lib/views/left_view.rb +++ b/lib/views/left_view.rb @@ -57,13 +57,11 @@ class SelectView < ElementView def select( code ) puts "selecting #{code}" - Risc.machine.boot @interpreter.set_state :stopped @element.at_css(".selected").text = code ruby = get_codes[code] - Risc.machine.boot - Vool::VoolCompiler.ruby_to_binary( as_main(ruby) , :interpreter ) - @interpreter.start_machine + linker = RubyX::RubyXCompiler.new(as_main(ruby)).ruby_to_binary(:interpreter) + @interpreter.start_program(linker) end def as_main(statements) "class Space ;def main(arg) ; #{statements}; end; end" diff --git a/lib/views/object_view.rb b/lib/views/object_view.rb index 616bcc9..2c8ed06 100644 --- a/lib/views/object_view.rb +++ b/lib/views/object_view.rb @@ -40,8 +40,7 @@ class ObjectView < ListView end def class_header - pos = Risc::Position.set?(@object) - str = pos ? pos.to_s : @object.object_id.to_s(16) + str = Risc::Position.set?(@object).to_s clazz = @object.class.name.split("::").last [clazz, str].join " : " end diff --git a/lib/views/ref_view.rb b/lib/views/ref_view.rb index 912c6f8..d256372 100644 --- a/lib/views/ref_view.rb +++ b/lib/views/ref_view.rb @@ -58,11 +58,7 @@ class RefView < ListView if is_string? str = @value elsif is_object? - var = @value - str = var.class.name.split("::").last[0,2] - pos = Risc::Position.set?(@value) - str += pos ? pos.to_s : @value.object_id.to_s(16) - str + " : #{@value.object_id.to_s(16)}" + str = Risc::Position.get(@value).to_s elsif is_label? str = "Label" else diff --git a/lib/views/vool_view.rb b/lib/views/vool_view.rb index 3e2ddfd..165e8ec 100644 --- a/lib/views/vool_view.rb +++ b/lib/views/vool_view.rb @@ -19,9 +19,8 @@ class VoolView < ElementView return "" unless i if i.is_a?(Risc::FunctionReturn) link = @interpreter.get_register( i.register ) - puts "Link #{link}:#{link.source}" + puts "Link #{link}:#{link.class}" raise "No link method" unless link - i = link end method = nil case i.source