From ce0bdc46a9f5dc3413f10ffb4357e73cf865d49a Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Tue, 17 Apr 2018 19:08:10 +0300 Subject: [PATCH] introducing mom view rename source to vool and instruction to risc --- assets/css/app.css.sass | 18 ++++---- lib/debugger.js.rb | 10 +++-- lib/views/mom_view.rb | 42 +++++++++++++++++++ .../{instruction_view.rb => risc_view.rb} | 4 +- lib/views/{source_view.rb => vool_view.rb} | 4 +- 5 files changed, 62 insertions(+), 16 deletions(-) create mode 100644 lib/views/mom_view.rb rename lib/views/{instruction_view.rb => risc_view.rb} (88%) rename lib/views/{source_view.rb => vool_view.rb} (92%) diff --git a/assets/css/app.css.sass b/assets/css/app.css.sass index 6a3f6dd..0075eae 100644 --- a/assets/css/app.css.sass +++ b/assets/css/app.css.sass @@ -15,20 +15,24 @@ body .classes @include span(12%) -.source_view - @include span(24%) +.vool_view + @include span(18%) +.mom_view + @include span(18%) -.instruction_view - @include span(30%) - +.risc_view + @include span(18%) .status_view - @include span(15%) + @include span(14%) line-height : 1.25em .header_state color: #53a5ff +.vool_view , .mom_view , .risc_view , .status_view + margin-left: 0% + .labels_view @include span(1) margin-right: span(1) @@ -41,8 +45,6 @@ body @include gallery(1) margin-top: 10px - - .field @include span(5) diff --git a/lib/debugger.js.rb b/lib/debugger.js.rb index 75b3d43..1016c8a 100644 --- a/lib/debugger.js.rb +++ b/lib/debugger.js.rb @@ -16,8 +16,9 @@ require "base/list_view" # each seperate view is in it's own class. require "views/left_view" require "views/status_view" -require "views/source_view" -require "views/instruction_view" +require "views/vool_view" +require "views/mom_view" +require "views/risc_view" require "views/registers_view" class Bignum end @@ -43,8 +44,9 @@ class MainView < ListView Risc.machine.boot @interpreter = Risc::Interpreter.new super( [LeftView.new(@interpreter) , - SourceView.new(@interpreter) , - InstructionView.new(@interpreter) , + VoolView.new(@interpreter) , + MomView.new(@interpreter) , + RiscView.new(@interpreter) , StatusView.new(@interpreter) , RegistersView.new(@interpreter) ] ) end diff --git a/lib/views/mom_view.rb b/lib/views/mom_view.rb new file mode 100644 index 0000000..e6fc6ae --- /dev/null +++ b/lib/views/mom_view.rb @@ -0,0 +1,42 @@ +require "base/constant_view" +require "base/list_view" + +class MomView < ListView + + def initialize interpreter + @interpreter = interpreter + @current = nil + super([start_view]) + @interpreter.register_event(:instruction_changed, self) + @interpreter.register_event(:state_changed, self) + end + + def start_view + ConstantView.new( "span.bright" , "starting" ) + end + + def instruction_changed + i = @interpreter.instruction + return unless i && i.source.is_a?(Mom::Instruction) + @element.at_css(".mom_bright").remove_class("mom_bright") + instruction_text = i.source.to_s + instruction = append_view( ConstantView.new( "span.mom_bright" , instruction_text ) ) + wrap_node_with( instruction , div ) + remove_first if( @elements.length > 6) + end + + def draw + super() + wrap_node_with @elements.first , div + wrap_element div(".mom_view") << div("h4" ,"Mom::Instruction") + @element + end + + def state_changed(old , new_s) + return unless new_s == :running + clear_view + @current = nil + append_view start_view + end + +end diff --git a/lib/views/instruction_view.rb b/lib/views/risc_view.rb similarity index 88% rename from lib/views/instruction_view.rb rename to lib/views/risc_view.rb index c98338d..a7309dd 100644 --- a/lib/views/instruction_view.rb +++ b/lib/views/risc_view.rb @@ -1,7 +1,7 @@ require "base/constant_view" require "base/list_view" -class InstructionView < ListView +class RiscView < ListView def initialize interpreter @interpreter = interpreter @@ -24,7 +24,7 @@ class InstructionView < ListView def draw super() wrap_node_with @elements.first , div - wrap_element div(".instruction_view") << div("h4" ,"Register Machine Instruction") + wrap_element div(".risc_view") << div("h4" ,"Register Machine Instruction") @element end diff --git a/lib/views/source_view.rb b/lib/views/vool_view.rb similarity index 92% rename from lib/views/source_view.rb rename to lib/views/vool_view.rb index 10a4ae0..6c9faca 100644 --- a/lib/views/source_view.rb +++ b/lib/views/vool_view.rb @@ -1,6 +1,6 @@ require_relative "html_converter" -class SourceView < ElementView +class VoolView < ElementView def initialize interpreter @interpreter = interpreter @@ -10,7 +10,7 @@ class SourceView < ElementView def draw @text = div(".text") @ticker = div(".ticker") - @element = div(".source_view") << div("h4.source" , "Class.Method") << @ticker << @text + @element = div(".vool_view") << div("h4.source" , "Class.Method") << @ticker << @text @element end