raw source int the source view
This commit is contained in:
parent
3477de8c81
commit
4bf8ac5345
@ -17,14 +17,14 @@ $susy: (
|
|||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.file_view {
|
.source_view {
|
||||||
@include span(4);
|
@include span(4);
|
||||||
margin-left: span(1);
|
margin-left: span(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.source_view { @include span(8); }
|
.instruction_view { @include span(6); }
|
||||||
|
|
||||||
.label_view {
|
.labels_view {
|
||||||
@include span(3);
|
@include span(3);
|
||||||
margin-right: span(1);
|
margin-right: span(1);
|
||||||
height: 200px;
|
height: 200px;
|
||||||
|
@ -15,7 +15,7 @@ require "base/list_view"
|
|||||||
# each seperate view is in it's own class.
|
# each seperate view is in it's own class.
|
||||||
require "views/switch_view"
|
require "views/switch_view"
|
||||||
require "views/status_view"
|
require "views/status_view"
|
||||||
require "views/file_view"
|
require "views/source_view"
|
||||||
require "views/blocks_view"
|
require "views/blocks_view"
|
||||||
require "views/instruction_view"
|
require "views/instruction_view"
|
||||||
require "views/registers_view"
|
require "views/registers_view"
|
||||||
@ -27,11 +27,11 @@ class MainView < ListView
|
|||||||
machine = Register.machine.boot
|
machine = Register.machine.boot
|
||||||
code = s(:statements, s(:class, :Foo, s(:derives, nil),
|
code = s(:statements, s(:class, :Foo, s(:derives, nil),
|
||||||
s(:statements, s(:class_field, :Integer, :x))))
|
s(:statements, s(:class_field, :Integer, :x))))
|
||||||
Soml::Compiler.compile( code )
|
Soml.compile( code )
|
||||||
machine.collect
|
machine.collect
|
||||||
@interpreter = Interpreter::Interpreter.new
|
@interpreter = Interpreter::Interpreter.new
|
||||||
super( [SwitchView.new(@interpreter) ,
|
super( [SwitchView.new(@interpreter) ,
|
||||||
FileView.new ,
|
SourceView.new(@interpreter) ,
|
||||||
BlocksView.new(@interpreter) ,
|
BlocksView.new(@interpreter) ,
|
||||||
InstructionView.new(@interpreter) ,
|
InstructionView.new(@interpreter) ,
|
||||||
StatusView.new(@interpreter) ,
|
StatusView.new(@interpreter) ,
|
||||||
|
@ -12,7 +12,7 @@ class BlocksView < ListView
|
|||||||
|
|
||||||
def draw
|
def draw
|
||||||
super()
|
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
|
return @element
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
class FileView < ElementView
|
|
||||||
|
|
||||||
|
|
||||||
def draw
|
|
||||||
@element = div(".file_view") << div("h4" ,"Future")
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
@ -24,7 +24,7 @@ class InstructionView < ListView
|
|||||||
def draw
|
def draw
|
||||||
super()
|
super()
|
||||||
wrap_node_with @elements.first , div
|
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
|
@element
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -38,4 +38,5 @@ class InstructionView < ListView
|
|||||||
return "" unless @interpreter.instruction
|
return "" unless @interpreter.instruction
|
||||||
@interpreter.instruction.to_s
|
@interpreter.instruction.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
32
lib/views/source_view.rb
Normal file
32
lib/views/source_view.rb
Normal 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
|
@ -64,7 +64,7 @@ class SelectView < ElementView
|
|||||||
promise.then do |response|
|
promise.then do |response|
|
||||||
code = decode( response.text)
|
code = decode( response.text)
|
||||||
machine = Register.machine.boot
|
machine = Register.machine.boot
|
||||||
Soml::Compiler.compile( code )
|
Soml.compile( code )
|
||||||
machine.collect
|
machine.collect
|
||||||
@interpreter.start machine.init
|
@interpreter.start machine.init
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user