rubyx/lib/ruby/while_statement.rb

25 lines
544 B
Ruby

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_sol
cond , hoisted = *normalized_sol(@condition)
Sol::WhileStatement.new(cond , @body.to_sol , hoisted)
end
def to_s(depth = 0)
at_depth(depth , "while (#{@condition})" , @body.to_s(depth + 1) , "end" )
end
end
end