rubyx/lib/ruby/while_statement.rb
Torsten Rüger c213cf874b Fix ruby normalising to_vool
So that vool layer never has complex conditions or returns
Start with while, next if, return and assign
2019-08-16 14:20:06 +03:00

25 lines
548 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_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