rubyx/lib/ruby/while_statement.rb

25 lines
548 B
Ruby
Raw Normal View History

require_relative "normalizer"
module Ruby
class WhileStatement < Statement
include Normalizer
attr_reader :condition , :body , :hoisted
def initialize( condition , body , hoisted = nil)
@hoisted = hoisted
@condition = condition
@body = body
end
def to_vool
cond , hoisted = *normalized_vool(@condition)
Vool::WhileStatement.new(cond , @body.to_vool , hoisted)
end
def to_s(depth = 0)
at_depth(depth , "while (#{@condition})" , @body.to_s(depth + 1) , "end" )
end
end
end