fix vool method updating
a start, should do code too
This commit is contained in:
parent
e90597c332
commit
315be69851
@ -18,11 +18,11 @@ body
|
||||
margin-left: 1%
|
||||
|
||||
.vool_view
|
||||
width: 18%
|
||||
width: 14%
|
||||
margin-left: 1%
|
||||
|
||||
.mom_view
|
||||
width: 20%
|
||||
width: 24%
|
||||
margin-left: 1%
|
||||
|
||||
.risc_view
|
||||
|
@ -17,45 +17,31 @@ class VoolView < ElementView
|
||||
def instruction_changed
|
||||
i = @interpreter.instruction
|
||||
return "" unless i
|
||||
update_method
|
||||
case i.source
|
||||
when Mom::Instruction
|
||||
@ticker.text = i.source.class.name
|
||||
# if e = @text.at_css("#i#{id}")
|
||||
# if (old = @text.at_css(".fade_in"))
|
||||
# old.remove_class("fade_in")
|
||||
# end
|
||||
# e.add_class "fade_in"
|
||||
# end
|
||||
when String
|
||||
@ticker.text = i.source
|
||||
when Risc::Instruction
|
||||
@ticker.text = i.source.to_s
|
||||
else
|
||||
raise "Unrecognized source #{i.source.class.name} for #{i}"
|
||||
end
|
||||
end
|
||||
|
||||
def update_method
|
||||
i = @interpreter.instruction
|
||||
if i.is_a?(Risc::FunctionReturn)
|
||||
link = @interpreter.get_register( i.register )
|
||||
#puts "Link #{link}"
|
||||
puts "Link #{link}:#{link.source}"
|
||||
raise "No link method" unless link
|
||||
i = link
|
||||
end
|
||||
return unless (i.is_a? Risc::Label)
|
||||
return unless i.is_method
|
||||
puts i.name
|
||||
method = nil
|
||||
case i.source
|
||||
when Mom::Instruction
|
||||
if(i.source.is_a?(Mom::SimpleCall))
|
||||
method = i.source.method
|
||||
end
|
||||
#TODO, give mom a source
|
||||
when Parfait::TypedMethod
|
||||
method = i.source
|
||||
when String
|
||||
return
|
||||
cl_t_name , method_name = *i.name.split(".")
|
||||
class_name = cl_t_name.split(" ").last.split("_").first
|
||||
clazz = Parfait.object_space.get_class_by_name class_name
|
||||
raise "No class for #{cl_name} , #{i.name}" unless clazz
|
||||
type = clazz.instance_type
|
||||
method = type.get_method( method_name )
|
||||
@element.at_css(".source").text = i.name
|
||||
@text.inner_html = HtmlConverter.new.process( method.source )
|
||||
else
|
||||
raise "Unrecognized source #{i.source.class.name} for #{i}"
|
||||
end
|
||||
update_method(method) if method
|
||||
end
|
||||
|
||||
def update_method(method)
|
||||
@text.inner_html = method.name
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user