Goose  Artifact [b68308094b]

Artifact b68308094b55f5583c7200b75832f4819a07062f7fd7198e256e6cdf15f09407:

  • File bs/ir/vecgenerator.h — part of check-in [af650a9e95] at 2019-09-22 14:37:55 on branch trunk — Project renaming. (user: achavasse size: 518)

#ifndef GOOSE_IR_VECGENERATOR_H
#define GOOSE_IR_VECGENERATOR_H

namespace goose::ir
{
    // Generator that outputs the elements of a vector term, and then the repetition term (if any) forever.
    class VecGenerator
    {
        public:
            VecGenerator( const Vector& cont ) : m_cont( cont ) {}

            bool finished() const;
            bool repeating() const;
            const Term& operator()();

        private:
            const Vector& m_cont;
            size_t m_index = 0;
    };
}

#endif