starting to create vm_method from ruby_method

issues galore though
This commit is contained in:
Torsten Ruger
2017-01-15 12:10:37 +02:00
parent 9eeb9f65f3
commit 4095bb397f
5 changed files with 40 additions and 9 deletions

View File

@ -4,7 +4,31 @@ module Melon
class MethodCompiler < AST::Processor
def initialize( ruby_method )
@ruby_method
@ruby_method = ruby_method
end
def get_code
process(@ruby_method.source)
end
def on_ivasgn(statement)
name , value = *statement
w = Vm::Tree::Assignment.new()
w.name = Vm::Tree::NameExpression.new( name[1..-1].to_sym)
w.value = process(value)
w
end
def on_ivar( var )
name = var.children.first
w = Vm::Tree::FieldAccess.new()
w.receiver = Vm::Tree::NameExpression.new(:self)
w.field = Vm::Tree::NameExpression.new( name[1..-1].to_sym)
w
end
def on_int( expression)
Vm::Tree::IntegerExpression.new(expression.children.first)
end
def handler_missing(node)