module Vool
  class WhileStatement < Statement
    attr_reader :condition , :statements

    def initialize( condition , statements )
      @condition = condition
      @statements = statements
      simplify_condition
    end

    def simplify_condition
      return unless @condition.is_a?(ScopeStatement)
      @condition = @condition.first if @condition.single?
    end

    def collect(arr)
      @condition.collect(arr)
      @statements.collect(arr)
      super
    end

  end
end