raw source int the source view

This commit is contained in:
Torsten Ruger 2015-10-29 16:49:14 +02:00
parent 3477de8c81
commit 4bf8ac5345
7 changed files with 42 additions and 17 deletions

View File

@ -17,14 +17,14 @@ $susy: (
margin: 10px;
}
.file_view {
.source_view {
@include span(4);
margin-left: span(1);
}
.source_view { @include span(8); }
.instruction_view { @include span(6); }
.label_view {
.labels_view {
@include span(3);
margin-right: span(1);
height: 200px;

View File

@ -15,7 +15,7 @@ require "base/list_view"
# each seperate view is in it's own class.
require "views/switch_view"
require "views/status_view"
require "views/file_view"
require "views/source_view"
require "views/blocks_view"
require "views/instruction_view"
require "views/registers_view"
@ -27,11 +27,11 @@ class MainView < ListView
machine = Register.machine.boot
code = s(:statements, s(:class, :Foo, s(:derives, nil),
s(:statements, s(:class_field, :Integer, :x))))
Soml::Compiler.compile( code )
Soml.compile( code )
machine.collect
@interpreter = Interpreter::Interpreter.new
super( [SwitchView.new(@interpreter) ,
FileView.new ,
SourceView.new(@interpreter) ,
BlocksView.new(@interpreter) ,
InstructionView.new(@interpreter) ,
StatusView.new(@interpreter) ,

View File

@ -12,7 +12,7 @@ class BlocksView < ListView
def draw
super()
wrap_element div("div.label_view") << div("h4" , "Method + Block " ) << div("h4.method" , @method_name)
wrap_element div("div.labels_view") << div("h4" , "Method + Block " ) << div("h4.method" , @method_name)
return @element
end

View File

@ -1,8 +0,0 @@
class FileView < ElementView
def draw
@element = div(".file_view") << div("h4" ,"Future")
end
end

View File

@ -24,7 +24,7 @@ class InstructionView < ListView
def draw
super()
wrap_node_with @elements.first , div
wrap_element div(".source_view") << div("h4" ,"Register Machine Instruction")
wrap_element div(".instruction_view") << div("h4" ,"Register Machine Instruction")
@element
end
@ -38,4 +38,5 @@ class InstructionView < ListView
return "" unless @interpreter.instruction
@interpreter.instruction.to_s
end
end

32
lib/views/source_view.rb Normal file
View File

@ -0,0 +1,32 @@
class SourceView < ElementView
def initialize interpreter
@interpreter = interpreter
@interpreter.register_event(:instruction_changed, self)
end
def draw
@text = div
@element = div(".source_view") << div("h4" ,"Future") << @text
@element
end
def instruction_changed
@text.text = source
end
def source
i = @interpreter.instruction
return "" unless i
case i.source
when AST::Node
i.source.to_s
when String
"String " + i.source
else
raise i.source.class.name
end
end
end

View File

@ -64,7 +64,7 @@ class SelectView < ElementView
promise.then do |response|
code = decode( response.text)
machine = Register.machine.boot
Soml::Compiler.compile( code )
Soml.compile( code )
machine.collect
@interpreter.start machine.init
end