refactor name expression for compiler
This commit is contained in:
@ -18,10 +18,10 @@ module Register
|
||||
def div10 context
|
||||
s = "div_10"
|
||||
compiler = Typed::Compiler.new.create_method(:Integer,:div10 ).init_method
|
||||
me = compiler.process( Typed::NameExpression.new( :self) )
|
||||
tmp = compiler.process( Typed::NameExpression.new( :self) )
|
||||
q = compiler.process( Typed::NameExpression.new( :self) )
|
||||
const = compiler.process( Typed::IntegerExpression.new(1) )
|
||||
me = compiler.process( Typed::Tree::NameExpression.new( :self) )
|
||||
tmp = compiler.process( Typed::Tree::NameExpression.new( :self) )
|
||||
q = compiler.process( Typed::Tree::NameExpression.new( :self) )
|
||||
const = compiler.process( Typed::Tree::IntegerExpression.new(1) )
|
||||
# int tmp = self >> 1
|
||||
compiler.add_code Register.op( s , ">>" , tmp , const)
|
||||
# int q = self >> 2
|
||||
|
@ -13,7 +13,7 @@ module Register
|
||||
compiler = Typed::Compiler.new.create_method(:Object , :get_internal_word , {:index => :Integer}).init_method
|
||||
source = "get_internal_word"
|
||||
#Load self by "calling" on_name
|
||||
me = compiler.process( Typed::NameExpression.new( :self) )
|
||||
me = compiler.process( Typed::Tree::NameExpression.new( :self) )
|
||||
# Load the argument
|
||||
index = compiler.use_reg :Integer
|
||||
compiler.add_code Register.get_slot(source , :message , Parfait::Message.get_indexed(1), index )
|
||||
@ -31,7 +31,7 @@ module Register
|
||||
{:index => :Integer, :value => :Object} ).init_method
|
||||
source = "set_internal_word"
|
||||
#Load self by "calling" on_name
|
||||
me = compiler.process( Typed::NameExpression.new( :self) )
|
||||
me = compiler.process( Typed::Tree::NameExpression.new( :self) )
|
||||
# Load the index
|
||||
index = compiler.use_reg :Integer
|
||||
compiler.add_code Register.get_slot(source , :message , Parfait::Message.get_indexed(1), index )
|
||||
|
@ -20,7 +20,7 @@ module Register
|
||||
compiler = Typed::Compiler.new.create_method(:Word , :get_internal_byte , {:index => :Integer }).init_method
|
||||
source = "get_internal_word"
|
||||
#Load self by "calling" on_name
|
||||
me = compiler.process( Typed::NameExpression.new( :self) )
|
||||
me = compiler.process( Typed::Tree::NameExpression.new( :self) )
|
||||
# Load the argument
|
||||
index = compiler.use_reg :Integer
|
||||
compiler.add_code Register.get_slot(source , :message , Parfait::Message.get_indexed(1), index )
|
||||
@ -39,7 +39,7 @@ module Register
|
||||
{:index => :Integer, :value => :Integer } ).init_method
|
||||
source = "set_internal_word"
|
||||
#Load self by "calling" on_name
|
||||
me = compiler.process( Typed::NameExpression.new( :self) )
|
||||
me = compiler.process( Typed::Tree::NameExpression.new( :self) )
|
||||
# Load the index
|
||||
index = compiler.use_reg :Integer
|
||||
compiler.add_code Register.get_slot(source , :message , Parfait::Message.get_indexed(1), index )
|
||||
|
Reference in New Issue
Block a user