rubyx/lib/ruby/while_statement.rb

25 lines
558 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 , rest = *normalize_name(@condition)
Vool::WhileStatement.new(cond.to_vool , @body.to_vool , rest&.to_vool)
end
def to_s(depth = 0)
at_depth(depth , "while (#{@condition})" , @body.to_s(depth + 1) , "end" )
end
end
end