roza/lib/Type.hpp

32 lines
455 B
C++

#ifndef roza_TYPE_HPP
#define roza_TYPE_HPP
#include "commons.hpp"
#define BASE_TYPE(G) \
G(TY_INT), G(TY_BOOL)
namespace roza
{
MAKE_ENUM(BASE_TYPE, BaseType)
class Type
{
public:
explicit Type(BaseType base);
virtual ~Type();
BaseType base() const { return m_base; }
std::string string() const;
bool equals(BaseType rhs) const;
bool equals(Type const& rhs) const;
private:
BaseType m_base;
};
}
#endif