module Vool
  class Statements < Statement
    attr_reader :statements
    def initialize(statements)
      @statements = statements
    end

    # create machine instructions
    def to_mom( method )
      @statements.collect do |statement|
        statement.to_mom( method )
      end
    end

    def empty?
      @statements.empty?
    end
    def single?
      @statements.length == 1
    end
    def first
      @statements.first
    end
    def length
      @statements.length
    end

    def collect(arr)
      @statements.each { |s| s.collect(arr) }
      super
    end

    def create_objects
      @statements.each{ |s| s.create_objects }
    end
  end

  class ScopeStatement < Statements
  end
end