Torsten Rüger
f87526f86f
Class, Method and Lambda (was block) are expressions. Just making things clearer, especially for the blocks (ahem, lambdas) is matters. wip
23 lines
478 B
Ruby
23 lines
478 B
Ruby
module Ruby
|
|
class ReturnStatement < Statement
|
|
include Normalizer
|
|
|
|
attr_reader :return_value
|
|
|
|
def initialize(value)
|
|
@return_value = value || NilConstant.new
|
|
end
|
|
|
|
def to_vool
|
|
val , hoisted = *normalized_vool(@return_value)
|
|
me = Vool::ReturnStatement.new(val)
|
|
return me unless hoisted
|
|
Vool::Statements.new( hoisted ) << me
|
|
end
|
|
|
|
def to_s(depth = 0)
|
|
at_depth(depth , "return #{@return_value.to_s}")
|
|
end
|
|
end
|
|
end
|