require_relative "normalizer" module Ruby class IfStatement < Statement include Normalizer attr_reader :condition , :if_true , :if_false def initialize( cond , if_true , if_false = nil) @condition = cond @if_true = if_true @if_false = if_false end def to_vool cond , rest = *normalize_name(@condition) me = Vool::IfStatement.new(cond.to_vool , @if_true.to_vool, @if_false&.to_vool) return me unless rest Vool::Statements.new([ rest.to_vool , me]) end def has_false? @if_false != nil end def has_true? @if_true != nil end def to_s(depth = 0) parts = ["if (#{@condition})" , @body.to_s(depth + 1) ] parts += ["else" , "@if_false.to_s(depth + 1)"] if(@false) parts << "end" at_depth(depth , *parts ) end end end