update salaam and fix
This commit is contained in:
@ -9,7 +9,7 @@ require 'native'
|
||||
require "salama"
|
||||
require "salama-reader"
|
||||
require "ast"
|
||||
require "interpreter/interpreter"
|
||||
require "register/interpreter"
|
||||
# the base, our own litle framework, allows for child and parent views and handles updates
|
||||
require "base/list_view"
|
||||
# each seperate view is in it's own class.
|
||||
@ -44,7 +44,7 @@ class MainView < ListView
|
||||
s(:statements, s(:class_field, :Integer, :x))))
|
||||
Soml.compile( code )
|
||||
machine.collect
|
||||
@interpreter = Interpreter::Interpreter.new
|
||||
@interpreter = Register::Interpreter.new
|
||||
super( [SwitchView.new(@interpreter) ,
|
||||
SourceView.new(@interpreter) ,
|
||||
InstructionView.new(@interpreter) ,
|
||||
|
@ -28,7 +28,7 @@ class ObjectView < ListView
|
||||
f = @object.get_instance_variable(variable)
|
||||
else
|
||||
variable = (at - @object.class.get_length_index).to_s
|
||||
f = @object.get_internal(at)
|
||||
f = @object.get_internal_word(at)
|
||||
end
|
||||
#puts "got var name #{variable}#{variable.class} for #{at}, #{f}"
|
||||
view = RefView.new( variable , f , @z )
|
||||
|
@ -39,7 +39,7 @@ class SourceView < ElementView
|
||||
if i.is_a?(Register::FunctionReturn)
|
||||
object = @interpreter.get_register( i.register )
|
||||
#puts "Object #{object}"
|
||||
link = object.get_internal( i.index )
|
||||
link = object.get_internal_word( i.index )
|
||||
#puts "Link #{link}"
|
||||
raise "No link method" unless link
|
||||
i = link
|
||||
@ -47,7 +47,8 @@ class SourceView < ElementView
|
||||
return unless (i.is_a? Register::Label)
|
||||
if i.is_method
|
||||
cl_name , method_name = *i.name.split(".")
|
||||
clazz = Register.machine.space.get_class_by_name cl_name
|
||||
clazz = Register.machine.space.get_class_by_name cl_name.split(" ").last
|
||||
raise "No class for #{cl_name} , #{i.name}" unless clazz
|
||||
method = clazz.get_instance_method( method_name)
|
||||
else
|
||||
return
|
||||
|
Reference in New Issue
Block a user